Tamas Vajk
15305fd9bb
Kotlin: Fix iterator extraction of IntArray, BooleanArray, ...
2022-08-25 11:05:17 +02:00
Tamas Vajk
7196fdd475
Kotlin: fix array iterator extraction to work outside of for loops
2022-08-25 09:23:34 +02:00
Tamas Vajk
af2614be84
Kotlin: Add array iterator tests
2022-08-25 09:17:50 +02:00
Tamás Vajk
ecde0abc04
Merge pull request #10091 from tamasvajk/kotlin-data-class
...
Kotlin: Identify data classes during extraction
2022-08-24 08:45:41 +02:00
Tamás Vajk
aa0ff2b53f
Merge pull request #10129 from tamasvajk/kotlin-fix-comment-type-alias
...
Kotlin: Extract type alias doc comments
2022-08-22 16:10:50 +02:00
Tamas Vajk
25098ef2d8
Kotlin: Extract type alias doc comments
2022-08-22 12:31:13 +02:00
Chris Smowton
678ecffea8
Accept test changes
2022-08-19 18:34:05 +01:00
Tamas Vajk
1c08ac1d7a
Kotlin: Identify data classes during extraction
2022-08-19 14:51:36 +02:00
Anders Schack-Mulligen
74b05d2aa4
Kotlin: Reflection test should not refer to DataFlowPrivate.
2022-08-11 09:48:10 +02:00
Chris Smowton
8c32758ae5
Merge pull request #9829 from smowton/smowton/fix/kotlin-underscore-parameter-names
...
Kotlin: Don't extract a name for a '_' parameter
2022-08-10 12:28:26 +01:00
Chris Smowton
8cd2aeb65d
Accept test changes
2022-07-28 15:52:00 +01:00
Chris Smowton
5086841b46
Kotlin: implement super-method calls
...
If we only look at the dispatch receiver, these show up like `this` references rather than `super` references, preventing flow through super-calls. The super-interface case requires properly noting that interface methods with a body get a `default` modifier in order to avoid QL discarding the method as a possible callee.
2022-07-26 17:03:46 +01:00
Chris Smowton
3f6925e7be
Merge pull request #9875 from smowton/smowton/fix/charat-naming
...
Kotlin: Special-case String.charAt naming
2022-07-25 16:10:13 +01:00
Chris Smowton
715b0b3fb8
Accept test changes
2022-07-25 15:17:14 +01:00
Chris Smowton
9593ceeda5
Kotlin: Special-case String.charAt naming
...
In the Kotlin universe this is called `get` so that Kotlin programmers can use the `[]` operator on `String`s.
2022-07-21 09:17:08 +01:00
Chris Smowton
1cbe26a54f
Kotlin: fix for-loop iterators over primitive or wildcard types
...
Array<*> can't be queried for an argument type, and IntArray doesn't have an argument at all; both were previously causing the extractor to fail to extract the whole file due to throwing an exception.
2022-07-21 09:13:55 +01:00
Chris Smowton
d4b0163c4c
Kotlin: Don't extract a name for a '_' parameter
...
I can't reproduce the exact circumstances, but these sometimes get "<anonymous parameter X>" names and sometimes get "$noName_X" names. Whichever way, avoiding extracting a synthetic name seems safest; anyone finding the .class file and not reading the metadata indicating it came from a `_` will extract the binary name selected, or else QL will
invent a name.
2022-07-14 16:36:26 +01:00
Chris Smowton
4c6a9772af
Merge pull request #9768 from smowton/smowton/fix/internal-method-name-mangling
...
Kotlin: Mangle names of internal functions to match JVM symbols
2022-07-01 14:33:32 +01:00
Chris Smowton
14aef792e0
Accept test changes
2022-07-01 10:35:17 +01:00
Chris Smowton
dd93062101
Kotlin: Mangle names of internal functions to match JVM symbols
2022-06-30 21:56:25 +01:00
Chris Smowton
570e418b22
Fix ordering PrintAst nodes
2022-06-30 16:07:32 +01:00
Chris Smowton
0d0d240fd4
Accept test changes re: new compiler-generated nodes
2022-06-30 15:29:20 +01:00
Chris Smowton
8214c3b78e
Add AST dump for JvmStatic annotation test
2022-06-30 13:11:43 +01:00
Chris Smowton
466cf7573b
Autoformat
2022-06-30 12:42:39 +01:00
Chris Smowton
b4124ac553
Add test
2022-06-30 12:42:39 +01:00
Ian Lynagh
b6790ef735
Merge pull request #9725 from igfoo/igfoo/inline
...
Kotlin: Extract inlineability of functions
2022-06-28 10:21:30 +01:00
Ian Lynagh
4a404aee76
Kotlin: Add inline info to methods test
2022-06-27 19:27:26 +01:00
Ian Lynagh
7dc490ff7c
Kotlin: Enhance methods test
2022-06-27 17:59:52 +01:00
Ian Lynagh
73a79e064c
Kotlin: Accept test output
2022-06-24 16:24:41 +01:00
Ian Lynagh
008a8f0bba
Kotlin: Add an enum class to the methods test
2022-06-24 14:00:47 +01:00
Ian Lynagh
c5d6ca7afc
Kotlin: Accept method test changes
2022-06-24 14:00:47 +01:00
Ian Lynagh
c0600820ac
Kotlin: Update methods test
2022-06-24 14:00:47 +01:00
Ian Lynagh
aefd89ed49
Kotlin: Add compiler-generated info to methods test
2022-06-24 14:00:47 +01:00
Tamás Vajk
381bcf7dad
Merge pull request #9153 from tamasvajk/kotlin-simplify-loop-breaks-1
...
Kotlin: Unify loop `break`/`continue` statement handling between java and kotlin
2022-06-24 14:45:57 +02:00
Chris Smowton
d0e521ef4a
Merge pull request #9681 from smowton/smowton/fix/reintroduce-obinit
...
Kotlin: reintroduce obinit when we have multiple secondary constructors and no primary
2022-06-24 10:25:24 +01:00
Chris Smowton
af5230349b
Kotlin: reintroduce obinit when we have multiple secondary constructors and no primary
...
This avoids DB inconsistencies because complex initialisers are extracted to more than one function.
2022-06-23 16:26:54 +01:00
Chris Smowton
1aae3c5f5e
Fix whenexpr test
...
Prior to Kotlin 1.7 the gratuitous `?` was ignored for typing purposes; now it yields a `String?`. We should make the test work everywhere by using a real nullable type.
2022-06-23 15:34:40 +01:00
Tamas Vajk
e65a046235
Fix test file after rebase
2022-06-23 09:51:48 +02:00
Tamas Vajk
dabc956dbf
Unify loop break/continue statement handling between java and kotlin
2022-06-23 08:45:11 +02:00
Chris Smowton
44cf260762
Merge pull request #9571 from smowton/smowton/fix/array-variance-lowering
...
Kotlin: Implement array type variance lowering
2022-06-22 13:38:21 +01:00
Tamás Vajk
c0e115700d
Merge pull request #9647 from tamasvajk/kotlin-when-branch-encl-stmt
...
Kotlin: Fix enclosing statement of `when` branches
2022-06-22 13:18:56 +02:00
Tamas Vajk
a50e062b3c
Kotlin: Fix enclosing statement of when branches
2022-06-22 09:10:27 +02:00
Tamas Vajk
640026d387
Kotlin: add enclosing statement test
2022-06-22 09:09:57 +02:00
Michael Nebel
2e46e93f36
Java: Update java models with provenance column information.
2022-06-20 16:20:02 +02:00
Chris Smowton
2d57d3aa78
Implement array type variance lowering
...
Kotlin permits introducing a `? extends ...` wildcard against an Array even though the class is final, so long as its argument itself can be extended (i.e. isn't final or is another array type satisfying this condition).
Contravariant arrays get lowered to Object[], and are subject to automatic `extends` wildcard introduction, unless their element type was already Any.
2022-06-15 18:36:56 +01:00
Chris Smowton
90e8d4e1de
Name trap files after jvmnames
...
This should lead to better Java/Kotlin correspondence since the Java extractor will naturally name trap files for JVM names, and avoids a specific bug (tested) where MapsKt.iterator's two overloads (one taking `Map` and one `MutableMap`) are JvmName'd differently since their Java-lowered signatures would be identical. Without this change only
one of the iterator overloads would get extracted leaving the other one a dangling reference.
2022-06-15 11:55:58 +01:00
Chris Smowton
efbe264f93
Accept toInt/intValue and similar test changes
2022-06-14 21:44:54 +01:00
Chris Smowton
d390dc0316
Map java.lang.Number methods to their Java equivalents
2022-06-14 21:44:54 +01:00
Chris Smowton
d3fa4951f6
Accept test changes renaming removeAt(int) -> remove(int)
2022-06-14 21:44:54 +01:00
Chris Smowton
837bef60fe
Add java.lang.Enum ordinal and name accessors to special-cased JVM names
...
Kotlin represents these as read-only properties with unusual getter names.
2022-06-14 21:44:54 +01:00