Add diagnostics to test data from NI
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
class Test {
|
||||
private val y = object {
|
||||
val a = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE!>y<!>;
|
||||
val a = <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>y<!>;
|
||||
}
|
||||
|
||||
val z = y.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>;
|
||||
@@ -23,6 +23,6 @@ class Test2 {
|
||||
val y = 1
|
||||
}
|
||||
|
||||
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!>
|
||||
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 c = a.y
|
||||
}
|
||||
@@ -9,7 +9,7 @@ fun <T> f(<!UNUSED_PARAMETER!>expression<!> : T) : G<out T> = G<T>()
|
||||
|
||||
fun foo() : G<Point> {
|
||||
val p = Point()
|
||||
return <!TYPE_MISMATCH!>f<Point>(p)<!>
|
||||
return <!NI;TYPE_MISMATCH, TYPE_MISMATCH!>f<Point>(p)<!>
|
||||
}
|
||||
|
||||
class Out<out T>() {}
|
||||
@@ -18,5 +18,5 @@ fun <T> fout(<!UNUSED_PARAMETER!>expression<!> : T) : Out<<!REDUNDANT_PROJECTION
|
||||
|
||||
fun fooout() : Out<Point> {
|
||||
val p = Point();
|
||||
return fout<Point>(p);
|
||||
return <!NI;TYPE_MISMATCH!>fout<Point>(p)<!>;
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
fun main(args : Array<String>) {
|
||||
val a : Int? = null;
|
||||
var v = 1
|
||||
val <!UNUSED_VARIABLE!>b<!> : String = <!TYPE_MISMATCH!>v<!>;
|
||||
val <!UNUSED_VARIABLE!>b<!> : String = <!NI;TYPE_MISMATCH, TYPE_MISMATCH!>v<!>;
|
||||
val <!UNUSED_VARIABLE!>f<!> : String = <!TYPE_MISMATCH!>a<!>!!;
|
||||
val <!UNUSED_VARIABLE!>g<!> : String = <!TYPE_MISMATCH!>v++<!>;
|
||||
val <!UNUSED_VARIABLE!>g1<!> : String = <!TYPE_MISMATCH!>++v<!>;
|
||||
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
fun test(a: Int, b: Boolean) {
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!>(a.<!TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>foo<!>(<!TYPE_MISMATCH!>b<!>))
|
||||
<!NI;UNREACHABLE_CODE!><!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!>(<!>a.<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>foo<!>(<!TYPE_MISMATCH!>b<!>)<!NI;UNREACHABLE_CODE!>)<!>
|
||||
}
|
||||
|
||||
fun <T, R> T.foo(l: (T) -> R): R = TODO()
|
||||
|
||||
@@ -4,7 +4,7 @@ fun <T> g(x: T) = 1
|
||||
fun h(x: () -> Unit) = 1
|
||||
|
||||
fun foo() {
|
||||
<!UNRESOLVED_REFERENCE!>f<!>(::<!SYNTAX!><!>)
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>g<!>(::<!SYNTAX!><!>)
|
||||
h(::<!SYNTAX!><!>)
|
||||
<!UNRESOLVED_REFERENCE!>f<!>(::<!NI;DEBUG_INFO_MISSING_UNRESOLVED, SYNTAX!><!>)
|
||||
<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>g<!>(::<!NI;DEBUG_INFO_MISSING_UNRESOLVED, SYNTAX!><!>)
|
||||
h(::<!NI;DEBUG_INFO_MISSING_UNRESOLVED, SYNTAX!><!>)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
fun bar() {
|
||||
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> foo() {}
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()
|
||||
<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ private fun doUpdateRegularTasks() {
|
||||
try {
|
||||
while (f) {
|
||||
val xmlText = <!UNRESOLVED_REFERENCE!>getText<!>()
|
||||
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>==<!> null) {}
|
||||
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!> <!NI;RESULT_TYPE_MISMATCH, DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>==<!> null) {}
|
||||
else {
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>xmlText<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>value<!> = 0 // !!!
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// See EA-76890 / KT-10843: NPE during analysis
|
||||
fun lambda(x : Int?) = x?.<!NO_VALUE_FOR_PARAMETER, TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER, FUNCTION_CALL_EXPECTED!>let<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>l<!> {
|
||||
<!CANNOT_INFER_PARAMETER_TYPE!>y<!> ->
|
||||
if (<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>><!> 0) return<!UNRESOLVED_REFERENCE!>@l<!> x
|
||||
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!>
|
||||
fun lambda(x : Int?) = x?.<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER, FUNCTION_CALL_EXPECTED, NO_VALUE_FOR_PARAMETER!>let<!> <!NI;UNRESOLVED_REFERENCE, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>l<!> {
|
||||
<!OI;CANNOT_INFER_PARAMETER_TYPE!>y<!> ->
|
||||
if (<!OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!> <!NI;UNREACHABLE_CODE!><!NI;UNRESOLVED_REFERENCE, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>><!> 0<!>) <!NI;UNREACHABLE_CODE!>return<!UNRESOLVED_REFERENCE!>@l<!> x<!>
|
||||
<!NI;UNREACHABLE_CODE, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>y<!>
|
||||
}<!NOT_NULL_ASSERTION_ON_LAMBDA_EXPRESSION!>!!<!>
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
// !DIAGNOSTICS: -UNREACHABLE_CODE
|
||||
|
||||
fun foo() {
|
||||
val <!UNUSED_VARIABLE!>text<!>: List<Any> = null!!
|
||||
val <!OI;UNUSED_VARIABLE!>text<!>: List<Any> = null!!
|
||||
text.<!UNRESOLVED_REFERENCE!>map<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>Any<!><!SYNTAX!>?<!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>toString<!>
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ class C {
|
||||
fun p() : Resource? = null
|
||||
|
||||
fun bar() {
|
||||
<!TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo<!>(p()) {
|
||||
<!OI;TYPE_INFERENCE_UPPER_BOUND_VIOLATED!>foo<!>(<!NI;TYPE_MISMATCH!>p()<!>) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ class A() {
|
||||
var x: Int = 0
|
||||
get() = <!TYPE_MISMATCH!>"s"<!>
|
||||
set(value: <!WRONG_SETTER_PARAMETER_TYPE!>String<!>) {
|
||||
field = <!TYPE_MISMATCH!>value<!>
|
||||
field = <!NI;TYPE_MISMATCH, TYPE_MISMATCH!>value<!>
|
||||
}
|
||||
val y: Int
|
||||
get(): <!WRONG_GETTER_RETURN_TYPE(Int; String)!>String<!> = "s"
|
||||
@@ -28,7 +28,7 @@ class A() {
|
||||
}
|
||||
val e = 1
|
||||
get(): <!WRONG_GETTER_RETURN_TYPE!>String<!> {
|
||||
return <!TYPE_MISMATCH!>field<!>
|
||||
return <!NI;TYPE_MISMATCH, TYPE_MISMATCH!>field<!>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,8 +12,8 @@ operator fun Int?.contains(<!UNUSED_PARAMETER!>x<!> : Int) : Boolean = false
|
||||
fun f(): Unit {
|
||||
var set : Set? = null
|
||||
val i : Int? = null
|
||||
i <!UNSAFE_OPERATOR_CALL!>+<!> 1
|
||||
i <!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER, OI;UNSAFE_OPERATOR_CALL!>+<!> 1
|
||||
set + 1
|
||||
1 <!UNSAFE_OPERATOR_CALL!>in<!> set
|
||||
1 <!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER, OI;UNSAFE_OPERATOR_CALL!>in<!> set
|
||||
1 in 2
|
||||
}
|
||||
|
||||
@@ -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.safeGet<String>(0)<!> // No error, must be type mismatch
|
||||
val name : String = <!TYPE_MISMATCH!>args.<!NI;TYPE_MISMATCH!>safeGet<String>(0)<!><!> // No error, must be type mismatch
|
||||
val name1 : String? = args.safeGet(0)
|
||||
@@ -2,28 +2,28 @@
|
||||
//KT-328 Local function in function literals cause exceptions
|
||||
|
||||
fun bar1() = {
|
||||
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar1()<!>
|
||||
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!NI;DEBUG_INFO_MISSING_UNRESOLVED!>bar1<!>()<!>
|
||||
}
|
||||
|
||||
fun bar2() = {
|
||||
fun foo2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar2()<!>
|
||||
fun foo2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!NI;DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
|
||||
}
|
||||
|
||||
//properties
|
||||
//in a class
|
||||
class A() {
|
||||
val x = { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE!>x<!> }
|
||||
val x = { <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
|
||||
}
|
||||
|
||||
//in a package
|
||||
val x = { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE!>x<!> }
|
||||
val x = { <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
|
||||
|
||||
//KT-787 AssertionError on code 'val x = x'
|
||||
val z = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM, UNINITIALIZED_VARIABLE!>z<!>
|
||||
val z = <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNINITIALIZED_VARIABLE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>z<!>
|
||||
|
||||
//KT-329 Assertion failure on local function
|
||||
fun block(f : () -> Unit) = f()
|
||||
|
||||
fun bar3() = block{ <!UNRESOLVED_REFERENCE!>foo3<!>() // <-- missing closing curly bracket
|
||||
fun foo3() = block{ <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar3()<!> }<!SYNTAX!><!>
|
||||
fun foo3() = block{ <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!NI;DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!>()<!> }<!SYNTAX!><!>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class A() {
|
||||
|
||||
//more tests
|
||||
val g : () -> Unit = { <!UNUSED_EXPRESSION!>42<!> }
|
||||
val gFunction : () -> Unit = <!TYPE_MISMATCH!>fun(): Int = 1<!>
|
||||
val gFunction : () -> Unit = <!OI;TYPE_MISMATCH!>fun(): Int = 1<!>
|
||||
|
||||
val h : () -> Unit = { doSmth() }
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ fun foo(a: A) {
|
||||
val <!UNUSED_VARIABLE!>u<!>: Unit = a.gen() // Unit should be inferred
|
||||
|
||||
if (true) {
|
||||
a.<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>gen<!>() // Shouldn't work: no info for inference
|
||||
a.<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>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.<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>gen<!>() // Shouldn't work: no info for inference
|
||||
a.<!OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>gen<!>() // Shouldn't work: no info for inference
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class Outer {
|
||||
fun Activity.toast() = Unit
|
||||
class Activity(){
|
||||
class Fragment{
|
||||
fun call() = <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>toast<!>()
|
||||
fun call() = <!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, UNRESOLVED_REFERENCE_WRONG_RECEIVER!>toast<!>()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Manager {
|
||||
|
||||
class Task(val callback: Manager.() -> Unit) : Runnable {
|
||||
override public fun run() {
|
||||
callback(<!NO_VALUE_FOR_PARAMETER!>)<!> // Manager is not accessible here, but no error is shown
|
||||
<!NI;DEBUG_INFO_MISSING_UNRESOLVED!><!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>callback<!>(<!OI;NO_VALUE_FOR_PARAMETER!>)<!><!> // Manager is not accessible here, but no error is shown
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,5 +8,5 @@ fun Array<String>.length() : Int {
|
||||
}
|
||||
|
||||
fun test(array : Array<String?>?) {
|
||||
<!TYPE_MISMATCH!>array?.sure<Array<String?>>()<!>.length()
|
||||
<!OI;TYPE_MISMATCH!>array?.sure<Array<String?>>()<!>.<!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>length<!>()
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ fun <T> test(v: T): T {
|
||||
v
|
||||
}
|
||||
|
||||
val t: T = a
|
||||
val t: T = <!NI;DEBUG_INFO_SMARTCAST!>a<!>
|
||||
return t
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ fun <T> test3(v: T): T {
|
||||
v
|
||||
}
|
||||
|
||||
val t: T = a
|
||||
val t: T = <!NI;DEBUG_INFO_SMARTCAST!>a<!>
|
||||
return t
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user