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
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
Tamas Vajk
a5172791ed
Code quality improvements
2022-10-03 14:03:16 +02:00
Tamas Vajk
7524f3372d
Only log once the missing java-kotlin method mapping warnings
2022-10-03 11:55:39 +02:00
Tamas Vajk
ffc7e6b7b6
Extract bit not expression
2022-10-03 10:30:46 +02:00
Tamas Vajk
54b210f176
Extract logical not expression
2022-10-03 10:23:40 +02:00
Tamas Vajk
a2d0b38a6d
Kotlin: extract all binary numeric operators
2022-10-03 09:52:00 +02:00
Tamas Vajk
343e45ee0f
Fix kotlinFunctionToJavaEquivalent to ignore nullability
2022-09-30 17:39:42 +02:00
Tamas Vajk
e490a854ce
Simplify kotlinFunctionToJavaEquivalent and accept consistency errors
2022-09-30 16:28:26 +02:00
Tamas Vajk
121a5645b8
Kotlin: extract operator expression when operator is in method call form
2022-09-30 13:48:53 +02:00
Tamás Vajk
ee59bdab25
Merge pull request #10624 from tamasvajk/kotlin-java-fn-equivalence-remove
...
Kotlin: find java-kotlin equivalent functions by erased parameter types
2022-09-30 12:00:46 +02:00
Ian Lynagh
9be2ca2f1e
Merge pull request #10630 from igfoo/igfoo/ver0
...
Kotlin: Make newerThan symmetric
2022-09-30 10:52:42 +01:00
Ian Lynagh
66a8bc5a96
Kotlin: Make newerThan symmetric
...
"0.0 last-modified 0" and "0.0 last-modified 123" were giving
different comparisons depending on which way round they were.
2022-09-29 16:55:03 +01:00
Tamas Vajk
b79c10c419
Kotlin: find java-kotlin equivalent functions by erased parameter types
2022-09-29 14:29:22 +02:00
Tamás Vajk
229c95a765
Merge pull request #10607 from tamasvajk/kotlin-fix-nested-class-lookup
...
Kotlin: Fix class/field lookup for Android synthetic classes
2022-09-29 08:36:05 +02:00
Tamas Vajk
375698f975
Kotlin: Fix field lookup in Android synthetic classes
2022-09-28 15:23:34 +02:00
Tamás Vajk
f761e57365
Merge pull request #10591 from tamasvajk/kotlin-unbound-symbol
...
Kotlin: Log error when unbound symbol is found
2022-09-28 14:45:13 +02:00
Tamas Vajk
d3c3f3bed9
Kotlin: Fix class lookup for nested Android synthetic classes
2022-09-28 14:23:39 +02:00
Tamas Vajk
13fb032b1c
Kotlin: Remove unbound symbol owner lookup
2022-09-28 09:47:10 +02:00
Tamas Vajk
847a64c03b
Kotlin: extract call target even if it's unbound
2022-09-27 15:30:38 +02:00
Tamás Vajk
9358070ae9
Merge pull request #10506 from tamasvajk/kotlin-enum-type-access
...
Kotlin: Fix type access expressions in enum constructor calls
2022-09-27 12:42:30 +02:00
Tamás Vajk
8a6d56a57d
Merge pull request #10520 from tamasvajk/kotlin-fix-anonymous-object-comment
...
Kotlin: Fix comment extraction for anonymous objects
2022-09-27 12:42:05 +02:00
Chris Smowton
2a2b939078
Lint
2022-09-25 16:48:10 +01:00
Chris Smowton
f774467892
Kotlin: annotation properties should be java.lang.Class not KClass
...
As documented at https://kotlinlang.org/docs/annotations.html#constructors , annotation properties of type KClass get rewritten when targeting the JVM.
2022-09-25 11:53:50 +01:00
Chris Smowton
60f6772f9e
Merge pull request #10542 from github/smowton/fix/kotlin-unit-testing-plugin-version
...
Kotlin unit tests: use best plugin version compatible with environment kotlinc
2022-09-24 16:42:59 +01:00
Ian Lynagh
8c13738199
Merge pull request #10556 from igfoo/igfoo/memo
...
Kotlin: Simplify trapFilePathForDecl
2022-09-23 14:59:20 +01:00
Ian Lynagh
70dae17d2f
Kotlin: Simplify trapFilePathForDecl
2022-09-23 12:41:41 +01:00
Tamas Vajk
d6e31af985
Kotlin: Fix non-nested local class extraction
2022-09-23 11:23:21 +02:00
Chris Smowton
3fe1550943
Kotlin unit tests: use best plugin version compatible with environment kotlinc
2022-09-22 21:11:47 +01:00
Chris Smowton
c2656dd55f
Kotlin: Tolerate kotlinc versions like 1.7.20-Beta
2022-09-22 10:23:29 +01:00
Tamas Vajk
633f99df6c
Kotlin: Fix comment extraction for anonymous objects
2022-09-21 17:15:11 +02:00
Tamás Vajk
82c3e53694
Merge pull request #10473 from tamasvajk/kotlin-suspend
...
Kotlin: Extract `suspend` functions
2022-09-21 14:22:44 +02:00
Ian Lynagh
46a23e107b
Merge pull request #10495 from igfoo/igfoo/traplocker
...
Kotlin: Tidy up TrapLocker
2022-09-21 13:05:58 +01:00
Ian Lynagh
aaa3fc0b5c
Merge pull request #10353 from tamasvajk/kotlin-fix-not-implemented
...
Kotlin: Catch exception thrown by kotlinc
2022-09-21 13:05:41 +01:00
Tamas Vajk
01a2d16974
Kotlin: Fix type access expressions in enum constructor calls
2022-09-21 10:32:27 +02:00
Ian Lynagh
6e249dad7f
Kotlin: TrapLocker: Pass the TRAP file to be opened
...
We already know what it is, as we've just locked it.
2022-09-20 15:12:58 +01:00