Added tests for argument mapping

This commit is contained in:
Svetlana Isakova
2014-05-05 11:27:12 +04:00
parent 8dc932fc50
commit 857aa76cff
23 changed files with 451 additions and 9 deletions
@@ -0,0 +1,12 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentMatch(t : Int, SUCCESS)
// !ARG_2: ArgumentMatch(f : (Int) -> String, SUCCESS)
// !ARG_3: ArgumentMatch(g : (String) -> Int, SUCCESS)
fun <T, S, R> foo(t: T, f: (T) -> S, g: (S) -> R) {}
fun test() {
foo(1, { x -> "$x"}, { y -> y.length })
}
@@ -0,0 +1,10 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentMatch(f : () -> ???, SUCCESS)
fun <T> foo(f: () -> T) {}
fun test() {
foo { b }
}
@@ -0,0 +1,10 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentMatch(f : (???) -> String, SUCCESS)
fun <T> foo(f: (T) -> String) {}
fun test() {
foo { x -> "$x"}
}
@@ -0,0 +1,10 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentMatch(f : (Int) -> String, SUCCESS)
fun <T> foo(f: (T) -> String) {}
fun test() {
foo { (x: Int) -> "$x"}
}
@@ -0,0 +1,10 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentMatch(f : (Int) -> String, SUCCESS)
fun foo(f: (Int) -> String) {}
fun test() {
foo { x -> "$x"}
}
@@ -0,0 +1,9 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: ArgumentUnmapped
fun foo() {}
fun test() {
foo { x -> "$x"}
}
@@ -0,0 +1,12 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: 11 = ArgumentMatch(t : Comparable<out Any?>, SUCCESS)
// !ARG_2: ls = ArgumentMatch(l : List<Comparable<out Any?>>, SUCCESS)
fun <T> foo(t: T, l: List<T>) {}
fun use(vararg a: Any?) = a
fun test(a: Any, ls: List<String>) {
use(foo(11, ls))
}
@@ -0,0 +1,11 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: A() = ArgumentMatch(t : A, SUCCESS)
class A {}
fun <T> foo(t: T) {}
fun bar() {
foo(A())
}
@@ -0,0 +1,12 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: 11 = ArgumentMatch(t : ???, SUCCESS)
// !ARG_2: ls = ArgumentMatch(l : MutableList<???>, SUCCESS)
fun <T> foo(t: T, l: MutableList<T>) {}
fun use(vararg a: Any?) = a
fun test(ls: MutableList<String>) {
use(foo(11, ls))
}
@@ -0,0 +1,9 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: 11 = ArgumentMatch(l : List<???>, TYPE_MISMATCH)
fun <T> foo(l: List<T>) {}
fun test() {
foo(11)
}
@@ -0,0 +1,13 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: B() = ArgumentMatch(b : B, SUCCESS)
// !ARG_2: A() = ArgumentUnmapped
class A {}
class B {}
fun foo(a: A, b: B) {}
fun bar() {
foo(b = B(), A())
}
@@ -0,0 +1,13 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: B() = ArgumentMatch(b : B, SUCCESS)
// !ARG_2: A() = ArgumentMatch(a : A, SUCCESS)
class A {}
class B {}
fun foo(a: A, b: B) {}
fun bar() {
foo(b = B(), a = A())
}
@@ -0,0 +1,11 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: b = ArgumentMatch(a : A, ARGUMENT_HAS_NO_TYPE)
class A {}
fun foo(a: A) {}
fun bar() {
foo(b)
}
@@ -0,0 +1,11 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: A() = ArgumentMatch(a : A, SUCCESS)
class A {}
fun foo(a: A) {}
fun bar() {
foo(A())
}
@@ -0,0 +1,11 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: "" = ArgumentMatch(a : A, TYPE_MISMATCH)
class A {}
fun foo(a: A) {}
fun bar() {
foo("")
}
@@ -0,0 +1,9 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: "" = ArgumentUnmapped
fun foo() {}
fun bar() {
foo("")
}
@@ -0,0 +1,13 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: emptyList() = ArgumentMatch(t : List<???>, SUCCESS)
class A {}
fun <T> foo(t: T) {}
fun <T> emptyList(): List<T> = throw Exception()
fun bar() {
foo(emptyList())
}
@@ -0,0 +1,13 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: emptyList() = ArgumentMatch(t : MutableList<???>, SUCCESS)
class A {}
fun <T> foo(t: T) {}
fun <T> emptyList(): MutableList<T> = throw Exception()
fun bar() {
foo(emptyList())
}
@@ -0,0 +1,14 @@
// !ONLY_ARGUMENTS
// !CALL: foo
// !ARG_1: A() = ArgumentMatch(a : A, SUCCESS)
// !ARG_2: "" = ArgumentMatch(s : String, SUCCESS)
class A {}
fun foo(a: A) {}
fun foo(a: A, s: String) {}
fun foo(a: A, any: Any) {}
fun bar() {
foo(A(), "")
}