Completion of lambda parameters

Also changed policy for sorting of smart completion items in basic completion

 #KT-16800 Fixed
 #KT-12002 Fixed
This commit is contained in:
Valentin Kipyatkov
2017-03-16 20:36:08 +03:00
parent c6b9aebfcf
commit b5dd2cc540
66 changed files with 558 additions and 256 deletions
+3 -1
View File
@@ -4,5 +4,7 @@ fun bar() {
foo(<caret>)
}
// WITH_ORDER
// EXIST: "{...}"
// EXIST: "{ String -> ... }"
// EXIST: "{ s -> ... }"
// EXIST: "{ s: String -> ... }"
+3 -1
View File
@@ -4,5 +4,7 @@ fun bar() {
foo(<caret>)
}
// WITH_ORDER
// ABSENT: "{...}"
// EXIST: "{ String, Int -> ... }"
// EXIST: "{ s, i -> ... }"
// EXIST: "{ s: String, i: Int -> ... }"
+3 -1
View File
@@ -4,5 +4,7 @@ fun bar() {
foo(<caret>)
}
// WITH_ORDER
// EXIST: "{...}"
// EXIST: "{ Int -> ... }"
// EXIST: "{ i -> ... }"
// EXIST: "{ i: Int -> ... }"
@@ -0,0 +1,11 @@
fun foo(p: (String, Int) -> Unit){}
fun foo(p: (Char, xx: Any) -> Unit){}
fun bar() {
foo(<caret>)
}
// ABSENT: "{ s, i -> ... }"
// ABSENT: "{ c, xx -> ... }"
// EXIST: "{ String, Int -> ... }"
// EXIST: "{ Char, xx -> ... }"
@@ -1,8 +1,10 @@
fun foo(p: Int, handler: (String, Char) -> Unit){}
fun foo(p: Int, handler: (String, xx: Char) -> Unit){}
fun bar(handler: (String, Char) -> Unit) {
foo(1)<caret>
}
// EXIST: "{ String, Char -> ... }"
// WITH_ORDER
// EXIST: "{ s, xx -> ... }"
// EXIST: "{ s: String, xx: Char -> ... }"
// ABSENT: handler
@@ -5,5 +5,6 @@ fun bar(p: String.(Int) -> Unit) {
}
// EXIST: "{...}"
// EXIST: "{ Int -> ... }"
// EXIST: "{ i -> ... }"
// EXIST: "{ i: Int -> ... }"
// ABSENT: p
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
foo <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
"".foo <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
"" foo <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// EXIST: handler
@@ -4,6 +4,7 @@ fun bar(handler: (String, Char) -> Unit) {
foo(1)<caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: null
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
foo() <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
foo <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
foo() <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler
@@ -4,5 +4,6 @@ fun bar(handler: (String, Char) -> Unit) {
foo(1, 2) <caret>
}
// EXIST: "{ String, Char -> ... }"
// EXIST: "{ s, c -> ... }"
// EXIST: "{ s: String, c: Char -> ... }"
// ABSENT: handler