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
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
Ian Lynagh
f0eabd4675
Merge pull request #10759 from igfoo/igfoo/numlines2
...
kotlin: Populate numlines
2022-10-14 15:39:40 +01:00
Ian Lynagh
bca2586903
Kotlin: Populate numfiles
2022-10-10 19:00:05 +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
3452dcbced
Fix class type parameter erasure within $default methods
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
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
Tamás Vajk
ecfbd5edfe
Merge pull request #10674 from tamasvajk/kotlin-implements
...
Kotlin: extract `implInterface`
2022-10-05 09:11:41 +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
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
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
b79c10c419
Kotlin: find java-kotlin equivalent functions by erased parameter types
2022-09-29 14:29:22 +02:00
Tamas Vajk
375698f975
Kotlin: Fix field lookup in Android synthetic classes
2022-09-28 15:23:34 +02:00
Tamas Vajk
d3c3f3bed9
Kotlin: Fix class lookup for nested Android synthetic classes
2022-09-28 14:23:39 +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
Tamas Vajk
633f99df6c
Kotlin: Fix comment extraction for anonymous objects
2022-09-21 17:15:11 +02:00
Ian Lynagh
8a5bc3b635
Kotlin: Don't use hasQuestionMark
...
1.7.0 warns:
'hasQuestionMark: Boolean' is deprecated. hasQuestionMark has
ambiguous meaning. Use isNullable() or isMarkedNullable() instead
2022-09-14 17:56:27 +01:00
Ian Lynagh
fce111bebe
Kotlin: Compile with -Werror, and fix warnings
2022-09-14 16:42:57 +01:00
Tamas Vajk
b8b0fd8a74
Kotlin: Fix isUnspecialised to handle generic classes inside generic methods
2022-09-09 14:32:38 +02:00
Ian Lynagh
89fc84d29a
Merge pull request #10322 from igfoo/igfoo/arrays2
...
Kotlin: Rewrite array type extraction
2022-09-07 10:45:33 +01:00
Tamás Vajk
b1e0d73de8
Merge pull request #10297 from tamasvajk/kotlin-fix-kotlin-to-java-fn-names
...
Kotlin: Lookup getter methods based on special JVM method mapping
2022-09-07 08:56:19 +02:00
Ian Lynagh
5c3d6cedfa
Kotlin: Rewrite array type extraction
...
It's now simpler, and doesn't require we ask the Kotlin compiler to
build as many types for us.
2022-09-06 17:02:43 +01:00
Tamas Vajk
57f50725ba
Revert formatting change
2022-09-06 13:28:38 +02:00
Tamas Vajk
bbf4563cfe
Apply review findings
2022-09-06 13:25:12 +02:00
Tamas Vajk
1c21ce0ec4
Kotlin: Lookup getter methods based on special JVM method mapping
2022-09-05 16:02:25 +02:00
Ian Lynagh
b38ad13f82
Merge pull request #10268 from tamasvajk/kotlin-local-function-comments
...
Kotlin: fix doc comment extraction for local functions
2022-09-05 13:35:01 +01:00
Ian Lynagh
824ac9eb73
Merge pull request #10283 from igfoo/igfoo/IrTypeParameter
...
Kotlin: Remove a redundant cast
2022-09-05 11:49:00 +01:00
Tamas Vajk
81cf4c39f4
Only get existing local function labels
2022-09-05 09:16:23 +02:00
Ian Lynagh
a4d1b33993
Kotlin: Remove a redundant cast
2022-09-02 17:17:39 +01:00
Ian Lynagh
0ee72a580a
Kotlin: Remove a cast in extendsAdditionAllowed
2022-09-02 16:58:05 +01:00
Ian Lynagh
4f7eb7be83
Merge pull request #10262 from igfoo/igfoo/useArrayType
...
Kotlin: Avoid unsafe casts in useArrayType
2022-09-02 10:25:34 +01:00
Ian Lynagh
b05d8a61ba
Merge pull request #10263 from igfoo/igfoo/useSimpleType3
...
Kotlin: Remove some casts in useSimpleType
2022-09-02 10:25:23 +01:00
Tamas Vajk
c77f573a8e
Kotlin: fix doc comment extraction for local functions
2022-09-02 10:47:08 +02:00
Ian Lynagh
9d3bc47a4d
Kotlin: Remove some casts in useSimpleType
2022-09-01 17:36:31 +01:00
Ian Lynagh
ddb7bb11fd
Kotlin: Avoid unsafe casts in useArrayType
2022-09-01 17:15:15 +01:00
Ian Lynagh
ae9ba80c40
Merge pull request #10242 from igfoo/igfoo/kotlinFunctionToJavaEquivalent
...
Kotlin: Refactor kotlinFunctionToJavaEquivalent
2022-09-01 16:23:08 +01:00
Ian Lynagh
4f63317369
Kotlin: Remove a redundant ?
2022-09-01 11:55:43 +01:00
Ian Lynagh
e4ff25099b
Kotlin: Be more permissive
...
I think we'll end up giving a warning/error later, but that's better
than having a cast throw now.
2022-08-31 18:09:36 +01:00
Ian Lynagh
86034dc602
Kotlin: Add a type signature
2022-08-31 18:05:30 +01:00