Completion: fixed filtering shadowed declarations for generic functions

This commit is contained in:
Valentin Kipyatkov
2015-07-06 22:16:13 +03:00
parent 3f74cc6351
commit 4dc7081dc4
13 changed files with 154 additions and 38 deletions
@@ -0,0 +1,14 @@
interface I<T> {
fun xxx(): T
}
fun foo(i1: I<Int>, i2: I<String>) {
with (i1) {
with (i2) {
xx<caret>
}
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "()", typeText: "String" }
// NOTHING_ELSE
@@ -0,0 +1,9 @@
fun <T> List<T>.xxx(){}
fun <T> Iterable<T>.xxx(){}
fun foo() {
listOf(1).xx<caret>
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "() for List<T> in <root>", typeText: "Unit" }
// NOTHING_ELSE
@@ -0,0 +1,9 @@
fun <T> List<T>.xxx(t: T){}
fun <T> Iterable<T>.xxx(t: T){}
fun foo() {
listOf(1).xx<caret>
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(t: Int) for List<T> in <root>", typeText: "Unit" }
// NOTHING_ELSE
@@ -0,0 +1,7 @@
package dependency
interface Iterable<T>
interface List<T> : Iterable<T>
fun <T> List<T>.xxx(t: T){}
fun <T> Iterable<T>.xxx(t: T){}
@@ -0,0 +1,6 @@
fun foo(list: dependency.List<Int>) {
list.xx<caret>
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(t: Int) for List<T> in dependency", typeText: "Unit" }
// NOTHING_ELSE