Chris Smowton
8c32758ae5
Merge pull request #9829 from smowton/smowton/fix/kotlin-underscore-parameter-names
...
Kotlin: Don't extract a name for a '_' parameter
2022-08-10 12:28:26 +01:00
Ian Lynagh
b5d6258e54
Merge pull request #9809 from igfoo/igfoo/fakeLabel
...
Kotlin: Remove the last uses of fakeLabel
2022-08-08 11:54:53 +01:00
Chris Smowton
5086841b46
Kotlin: implement super-method calls
...
If we only look at the dispatch receiver, these show up like `this` references rather than `super` references, preventing flow through super-calls. The super-interface case requires properly noting that interface methods with a body get a `default` modifier in order to avoid QL discarding the method as a possible callee.
2022-07-26 17:03:46 +01:00
Chris Smowton
3f6925e7be
Merge pull request #9875 from smowton/smowton/fix/charat-naming
...
Kotlin: Special-case String.charAt naming
2022-07-25 16:10:13 +01:00
Chris Smowton
9593ceeda5
Kotlin: Special-case String.charAt naming
...
In the Kotlin universe this is called `get` so that Kotlin programmers can use the `[]` operator on `String`s.
2022-07-21 09:17:08 +01:00
Chris Smowton
0a351b73cb
Underscore query: tolerate synthetic functions
2022-07-21 09:15:27 +01:00
Chris Smowton
1cbe26a54f
Kotlin: fix for-loop iterators over primitive or wildcard types
...
Array<*> can't be queried for an argument type, and IntArray doesn't have an argument at all; both were previously causing the extractor to fail to extract the whole file due to throwing an exception.
2022-07-21 09:13:55 +01:00
Chris Smowton
41ca791966
Implement is-underscore-parameter for old versions of Kotlin
2022-07-15 12:36:37 +01:00
Chris Smowton
d4b0163c4c
Kotlin: Don't extract a name for a '_' parameter
...
I can't reproduce the exact circumstances, but these sometimes get "<anonymous parameter X>" names and sometimes get "$noName_X" names. Whichever way, avoiding extracting a synthetic name seems safest; anyone finding the .class file and not reading the metadata indicating it came from a `_` will extract the binary name selected, or else QL will
invent a name.
2022-07-14 16:36:26 +01:00
Ian Lynagh
83edb3b5e9
Kotlin: Remove the last uses of fakeLabel
2022-07-12 17:43:50 +01:00
Ian Lynagh
d0bf424b19
Merge pull request #9806 from igfoo/igfoo/useType
...
Kotlin: Extract an ErrorType if we fail to correctly extract a type
2022-07-12 13:45:04 +01:00
Ian Lynagh
2edeeaac0e
Merge pull request #9801 from igfoo/igfoo/psi
...
Kotlin: We can't extract comments for < 1.5.20
2022-07-12 11:01:30 +01:00
Ian Lynagh
960d1dba8a
Kotlin: We can't etract comments for < 1.5.20
...
We were making our own PsiSourceManager, but that didn't know about any
IrFile -> PsiFile mappings.
2022-07-11 19:36:43 +01:00
Ian Lynagh
4c68624b00
Kotlin: Pass a FileLogger to Psi2Ir
2022-07-11 19:17:21 +01:00
Ian Lynagh
b9072a3594
Kotlin: Share a Psi2Ir instance
2022-07-11 18:57:43 +01:00
Ian Lynagh
1730ec22d9
Kotlin: Extract an ErrorType if we fail to correctly extract a type
2022-07-01 16:33:43 +01:00
Chris Smowton
b499ba5aa8
Kotlin: don't extract private setters of external classes
...
Previously these would get extracted unlike other private methods even if the class was a standard library or other external class. This could cause inconsistencies because if we also compiled the class from source we could end up deciding different names for the property's setter: setXyz$private when seen from source, and setXyz without a
suffix when seen as an external .class file. Avoiding extracting these functions from the external perspective both restores consistency with other kinds of method and avoids these consistency problems.
2022-07-01 15:44:17 +01:00
Chris Smowton
4c6a9772af
Merge pull request #9768 from smowton/smowton/fix/internal-method-name-mangling
...
Kotlin: Mangle names of internal functions to match JVM symbols
2022-07-01 14:33:32 +01:00
Chris Smowton
df78b7e54b
Merge pull request #9755 from smowton/smowton/feature/implement-jvmstatic-annotation
...
Kotlin: support JvmStatic annotation
2022-07-01 10:14:08 +01:00
Chris Smowton
dd93062101
Kotlin: Mangle names of internal functions to match JVM symbols
2022-06-30 21:56:25 +01:00
Ian Lynagh
144c0d63b1
Merge pull request #9766 from igfoo/igfoo/extension
...
Kotlin: Fix a label
2022-06-30 21:16:26 +01:00
Ian Lynagh
b373af47d1
Kotlin: Fix a label
...
We want the .javaResult.id of a TypeResults.
2022-06-30 16:59:18 +01:00
Ian Lynagh
83fd9c3b3e
Merge pull request #9763 from igfoo/igfoo/foreach
...
Kotlin: Replace a map call with forEach
2022-06-30 15:02:57 +01:00
Ian Lynagh
0e56e50d18
Kotlin: Replace a map call with forEach
2022-06-30 13:50:22 +01:00
Chris Smowton
98761041f1
Prevent labelling proxies of default getters and setters as themselves default getters and setters
2022-06-30 13:11:00 +01:00
Chris Smowton
bf581b971c
Rename willExtract properties to shouldExtract
2022-06-30 12:51:09 +01:00
Chris Smowton
5a47e1dd95
Annotate generated static proxy methods as compiler-generated
2022-06-30 12:48:11 +01:00
Chris Smowton
bfdb21d551
Kotlin: support JvmStatic annotation
...
This makes non-companion object methods into static methods, and for companion objects introduces static proxy methods that call the companion instance method.
Note this doesn't quite implement what kotlinc does, since it will also eliminate getters and setters by promoting an object field into a static field, but our translation is simpler and only differs in private members' details.
2022-06-30 12:42:38 +01:00
Chris Smowton
8e5bbea9f9
Use map...firstOrNull not firstNotNullOfOrNull
...
The latter was introduced in Kotlin 1.5, so we can't use it in all supported versions.
2022-06-30 10:15:44 +01:00
Chris Smowton
2d98eb591e
Kotlin: note that raw inner classes nest within a raw outer.
...
Previously the Java extractor did this but the Kotlin extractor nested them within an unbound outer type.
2022-06-30 10:15:44 +01:00
Ian Lynagh
3026456a39
Kotlin: Make more methods private
2022-06-28 14:38:13 +01:00
Ian Lynagh
780f5abc67
Merge pull request #9724 from igfoo/igfoo/private
...
Kotlin: Make more methods private
2022-06-28 10:21:55 +01:00
Ian Lynagh
b6790ef735
Merge pull request #9725 from igfoo/igfoo/inline
...
Kotlin: Extract inlineability of functions
2022-06-28 10:21:30 +01:00
Ian Lynagh
06060954ec
Kotlin: Extract inlineability of functions
2022-06-27 19:25:56 +01:00
Ian Lynagh
4e4b34290b
Kotlin: Make more methods private
2022-06-27 18:20:33 +01:00
Ian Lynagh
7430a413ad
Kotlin: Mark DELEGATED_PROPERTY_ACCESSORs as compiler-generated
2022-06-27 17:57:40 +01:00
Ian Lynagh
861a368734
Merge pull request #9703 from igfoo/igfoo/generated
...
Kotlin: Record more kinds of elements as compiler-generated
2022-06-24 19:46:56 +01:00
Ian Lynagh
0ddd5bb162
Merge pull request #9709 from igfoo/igfoo/isLocalFunction
...
Kotlin: Let useFunction worry about isLocalFunction for us
2022-06-24 19:22:43 +01:00
Ian Lynagh
4791aaae52
Kotlin: Use an enum for compiler-generated-kinds
...
For now this is in KotlinFileExtractor, but we can move it out later if
we have generated things elsewhere.
2022-06-24 15:19:50 +01:00
Ian Lynagh
c0b6d1d093
Kotlin: Let useFunction worry about isLocalFunction for us
2022-06-24 14:24:02 +01:00
Ian Lynagh
46446f9dfa
Kotlin: Move the isLocalFunction check deeper into useFunction
2022-06-24 14:22:45 +01:00
Ian Lynagh
20817a54da
Kotlin: Mark enum class special members as cmopiler-generated
2022-06-24 14:00:47 +01:00
Ian Lynagh
50eeb47244
Kotlin: Mark <clinit> as compiler-generated
2022-06-24 14:00:47 +01:00
Ian Lynagh
c06eb09100
Kotlin: Record that DEFAULT_PROPERTY_ACCESSOR are compiler-generated
2022-06-24 14:00:47 +01:00
Ian Lynagh
5fc294d49e
Kotlin: Record that generated data class members are compiler-generated
2022-06-24 14:00:47 +01:00
Tamás Vajk
381bcf7dad
Merge pull request #9153 from tamasvajk/kotlin-simplify-loop-breaks-1
...
Kotlin: Unify loop `break`/`continue` statement handling between java and kotlin
2022-06-24 14:45:57 +02:00
Chris Smowton
d0e521ef4a
Merge pull request #9681 from smowton/smowton/fix/reintroduce-obinit
...
Kotlin: reintroduce obinit when we have multiple secondary constructors and no primary
2022-06-24 10:25:24 +01:00
Chris Smowton
fcc8691394
Merge pull request #9625 from smowton/smowton/test/kotlin-1-7-support
...
Switch to using Kotlin 1.7 by default
2022-06-24 10:24:54 +01:00
Ian Lynagh
ae16a874c8
Merge pull request #9694 from igfoo/igfoo/useFunction
...
Kotlin: Some useFunction simplification
2022-06-24 09:31:14 +01:00
Ian Lynagh
eb1b3f801d
Merge pull request #9689 from igfoo/igfoo/makeprivate
...
Kotlin: Make some more methods private
2022-06-23 21:28:07 +01:00