Tests, messages and infra for deprecated symbol reporting

This commit is contained in:
Ilya Ryzhenkov
2015-03-16 23:04:37 +03:00
parent c8920b8158
commit 288e1baa87
55 changed files with 773 additions and 83 deletions
@@ -1,10 +1,10 @@
annotation class Ann(val i: IntArray)
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(intArray(i2))
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArray(<!TYPE_MISMATCH!>intArray(i, i2, i3)<!>))
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(intArrayOf(i2))
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(intArrayOf(<!TYPE_MISMATCH!>intArrayOf(i, i2, i3)<!>))
class Test
var i = 1
@@ -14,13 +14,13 @@ val i3 = foo()
fun foo(): Int = 1
annotation class AnnJC(val i: Array<Class<*>>)
AnnJC(array(javaClass<Test>()))
AnnJC(array(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
AnnJC(arrayOf(javaClass<Test>()))
AnnJC(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
class TestJC
val iJC = javaClass<Test>()
annotation class AnnAnn(val i: Array<Ann>)
AnnAnn(array(Ann(intArray(1))))
AnnAnn(array(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
AnnAnn(arrayOf(Ann(intArrayOf(1))))
AnnAnn(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
class TestAnn
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(intArray(1))<!>
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(intArrayOf(1))<!>
@@ -21,7 +21,7 @@ class MyClass {
val i = 1
}
val ia: IntArray = intArray(1, 2)
val sa: Array<String> = array("a", "b")
val ia: IntArray = intArrayOf(1, 2)
val sa: Array<String> = arrayOf("a", "b")
annotation class Ann2
@@ -4,10 +4,10 @@ Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
Ann(i2)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(*intArray(i2))
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
Ann(*intArrayOf(i2))
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
class Test
var i = 1
@@ -17,13 +17,13 @@ val i3 = foo()
fun foo(): Int = 1
annotation class AnnJC(vararg val i: Class<*>)
AnnJC(*array(javaClass<Test>()))
AnnJC(*array(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
AnnJC(*arrayOf(javaClass<Test>()))
AnnJC(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
class TestJC
val iJC = javaClass<Test>()
annotation class AnnAnn(vararg val i: Ann)
AnnAnn(*array(Ann(1)))
AnnAnn(*array(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
AnnAnn(*arrayOf(Ann(1)))
AnnAnn(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
class TestAnn
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(1)<!>
@@ -7,20 +7,20 @@ public @interface A {
// FILE: b.kt
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>,
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>,
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
class MyClass1
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>, <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>)
class MyClass2
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
class MyClass3
A class MyClass4
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>,
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<Int>(), javaClass<Any>())<!>,
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
class MyClass5
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>)
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<Int>(), javaClass<Any>())<!>)
class MyClass6
@@ -10,13 +10,13 @@ public @interface A {
[A("4", y = 2)] fun test2() {}
[A(*array("5", "6"), "7", y = 3)] fun test3() {}
[A(*arrayOf("5", "6"), "7", y = 3)] fun test3() {}
[A("1", "2", "3", x = String::class, y = 4)] fun test4() {}
[A("4", y = 5)] fun test5() {}
[A(*array("5", "6"), "7", x = Any::class, y = 6)] fun test6() {}
[A(*arrayOf("5", "6"), "7", x = Any::class, y = 6)] fun test6() {}
[A(y = 7)] fun test7() {}
@@ -10,18 +10,18 @@ public @interface A {
[A("4")] fun test2() {}
[A(*array("5", "6"), "7")] fun test3() {}
[A(*arrayOf("5", "6"), "7")] fun test3() {}
[A("1", "2", "3", x = String::class)] fun test4() {}
[A("4", y = 2)] fun test5() {}
[A(*array("5", "6"), "7", x = Any::class, y = 3)] fun test6() {}
[A(*arrayOf("5", "6"), "7", x = Any::class, y = 3)] fun test6() {}
[A()] fun test7() {}
[A] fun test8() {}
[A(x = Any::class, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>*array("5", "6")<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test9() {}
[A(x = Any::class, value = *array("5", "6"), <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test10() {}
[A(x = Any::class, value = *array("5", "6", "7"), y = 3)] fun test11() {}
[A(x = Any::class, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>*arrayOf("5", "6")<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test9() {}
[A(x = Any::class, value = *arrayOf("5", "6"), <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test10() {}
[A(x = Any::class, value = *arrayOf("5", "6", "7"), y = 3)] fun test11() {}
@@ -8,7 +8,7 @@ public @interface A {
[A("4")] fun test2() {}
[A(*array("5", "6"), "7")] fun test3() {}
[A(*arrayOf("5", "6"), "7")] fun test3() {}
[A()] fun test4() {}
@@ -8,7 +8,7 @@ public @interface A {
[A("4")] fun test2() {}
[A(*array("5", "6"), "7")] fun test3() {}
[A(*arrayOf("5", "6"), "7")] fun test3() {}
[A()] fun test4() {}
@@ -4,6 +4,6 @@ public @interface A {
}
// FILE: b.kt
[A(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>array<!>(1, "b"))]
[A(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>arrayOf<!>(1, "b"))]
fun test() {
}
@@ -1,5 +1,5 @@
annotation class B(vararg val args: String)
[B(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>array<!>(1, "b"))]
[B(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>arrayOf<!>(1, "b"))]
fun test() {
}
@@ -6,7 +6,7 @@ public @interface A {
// FILE: b.kt
A(arg = array(javaClass<String>(), javaClass<Int>())) class MyClass1
A(arg = arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass1
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(javaClass<String>(), Int::class)) class MyClass2
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(String::class, javaClass<Int>())) class MyClass3
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(javaClass<String>(), Int::class)) class MyClass2
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(String::class, javaClass<Int>())) class MyClass3
@@ -7,9 +7,9 @@ public @interface A {
// FILE: b.kt
A(javaClass<String>(), javaClass<Int>()) class MyClass1
A(*array(javaClass<String>(), javaClass<Int>())) class MyClass2
A(*arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass2
A(value = *array(javaClass<String>(), javaClass<Int>())) class MyClass3
A(value = *arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass3
A(<!TYPE_MISMATCH!>javaClass<String>()<!>, Int::class) class MyClass4
A(String::class, <!TYPE_MISMATCH!>javaClass<Int>()<!>) class MyClass5
@@ -4,4 +4,4 @@ public @interface A {
}
// FILE: b.kt
A(arg = array(String::class, Int::class)) class MyClass
A(arg = arrayOf(String::class, Int::class)) class MyClass
@@ -5,5 +5,5 @@ public @interface A {
// FILE: b.kt
A(String::class, Int::class) class MyClass1
A(*array(String::class, Int::class)) class MyClass2
A(value = *array(String::class, Int::class)) class MyClass3
A(*arrayOf(String::class, Int::class)) class MyClass2
A(value = *arrayOf(String::class, Int::class)) class MyClass3
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: Array<KClass<in A>>)
Ann1(array(A::class))
Ann1(arrayOf(A::class))
class MyClass1
Ann1(array(Any::class))
Ann1(arrayOf(Any::class))
class MyClass1a
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B1::class))
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<in B1>>)
Ann2(array(A::class))
Ann2(arrayOf(A::class))
class MyClass3
Ann2(array(B1::class))
Ann2(arrayOf(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
class MyClass5
@@ -6,22 +6,22 @@ class B2 : A()
annotation class Ann1(val arg: Array<KClass<out A>>)
Ann1(array(A::class))
Ann1(arrayOf(A::class))
class MyClass1
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(Any::class))
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(Any::class))
class MyClass1a
Ann1(array(B1::class))
Ann1(arrayOf(B1::class))
class MyClass2
annotation class Ann2(val arg: Array<KClass<out B1>>)
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(A::class))
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(A::class))
class MyClass3
Ann2(array(B1::class))
Ann2(arrayOf(B1::class))
class MyClass4
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
class MyClass5
@@ -9,7 +9,7 @@ class A2
Ann1(A1::class)
Ann2(A1::class, A2::class)
Ann3(array(A1::class, A2::class))
Ann3(arrayOf(A1::class, A2::class))
class MyClass1
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>A3<!>::class<!>)
@@ -14,7 +14,7 @@ ann3(a.b.c.A.IAnn())
annJavaClass(kotlin.javaClass<A>())
annArray(kotlin.array("a"))
annArray(kotlin.arrayOf("a"))
fun test() = 1
annotation class ann1(val p: deprecated = kotlin.deprecated("aaa"))
@@ -23,7 +23,7 @@ annotation class ann3(val p: A.IAnn = A.IAnn(), val p2: A.IAnn = a.b.c.A.IAnn())
annotation class annJavaClass(val p: Class<*> = kotlin.javaClass<A>())
annotation class annArray(val p: Array<String> = kotlin.array("a"))
annotation class annArray(val p: Array<String> = kotlin.arrayOf("a"))
class A {
annotation class IAnn