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
Tamas Vajk
26c4216fef
Kotlin: Extract override modifier on SAM methods
2022-10-07 11:23:14 +02:00
Chris Smowton
fcf24f7671
Fix typo
2022-10-06 12:59:43 +01:00
Chris Smowton
0024e54e63
Make method private
2022-10-06 12:55:17 +01:00
Chris Smowton
34b83f01d0
Fix naming of internal default methods
2022-10-06 12:40:03 +01:00
Chris Smowton
5e182755a5
Fix generated $default method visibilities
2022-10-06 12:40:03 +01:00
Chris Smowton
bec948682d
Fix calls to static methods defined in association with local functions
...
These are a bit weird since they involve static calls to unnamed synthetic class members, but while unwriteable as Java they ought to work as a database description.
2022-10-06 12:40:03 +01:00
Chris Smowton
b79d273de4
When calling a $default method, ensure the real method gets extracted
2022-10-06 12:40:02 +01:00
Chris Smowton
3452dcbced
Fix class type parameter erasure within $default methods
2022-10-06 12:40:02 +01:00
Chris Smowton
be655432d6
Use new terse extraction functions where applicable
2022-10-06 12:40:02 +01:00
Chris Smowton
6119670be8
Suppress use of function type parameters in the context of building a $defaults method
...
These methods have erased signatures and no type parameters, so anything that refers to one must itself be erased. For signatures this would be easy, but for potentially deep default expressions these types can occur in various places and need erasing at each occurence.
2022-10-06 12:40:02 +01:00
Chris Smowton
720cf5682b
Exclude enum constructor invocations from defaults handling
...
These seem to provide null arguments even though the constructor doesn't provide defaults, presumably for completion by a later compiler phase.
2022-10-06 12:40:01 +01:00
Chris Smowton
6cc74da004
Defaults function extraction: respect the extract-type-accesses flag
2022-10-06 12:39:57 +01:00
Chris Smowton
34a0a0d080
Implement $default method synthesis
...
This adds methods that fill in default parameters whenever a constructor or method uses default parameter values. I use as similar an approach to the real Kotlin compiler as possible both because this produces the desirable dataflow, and because it should merge cleanly with the same class file seen by the Java extractor, which will see and
extract the signatures of the default methods.
2022-10-06 12:38:55 +01:00
Chris Smowton
6f3c9e4403
Split up extractRawMethodAccess
2022-10-06 11:05:27 +01:00
Tamas Vajk
082544e88c
Kotlin: Extract lateinit modifier
2022-10-05 15:25:49 +02:00
Tamás Vajk
d0d8ef1236
Merge pull request #10672 from tamasvajk/kotlin-unary-op
...
Kotlin: extract unary plus and minus operators
2022-10-05 13:30:21 +02:00
Tamás Vajk
ecfbd5edfe
Merge pull request #10674 from tamasvajk/kotlin-implements
...
Kotlin: extract `implInterface`
2022-10-05 09:11:41 +02:00
Tamás Vajk
d0ea7ea2e3
Merge pull request #10677 from tamasvajk/kotlin-param-modifiers
...
Kotlin: Extract parameter modifiers (`noinline`, `crossinline`)
2022-10-04 21:53:48 +02:00
Tamás Vajk
c45a04a2c8
Merge pull request #10675 from tamasvajk/kotlin-enum-constants
...
Kotlin: extract `isEnumConstant` relation
2022-10-04 21:53:22 +02:00
Tamas Vajk
ea0a04a74f
Kotlin: extract unary plus and minus operators
2022-10-04 15:18:35 +02:00
Ian Lynagh
db673c0355
Merge pull request #10646 from tamasvajk/kotlin-java-kotlin-function-mapping
...
Kotlin: Simplify `kotlinFunctionToJavaEquivalent`
2022-10-04 13:46:22 +01:00
Tamas Vajk
81fffce79b
Kotlin: Extract parameter modifiers (noinline, crossinline)
2022-10-04 14:02:06 +02:00
Tamas Vajk
09051e76cf
Kotlin: extract isEnumConstant relation
2022-10-04 13:30:02 +02:00
Tamas Vajk
d2861361d9
Kotlin: extract implInterface
2022-10-04 13:12:01 +02:00
Chris Smowton
58cb5446c3
Add cross-check to getValueParameterLabel
2022-10-04 10:04:18 +01:00
Tamas Vajk
2c467376ea
Revert "Only log once the missing java-kotlin method mapping warnings"
...
This reverts commit 7524f3372d .
2022-10-04 08:54:07 +02:00
Chris Smowton
d3d3ce843a
Kotlin: Implement JvmOverloads annotation
...
This generates functions that omit parameters with default values, rightmost first, such that Java can achieve a similar experience to Kotlin (which represents calls internally as if the default was supplied explicitly, and/or uses a $default method that supplies the needed arguments).
A complication: combining JvmOverloads with JvmStatic means that both the companion object and the surrounding class get overloads.
2022-10-03 15:28:55 +01:00