mirror of
https://github.com/github/codeql.git
synced 2026-05-03 12:45:27 +02:00
Kotlin: Add test for extension $default functions
This commit is contained in:
@@ -293,12 +293,47 @@
|
||||
| methods2.kt:8:5:9:5 | Unit | TypeAccess |
|
||||
| methods2.kt:8:27:8:32 | int | TypeAccess |
|
||||
| methods2.kt:8:35:8:40 | int | TypeAccess |
|
||||
| methods3.kt:3:1:3:42 | Unit | TypeAccess |
|
||||
| methods3.kt:3:5:3:7 | int | TypeAccess |
|
||||
| methods3.kt:3:33:3:38 | int | TypeAccess |
|
||||
| methods3.kt:6:5:6:46 | Unit | TypeAccess |
|
||||
| methods3.kt:6:9:6:11 | int | TypeAccess |
|
||||
| methods3.kt:6:37:6:42 | int | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | 0 | IntegerLiteral |
|
||||
| methods3.kt:3:1:3:49 | 1 | IntegerLiteral |
|
||||
| methods3.kt:3:1:3:49 | ... & ... | AndBitwiseExpr |
|
||||
| methods3.kt:3:1:3:49 | ... == ... | EQExpr |
|
||||
| methods3.kt:3:1:3:49 | ...=... | AssignExpr |
|
||||
| methods3.kt:3:1:3:49 | Methods3Kt | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | Object | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | String | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | Unit | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | Unit | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt(...) | MethodAccess |
|
||||
| methods3.kt:3:1:3:49 | int | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | int | TypeAccess |
|
||||
| methods3.kt:3:1:3:49 | p0 | VarAccess |
|
||||
| methods3.kt:3:1:3:49 | p1 | VarAccess |
|
||||
| methods3.kt:3:1:3:49 | p1 | VarAccess |
|
||||
| methods3.kt:3:1:3:49 | p2 | VarAccess |
|
||||
| methods3.kt:3:5:3:10 | String | TypeAccess |
|
||||
| methods3.kt:3:36:3:45 | int | TypeAccess |
|
||||
| methods3.kt:3:45:3:45 | 1 | IntegerLiteral |
|
||||
| methods3.kt:6:5:6:45 | 0 | IntegerLiteral |
|
||||
| methods3.kt:6:5:6:45 | 1 | IntegerLiteral |
|
||||
| methods3.kt:6:5:6:45 | ... & ... | AndBitwiseExpr |
|
||||
| methods3.kt:6:5:6:45 | ... == ... | EQExpr |
|
||||
| methods3.kt:6:5:6:45 | ...=... | AssignExpr |
|
||||
| methods3.kt:6:5:6:45 | Class3 | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | Object | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | String | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | Unit | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | Unit | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt(...) | MethodAccess |
|
||||
| methods3.kt:6:5:6:45 | int | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | int | TypeAccess |
|
||||
| methods3.kt:6:5:6:45 | p0 | VarAccess |
|
||||
| methods3.kt:6:5:6:45 | p1 | VarAccess |
|
||||
| methods3.kt:6:5:6:45 | p2 | VarAccess |
|
||||
| methods3.kt:6:5:6:45 | p2 | VarAccess |
|
||||
| methods3.kt:6:5:6:45 | p3 | VarAccess |
|
||||
| methods3.kt:6:9:6:14 | String | TypeAccess |
|
||||
| methods3.kt:6:32:6:41 | int | TypeAccess |
|
||||
| methods3.kt:6:41:6:41 | 1 | IntegerLiteral |
|
||||
| methods4.kt:7:5:7:34 | Unit | TypeAccess |
|
||||
| methods4.kt:7:11:7:29 | InsideNestedTest | TypeAccess |
|
||||
| methods5.kt:3:1:11:1 | Unit | TypeAccess |
|
||||
|
||||
@@ -38,8 +38,10 @@ methods
|
||||
| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:10:14:10:42 | g | g(int) | override, public | |
|
||||
| methods2.kt:0:0:0:0 | Methods2Kt | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | fooBarTopLevelMethod(int,int) | final, public, static | |
|
||||
| methods2.kt:7:1:10:1 | Class2 | methods2.kt:8:5:9:5 | fooBarClassMethod | fooBarClassMethod(int,int) | final, public | |
|
||||
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | final, public, static | |
|
||||
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(int,int) | final, public | |
|
||||
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(java.lang.String,int) | final, public, static | |
|
||||
| methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default | fooBarTopLevelMethodExt$default(java.lang.String,int,int,java.lang.Object) | public, static | Compiler generated |
|
||||
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:45 | fooBarMethodExt | fooBarMethodExt(java.lang.String,int) | final, public | |
|
||||
| methods3.kt:5:1:7:1 | Class3 | methods3.kt:6:5:6:45 | fooBarMethodExt$default | fooBarMethodExt$default(java.lang.String,foo.bar.Class3,int,int,java.lang.Object) | public, static | Compiler generated |
|
||||
| methods4.kt:5:3:9:3 | InsideNestedTest | methods4.kt:7:5:7:34 | m | m(foo.bar.NestedTest.InsideNestedTest) | final, public | |
|
||||
| methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | final, public, static | |
|
||||
| methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | final, public | |
|
||||
@@ -74,6 +76,9 @@ constructors
|
||||
| methods5.kt:13:1:13:14 | C1 | methods5.kt:13:1:13:14 | C1 | C1() |
|
||||
| methods.kt:5:1:20:1 | Class | methods.kt:5:1:20:1 | Class | Class() |
|
||||
extensions
|
||||
| methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int |
|
||||
| methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | file://:0:0:0:0 | int |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | file:///modules/java.base/java/lang/String.class:0:0:0:0 | String |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt | file:///modules/java.base/java/lang/String.class:0:0:0:0 | String |
|
||||
| methods5.kt:9:3:9:32 | f1 | file:///!unknown-binary-location/foo/bar/C1.class:0:0:0:0 | C1<T1> |
|
||||
extensionsMismatch
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt | methods3.kt:6:5:6:45 | fooBarMethodExt$default |
|
||||
|
||||
@@ -17,3 +17,12 @@ query predicate constructors(RefType declType, Constructor c, string signature)
|
||||
}
|
||||
|
||||
query predicate extensions(ExtensionMethod m, Type t) { m.getExtendedType() = t and m.fromSource() }
|
||||
|
||||
query predicate extensionsMismatch(Method src, Method def) {
|
||||
src.getKotlinParameterDefaultsProxy() = def and
|
||||
(
|
||||
src instanceof ExtensionMethod and not def instanceof ExtensionMethod
|
||||
or
|
||||
def instanceof ExtensionMethod and not src instanceof ExtensionMethod
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package foo.bar
|
||||
|
||||
fun Int.fooBarTopLevelMethodExt(x: Int) {}
|
||||
fun String.fooBarTopLevelMethodExt(x: Int = 1) {}
|
||||
|
||||
class Class3 {
|
||||
fun Int.fooBarTopLevelMethodExt(x: Int) {}
|
||||
fun String.fooBarMethodExt(x: Int = 1) {}
|
||||
}
|
||||
|
||||
@@ -32,10 +32,19 @@
|
||||
| methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:34:4:39 | y | 1 |
|
||||
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:27:8:32 | x | 0 |
|
||||
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:35:8:40 | y | 1 |
|
||||
| methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | methods3.kt:3:5:3:7 | <this> | 0 |
|
||||
| methods3.kt:3:1:3:42 | fooBarTopLevelMethodExt | methods3.kt:3:33:3:38 | x | 1 |
|
||||
| methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | methods3.kt:6:9:6:11 | <this> | 0 |
|
||||
| methods3.kt:6:5:6:46 | fooBarTopLevelMethodExt | methods3.kt:6:37:6:42 | x | 1 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | methods3.kt:3:5:3:10 | <this> | 0 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | methods3.kt:3:36:3:45 | x | 1 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default | methods3.kt:3:1:3:49 | p0 | 0 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default | methods3.kt:3:1:3:49 | p1 | 1 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default | methods3.kt:3:1:3:49 | p2 | 2 |
|
||||
| methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt$default | methods3.kt:3:1:3:49 | p3 | 3 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt | methods3.kt:6:9:6:14 | <this> | 0 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt | methods3.kt:6:32:6:41 | x | 1 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt$default | methods3.kt:6:5:6:45 | p0 | 0 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt$default | methods3.kt:6:5:6:45 | p1 | 1 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt$default | methods3.kt:6:5:6:45 | p2 | 2 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt$default | methods3.kt:6:5:6:45 | p3 | 3 |
|
||||
| methods3.kt:6:5:6:45 | fooBarMethodExt$default | methods3.kt:6:5:6:45 | p4 | 4 |
|
||||
| methods4.kt:7:5:7:34 | m | methods4.kt:7:11:7:29 | x | 0 |
|
||||
| methods5.kt:5:3:5:27 | a | methods5.kt:5:13:5:18 | i | 0 |
|
||||
| methods5.kt:9:3:9:32 | f1 | methods5.kt:9:12:9:17 | <this> | 0 |
|
||||
|
||||
Reference in New Issue
Block a user