KT-4893 Code completion should not show multiple functions with the same signature

#KT-4893 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-06-09 23:10:47 +03:00
parent 4c0e7e32e7
commit 483da9607c
43 changed files with 737 additions and 106 deletions
@@ -0,0 +1,6 @@
fun foo(xxx: String) {
var xxx = xx<caret>
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "String" }
// NOTHING_ELSE
@@ -0,0 +1,5 @@
fun foo() {
var xxx = <caret>
}
// ABSENT: xxx
@@ -0,0 +1,8 @@
fun foo(xxx: Int) {
val xxx: Any = run {
xx<caret>
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,15 @@
class C {
val xxx = 1
fun foo(xxx: String) {
val xxx = 'x'
if (true) {
val xxx = true
xx<caret>
}
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "Boolean" }
// NOTHING_ELSE
@@ -0,0 +1,10 @@
class C {
val xxx = 1
fun foo(xxx: String) {
xx<caret>
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "String" }
// NOTHING_ELSE
@@ -0,0 +1,17 @@
package ppp
class C {
fun xxx(p: Int) = ""
fun foo() {
xx<caret>
}
}
fun C.xxx(p: Int) = 1
fun Any.xxx(c: Char) = 1
fun C.xxx(c: Char) = 1
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(p: Int)", typeText: "String" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(c: Char) for C in ppp", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,17 @@
package ppp
class C {
fun xxx(vararg s: String, p: Int) = ""
fun foo() {
xx<caret>
}
}
fun C.xxx(vararg s: String, p: Int) = 1
fun Any.xxx(vararg s: String, c: Char) = 1
fun C.xxx(vararg s: String, c: Char) = 1
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(vararg s: String, p: Int)", typeText: "String" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(vararg s: String, c: Char) for C in ppp", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,14 @@
class C {
inner class Inner {
fun foo() {
xx<caret>
}
val xxx: String get() = 1
}
val xxx: Int get() = 1
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "String" }
// NOTHING_ELSE
@@ -0,0 +1,19 @@
interface I
class C : I {
inner class Inner {
fun foo() {
xx<caret>
}
val Any.xxx: Int get() = 1
}
val I.xxx: Int get() = 1
}
val C.xxx: Int get() = 1
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: " for Any in C.Inner", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,24 @@
package ppp
class C {
val xxx = ""
fun xxx() = ""
fun xxx(p: Int) = ""
fun foo() {
xx<caret>
}
}
val C.xxx: Int
get() = 1
fun C.xxx() = 1
fun C.xxx(p: Int) = 1
fun C.xxx(p: String) = 1
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: null, typeText: "String" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "()", typeText: "String" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(p: Int)", typeText: "String" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "(p: String) for C in ppp", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,12 @@
val xxx: Int get() = 1
class C {
fun foo() {
xx<caret>
}
val xxx: String get() = 1
}
// EXIST: { lookupString: "xxx", itemText: "xxx", typeText: "String" }
// NOTHING_ELSE
@@ -0,0 +1,19 @@
package ppp
interface I
class C : I {
fun foo() {
xx<caret>
}
}
val Any.xxx: Int get() = 1
val I.xxx: Int get() = 1
fun Any.xxx() = 1
fun C.xxx() = 1
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: " for I in ppp", typeText: "Int" }
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "() for C in ppp", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,4 @@
package dependency
fun Any.xxx(): Int = 1
fun ppp.C.xxx(): Int = 1
@@ -0,0 +1,12 @@
package ppp
import dependency.*
class C {
fun foo() {
xx<caret>
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "() for C in dependency", typeText: "Int" }
// NOTHING_ELSE
@@ -0,0 +1,4 @@
package dependency
fun Any.xxx(): Int = 1
fun ppp.C.xxx(): Int = 1
@@ -0,0 +1,10 @@
package ppp
class C {
fun foo() {
xx<caret>
}
}
// EXIST: { lookupString: "xxx", itemText: "xxx", tailText: "() for C in dependency", typeText: "Int" }
// NOTHING_ELSE