Performance optimization in completion: search context variables of functional types later

This commit is contained in:
Valentin Kipyatkov
2015-10-30 18:26:12 +03:00
parent 0a5a5a2e36
commit b05d490eeb
19 changed files with 320 additions and 172 deletions
+16 -4
View File
@@ -1,6 +1,18 @@
fun foo(p: (String, Char) -> Unit): String {}
class C {
companion object {
fun foo(p: (Int) -> Unit) = C()
}
}
fun v: String = fo<caret>
fun foo(p: (String, Char) -> Unit): C {}
// EXIST: { lookupString:"foo", itemText: "foo", tailText: "(p: (String, Char) -> Unit) (<root>)", typeText:"String" }
// EXIST: { lookupString:"foo", itemText: "foo", tailText: " { String, Char -> ... } (p: (String, Char) -> Unit) (<root>)", typeText:"String" }
val handler1: (String, Char) -> Unit = {}
val handler2: (Int) -> Unit = {}
fun v: C = fo<caret>
// EXIST: { lookupString:"foo", itemText: "foo", tailText: "(p: (String, Char) -> Unit) (<root>)", typeText:"C" }
// EXIST: { lookupString:"foo", itemText: "foo", tailText: " { String, Char -> ... } (p: (String, Char) -> Unit) (<root>)", typeText:"C" }
// EXIST: { lookupString:"foo", itemText: "foo", tailText: "(handler1) (<root>)", typeText:"C" }
// EXIST: { allLookupStrings: "C, foo", itemText: "C.foo", tailText: " {...} (p: (Int) -> Unit) (<root>)", typeText:"C" }
// EXIST: { allLookupStrings: "C, foo", itemText: "C.foo", tailText: "(handler2) (<root>)", typeText:"C" }