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
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
Tamas Vajk
613d81d231
Extract static modifier and missing type access qualifier for static calls
2022-05-10 19:51:26 +01:00
Tamás Vajk
48b6c61fdb
Quality improvement: add explicit this in QL
...
Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com >
2022-05-10 19:51:26 +01:00
Tamas Vajk
e0afaa462e
Fix Parameter.getACallArgument for parameters of extension methods
2022-05-10 19:51:26 +01:00
Tamas Vajk
c89f3163f9
Revert PrintAst changes related to wrong locations
2022-05-10 19:51:26 +01:00
Tamas Vajk
bfcd553c6c
Change location of properties inside parameterized types
2022-05-10 19:51:26 +01:00
Tamas Vajk
0726b6410f
Change location of methods inside parameterized types
2022-05-10 19:51:26 +01:00
Tamas Vajk
3813e6fc10
Fix expected files
2022-05-10 19:51:26 +01:00
Tamas Vajk
acb310e46a
Change parameterized type location to the class file
2022-05-10 19:51:26 +01:00
Tamas Vajk
53f484cd98
Add test for inconsistent generic instantiation locations
2022-05-10 19:51:26 +01:00
Tamas Vajk
49bf53da5d
Make extracted file class public and final
2022-05-10 19:51:25 +01:00
Ian Lynagh
77fec17a36
Kotlin: Autoformat QL
2022-05-10 19:51:25 +01:00
Tony Torralba
f8ad93a530
Add test case for local variable in anonymous init
...
Also fix another instance of the same issue in extractLocalTypeDeclStmt
2022-05-10 19:51:25 +01:00
Tony Torralba
1926bef050
Don't extract static init when the class already contains an anonymous init
2022-05-10 19:51:25 +01:00
Tony Torralba
3920b64d62
Add support for live literals
2022-05-10 19:51:25 +01:00
Tony Torralba
1f812f856c
Extract static initializers of inner classes
2022-05-10 19:51:25 +01:00
Tamas Vajk
1317d2d578
Fix DB inconsistencies with KFunction and KFunction::invoke call extraction
2022-05-10 19:51:25 +01:00
Tamas Vajk
f12bcc5715
Add dataflow test for property reference being used as lambda
2022-05-10 19:51:25 +01:00
Tamas Vajk
257224aa59
Change base class of property reference classes
2022-05-10 19:51:25 +01:00
Tamas Vajk
cf0be05b44
Add property reference invoke method implementation
2022-05-10 19:51:25 +01:00
Tamas Vajk
abcb367495
Add dataflow tests for lambda-like constructs
...
This commit adds tests for dataflow involving lambdas, big-arity lambdas, SAM conversions, and function references.
2022-05-10 19:51:25 +01:00
Chris Smowton
aab271d81e
Fix extraction of data classes with array members
...
These use compiler-internal intrinsics at the IR layer, which are later lowered to java.util.Arrays calls. This performs that lowering in the same manner.
2022-05-10 19:51:25 +01:00
Ian Lynagh
7dfd99d873
Kotlin: Accept test changes
2022-05-10 19:51:25 +01:00
Ian Lynagh
dbc5e73709
Kotlin: Add a test for annotation classes
2022-05-10 19:51:24 +01:00
Tamas Vajk
91b7de42ad
Make generated invoke/get/set public
...
The generated `invoke`/`get`/`set` methods are implementing interface members, so they need to be `public`.
2022-05-10 19:51:24 +01:00
Tamas Vajk
878352f69c
Add test for checking generated invoke/get/set visibility
2022-05-10 19:51:24 +01:00
Chris Smowton
61b0efb401
Add test case
2022-05-10 19:51:24 +01:00
Chris Smowton
96908d153d
Accept and amend check for anonymous types with type parameters
2022-05-10 19:51:24 +01:00
Chris Smowton
c0f3988aaa
Tolerate nullable references to anonymous classes
...
This also adds a test case illustrating when this can arise
2022-05-10 19:51:24 +01:00
Tamas Vajk
5a5d0e15eb
Extract calls to big-arity lambda's invoke by converting the artificial invoke to the existing one
...
Big arity lambda calls in IR look like standard method calls to an `invoke` with N arguments. However, this method doesn't exist in JVM, so instead we need to extract a call to `FunctionN.invoke(Object[])`.
2022-05-10 19:51:24 +01:00
Tamas Vajk
c6bc501207
Fix expected test file
2022-05-10 19:51:24 +01:00
Tamas Vajk
222f2415e2
Fix local function reference extraction
2022-05-10 19:51:24 +01:00
Ian Lynagh
f138ba5246
C#/Kotlin: Sync SignAnalysisCommon.qll
2022-05-10 19:51:24 +01:00
Chris Smowton
9f294d1ecd
Adjust more test expectations
2022-05-10 19:51:24 +01:00
Chris Smowton
2ea1a6c1f0
Adjust test expectations
...
These all just refer to re-adding empty blocks for classes whose constructors have no initializer statements for simplicity's sake.
2022-05-10 19:51:24 +01:00
Chris Smowton
35d213afc0
Extract varargs constructors
2022-05-10 19:51:24 +01:00
Tamas Vajk
b26044b327
Change extension receiver this access to be a parameter access
2022-05-10 19:51:23 +01:00
Tamas Vajk
21f6867cd4
Add test cases for delegating properties to other properties
2022-05-10 19:51:23 +01:00
Tamas Vajk
f5383bbc17
Add extension receiver type to function signature in trap file names
2022-05-10 19:51:23 +01:00
Ian Lynagh
aee74dd570
Kotlin: Be more consistent in how we deal with "fake" elements
2022-05-10 19:51:23 +01:00
Ian Lynagh
8f85f5552b
Kotlin: Accept test changes
2022-05-10 19:51:23 +01:00
Tamas Vajk
d6feb58bfc
Fix property references to fake overrides
2022-05-10 19:51:23 +01:00
Tony Torralba
4eb1e3a47b
Update ExtensionMethodAccess QLDoc
2022-05-10 19:51:23 +01:00
Tony Torralba
fcb334180d
Create ExtensionMethodAccess class
2022-05-10 19:51:23 +01:00
Tamas Vajk
ac3c635fe3
Extract set function for field accessing property references
2022-05-10 19:51:23 +01:00
Tamas Vajk
a6f036d94e
Extract property references with only backing field
2022-05-10 19:51:23 +01:00
Tamas Vajk
90ca47a46b
Extract local delegated property reference
2022-05-10 19:51:23 +01:00