Very initial implementation of smart completion

This commit is contained in:
Valentin Kipyatkov
2013-11-11 21:46:05 +04:00
parent a3e67ff27d
commit a7f11e6852
25 changed files with 436 additions and 42 deletions
@@ -0,0 +1,7 @@
fun f(p: Object) {
if (p is String){
var a : String = <caret>
}
}
// EXIST: p
@@ -0,0 +1,20 @@
trait Foo{
public fun foo() : Foo
public fun s() : String
public val prop : String
}
val foo = Foo()
fun f(p1: Foo, p2: String) {
var a : String
a = p1.foo().<caret>
}
// ABSENT: foo
// EXIST: s
// EXIST: prop
// ABSENT: foo
// ABSENT: p1
// ABSENT: p2
// ABSENT: a
@@ -0,0 +1,26 @@
class Foo
class Bar : Foo
val foo = Foo()
val bar = Bar()
val o : Object = Object()
fun f(p1 : Foo, p2 : Bar, p3 : String, p4 : Foo?) {
var a : Foo
a = <caret>
}
fun f1() : Foo{}
fun f2() : Bar{}
fun f3() : String{}
// EXIST: foo
// EXIST: bar
// ABSENT: o
// EXIST: p1
// EXIST: p2
// ABSENT: p3
// ABSENT: p4
// EXIST: f1
// EXIST: f2
// ABSENT: f3
@@ -0,0 +1,19 @@
class Foo
class Bar : Foo
val xfoo = Foo()
val xbar = Bar()
val xo : Object = Object()
fun f(xp1 : Foo, xp2 : Bar, xp3 : String, p4 : Foo) {
var a : Foo
a = x<caret>y
}
// EXIST: xfoo
// EXIST: xbar
// ABSENT: xo
// EXIST: xp1
// EXIST: xp2
// ABSENT: xp3
// ABSENT: p4
@@ -0,0 +1,13 @@
val s = ""
fun f(p1: Object, p2: String) {
foo(<caret>)
}
fun foo(p1: String, p2: Object) : String{
}
// ABSENT: p1
// EXIST: p2
// EXIST: s
// EXIST: foo
@@ -0,0 +1,7 @@
fun f(p : String) {
var a : String
a = <caret>
}
// EXIST: p
// ABSENT: a
@@ -0,0 +1,7 @@
class Foo(val prop : String)
fun f(foo1 : Foo, foo2 : Foo) {
foo1.prop = foo2.<caret>
}
// EXIST: prop
@@ -0,0 +1,10 @@
val foo = ""
fun f(p1: Object, p2: String) {
var a : String = <caret>
}
// ABSENT: p1
// EXIST: p2
// EXIST: foo
// ABSENT: a
@@ -0,0 +1,19 @@
class Foo
class Bar : Foo
val xfoo = Foo()
val xbar = Bar()
val xo : Object = Object()
fun f(xp1 : Foo, xp2 : Bar, xp3 : String, p4 : Foo) {
var a : Foo
a = x<caret>
}
// EXIST: xfoo
// EXIST: xbar
// ABSENT: xo
// EXIST: xp1
// EXIST: xp2
// ABSENT: xp3
// ABSENT: p4
@@ -0,0 +1,23 @@
trait Foo{
fun foo1() : String
fun foo2() : Object
val prop : String
}
val foo = Foo()
fun f(p1: Foo, p2: String) {
var a : String
a = p1.<caret>
}
fun Foo.ext() : String{}
// EXIST: foo1
// ABSENT: foo2
// EXIST: prop
// EXIST: ext
// ABSENT: foo
// ABSENT: p1
// ABSENT: p2
// ABSENT: a