Ian Lynagh
b20f8fc8c9
Kotlin: Add total number of diagnostics to telemetry
2022-11-14 12:27:54 +00:00
Ian Lynagh
b5c7d6bfcd
Kotlin: Fix build on OS X
2022-11-11 14:57:36 +00:00
Ian Lynagh
7d54b542b5
Kotlin: Put extractor name in a resource rather than generating code
2022-11-11 14:04:14 +00:00
Ian Lynagh
2fb78565a7
Kotlin: Write version information to the database
2022-11-10 20:29:04 +00:00
Tamás Vajk
830be92f1d
Merge pull request #11089 from tamasvajk/kotlin-enum-ctor-call
...
Kotlin: Extract missing arguments of enum constructor calls
2022-11-07 12:55:27 +01:00
Chris Smowton
1cd30847f6
Merge pull request #11121 from smowton/smowton/fix/java-wildcard-extraction
...
Kotlin: fix extraction of Java nested wildcards; wildcards in return types
2022-11-07 10:23:02 +00:00
Chris Smowton
68face8d46
Merge pull request #11130 from smowton/smowton/fix/kotlin-always-extract-file-labels
...
Kotlin: always populate the `files` table
2022-11-07 10:14:41 +00:00
Chris Smowton
587aa93f6d
Merge pull request #11105 from smowton/smowton/fix/use-defaults-method-to-implement-jvmoverloads
...
Kotlin: use `$default` functions to implement `@JvmOverloads`
2022-11-07 09:54:16 +00:00
Tamas Vajk
7d927a7396
Adjust enum constructor argument extraction based on review
2022-11-07 10:07:05 +01:00
Tamas Vajk
fb5b344427
Fix failing build on early kotlin versions
2022-11-07 10:07:05 +01:00
Tamas Vajk
44e70afa85
Kotlin: Extract missing arguments of enum constructor calls
2022-11-07 10:07:04 +01:00
Chris Smowton
8fd4041511
Kotlin: always populate the files table
...
Previously individual top-level file declarations relied on their corresponding file-class to declare their `File` instance, but this can be scuppered by a Java extractor replacing that file-class and identifying a different file location.
2022-11-04 15:00:27 +00:00
Tamás Vajk
545dd8b8d8
Merge pull request #11106 from tamasvajk/kotlin-binop-ext
...
Kotlin: Extract extension binary operators
2022-11-04 12:41:06 +01:00
Chris Smowton
ca04779dfc
Kotlin: fix extraction of Java nested wildcards; wildcards in return types
...
This fixes two mistakes: return-type extraction not imposing a wildcard where a Java prototype explicitly uses one, and nested wildcard detection quietly failing due to not looking through a `JavaWildcardType` correctly.
I add a variant of the `kotlin_java_lowering_wildcards` test where Java prototypes are only seen from Kotlin, to be sure extraction is working as expected.
2022-11-04 11:39:26 +00:00
Tamas Vajk
16cb4c5aaa
Kotlin: Extract extension binary operators
2022-11-03 16:11:23 +01:00
Chris Smowton
1ea87020c4
Kotlin: use $default functions to implement @JvmOverloads
...
This avoids extracting the default value expression in more than one place, which causes inconsistencies for e.g. anonymous classes, which expect to have a single `new` expression associated.
2022-11-03 14:48:36 +00:00
Chris Smowton
44b0f1921f
Merge pull request #11090 from smowton/smowton/fix/value-parameter-label-external-class
...
Kotlin: drop same-file requirement for overridden parameter labels
2022-11-03 10:17:33 +00:00
Chris Smowton
8e240a2e84
Kotlin: drop same-file requirement for overridden parameter labels
2022-11-02 19:28:53 +00:00
Chris Smowton
8eee450c65
Merge pull request #11064 from smowton/smowton/fix/kotlin-inherited-defaults
...
Kotlin: handle default parameter values inherited from an overridden function
2022-11-02 18:13:14 +00:00
Chris Smowton
197be69425
Merge pull request #11069 from smowton/smowton/fix/kotlin-vararg-constructor-defaults
...
Kotlin vararg constructors: don't call a default-parameter constructor just because there are no varargs
2022-11-02 16:08:45 +00:00
Chris Smowton
d704795d90
Use versioned all-overrides function
2022-11-02 13:57:53 +00:00
Chris Smowton
d700fddfdd
Kotlin: handle default parameter values inherited from an overridden function
2022-11-02 13:57:53 +00:00
Tamas Vajk
1d3f4826a9
Fix failing internal checkß
2022-11-02 13:57:11 +01:00
Chris Smowton
39520e54ea
Restore enum class exclusion from constructor default parameters
2022-11-02 11:28:13 +00:00
Tamas Vajk
145e2093f3
Kotlin: Remove code duplication
2022-11-02 11:46:33 +01:00
Chris Smowton
4910bf12e9
Kotlin vararg constructors: don't call a default-parameter constructor just because there are no varargs
...
This is the constructor case of https://github.com/github/codeql/pull/10909
2022-11-01 19:28:56 +00:00
Tamas Vajk
91972d1d1f
Kotlin: Fix location (start position) of method calls
2022-10-31 21:08:15 +01:00
Tamás Vajk
e356720c73
Merge pull request #11014 from tamasvajk/kotlin-for-loop-var
...
Kotlin: Resugar `for` loops
2022-10-31 14:48:21 +01:00
Tamas Vajk
4cd0f1ca66
Apply code review findings
2022-10-31 08:43:53 +01:00
Chris Smowton
b370497f96
Avoid split overrides
2022-10-29 18:23:45 +01:00
Chris Smowton
8266a22332
Kotlin: fix method types when an inherited method implements a collection type
...
In this circumstance the compiler seems to generate a specialised version of the implementing function with its argument type replaced by the interface-implementing child class' type parameter. However it stores a back-pointer to the real declared function, which we should use as the call target.
2022-10-29 11:29:04 +01:00
Chris Smowton
d9744c81b7
Merge pull request #11017 from smowton/smowton/fix/kotlin-wildcard-suppression-annotation
...
Kotlin: fix wildcard suppression where the annotation applies to a parent type/argument.
2022-10-28 18:33:07 +01:00
Chris Smowton
d6e2f5f4a8
Use ?.not() to negate a nullable boolean
2022-10-28 16:13:55 +01:00
Chris Smowton
1e1c9f639c
Avoid Kotlin 1.5+ function firstNotNullOfOrNull
2022-10-28 16:13:55 +01:00
Chris Smowton
24f87ac963
Kotlin: fix wildcard suppression where the annotation applies to a parent type/argument.
...
In the process I also fix the missed case where suppression can be switched off using a parameterized annotation.
2022-10-28 16:13:55 +01:00
Tamas Vajk
803a97df7f
Kotlin: Resugar for loops with tuples as loop variables
2022-10-28 14:55:50 +02:00
Tamas Vajk
841340b266
Kotlin: Resugar for loops
2022-10-28 14:55:50 +02:00
Chris Smowton
366410ee9e
Fix incorrect parameter ordering
2022-10-28 12:58:23 +01:00
Chris Smowton
45a4cd89a6
Kotlin: specialise extension receivers the same as other function parameters
...
This arises when a generic class extends one of its parameters; for example, `class G<T> { val T.v; get() = 1 }`, where specialisation `G<List>` should generate a method specialisation `getV(List)`.
2022-10-27 18:31:19 +01:00
Chris Smowton
5ef99ca5bd
Merge pull request #11003 from smowton/smowton/fix/reintroduce-pointless-wildcards
...
Kotlin: reintroduce pointless wildcards when a Java declaration explicitly uses them
2022-10-27 16:06:21 +01:00
Ian Lynagh
6533e2ea5c
Merge pull request #10976 from igfoo/igfoo/version
...
Kotlin: Ignore tags when comparing versions
2022-10-27 15:50:39 +01:00
Ian Lynagh
f237360d81
Merge pull request #11011 from igfoo/igfoo/modules
...
Kotlin: Handle /modules/... paths specially too
2022-10-27 13:48:32 +01:00
Ian Lynagh
bafa80667c
Kotlin: Handle /modules/... paths specially too
...
On Windows, we don't want a C: prefix on these either.
2022-10-27 12:24:28 +01:00
Ian Lynagh
6d77b34323
Merge pull request #11000 from igfoo/igfoo/unknown-binary-location
...
Kotlin: Handle /!unknown-binary-location/... paths specially on Windows
2022-10-27 12:09:32 +01:00
Chris Smowton
28b6e263ec
Kotlin: reintroduce pointless wildcards when a Java declaration explicitly uses them
...
For example, Java code might use `HasOutVariance<? extends String>`, or `HasInVariance<? super Object>`, both of which are needless wildcards and which the Kotlin extractor would previously have refused to reintroduce due to their not specifying a larger type than their bound. However this led to inconsistency with Java extraction, which
extracts the type as it appears in source.
This seems to particularly happen with generated code, e.g. the output of the Kotlin protobuf compiler.
2022-10-26 20:05:27 +01:00
Ian Lynagh
0a470b0864
Kotlin: Handle /!unknown-binary-location/... paths specially on Windows
...
The standard code wants to normalise it to C:/!unknown-binary-location/...
which is particularly annoying for cross-platform test output.
2022-10-26 19:20:32 +01:00
Chris Smowton
fac383a3ac
Merge pull request #10974 from smowton/smowton/fix/dont-translate-tochar
...
Kotlin: don't try to call nonexistent `j.l.Number.toChar`
2022-10-26 14:18:03 +01:00
Ian Lynagh
37c40c58d2
Merge pull request #10959 from igfoo/igfoo/diags
...
Java/Kotlin: Add a diagnostics consistency query
2022-10-26 13:07:01 +01:00
Ian Lynagh
dd7ec499df
Kotlin: Ignore tags when comparing versions
...
We thought that 1.7.20-Beta > 1.7.20, and so tried to use 1.7.0's
extractor with 1.7.20.
2022-10-26 12:21:55 +01:00
Chris Smowton
004f4be5fb
Kotlin: don't try to call nonexistent j.l.Number.toChar
...
Previously we thought this could be callable because Kotlin's view of `j.l.Integer` inherits `k.Number` which defines `toChar`.
2022-10-25 17:09:05 +01:00