Chris Smowton
48b99cf55c
Don't try to attribute comments to the implicit this parameter.
2022-05-10 19:51:22 +01:00
Chris Smowton
6abb2529f5
Extract a clinit method for Kotlin files
2022-05-10 19:51:22 +01:00
Tamas Vajk
2d0bb43efe
Do not extract local function containers as anonymous classes
2022-05-10 19:51:22 +01:00
Tamas Vajk
9597932112
Add test that calls a local function multiple times
2022-05-10 19:51:22 +01:00
Ian Lynagh
ea74803053
Kotlin: Add a comment
2022-05-10 19:51:22 +01:00
Ian Lynagh
44375fe1ae
Kotlin: Add LoggerBase to the list of logging classes
2022-05-10 19:51:22 +01:00
Ian Lynagh
79c2ce7f1c
Kotlin: Add tags to log messages (WARN, INFO, etc)
...
Makes it easier to see what's going on
2022-05-10 19:51:21 +01:00
Ian Lynagh
84c7b2310a
Kotlin: Catch all Throwables
...
We want to try to continue even if we hit a stack overflow or an
assertion error.
2022-05-10 19:51:21 +01:00
Chris Smowton
8f929e2498
Avoid recursion through extractFunctionLaterIfExternalFileMember -> useType -> useDeclarationParent
2022-05-10 19:51:21 +01:00
Chris Smowton
1835022c84
Extract external file declarations to individual trap files
2022-05-10 19:51:21 +01:00
Ian Lynagh
2551bb58da
Kotlin: Add a test of recursive instantiations
...
This used to cause a stack overflow
2022-05-10 19:51:21 +01:00
Ian Lynagh
0d79dfc412
Kotlin: Add a test of recursive instantiations
...
This used to cause a stack overflow
2022-05-10 19:51:21 +01:00
Ian Lynagh
90f7cc1223
Kotlin: Move anonymousTypeMapping and locallyVisibleFunctionLabelMapping
...
They're now in LabelManager, so they are shared between extractors.
2022-05-10 19:51:21 +01:00
Ian Lynagh
aad9e5601a
Kotlin: Keep our own stack of extractor contexts
...
For now we only use its length, but in the future we might use this to
give more informatino about the cause of warnings.
2022-05-10 19:51:21 +01:00
Ian Lynagh
9c2df20117
Kotlin: When verbose, make with log when it starts and finishes doing something
2022-05-10 19:51:21 +01:00
Ian Lynagh
8b56302644
Kotlin: Add a concept of 'verbosity'
2022-05-10 19:51:21 +01:00
Ian Lynagh
cffcff93a8
Kotlin: Add a log message
2022-05-10 19:51:21 +01:00
Tamas Vajk
57d4d8e2a8
Code quality improvements
2022-05-10 19:51:21 +01:00
Tamas Vajk
7b2b40cc86
Fix type access extraction of nested generic constructor references
2022-05-10 19:51:21 +01:00
Tamas Vajk
46af85621a
Add nested generic constructor reference test
2022-05-10 19:51:21 +01:00
Tamas Vajk
5e1ebb2545
Fix generic constructor reference extraction
2022-05-10 19:51:21 +01:00
Tamas Vajk
415fcaf605
Add generic constructor reference test
2022-05-10 19:51:21 +01:00
Tamas Vajk
b228ac4814
Code quality improvements
2022-05-10 19:51:21 +01:00
Tamas Vajk
91409534e2
Unify parameter order in type access extraction functions
2022-05-10 19:51:21 +01:00
Tamas Vajk
a8f595c50a
Refactor type access extraction
2022-05-10 19:51:21 +01:00
Tamas Vajk
92e59a3ae1
Add SAM conversion tests
2022-05-10 19:51:21 +01:00
Tamas Vajk
eebfe56c95
Extract more type access expressions
2022-05-10 19:51:21 +01:00
Tamas Vajk
f730aa12b6
Refactor type access extraction for function references and lambdas
2022-05-10 19:51:21 +01:00
Tamas Vajk
a70ade224f
Fix (generic) type access extraction for lambdas
2022-05-10 19:51:21 +01:00
Ian Lynagh
a8c94c500e
Kotlin: Simplify PrimitiveTypeInfo
...
Removes a load of argument-passing
2022-05-10 19:51:20 +01:00
Ian Lynagh
0bf1ff9f2f
Kotlin: Comments and tweaks in Label
2022-05-10 19:51:20 +01:00
Ian Lynagh
2c5dc42db4
Kotlin: Comments and tweaks to TrapWriter.
2022-05-10 19:51:20 +01:00
Ian Lynagh
b1ebcdd524
Kotlin: Add some warnings
2022-05-10 19:51:20 +01:00
Tamas Vajk
4af12e7c9d
Change array.get calls to array indexing in FunctionN.invoke body
2022-05-10 19:51:20 +01:00
Tony Torralba
2da98148dc
Add NotNullExpr flow
2022-05-10 19:51:20 +01:00
Tony Torralba
cf5152baa2
Add test for NotNullExpr flow
2022-05-10 19:51:20 +01:00
Tamas Vajk
4e18974889
Fix type access expression extraction for function/property references
2022-05-10 19:51:20 +01:00
Chris Smowton
73c5f8c591
Accept more test changes
2022-05-10 19:51:20 +01:00
Chris Smowton
f513fdce7b
Accept test changes
2022-05-10 19:51:20 +01:00
Chris Smowton
dc64b536b3
Ensure that initializers are only printed once in a PrintAst run
...
Otherwise the output becomes a DAG not a tree. Java achieves the same by omitting all PrintAst of `<obinit>` routines.
2022-05-10 19:51:20 +01:00
Chris Smowton
13cd145a76
Retain Member.getInitializer for Kotlin programs
...
I opt to identify any syntactic initializer. These are broader in scope than Java's member initializers, which are necessarily context-free, whereas in Kotlin the primary constructor's parameters can be referred to.
2022-05-10 19:51:20 +01:00
Chris Smowton
37543e7a86
Switch to expanding property initializers and init blocks in-place
...
Pros:
* <obinit> no longer emitted: one less function per class
* Parameters to the primary constructor, if any, are no longer referred to out of scope
* Simple primary constructor `val` and `var` declarations work as expected
Cons:
* If there are multiple secondary constructors, no primary constructor and long init blocks, there could be considerable duplicate extraction of those init blocks. Hopefully this case is very rare.
2022-05-10 19:51:20 +01:00
Ian Lynagh
af7d809b8a
Kotlin: Log to a file, not stdout
...
We shouldn't interfere with a build's stdout
2022-05-10 19:51:20 +01:00
Ian Lynagh
a112e9ab5c
Kotlin: Add conditional dumping
2022-05-10 19:51:20 +01:00
Chris Smowton
8d8a2482f1
Accept test changes
...
These are just ordering changes because the bounds of assignment statements relative to their operands have changed.
2022-05-10 19:51:20 +01:00
Chris Smowton
789fe971e4
Fix locations and enclosing statement/callable for assignments
2022-05-10 19:51:20 +01:00
Ian Lynagh
cc0f5d8700
Kotlin: KotlinExtractorExtension tweaks
...
Added/fixed a load of comments.
Adjusted some function visibilities.
2022-05-10 19:51:20 +01:00
Tamas Vajk
67be6a18de
Fix generic callable bindings inside invoke methods
2022-05-10 19:51:20 +01:00
Tamas Vajk
6742496fe3
Get type arguments for property/function references
2022-05-10 19:51:20 +01:00
Tamas Vajk
4b55dce0e9
Add generic function and property reference test cases
2022-05-10 19:51:20 +01:00