Smart completion: multiple arguments at once

This commit is contained in:
Valentin Kipyatkov
2014-09-27 08:18:07 +04:00
parent a04efad059
commit 267aabae12
24 changed files with 315 additions and 25 deletions
@@ -0,0 +1,7 @@
fun foo(a: Int, b: String, c: String) {}
fun bar(b: String, a: Int, c: String) {
foo(<caret>)
}
// EXIST: "a, b, c"
@@ -0,0 +1,11 @@
fun f(p1: String, p2: Int, p3: Any){}
class C(val p1: String) {
val p3: String = ""
fun foo(p2: Int) {
f(<caret>)
}
}
// EXIST: "p1, p2, p3"
@@ -0,0 +1,9 @@
fun foo(a: Int, b: String, c: String = "", d: Int= 0) {}
fun bar(b: String, a: Int, c: String, d: Int) {
foo(<caret>)
}
// EXIST: "a, b"
// EXIST: "a, b, c"
// EXIST: "a, b, c, d"
@@ -0,0 +1,11 @@
class B {
open fun foo(p1: String, p2: String) { }
}
class C : B() {
override fun foo(p1: String, p2: String) {
super.foo(<caret>)
}
}
// EXIST: "p1, p2"
@@ -0,0 +1,5 @@
class B(p1: String, p2: String)
class C(p1: String, p2: String, p3: String) : B(<caret>)
// EXIST: "p1, p2"
@@ -0,0 +1,7 @@
fun foo(a: Int, b: Any, c: String?) {}
fun bar(b: String, a: Int, c: String) {
foo(<caret>)
}
// EXIST: "a, b, c"
@@ -0,0 +1,7 @@
fun foo(a: Int, b: String, c: String) {}
fun bar(b: String, a: Int, c: String?) {
foo(<caret>)
}
// ABSENT: "a, b, c"
@@ -0,0 +1,9 @@
fun foo(a: Int, b: String, c: String) {}
fun bar(b: String, a: Int, c: String?) {
if (c != null) {
foo(<caret>)
}
}
// EXIST: "a, b, c"
@@ -0,0 +1,9 @@
fun foo(a: Int, b: String, c: String) {}
fun foo(a: Int, b: String) {}
fun bar(b: String, a: Int, c: String) {
foo(<caret>)
}
// EXIST: "a, b, c"
// EXIST: "a, b"
@@ -0,0 +1,9 @@
fun foo(a: Int, b: String) {}
fun f(p: (Int, String) -> Unit){}
fun bar() {
f { (a, b) -> foo(<caret>) }
}
// EXIST: "a, b"
@@ -0,0 +1,9 @@
fun foo(a: Int, b: String) {}
fun bar(a: Int, b: String) {
fun local() {
foo(<caret>)
}
}
// EXIST: "a, b"