[TD] Update diagnostics test data due to new test runners

Update includes:
- Changing syntax of `OI/`NI` tags from `<!NI;TAG!>` to `<!TAG{NI}!>`
- Fix some incorrect directives
- Change order of diagnostics in some places
- Remove ignored diagnostics from FIR test data (previously `DIAGNOSTICS` didn't work)
- Update FIR dumps in some places and add `FIR_IDENTICAL` if needed
- Replace all JAVAC_SKIP with SKIP_JAVAC directive
This commit is contained in:
Dmitriy Novozhilov
2020-12-07 10:08:56 +03:00
parent 1d04fecd29
commit e6b5cb5216
1823 changed files with 3014 additions and 2662 deletions
+3 -3
View File
@@ -4,7 +4,7 @@
class Test {
private val y = object {
val a = <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>y<!>;
val a = <!DEBUG_INFO_MISSING_UNRESOLVED{NI}, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE{OI}!>y<!>;
}
val z = y.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>;
@@ -18,12 +18,12 @@ object A {
class Test2 {
private val a = object {
init {
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, UNINITIALIZED_VARIABLE!>b<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, UNINITIALIZED_VARIABLE!>b<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>+<!> 1
}
val x = <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, UNINITIALIZED_VARIABLE!>b<!>
val y = 1
}
val b = <!NI;TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>.<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!><!>
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM{NI}!><!DEBUG_INFO_MISSING_UNRESOLVED{NI}, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM{OI}!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>x<!><!>
val c = a.y
}
@@ -19,4 +19,4 @@ fun <T> fout(expression : T) : Out<out T> = Out<T>()
fun fooout() : Out<Point> {
val p = Point();
return fout<Point>(p);
}
}
@@ -9,7 +9,7 @@ fun <T> f(<!UNUSED_PARAMETER!>expression<!> : T) : G<out T> = G<T>()
fun foo() : G<Point> {
val p = Point()
return <!NI;TYPE_MISMATCH, TYPE_MISMATCH!>f<Point>(p)<!>
return <!TYPE_MISMATCH{NI}, TYPE_MISMATCH!>f<Point>(p)<!>
}
class Out<out T>() {}
@@ -19,4 +19,4 @@ fun <T> fout(<!UNUSED_PARAMETER!>expression<!> : T) : Out<<!REDUNDANT_PROJECTION
fun fooout() : Out<Point> {
val p = Point();
return fout<Point>(p);
}
}
@@ -2,7 +2,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun test(a: Int, b: Boolean) {
<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!>(a.<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>foo<!>(<!NI;TYPE_MISMATCH, TYPE_MISMATCH!>b<!>))
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>bar<!>(a.<!TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR{OI}!>foo<!>(<!TYPE_MISMATCH{NI}, TYPE_MISMATCH!>b<!>))
}
fun <T, R> T.foo(l: (T) -> R): R = TODO()
+2 -2
View File
@@ -4,7 +4,7 @@ fun <T> g(x: T) = 1
fun h(x: () -> Unit) = 1
fun foo() {
<!UNRESOLVED_REFERENCE!>f<!>(::<!NI;DEBUG_INFO_MISSING_UNRESOLVED, SYNTAX!><!>)
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>g<!>(::<!SYNTAX!><!>)
<!UNRESOLVED_REFERENCE!>f<!>(::<!DEBUG_INFO_MISSING_UNRESOLVED{NI}, SYNTAX!><!>)
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>g<!>(::<!SYNTAX!><!>)
h(::<!SYNTAX!><!>)
}
@@ -1,5 +1,5 @@
// !WITH_NEW_INFERENCE
fun bar() {
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> foo() {}
<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>foo<!>()
}
+2 -2
View File
@@ -4,9 +4,9 @@ private fun doUpdateRegularTasks() {
try {
while (f) {
val xmlText = <!UNRESOLVED_REFERENCE!>getText<!>()
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>==<!> null) {}
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>==<!> null) {}
else {
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!>.<!NI;DEBUG_INFO_MISSING_UNRESOLVED, NI;VARIABLE_EXPECTED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>value<!> = 0 // !!!
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}, VARIABLE_EXPECTED{NI}!>value<!> = 0 // !!!
}
}
+3 -3
View File
@@ -1,8 +1,8 @@
// !WITH_NEW_INFERENCE
// NI_EXPECTED_FILE
// See EA-76890 / KT-10843: NPE during analysis
fun lambda(x : Int?) = x?.<!FUNCTION_CALL_EXPECTED, NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>let<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>l<!> {
<!OI;CANNOT_INFER_PARAMETER_TYPE!>y<!> ->
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>><!> 0) return<!UNRESOLVED_REFERENCE!>@l<!> x
fun lambda(x : Int?) = x?.<!FUNCTION_CALL_EXPECTED, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, NO_VALUE_FOR_PARAMETER, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>let<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>l<!> {
<!CANNOT_INFER_PARAMETER_TYPE{OI}!>y<!> ->
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>><!> 0) return<!UNRESOLVED_REFERENCE!>@l<!> x
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!>
}<!NOT_NULL_ASSERTION_ON_LAMBDA_EXPRESSION!>!!<!>
@@ -23,4 +23,4 @@ fun test(foo: Foo<*>, g: Bar<*>) {
fun main() {
val foo = Foo(BarR())
test(foo, MyBar(2))
}
}
+2 -2
View File
@@ -17,10 +17,10 @@ class Foo<F : Bar<F>>(val f: F)
fun <T> id(t1: T, t2: T) = t2
fun test(foo: Foo<*>, g: Bar<*>) {
<!OI;TYPE_MISMATCH!><!OI;TYPE_MISMATCH!>id(foo.f, g)<!>.t<!>.<!NI;UNRESOLVED_REFERENCE!>t<!>
<!TYPE_MISMATCH{OI}!><!TYPE_MISMATCH{OI}!>id(foo.f, g)<!>.t<!>.<!UNRESOLVED_REFERENCE{NI}!>t<!>
}
fun main() {
val foo = Foo(BarR())
test(foo, MyBar(2))
}
}
@@ -17,4 +17,4 @@ fun f(b: B<*, Any>) {
fun main() {
f(C("hello"))
f(C(null))
}
}
+4 -4
View File
@@ -8,13 +8,13 @@ interface B<T : S?, S : Any> {
class C(override val t: Any?) : B<Any?, Any>
fun f(b: B<*, Any>) {
val y = <!OI;TYPE_MISMATCH!>b<!>.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>t<!>
if (<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!> is String<!OI;USELESS_NULLABLE_CHECK!>?<!>) {
<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, OI;DEBUG_INFO_SMARTCAST!>y<!>.<!NI;DEBUG_INFO_MISSING_UNRESOLVED!>length<!>
val y = <!TYPE_MISMATCH{OI}!>b<!>.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>t<!>
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{NI}!>y<!> is String<!USELESS_NULLABLE_CHECK{OI}!>?<!>) {
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{NI}, DEBUG_INFO_SMARTCAST{OI}!>y<!>.<!DEBUG_INFO_MISSING_UNRESOLVED{NI}!>length<!>
}
}
fun main() {
f(C("hello"))
f(C(null))
}
}
+2 -2
View File
@@ -2,6 +2,6 @@
// !DIAGNOSTICS: -UNREACHABLE_CODE
fun foo() {
val <!OI;UNUSED_VARIABLE!>text<!>: List<Any> = null!!
text.<!UNRESOLVED_REFERENCE!>map<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>Any<!><!SYNTAX!>?<!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>toString<!>
val <!UNUSED_VARIABLE{OI}!>text<!>: List<Any> = null!!
text.<!UNRESOLVED_REFERENCE!>map<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE{OI}, DEBUG_INFO_MISSING_UNRESOLVED{NI}!>Any<!><!SYNTAX!>?<!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>toString<!>
}
@@ -19,7 +19,7 @@ class C {
fun p() : Resource? = null
fun bar() {
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo<!>(<!NI;TYPE_MISMATCH!>p()<!>) {
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED{OI}!>foo<!>(<!TYPE_MISMATCH{NI}!>p()<!>) {
}
}
@@ -12,4 +12,4 @@ fun <T> Array<out T>.asIterable(): Iterable<T> = TODO()
fun testFrontend() {
val bar = Bar()
foo(bar)
}
}
+2 -2
View File
@@ -5,11 +5,11 @@ class Bar {
val a: Array<String>? = null
}
fun foo(bar: Bar) = bar.a?.asIterable() ?: <!OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!><!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>emptyArray<!>()<!>
fun foo(bar: Bar) = bar.a?.asIterable() ?: <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH{OI}!><!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}!>emptyArray<!>()<!>
fun <T> Array<out T>.asIterable(): Iterable<T> = TODO()
fun testFrontend() {
val bar = Bar()
foo(bar)
}
}
+1 -1
View File
@@ -6,7 +6,7 @@ class A() {
field = <!TYPE_MISMATCH!>value<!>
}
val y: Int
get(): <!WRONG_GETTER_RETURN_TYPE("Int", "String")!>String<!> = "s"
get(): <!WRONG_GETTER_RETURN_TYPE("Int; String")!>String<!> = "s"
val z: Int
get() {
return <!TYPE_MISMATCH!>"s"<!>
@@ -7,4 +7,4 @@ fun <T> Array<out T>.safeGet(index : Int) : T? {
val args : Array<String> = Array<String>(1, {""})
val name : String = args.safeGet<String>(0) // No error, must be type mismatch
val name1 : String? = args.safeGet(0)
val name1 : String? = args.safeGet(0)
+2 -2
View File
@@ -6,5 +6,5 @@ fun <T> Array<out T>.safeGet(index : Int) : T? {
}
val args : Array<String> = Array<String>(1, {""})
val name : String = <!TYPE_MISMATCH!>args.<!NI;TYPE_MISMATCH!>safeGet<String>(0)<!><!> // No error, must be type mismatch
val name1 : String? = args.safeGet(0)
val name : String = <!TYPE_MISMATCH!>args.<!TYPE_MISMATCH{NI}!>safeGet<String>(0)<!><!> // No error, must be type mismatch
val name1 : String? = args.safeGet(0)
+3 -3
View File
@@ -12,14 +12,14 @@ fun bar2() = {
//properties
//in a class
class A() {
val x = { <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED{NI}, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE{OI}!>x<!> }
}
//in a package
val x = { <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED{NI}, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE{OI}!>x<!> }
//KT-787 AssertionError on code 'val x = x'
val z = <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>z<!>
val z = <!DEBUG_INFO_MISSING_UNRESOLVED{NI}, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE{OI}!>z<!>
//KT-329 Assertion failure on local function
fun block(f : () -> Unit) = f()
+2 -2
View File
@@ -13,7 +13,7 @@ fun foo(a: A) {
val <!UNUSED_VARIABLE!>u<!>: Unit = a.gen() // Unit should be inferred
if (true) {
a.<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>gen<!>() // Shouldn't work: no info for inference
a.<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>gen<!>() // Shouldn't work: no info for inference
}
val <!UNUSED_VARIABLE!>b<!> : () -> Unit = {
@@ -29,5 +29,5 @@ fun foo(a: A) {
a.gen() //type mismatch, but Int can be derived
}
a.<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>gen<!>() // Shouldn't work: no info for inference
a.<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER{NI}, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER{OI}!>gen<!>() // Shouldn't work: no info for inference
}
@@ -7,3 +7,4 @@ fun <K> select(x: K, y: K): K = x
fun test() {
foo { select("non-null", null) } // inferred String? but String is expected
}
+1 -1
View File
@@ -8,5 +8,5 @@ fun Array<String>.length() : Int {
}
fun test(array : Array<String?>?) {
<!OI;TYPE_MISMATCH!>array?.sure<Array<String?>>()<!>.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>length<!>()
<!TYPE_MISMATCH{OI}!>array?.sure<Array<String?>>()<!>.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER{NI}!>length<!>()
}
+1 -1
View File
@@ -14,4 +14,4 @@ public class Throwables() {
propagateIfInstanceOf(throwable, getJavaClass<RuntimeException?>()) // Type inference failed: Mismatch while expanding constraints
}
}
}
}
+1 -1
View File
@@ -25,4 +25,4 @@ interface IFoo2 {
fun test2(foo: Foo) {
foo as IFoo2
foo.<!OVERLOAD_RESOLUTION_AMBIGUITY!>bar<!>() // should be ambiguity
}
}