Ian Lynagh
7cf1289385
Kotlin: Fix build with old JDKs
2022-05-10 19:51:13 +01:00
Chris Smowton
221fa37081
Fix naming of local class instances that fall within generic functions
2022-05-10 19:51:13 +01:00
Ian Lynagh
e9fcd4749a
Kotlin: Use ASM9 rather than ASM7
...
This fixes
exception: java.lang.UnsupportedOperationException: PermittedSubclasses requires ASM9
when we encounter ConstantDesc.class in the JDK's modules.
2022-05-10 19:51:13 +01:00
Tamas Vajk
44b731c68e
Exclude extraction of fake overridden properties
2022-05-10 19:51:13 +01:00
Tamas Vajk
55b8e4400d
Code quality improvements
2022-05-10 19:51:13 +01:00
Tamas Vajk
b6e5e1977d
Extract more visibility modifiers
2022-05-10 19:51:13 +01:00
Ian Lynagh
a6d0dc7751
Kotlin: Small refactorings
2022-05-10 19:51:13 +01:00
Ian Lynagh
e1cff50c39
Kotlin: Remove KotlinSourceFileExtractor
2022-05-10 19:51:13 +01:00
Ian Lynagh
c1c4e4f86c
Kotlin: Move extractFileContents into KotlinFileExtractor
2022-05-10 19:51:13 +01:00
Ian Lynagh
d43efd4cc7
Kotlin: KotlinSourceFileExtractor: Take filePath rather than file
2022-05-10 19:51:13 +01:00
Chris Smowton
f4314c1f3d
Substitute all generic types into function trap IDs and signatures, and ensure the subbed types are never primitive
...
The solution for ensuring they are primitive (making the range of the substitution always nullable) will need replacing once we export Kotlin types.
2022-05-10 19:51:12 +01:00
Chris Smowton
3365f3972e
Instantiated generic type substitution: substitute outer class parameters too
2022-05-10 19:51:12 +01:00
Chris Smowton
fd495aa783
Name non-generic functions for their non-erased parameter types
2022-05-10 19:51:12 +01:00
Chris Smowton
f177c2c5ae
Function trap ids: remove spaces between value parameters
...
Otherwise these won't match the IDs used by the Java extractor.
2022-05-10 19:51:12 +01:00
Chris Smowton
f38f03e6c9
Value parameters: provide correct source declaration
2022-05-10 19:51:12 +01:00
Chris Smowton
cd07cc448e
Class trap labels: include outer type parameters
2022-05-10 19:51:12 +01:00
Chris Smowton
94efb427fe
Type parameters: record index Java-style
...
Previously they received indices offset by the number of surrounding class type parameters.
2022-05-10 19:51:12 +01:00
Chris Smowton
178f128bdc
Function labels: include <n> suffix (where n is the number of function type parameters)
...
This matches the Java extractor's behaviour.
2022-05-10 19:51:12 +01:00
Ian Lynagh
448b3d38d3
Kotlin: Duplicate less TRAP
2022-05-10 19:51:12 +01:00
Ian Lynagh
194e9fd2da
Kotlin: Handle file classes better
2022-05-10 19:51:12 +01:00
Ian Lynagh
4340fe7044
Kotlin: Comments: Small refactoring
2022-05-10 19:51:12 +01:00
Tamas Vajk
b599ff2792
Change variable location extraction
2022-05-10 19:51:12 +01:00
Chris Smowton
33a9b4fb16
Add explanatory comment
2022-05-10 19:51:12 +01:00
Chris Smowton
ab449e0517
Fix: use void as constructor return types in their labels
...
Without this we're incompatible with the Java extractor's constructor labelling
2022-05-10 19:51:12 +01:00
Chris Smowton
5188998bc6
Extract outer <-> inner class relationships for generic instances
2022-05-10 19:51:12 +01:00
Chris Smowton
67e3374a23
Fix inner generic type extraction
...
- Don't attribute type parameters that belong to the outer class to the inner
- Don't extract constructor generic parameters as if they were parameters of the type being instantiated
2022-05-10 19:51:12 +01:00
Tamas Vajk
afd71a00d0
Fix extraction of function references without dispatch receiver
2022-05-10 19:51:12 +01:00
Tamas Vajk
ef2795c88b
Add ktLocalFunction relation and tests for local and anonymous classes
2022-05-10 19:51:11 +01:00
Tamas Vajk
e0bf7d8246
Extract local class declarations
2022-05-10 19:51:11 +01:00
Tamas Vajk
1e64887903
Extract field receiver in field read/write
2022-05-10 19:51:11 +01:00
Tamas Vajk
10ae157682
Extract function references
2022-05-10 19:51:11 +01:00
Tamas Vajk
6950f868fb
Fix type access extraction in field declarations
2022-05-10 19:51:11 +01:00
Tamas Vajk
73cd497427
Add todo comment to move property from parameter initialization to constructor
2022-05-10 19:51:11 +01:00
Chris Smowton
2730d07b4c
Extract static method qualifier type accesses
2022-05-10 19:51:11 +01:00
Chris Smowton
ef9a213ae1
Cleanup: use extractTypeAccess wherever possible
2022-05-10 19:51:11 +01:00
Tamas Vajk
30ff5e2517
Change unknown location to whole file location in source extraction
2022-05-10 19:51:11 +01:00
Tamas Vajk
9d7794185e
Fix temporary variable locations
2022-05-10 19:51:11 +01:00
Tamas Vajk
67d2c52e86
Extract field declarations
2022-05-10 19:51:11 +01:00
Tamas Vajk
5bc28ab45a
Extract externally defined inner classes only once
2022-05-10 19:51:11 +01:00
Chris Smowton
acad36cab4
Implement raw type extraction
2022-05-10 19:51:11 +01:00
Tamas Vajk
6455c988f2
Extract class references
2022-05-10 19:51:11 +01:00
Ian Lynagh
fb90c70e2e
Kotlin: Extract visibility for properties
2022-05-10 19:51:11 +01:00
Ian Lynagh
348ae357ed
Kotlin: Extract method visibility
2022-05-10 19:51:11 +01:00
Ian Lynagh
6616f452d7
Kotlin: Move extractClassModifiers to KotlinFileExtractor
...
It doesn't need to be in KotlinUsesExtractor any more, and this gives us
better warnings.
2022-05-10 19:51:11 +01:00
Ian Lynagh
5342b13cb6
Kotlin: Add class modifiers
2022-05-10 19:51:11 +01:00
Chris Smowton
70708d69bf
Don't extract or call fake-override methods
2022-05-10 19:51:10 +01:00
Chris Smowton
0c7075c749
Give getters and setters their jvm-lowered names
2022-05-10 19:51:10 +01:00
Chris Smowton
26abb4d0e3
Correctly record methods' and constructors' source-declarations
2022-05-10 19:51:10 +01:00
Chris Smowton
2677115385
Switch comment to use Kotlin syntax
2022-05-10 19:51:10 +01:00
Chris Smowton
44c64f0784
Always extract constructor return type as unit
2022-05-10 19:51:10 +01:00