Chris Smowton
7ba9a31766
Use US spelling
2022-10-19 10:41:29 +01:00
Josh Soref
99aa5ffea6
spelling: substitutions
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-19 05:10:23 -04:00
Josh Soref
24a032041f
spelling: sanitize
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-19 05:10:23 -04:00
Josh Soref
0bc19506e7
spelling: reinitialised
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-19 04:59:16 -04:00
Josh Soref
0079ee3d54
spelling: annotation
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-19 04:59:16 -04:00
Chris Smowton
2713b3ee06
Comment extraction: don't treat anonymous classes differently
2022-10-18 11:10:29 +01:00
Tamás Vajk
0069fd9681
Merge pull request #10860 from tamasvajk/kotlin-clinit-static
...
Kotlin: Add `static` modifier to `clinit`
2022-10-18 11:39:34 +02:00
Chris Smowton
50f99d8e82
Don't produce interface forwarders directed at an abstract target
2022-10-18 10:31:01 +01:00
Chris Smowton
67aa6c7737
Merge pull request #10822 from smowton/smowton/feature/kotlin-collection-literals
...
Koltin: support collection literals
2022-10-18 09:45:59 +01:00
Tamas Vajk
b67a8877a7
Kotlin: Add static modifier to clinit
2022-10-18 09:26:06 +02:00
Tamás Vajk
543e2f5aab
Merge pull request #10678 from tamasvajk/kotlin-type-param-modifiers
...
Kotlin: Extract type parameter modifiers (`reified`, `in`, `out`)
2022-10-18 09:10:57 +02:00
Chris Smowton
baaa06391c
Extract interface forwarders with public visiblity
2022-10-17 18:43:12 +01:00
Chris Smowton
4201031ae0
Restrict interface override synthesis to cases where both the overriding class and the interface are Kotlin-defined.
...
If the interface is Java-defined and it provides a default interface implementation then real class-file default methods are being used and kotlinc won't synthesise anything. If the loaded .class file wasn't made by Kotlin, then we see all the real methods and there is no need to synthesise anything either.
2022-10-17 18:38:13 +01:00
Chris Smowton
e8a35983ee
Implement Kotlin default interface method forwarding
...
Kotlin's implementation of defaults depends on the -Xjvm-default setting (or the @JvmDefault deprecated annotation, not implemented here): by default, actual interface class files don't use default method, and any class that would inherit one instead implements the interface calling a static method defined on TheInterface$DefaultImpls. With
-Xjvm-default=all or =all-compatibility, real interface default methods are emitted, with the latter retaining the DefaultImpls methods so that other Kotlin can use it.
Here I adopt a hybrid solution: create a real default method implementation, but also emit a forwarding method like `@override int f(int x) { return super.TheInterface.f(x); }`, because the Java extractor will see `MyClass.f` in the emitted class file and try to dispatch directly to it. The only downside is that we emit a default interface
method body for a prototype that will appear to be `abstract` to the Java extractor and which it will extract as such. I work around this by tolerating the combination `default abstract` in QL. The alternative would be to fully mimic the DefaultImpls approach, giving 100% fidelity to kotlinc's strategy and therefore no clash with the Java
extractor's view of the world.
2022-10-17 18:38:13 +01:00
Chris Smowton
595a66a3a4
Fix extraction of primitive-typed arrays
2022-10-17 18:29:59 +01:00
Chris Smowton
ecb3788467
Make useAnonymousClass private
2022-10-17 18:24:04 +01:00
Chris Smowton
9611fea479
Fix mistaking unspecialised for raw types, and failing to account for an empty declaration stack
2022-10-17 18:22:41 +01:00
Chris Smowton
eb97735568
Merge pull request #10797 from smowton/smowton/fix/byte-short-inversion
...
Kotlin: fix bit-inversion operator for Byte and Short types
2022-10-17 15:05:57 +01:00
Chris Smowton
efd7b6e692
Use isFunction
2022-10-17 12:27:58 +01:00
Chris Smowton
f9d65e42dd
Use compiler-provided adapter functions when creating a function reference
2022-10-17 11:48:21 +01:00
Chris Smowton
4c63237ed1
Add test checking argument <-> parameter matching, and fix superconstructor calls that were missing their argument.
2022-10-17 11:44:44 +01:00
Chris Smowton
8553266aae
Allow specialised instances of anonymous classes
2022-10-17 11:27:05 +01:00
Chris Smowton
73f5dea51e
Extract private members of specialised generic classes on demand
2022-10-17 11:27:04 +01:00
Chris Smowton
f1fd470f49
Merge pull request #10821 from smowton/smowton/fix/kotlin-property-ref-to-sam-interface
...
Kotlin SAM conversion: tolerate property refs used to implement a SAM interface
2022-10-17 11:25:24 +01:00
Tamás Vajk
85fbf4b965
Merge pull request #10767 from tamasvajk/kotlin-prop-ref-fix
...
Kotlin: adjust extracted property reference base class
2022-10-17 09:40:03 +02:00
Ian Lynagh
f0eabd4675
Merge pull request #10759 from igfoo/igfoo/numlines2
...
kotlin: Populate numlines
2022-10-14 15:39:40 +01:00
Ian Lynagh
4dcf4f2d2c
Merge pull request #10819 from github/igfoo/kotlin
...
Kotlin: Some windows fixes
2022-10-14 14:28:57 +01:00
Chris Smowton
e1c43c67ee
Koltin: support collection literals
2022-10-13 18:48:00 +01:00
Chris Smowton
1efcf38a34
Kotlin SAM conversion: tolerate property refs used to implement a SAM interface
2022-10-13 17:32:22 +01:00
Ian Lynagh
7d22bdb7e1
Windows fixes
2022-10-13 16:16:54 +01:00
Chris Smowton
429d400125
Kotlin: fix bit-inversion operator for Byte and Short types
2022-10-12 17:23:16 +01:00
Tamas Vajk
9eea6d4193
Kotlin: Extract type parameter modifiers (reified, in, out)
2022-10-11 16:40:07 +02:00
Tamás Vajk
8523d21f8c
Merge pull request #10696 from tamasvajk/kotlin-lateinit
...
Kotlin: Extract `lateinit` modifier
2022-10-11 15:03:10 +02:00
Tamás Vajk
e9835ec07e
Merge pull request #10756 from tamasvajk/kotlin-fix-java-modifier
...
Kotlin: extract `protected` modifier from java class files
2022-10-11 15:02:13 +02:00
Ian Lynagh
b31a721929
Kotlin: Remove some noisy diagnostics
2022-10-11 12:20:42 +01:00
Tamas Vajk
43f9331052
Kotlin: adjust extracted property reference base class
2022-10-11 12:52:26 +02:00
Ian Lynagh
bca2586903
Kotlin: Populate numfiles
2022-10-10 19:00:05 +01:00
Tamas Vajk
f2e2e3bc1d
Kotlin: extract protected modifier from java class files
2022-10-10 18:02:21 +02:00
Chris Smowton
5756a33604
Merge pull request #10737 from smowton/smowton/fix/type-instance-within-default-value-erasure
...
Kotlin: fix type variable erasure inside default function values
2022-10-10 16:31:07 +01:00
Chris Smowton
dfdfd39bcc
Merge pull request #10732 from smowton/smowton/fix/kotlin-enum-corresponding-classes
...
Koltin: Extract the corresponding classes of enum entries
2022-10-10 15:04:02 +01:00
Tamás Vajk
87b971c78f
Merge pull request #10728 from tamasvajk/kotlin-missing-override-sam
...
Kotlin: Extract `override` modifier on SAM methods
2022-10-10 13:58:28 +02:00
Chris Smowton
5cadd3c0e6
Merge pull request #10712 from smowton/smowton/admin/kotlin-allow-single-embeddable-version
...
Kotlin: allow building a single embeddable plugin version
2022-10-07 20:33:06 +01:00
Chris Smowton
5dcb70e482
Make method private
2022-10-07 18:10:52 +01:00
Chris Smowton
9c0cdfde6b
Note store_true params default to False not None
2022-10-07 18:02:32 +01:00
Chris Smowton
68967c40bc
Remove whitespace
2022-10-07 17:49:51 +01:00
Chris Smowton
85f92ff80a
Require --single-version with --single-version-embeddable
2022-10-07 17:49:03 +01:00
Chris Smowton
bef4011947
Kotlin: fix type variable erasure inside default function values
...
Previously because extractClassInstance didn't use the declaration stack, we wouldn't notice that it was legal to refer to its type variable in the context of extracting a specialised method <-> method source-decl edge. This led to erasing the types of the source-decl, so that e.g. Map.put(...) would have signature (Object, Object) not (K, V)
as it should.
2022-10-07 17:31:38 +01:00
Chris Smowton
115d4de0e0
Kotlin: keep method overloads together
2022-10-07 13:50:27 +01:00
Chris Smowton
2df1d63d1c
Extract the corresponding classes of enum entries, where they exist.
2022-10-07 12:23:08 +01:00
Chris Smowton
bb6e575689
Kotlin: allow building a single embeddable plugin version
2022-10-07 10:56:33 +01:00