Intention for adding explicit type arguments at function calls

This commit is contained in:
Tal Man
2014-03-28 23:18:26 -04:00
committed by Andrey Breslav
parent f8db722011
commit cfc16b410e
38 changed files with 388 additions and 1 deletions
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
fun foo() {
val x = <caret>bar<String>("x")
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: false
fun foo() {
val x = <caret>bar(1)
}
fun bar(t: Int): Int = 1
@@ -0,0 +1,7 @@
// IS_APPLICABLE: false
// ERROR: Unresolved reference: s
fun foo() {
val x = <caret>bar(s) // s not definded, can't be inferred
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = <caret>bar("1", 1, 2, "x")
}
fun bar<T, V, R, K>(t: T, v: V, r: R, k: K): Int = 2
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = <caret>bar<String, Int, Int, String>("1", 1, 2, "x")
}
fun bar<T, V, R, K>(t: T, v: V, r: R, k: K): Int = 2
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = <caret>bar("1", 1, 2, "x")
}
fun bar<R, K, T, V>(t: T, v: V, r: R, k: K): Int = 2
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = <caret>bar<Int, String, String, Int>("1", 1, 2, "x")
}
fun bar<R, K, T, V>(t: T, v: V, r: R, k: K): Int = 2
@@ -0,0 +1,10 @@
// IS_APPLICABLE: true
class Array
fun test() {
<caret>bar(foo(""), 0, foo(""))
}
fun foo(vararg x: String) = x
fun bar<T, R, V>(t: T, r: R, v: V) {}
@@ -0,0 +1,10 @@
// IS_APPLICABLE: true
class Array
fun test() {
bar<kotlin.Array<String>, Int, kotlin.Array<String>>(foo(""), 0, foo(""))
}
fun foo(vararg x: String) = x
fun bar<T, R, V>(t: T, r: R, v: V) {}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val x = <caret>bar("x", 0)
}
fun bar<T, V>(t: T, v: V): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val x = bar<String, Int>("x", 0)
}
fun bar<T, V>(t: T, v: V): Int = 1
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = <caret>Box(Any())
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = Box<Any>(Any())
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
<caret>bar({ 2 * it }: (Int) -> Int)
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
bar<(Int) -> Int>({ 2 * it }: (Int) -> Int)
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo<T>(t: T) {
<caret>bar(t)
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo<T>(t: T) {
bar<T>(t)
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,10 @@
// IS_APPLICABLE: true
class Array
fun test() {
<caret>bar(foo(""))
}
fun foo(vararg x: String) = x
fun bar<T>(vararg ts: T) {}
@@ -0,0 +1,10 @@
// IS_APPLICABLE: true
class Array
fun test() {
bar<kotlin.Array<String>>(foo(""))
}
fun foo(vararg x: String) = x
fun bar<T>(vararg ts: T) {}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = <caret>bar { it * 2 }
}
fun bar<T>(a: (Int)->T): T = a(1)
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
val z = bar<Int> { it * 2 }
}
fun bar<T>(a: (Int)->T): T = a(1)
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = <caret>Box(Box("x"))
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = Box<Box<String>>(Box("x"))
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
<caret>bar(1, 2, 3, 4)
}
fun bar<T>(vararg ts: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
bar<Int>(1, 2, 3, 4)
}
fun bar<T>(vararg ts: T): Int = 1
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = <caret>Box("x")
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: true
fun foo() {
val x = Box<String>("x")
}
class Box<T>(t : T) {
var value = t
}
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
<caret>bar("x")
}
fun bar<T>(t: T): Int = 1
@@ -0,0 +1,6 @@
// IS_APPLICABLE: true
fun foo() {
bar<String>("x")
}
fun bar<T>(t: T): Int = 1