mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
Kotlin: support argument-range specifications for $default methods
This commit is contained in:
@@ -8,6 +8,9 @@ class LibClass {
|
||||
fun memberWithDefaults(x: Int, y: Int = 1) = 0
|
||||
fun String.extensionMemberWithDefaults(x: Int, y: Int = 1) = 0
|
||||
|
||||
fun multiParameterTest(x: Int, y: Int, z: Int, w: Int = 0) = 0
|
||||
fun Int.multiParameterExtensionTest(x: Int, y: Int, w: Int = 0) = 0
|
||||
|
||||
}
|
||||
|
||||
class SomeToken {}
|
||||
@@ -30,4 +33,3 @@ class SinkClass(x: Int, y: Int = 1) {
|
||||
fun String.extensionMemberSink(x: Int, y: Int = 1) {}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,9 @@ private class Models extends SummaryModelCsv {
|
||||
";LibKt;true;topLevelWithDefaults;(int,int);;Argument[0];ReturnValue;value;manual",
|
||||
";LibKt;true;extensionWithDefaults;(String,int,int);;Argument[1];ReturnValue;value;manual",
|
||||
";LibClass;true;memberWithDefaults;(int,int);;Argument[0];ReturnValue;value;manual",
|
||||
";LibClass;true;extensionMemberWithDefaults;(String,int,int);;Argument[1];ReturnValue;value;manual"
|
||||
";LibClass;true;extensionMemberWithDefaults;(String,int,int);;Argument[1];ReturnValue;value;manual",
|
||||
";LibClass;true;multiParameterTest;(int,int,int,int);;Argument[0..1];ReturnValue;value;manual",
|
||||
";LibClass;true;multiParameterExtensionTest;(int,int,int,int);;Argument[0, 1];ReturnValue;value;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,20 @@ fun test(c: LibClass, sourcec: SourceClass, sinkc: SinkClass) {
|
||||
sink(c.memberWithDefaults(source(), 0)) // $ flow
|
||||
sink(c.memberWithDefaults(source())) // $ flow
|
||||
|
||||
sink(c.multiParameterTest(source(), 0, 0)) // $ flow
|
||||
sink(c.multiParameterTest(0, source(), 0)) // $ flow
|
||||
sink(c.multiParameterTest(0, 0, source()))
|
||||
|
||||
with(c) {
|
||||
sink("Hello world".extensionMemberWithDefaults(source(), 0)) // $ flow
|
||||
sink("Hello world".extensionMemberWithDefaults(source())) // $ flow
|
||||
};
|
||||
}
|
||||
|
||||
with(c) {
|
||||
sink(source().multiParameterExtensionTest(0, 0)) // $ flow
|
||||
sink(0.multiParameterExtensionTest(source(), 0)) // $ flow
|
||||
sink(0.multiParameterExtensionTest(0, source()))
|
||||
}
|
||||
|
||||
run {
|
||||
val st = SomeToken()
|
||||
|
||||
Reference in New Issue
Block a user