KT-4908 Smart completion does not work for arguments of function with vararg

#KT-4908 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-05-06 18:33:52 +03:00
parent 4c315b6219
commit 2adf0a3e9a
49 changed files with 369 additions and 93 deletions
@@ -1,4 +1,4 @@
fun List<S<caret>>foo() {}
// ELEMENT: String
// TAIL_TEXT: "(kotlin)"
// TAIL_TEXT: " (kotlin)"
@@ -1,4 +1,4 @@
fun List<String<caret>>foo() {}
// ELEMENT: String
// TAIL_TEXT: "(kotlin)"
// TAIL_TEXT: " (kotlin)"
@@ -5,4 +5,4 @@ class Pair<T1, T2>
private val v = ArrayList<Pair<Str<caret>>>
// ELEMENT: String
// TAIL_TEXT: "(kotlin)"
// TAIL_TEXT: " (kotlin)"
@@ -5,4 +5,4 @@ class Pair<T1, T2>
private val v = ArrayList<Pair<String<caret>>>
// ELEMENT: String
// TAIL_TEXT: "(kotlin)"
// TAIL_TEXT: " (kotlin)"
@@ -1,5 +1,3 @@
fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
fun foo() {
val pair = 1 <caret>
}
@@ -1,5 +1,3 @@
fun <A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
fun foo() {
val pair = 1 to <caret>
}
@@ -6,3 +6,5 @@ fun foo(p: HashMap<String, List<Int>>){}
fun f(){
foo(<caret>)
}
// ELEMENT: HashMap
@@ -6,3 +6,5 @@ fun foo(p: HashMap<String, List<Int>>){}
fun f(){
foo(HashMap<String, List<Int>>())
}
// ELEMENT: HashMap
@@ -5,3 +5,5 @@ class X<T> {
foo(<caret>)
}
}
// ELEMENT: HashMap
@@ -8,3 +8,5 @@ class X<T> {
foo(HashMap<File, T>(<caret>))
}
}
// ELEMENT: HashMap
@@ -5,3 +5,5 @@ class X<T> {
foo(<caret>)
}
}
// ELEMENT: HashMap
@@ -9,3 +9,5 @@ class X<T> {
foo(HashMap<T, AbstractMap<T, File>>(<caret>))
}
}
// ELEMENT: HashMap
@@ -0,0 +1,7 @@
fun foo(s: String, optional: String = ""){ }
fun bar(s: String){
foo(<caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(s: String, optional: String = ""){ }
fun bar(s: String){
foo(s<caret>)
}
// ELEMENT: s
@@ -2,5 +2,5 @@ fun foo(){
val l : java.util.Calendar = <caret>
}
// ELEMENT_TEXT: Calendar.getInstance
// TAIL_TEXT: (TimeZone!)
// ELEMENT_TEXT: "Calendar.getInstance"
// TAIL_TEXT: "(TimeZone!) (java.util)"
@@ -4,5 +4,5 @@ fun foo(){
val l : java.util.Calendar = Calendar.getInstance(<caret>)
}
// ELEMENT_TEXT: Calendar.getInstance
// TAIL_TEXT: (TimeZone!)
// ELEMENT_TEXT: "Calendar.getInstance"
// TAIL_TEXT: "(TimeZone!) (java.util)"
@@ -7,4 +7,4 @@ fun bar() {
}
// ELEMENT_TEXT: "?: getString"
// TAIL_TEXT: "(i: Int)"
// TAIL_TEXT: "(i: Int) (<root>)"
@@ -7,4 +7,4 @@ fun bar() {
}
// ELEMENT_TEXT: "?: getString"
// TAIL_TEXT: "(i: Int)"
// TAIL_TEXT: "(i: Int) (<root>)"
@@ -9,4 +9,4 @@ fun foo(){
}
// ELEMENT_TEXT: "!! K.bar"
// TAIL_TEXT: "()"
// TAIL_TEXT: "() (<root>)"
@@ -9,4 +9,4 @@ fun foo(){
}
// ELEMENT_TEXT: "!! K.bar"
// TAIL_TEXT: "()"
// TAIL_TEXT: "() (<root>)"
@@ -1,4 +1,4 @@
var a : Runnable = <caret>
// ELEMENT_TEXT: Runnable
// TAIL_TEXT: "()"
// TAIL_TEXT: "(function: () -> Unit) (java.lang)"
@@ -1,4 +1,4 @@
var a : Runnable = Runnable { <caret> }
// ELEMENT_TEXT: Runnable
// TAIL_TEXT: "()"
// TAIL_TEXT: "(function: () -> Unit) (java.lang)"
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(s: String){
foo(<caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(s: String){
foo(s<caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(s: String){
foo("", <caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(s: String){
foo("", s<caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String, options: Int = 0){ }
fun bar(s: String){
foo("", <caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String, options: Int = 0){ }
fun bar(s: String){
foo("", s<caret>)
}
// ELEMENT: s
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(arr: Array<String>){
foo(<caret>)
}
// ELEMENT: arr
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(arr: Array<String>){
foo(*arr)<caret>
}
// ELEMENT: arr
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(list: List<String>){
foo(list.<caret>)
}
// ELEMENT: toTypedArray
@@ -0,0 +1,7 @@
fun foo(vararg strings: String){ }
fun bar(list: List<String>){
foo(*list.toTypedArray())<caret>
}
// ELEMENT: toTypedArray
@@ -0,0 +1,7 @@
fun foo(vararg strings: String, optional: String = ""){ }
fun bar(arr: Array<String>){
foo(<caret>)
}
// ELEMENT: arr
@@ -0,0 +1,7 @@
fun foo(vararg strings: String, optional: String = ""){ }
fun bar(arr: Array<String>){
foo(*arr<caret>)
}
// ELEMENT: arr