Chris Smowton
e8a35983ee
Implement Kotlin default interface method forwarding
...
Kotlin's implementation of defaults depends on the -Xjvm-default setting (or the @JvmDefault deprecated annotation, not implemented here): by default, actual interface class files don't use default method, and any class that would inherit one instead implements the interface calling a static method defined on TheInterface$DefaultImpls. With
-Xjvm-default=all or =all-compatibility, real interface default methods are emitted, with the latter retaining the DefaultImpls methods so that other Kotlin can use it.
Here I adopt a hybrid solution: create a real default method implementation, but also emit a forwarding method like `@override int f(int x) { return super.TheInterface.f(x); }`, because the Java extractor will see `MyClass.f` in the emitted class file and try to dispatch directly to it. The only downside is that we emit a default interface
method body for a prototype that will appear to be `abstract` to the Java extractor and which it will extract as such. I work around this by tolerating the combination `default abstract` in QL. The alternative would be to fully mimic the DefaultImpls approach, giving 100% fidelity to kotlinc's strategy and therefore no clash with the Java
extractor's view of the world.
2022-10-17 18:38:13 +01:00
Chris Smowton
595a66a3a4
Fix extraction of primitive-typed arrays
2022-10-17 18:29:59 +01:00
Chris Smowton
ecb3788467
Make useAnonymousClass private
2022-10-17 18:24:04 +01:00
Chris Smowton
f358be85eb
Accept test changes
2022-10-17 18:23:10 +01:00
Chris Smowton
9611fea479
Fix mistaking unspecialised for raw types, and failing to account for an empty declaration stack
2022-10-17 18:22:41 +01:00
Chris Smowton
eb97735568
Merge pull request #10797 from smowton/smowton/fix/byte-short-inversion
...
Kotlin: fix bit-inversion operator for Byte and Short types
2022-10-17 15:05:57 +01:00
Tamas Vajk
21c13fb9a3
Kotlin: Exclude variables of live literals from java/field-masks-super-field
2022-10-17 15:07:44 +02:00
Tony Torralba
01a08d44bb
Apply suggestions from code review
...
Co-authored-by: Felicity Chapman <felicitymay@github.com >
2022-10-17 14:14:38 +02:00
Chris Smowton
efd7b6e692
Use isFunction
2022-10-17 12:27:58 +01:00
Chris Smowton
be53ec9b42
Accept test changes
2022-10-17 11:48:22 +01:00
Chris Smowton
f9d65e42dd
Use compiler-provided adapter functions when creating a function reference
2022-10-17 11:48:21 +01:00
Chris Smowton
4c63237ed1
Add test checking argument <-> parameter matching, and fix superconstructor calls that were missing their argument.
2022-10-17 11:44:44 +01:00
Chris Smowton
8553266aae
Allow specialised instances of anonymous classes
2022-10-17 11:27:05 +01:00
Chris Smowton
73f5dea51e
Extract private members of specialised generic classes on demand
2022-10-17 11:27:04 +01:00
Chris Smowton
f1fd470f49
Merge pull request #10821 from smowton/smowton/fix/kotlin-property-ref-to-sam-interface
...
Kotlin SAM conversion: tolerate property refs used to implement a SAM interface
2022-10-17 11:25:24 +01:00
Tony Torralba
a540aaa35b
Address alert message style violation
2022-10-17 10:22:31 +02:00
Tony Torralba
434a2a9f5d
Improve qhelp example text
2022-10-17 10:19:40 +02:00
Tony Torralba
c909b8824c
Apply suggestions from code review
...
Co-authored-by: Felicity Chapman <felicitymay@github.com >
2022-10-17 10:12:56 +02:00
Tamás Vajk
85fbf4b965
Merge pull request #10767 from tamasvajk/kotlin-prop-ref-fix
...
Kotlin: adjust extracted property reference base class
2022-10-17 09:40:03 +02:00
Anders Schack-Mulligen
6ef5fac239
Merge pull request #10814 from aschackmull/dataflow/synth-global
...
Dataflow: Add support for synthetic global fields in MaD.
2022-10-17 08:34:26 +02:00
Jami Cogswell
2714c7fdcf
update tests
2022-10-14 16:45:13 -04:00
Jami Cogswell
da218fdbf1
clean up code
2022-10-14 13:03:34 -04:00
Jami Cogswell
0334470f33
remove commented out predicates that relied on typeFlag
2022-10-14 10:55:30 -04:00
Ian Lynagh
f0eabd4675
Merge pull request #10759 from igfoo/igfoo/numlines2
...
kotlin: Populate numlines
2022-10-14 15:39:40 +01:00
Ian Lynagh
05f70e9c66
Merge pull request #10633 from igfoo/igfoo/ministdlib
...
Kotlin: Add a ministdlib test
2022-10-14 15:22:21 +01:00
Ian Lynagh
4dcf4f2d2c
Merge pull request #10819 from github/igfoo/kotlin
...
Kotlin: Some windows fixes
2022-10-14 14:28:57 +01:00
Jami Cogswell
47030df8ac
remove commented-out 3 configs
2022-10-14 09:26:44 -04:00
Anders Schack-Mulligen
72fc9d1e65
Remove redundant import.
2022-10-14 13:28:09 +02:00
Anders Schack-Mulligen
5ce4483a8e
Merge pull request #10795 from aschackmull/java/synth-callable
...
Java: Add support for synthetic callables with flow summaries and model Stream.collect
2022-10-14 10:58:14 +02:00
Jami Cogswell
6eb58d832c
remove dependence on typeFlag
2022-10-14 00:47:57 -04:00
Jami Cogswell
c61f23baae
experiment with more code condensing
2022-10-13 23:24:06 -04:00
Jami Cogswell
2daa3457d7
combine three configs into one
2022-10-13 17:57:56 -04:00
Chris Smowton
e1c43c67ee
Koltin: support collection literals
2022-10-13 18:48:00 +01:00
Chris Smowton
1efcf38a34
Kotlin SAM conversion: tolerate property refs used to implement a SAM interface
2022-10-13 17:32:22 +01:00
Ian Lynagh
7d22bdb7e1
Windows fixes
2022-10-13 16:16:54 +01:00
Josh Soref
45d1e3f9b2
spelling: representation
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-13 10:56:41 -04:00
Josh Soref
52a3e3c2fd
spelling: heuristic
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-13 10:56:41 -04:00
Anders Schack-Mulligen
ad8f0fc1dd
Java: Address review comments.
2022-10-13 14:55:55 +02:00
Anders Schack-Mulligen
2848909450
Dataflow: Add support for synthetic global fields in MaD.
2022-10-13 14:18:13 +02:00
Anders Schack-Mulligen
30a891c2e7
Java: Fix compilation errors.
2022-10-13 11:19:57 +02:00
Anders Schack-Mulligen
51dfb319f5
Java: autoformat
2022-10-13 11:17:44 +02:00
Anders Schack-Mulligen
ac3379657d
Java: qldoc fix and changenote.
2022-10-13 11:17:44 +02:00
Anders Schack-Mulligen
5b8fa3f8f9
Java: Add test for Stream.collect.
2022-10-13 11:17:44 +02:00
Anders Schack-Mulligen
8c7b6d6f20
Java: Add support for synthetic callables with flow summaries and model Stream.collect.
2022-10-13 11:17:44 +02:00
Anders Schack-Mulligen
036724ce8d
Dataflow: Sync.
2022-10-13 11:03:30 +02:00
Anders Schack-Mulligen
c4915b27e7
Dataflow: Add additional annotation.
2022-10-13 11:03:08 +02:00
Tamás Vajk
6c781b5b1a
Merge pull request #10789 from tamasvajk/kotlin-useless-params
...
Kotlin: reduce FPs in useless parameter check for Kotlin code
2022-10-13 09:40:54 +02:00
Jami Cogswell
e0f0d554cb
condense code
2022-10-12 22:18:07 -04:00
Erik Krogh Kristensen
10aab81f42
Merge pull request #10799 from jsoref/spelling-nfautils
...
ReDoS: Spelling nfautils
2022-10-12 23:09:06 +02:00
Jami Cogswell
bcb506b637
add placeholder qldocs
2022-10-12 17:04:51 -04:00