Code completion: template item for function taking lambda with 2 or more parameters (KT-4855) + better handling of type instantiation in smart completion

This commit is contained in:
Valentin Kipyatkov
2014-04-22 22:10:42 +04:00
parent 0057843c08
commit e8805f69bf
33 changed files with 428 additions and 269 deletions
@@ -0,0 +1,8 @@
fun foo(p: (String, Char) -> Unit){}
fun test() {
fo<caret>
}
// EXIST: { lookupString:"foo", itemText: "foo(p: (String, Char) -> Unit)", typeText:"Unit" }
// EXIST: { lookupString:"foo", itemText: "foo { (String, Char) -> ... }", typeText:"Unit" }
@@ -0,0 +1,5 @@
fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
@@ -0,0 +1,5 @@
fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
foo { (s, c) -> <caret> }
}
@@ -0,0 +1,5 @@
fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
@@ -0,0 +1,5 @@
fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
foo(<caret>)
}
@@ -0,0 +1,6 @@
fun foo(p : (String, Char) -> Boolean){}
fun foo(p : (String, Boolean) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
@@ -0,0 +1,6 @@
fun foo(p : (String, Char) -> Boolean){}
fun foo(p : (String, Boolean) -> Boolean){}
fun main(args: Array<String>) {
foo { (s: String, c: Char) -> <caret> }
}
@@ -0,0 +1,3 @@
class Foo(p : () -> Unit)
var a : Foo = <caret>
@@ -0,0 +1,3 @@
class Foo(p : () -> Unit)
var a : Foo = Foo { <caret> }
@@ -0,0 +1,3 @@
class Foo(p : (String) -> Unit)
var a : Foo = <caret>
@@ -0,0 +1,3 @@
class Foo(p : (String) -> Unit)
var a : Foo = Foo { <caret> }
@@ -5,4 +5,4 @@ fun bar() {
foo(<caret>)
}
// ELEMENT: "{ (Date) -> ... }"
// ELEMENT: "{ Date -> ... }"
@@ -7,4 +7,4 @@ fun bar() {
foo({ (date: Date) -> <caret> })
}
// ELEMENT: "{ (Date) -> ... }"
// ELEMENT: "{ Date -> ... }"
+2 -2
View File
@@ -6,5 +6,5 @@ fun bar() {
}
// ABSENT: "{...}"
// EXIST: "{ (String) -> ... }"
// EXIST: "{ (Int) -> ... }"
// EXIST: "{ String -> ... }"
// EXIST: "{ Int -> ... }"