Tamas Vajk
b5c8d29e40
Extract enum field declarations
2022-05-10 19:51:29 +01:00
Tamas Vajk
d6cbcdc847
Extract type access expression for parameter types
2022-05-10 19:51:29 +01:00
Tamas Vajk
f557719fe5
Extract type access expression for function return types
2022-05-10 19:51:29 +01:00
Tamas Vajk
dcac285a99
Add type access tests
2022-05-10 19:51:29 +01:00
Chris Smowton
7ef9420bfd
Accept test changes
2022-05-10 19:51:29 +01:00
Chris Smowton
23e3bbea73
Fix: don't treat local classes as unspecialised
...
This shouldn't matter either way since they can't be subject to external references
2022-05-10 19:51:29 +01:00
Chris Smowton
4477482990
Share a class instance, not just a label
2022-05-10 19:51:29 +01:00
Chris Smowton
11fed0b4f8
Adjust test expectations
2022-05-10 19:51:29 +01:00
Chris Smowton
d63124a761
Extract a generic specialisation using its own type parameters in the same order like an unbound type
...
This replicates an oddity in the Java extractor that it doesn't differentiate a specialisation Generic<T1, T2, ...> from the unbound type, if T1, T2, ... are Generic's declared type variables occurring in the same order. For example, in `class MyList<T> { void addAll(MyList<T> param) { ... } }`, the type of `param` is an instantiated type, but
gets extracted as an unbound type. This commit can be reverted (except for the improvement to isUnspecialised) if/when that is fixed.
2022-05-10 19:51:29 +01:00
Chris Smowton
f3bd89a5cf
Adjust test expectations
2022-05-10 19:51:29 +01:00
Chris Smowton
375199508e
Always extract static initializers if a class has static members
...
This may not be necessary for anonymous objects, but it is certainly unrelated to `init { ... }` blocks.
2022-05-10 19:51:29 +01:00
Chris Smowton
e21a60bb4b
Only extract anonymous init blocks in an instance initializer context
2022-05-10 19:51:29 +01:00
Chris Smowton
a317dc4246
Extract field initializers
2022-05-10 19:51:29 +01:00
Chris Smowton
9e8e99f4c3
Add interface-delegate test
2022-05-10 19:51:28 +01:00
Chris Smowton
5219ead4d4
Plugin version selection: fix test polarity and use integer not string comparison
...
(Otherwise we'll think that 1.6.10 comes before 1.6.9, for example.) This now implements the desired test: pick a version that exactly matches major and minor versions and which is the least patchlevel that is >= the target compiler.
2022-05-10 19:51:28 +01:00
Chris Smowton
d8b163a589
Fix running on patchlevel versions below the highest of that minor version
...
(For example, picking 1.6.10 to match the host kotlinc when both 1.6.10 and 1.6.20 are available)
2022-05-10 19:51:28 +01:00
Chris Smowton
62f39d7a22
Add test expectation
2022-05-10 19:51:28 +01:00
Chris Smowton
bfe3722018
Extract synthetic coroutine classes
2022-05-10 19:51:28 +01:00
Chris Smowton
a740ead56d
Populate files table once per file, per trap file
...
Otherwise there's a chance the other trap file we're relying upon to populate the files table on our behalf gets overwritten (e.g. superceded by a newer .class file or more appropriate extractor) and we end up with a dangling reference.
This adds only populating the tables when the label is new, to avoid emitting files entries every single time a generic class specialisation is mentioned.
2022-05-10 19:51:28 +01:00
Ian Lynagh
b35b74779a
Revert "Fix CFG construction of ExprStmt and StmtExpr"
...
This reverts commit db8d718cdbf0bef9cdf246221a921b99d4b22bea.
It broke ql/java/ql/test/library-tests/successors/TestDeclarations
2022-05-10 19:51:28 +01:00
Ian Lynagh
d2f6871868
Revert "Fix ExprStmt and StmtExpr in Boolean context"
...
This reverts commit 8a42837578e1c4361ed25682312ea5497ad0a12e.
2022-05-10 19:51:28 +01:00
Tamas Vajk
82b937dedd
Add query and script to plot CFG from DB
2022-05-10 19:51:28 +01:00
Tamas Vajk
037d66de15
Fix ExprStmt and StmtExpr in Boolean context
2022-05-10 19:51:28 +01:00
Tamas Vajk
8282e57db5
Fix CFG construction of ExprStmt and StmtExpr
2022-05-10 19:51:28 +01:00
Tamas Vajk
81cb81366b
Add test case for CFG issue with && in if condition
2022-05-10 19:51:28 +01:00
Tamas Vajk
953c6fdb7b
Fix expected test file
2022-05-10 19:51:28 +01:00
Tamas Vajk
47799ae040
Code quality improvements + add dedicated DeadRefTypes test
2022-05-10 19:51:28 +01:00
Tamas Vajk
cdc7ed0e14
Extract container of adapter function as compiler generated
2022-05-10 19:51:28 +01:00
Tamas Vajk
7f94495601
Add test for adapter function
2022-05-10 19:51:28 +01:00
Tamas Vajk
fc66b73e3b
Extract override modifier for lambda and reflection-like constructs
2022-05-10 19:51:28 +01:00
Tamas Vajk
505ccbbcf6
Extract override modifier
2022-05-10 19:51:28 +01:00
Tamas Vajk
92de139805
Add override tests
2022-05-10 19:51:27 +01:00
Tamas Vajk
ca99cb4999
Code quality improvements
2022-05-10 19:51:27 +01:00
Tamas Vajk
22af7f0e89
Remove duplications of locatable and element in the DB scheme
2022-05-10 19:51:27 +01:00
Ian Lynagh
400654d326
Kotlin: Add latest-url to kotlin_plugin_versions.py
2022-05-10 19:51:27 +01:00
Tamas Vajk
6ab86a1f46
Fix expected test files after 1.6.20 upgrade
2022-05-10 19:51:27 +01:00
Tamas Vajk
4e93134225
Add 1.6.20 support
2022-05-10 19:51:27 +01:00
Ian Lynagh
ff35088b49
Java: Add an upgrade script
2022-05-10 19:51:27 +01:00
Ian Lynagh
843310c466
Kotlin: Remove incorrect upgrade
2022-05-10 19:51:27 +01:00
Tamas Vajk
ad11b3e84a
Add consistency query to verify we always have qualifier for calls
2022-05-10 19:51:27 +01:00
Tamas Vajk
4f3e89dd49
Fix expected test file
2022-05-10 19:51:27 +01:00
Tamas Vajk
a1842f9f17
Remove ExtensionMethodAccess and revert all dataflow changes
2022-05-10 19:51:27 +01:00
Tamas Vajk
95cb0149a3
Fix data flow through ExtensionMethodAccess
2022-05-10 19:51:27 +01:00
Tamas Vajk
38ab7acf3e
Revert "Remove ExtensionMethodAccess to see extension method flows"
...
This reverts commit 9df4f2074379ba4668054a2a66eaaaaf5cb9b6c8.
2022-05-10 19:51:27 +01:00
Tamas Vajk
a9711b8c88
Remove ExtensionMethodAccess to see extension method flows
2022-05-10 19:51:27 +01:00
Tamas Vajk
6fccbaa93b
Add extension method dataflow tests
2022-05-10 19:51:27 +01:00
Ian Lynagh
fac3699a5b
Kotlin: Generate stats
2022-05-10 19:51:27 +01:00
Ian Lynagh
19270369c8
Java: Add an upgrade script
2022-05-10 19:51:27 +01:00
Ian Lynagh
c1629530e5
Kotlin: Fix build on Windows
2022-05-10 19:51:27 +01:00
Chris Smowton
de9648e515
Accept test changes
...
- generics gains extra excluded generic "specialisations" (specifically raw types)
- java_properties stops overwriting the Java extractor's output, which specifically flags isDefConstructor which kotlinc does not
- types naturally gains a lot of new raw types
2022-05-10 19:51:27 +01:00