Use information about receivers in completion
- Found few problems during resolving a single functon; disabled assertions and marked them with TODO - Add simple completion tests to simplify development
This commit is contained in:
committed by
Ilya Kirillov
parent
0f5fc1fa99
commit
ffb907150a
+11
@@ -0,0 +1,11 @@
|
||||
class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
fun test() {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
class B {
|
||||
fun bb() {}
|
||||
val bbb = 20
|
||||
}
|
||||
|
||||
class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
fun test() {
|
||||
val b = B()
|
||||
|
||||
b.<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: bb
|
||||
// EXIST: bbb
|
||||
// ABSENT: aa
|
||||
// ABSENT: aaa
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
open class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
fun test() {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
|
||||
class B : A() {
|
||||
fun test() {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
inner class AA {
|
||||
fun bb() {}
|
||||
val bbb = 20
|
||||
|
||||
fun test() {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
// EXIST: bb
|
||||
// EXIST: bbb
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
}
|
||||
|
||||
fun test() {
|
||||
val a = A()
|
||||
|
||||
a.<caret>
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
fun Any.anyFun() {}
|
||||
val Any.anyVal: Int get() = 10
|
||||
|
||||
class A
|
||||
fun A.aFun() {}
|
||||
val A.aVal: Int get() = 10
|
||||
|
||||
class B
|
||||
fun B.bFun() {}
|
||||
val B.bVal: Int get() = 10
|
||||
|
||||
fun test(a: A) {
|
||||
a.<caret>
|
||||
}
|
||||
|
||||
// EXIST: anyFun
|
||||
// EXIST: anyVal
|
||||
// EXIST: aVal
|
||||
// EXIST: aFun
|
||||
// ABSENT: bVal
|
||||
// ABSENT: bFun
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
fun <T : Any> T.anyFun() {}
|
||||
val <T : Any> T.anyVal: Int get() = 10
|
||||
|
||||
open class A
|
||||
fun <T : A> T.aFun() {}
|
||||
val <T : A> T.aVal: Int get() = 10
|
||||
|
||||
open class B
|
||||
|
||||
fun <T : B> T.bFun() {}
|
||||
val <T : B> T.bVal: Int get() = 10
|
||||
|
||||
fun test(a: A) {
|
||||
a.aFun()
|
||||
a.<caret>
|
||||
}
|
||||
|
||||
// EXIST: anyFun
|
||||
// EXIST: anyVal
|
||||
// EXIST: aVal
|
||||
// EXIST: aFun
|
||||
// ABSENT: bVal
|
||||
// ABSENT: bFun
|
||||
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
class A {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
}
|
||||
|
||||
fun A.run(action: A.() -> Unit) {}
|
||||
|
||||
fun test(a: A) {
|
||||
a.run {
|
||||
|
||||
<caret>
|
||||
|
||||
// remove this
|
||||
Unit
|
||||
}
|
||||
}
|
||||
|
||||
// this does not work for some reason
|
||||
//fun A.test() {
|
||||
//}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
// EXIST: run
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
fun test() {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
<caret>
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
fun run(action: () -> Unit) = action()
|
||||
|
||||
fun test() {
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
run {
|
||||
fun aabb() {}
|
||||
val aaabb = 20
|
||||
|
||||
<caret>
|
||||
|
||||
Unit // remove this
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
// EXIST: aabb
|
||||
// EXIST: aaabb
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
fun aa() {}
|
||||
val aaa = 10
|
||||
|
||||
fun test() {
|
||||
<caret>
|
||||
}
|
||||
|
||||
// EXIST: aa
|
||||
// EXIST: aaa
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
class A
|
||||
|
||||
class OuterClass {
|
||||
fun A.innerExt() {}
|
||||
|
||||
fun test(a: A) {
|
||||
a.<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: innerExt
|
||||
Reference in New Issue
Block a user