Jami Cogswell
345e4e0e8f
remove unnecessary 'exists'
2022-10-20 23:52:31 -04:00
Chris Smowton
ac013f9d19
Merge pull request #10889 from smowton/smowton/fix/enum-entry-class-warning
...
Kotlin: Don't warn on extracting an enum-entry class
2022-10-20 22:08:29 +01:00
Chris Smowton
f2749a8878
Don't warn on extracting an enum-entry class
2022-10-20 16:09:45 +01:00
Ian Lynagh
9bc0c98b8e
Kotlin: Update logs test
2022-10-20 14:18:31 +01:00
Anders Schack-Mulligen
9ebcaf80e7
Java: Fix some join-orders.
2022-10-20 14:23:36 +02:00
Josh Soref
f0d27c0257
spelling: properties
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-20 08:21:02 -04:00
Josh Soref
485543c2b5
spelling: precondition
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-20 08:21:01 -04:00
Josh Soref
1600825679
spelling: implicit
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-20 08:18:23 -04:00
Josh Soref
8ff24bc3b9
spelling: additional
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-20 08:18:23 -04:00
github-actions[bot]
9a0848bbc4
Release preparation for version 2.11.2
2022-10-20 11:05:19 +00:00
Chris Smowton
e868cdf91b
Merge pull request #9876 from smowton/smowton/feature/interface-forwarding
...
Kotlin: implement default interface forwarding
2022-10-20 10:17:47 +01:00
Chris Smowton
c6b62c934b
Merge pull request #10853 from smowton/smowton/fix/specialised-anon-classes
...
Kotlin: extract called private methods of specialised types, and specialised instances of anonymous types
2022-10-19 16:48:28 +01:00
Jami Cogswell
b7f360647e
rename change note
2022-10-19 11:37:42 -04:00
Jami Cogswell
e5982f19fa
minor updates
2022-10-19 11:05:40 -04:00
Tony Torralba
0678b06a9b
Apply review suggestions
2022-10-19 16:58:43 +02:00
Chris Smowton
4da480ecc0
Accept test changes resulting from correctly mapping extension methods' default proxies
2022-10-19 15:56:17 +01:00
Chris Smowton
14b8892ced
Don't create interface forwarders for other interfaces, and target super accesses correctly
...
Intermediate interfaces don't need interface forwarders, since the Kotlin compiler won't try to make them non-abstract by synthesising methods.
Super references should always target an immediate superclass, not the ancestor containing the intended implementation.
2022-10-19 15:37:06 +01:00
Tony Torralba
25241276b0
Add change note
2022-10-19 16:29:36 +02:00
Tony Torralba
429bd5fbd8
Add flow summaries for startActivities
...
Uses SyntheticCallables and SyntheticGlobals to pair each startActivities call to getIntent calls in the components targeted by the intent(s).
2022-10-19 16:25:04 +02:00
Ian Lynagh
71b649558b
Merge pull request #10648 from igfoo/igfoo/lockless
...
Kotlin: Implement lockless TRAP writing
2022-10-19 15:04:19 +01:00
Tamas Vajk
3e476f96bd
Kotlin: Exclude captured variables from constant loop condition check
2022-10-19 15:01:17 +02:00
Jami Cogswell
961e5c72a3
minor updates
2022-10-19 08:44:35 -04:00
Tamas Vajk
0bc57410a0
Kotlin: Add FP test case for constant loop condition
2022-10-19 14:19:49 +02:00
Tom Hvitved
9e5d9f897f
Merge pull request #10824 from jsoref/spelling-csharp
...
Spelling csharp
2022-10-19 13:16:02 +02:00
Ian Lynagh
83a3ae64c4
Kotlin: Accept test changes
2022-10-19 12:14:39 +01:00
Ian Lynagh
e6e0fe0cd4
Kotlin: Tweak custom_plugin/diagnostics test
2022-10-19 12:14:38 +01:00
Tony Torralba
fd8f8cb930
Merge pull request #10223 from atorralba/atorralba/unsafe-content-resolver
...
Java: New Android query to detect unsafe content URI resolution
2022-10-19 11:22:04 +02:00
Tamás Vajk
0f499dfb75
Merge pull request #10877 from tamasvajk/kotlin-safe-call-null-check
...
Kotlin: Add test for useless null check on safe calls
2022-10-19 11:19:58 +02:00
Tamás Vajk
086362d8ee
Merge pull request #10859 from tamasvajk/kotlin-field-masking
...
Kotlin: Exclude fields of live literals from `java/field-masks-super-field`
2022-10-19 11:19:44 +02:00
Josh Soref
4b6b1fd8a8
spelling: propagates
...
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com >
2022-10-19 03:49:17 -04:00
Tamas Vajk
bd9c7df25b
Improve QL quality
2022-10-19 09:00:39 +02:00
Tamas Vajk
d65c52bfc5
Kotlin: Add test for useless null check on safe calls
2022-10-19 08:49:56 +02:00
Jami Cogswell
4df0fbcce1
update tests
2022-10-19 01:17:57 -04:00
Jami Cogswell
dc8b62baa0
add support for AlgorithmParameterGenerator
2022-10-19 00:11:59 -04:00
Jami Cogswell
ff557a287f
add min key size predicates
2022-10-18 23:08:54 -04:00
Jami Cogswell
383b8a84e9
update select statement to be closer to cpp's
2022-10-18 21:55:11 -04:00
Chris Smowton
b148e3168f
Java models-as-data: infer Kotlin $default models from that of its parent function
2022-10-18 18:17:08 +01:00
Tamás Vajk
0069fd9681
Merge pull request #10860 from tamasvajk/kotlin-clinit-static
...
Kotlin: Add `static` modifier to `clinit`
2022-10-18 11:39:34 +02:00
Chris Smowton
50f99d8e82
Don't produce interface forwarders directed at an abstract target
2022-10-18 10:31:01 +01:00
Chris Smowton
67aa6c7737
Merge pull request #10822 from smowton/smowton/feature/kotlin-collection-literals
...
Koltin: support collection literals
2022-10-18 09:45:59 +01:00
Tamas Vajk
b67a8877a7
Kotlin: Add static modifier to clinit
2022-10-18 09:26:06 +02:00
Tamás Vajk
543e2f5aab
Merge pull request #10678 from tamasvajk/kotlin-type-param-modifiers
...
Kotlin: Extract type parameter modifiers (`reified`, `in`, `out`)
2022-10-18 09:10:57 +02:00
Jami Cogswell
5f39888a2d
minor code restructure
2022-10-17 16:28:06 -04:00
Chris Smowton
b4c4a26e22
Element.hasChildElement: associate local classes specialisations with their unspecialised containing function
2022-10-17 18:43:12 +01:00
Chris Smowton
1613e47388
Improve and accept changes to compiler-generated methods test
2022-10-17 18:43:11 +01:00
Chris Smowton
b763c406b6
hasChildElement: include method -> local class edges
2022-10-17 18:38:13 +01:00
Chris Smowton
fff9a75ff8
Accept test changes
2022-10-17 18:38:13 +01:00
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
f358be85eb
Accept test changes
2022-10-17 18:23:10 +01:00