Reapply "Only create descriptors for candidates with lambda args"
#KT-36247 fixed A lot of testdata changed because significanly less (error) descriptors are created for unresolved types, so diagnostics became different.
This commit is contained in:
+2
-2
@@ -7,7 +7,7 @@ fun <T: Any> bar(a: Array<T>): Array<T?> = null!!
|
||||
fun test1(a: Array<out Int>) {
|
||||
val r: Array<out Int?> = <!NI;TYPE_MISMATCH!><!NI;UNSUPPORTED!>bar<!>(a)<!>
|
||||
val t = <!NI;UNSUPPORTED!>bar<!>(a)
|
||||
<!NI;UNSUPPORTED!>t<!> checkType { <!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Int?>>() }
|
||||
<!NI;UNSUPPORTED!>t<!> checkType { <!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Int?>>() }
|
||||
}
|
||||
|
||||
fun <T: Any> foo(l: Array<T>): Array<Array<T?>> = null!!
|
||||
@@ -15,5 +15,5 @@ fun <T: Any> foo(l: Array<T>): Array<Array<T?>> = null!!
|
||||
fun test2(a: Array<out Int>) {
|
||||
val r: Array<out Array<out Int?>> = <!NI;TYPE_MISMATCH!><!NI;UNSUPPORTED!>foo<!>(a)<!>
|
||||
val t = <!NI;UNSUPPORTED!>foo<!>(a)
|
||||
<!NI;UNSUPPORTED!>t<!> checkType { <!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Array<out Int?>>>() }
|
||||
<!NI;UNSUPPORTED!>t<!> checkType { <!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Array<out Array<out Int?>>>() }
|
||||
}
|
||||
Vendored
+4
-4
@@ -4,11 +4,11 @@
|
||||
fun <T : Any> Array<T?>.filterNotNull(): List<T> = throw Exception()
|
||||
|
||||
fun test1(a: Array<out Int?>) {
|
||||
val list = a.<!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>list<!> <!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!NI;UNRESOLVED_REFERENCE!>_<!><List<Int>>() }
|
||||
val list = a.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>list<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED!>checkType<!> { <!NI;UNRESOLVED_REFERENCE!>_<!><List<Int>>() }
|
||||
}
|
||||
|
||||
fun test2(vararg a: Int?) {
|
||||
val list = a.<!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>list<!> <!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>checkType<!> { <!NI;UNRESOLVED_REFERENCE!>_<!><List<Int>>() }
|
||||
val list = a.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>filterNotNull<!>()
|
||||
<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>list<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED!>checkType<!> { <!NI;UNRESOLVED_REFERENCE!>_<!><List<Int>>() }
|
||||
}
|
||||
@@ -3,5 +3,5 @@ fun <T> Array<T>.foo() {}
|
||||
|
||||
fun test(array: Array<out Int>) {
|
||||
array.foo()
|
||||
<!OI;TYPE_MISMATCH!>array<!>.<!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!><<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out<!> Int>()
|
||||
<!OI;TYPE_MISMATCH!>array<!>.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>foo<!><<!PROJECTION_ON_NON_CLASS_TYPE_ARGUMENT!>out<!> Int>()
|
||||
}
|
||||
+1
-1
@@ -7,7 +7,7 @@ fun <T> foo() = foo() <!UNCHECKED_CAST!>as T<!>
|
||||
|
||||
fun <T> foo2(): T = TODO()
|
||||
|
||||
val test = <!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo2<!>().<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>plus<!>("") as String
|
||||
val test = <!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo2<!>().<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>plus<!>("") as String
|
||||
|
||||
fun <T> T.bar() = this
|
||||
val barTest = "".bar() <!CAST_NEVER_SUCCEEDS!>as<!> Number
|
||||
+3
-3
@@ -9,10 +9,10 @@ class A {
|
||||
|
||||
fun <V> id(value: V) = value
|
||||
|
||||
val asA = <!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>().<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
val asA = <!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>().<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
|
||||
val receiverParenthesized = (<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()).<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
val no2A = A().<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>fooA<!>().<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
val receiverParenthesized = (<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()).<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
val no2A = A().<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>fooA<!>().<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>fooA<!>() as A
|
||||
|
||||
val correct1 = A().fooA() as A
|
||||
val correct2 = foo<A>().fooA() as A
|
||||
|
||||
Vendored
+2
-2
@@ -15,7 +15,7 @@ fun testAny() {
|
||||
|
||||
fun testAnyCall() {
|
||||
callAny {
|
||||
<!CANNOT_INFER_PARAMETER_TYPE!>error<!> -> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>error()<!>
|
||||
<!CANNOT_INFER_PARAMETER_TYPE, NI;UNUSED_ANONYMOUS_PARAMETER!>error<!> -> <!OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!><!NI;DEBUG_INFO_MISSING_UNRESOLVED!>error<!>()<!>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ fun testParam() {
|
||||
|
||||
fun testParamCall() {
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>callParam<!> {
|
||||
<!CANNOT_INFER_PARAMETER_TYPE!>param<!> -> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>param()<!>
|
||||
<!CANNOT_INFER_PARAMETER_TYPE, NI;UNUSED_ANONYMOUS_PARAMETER!>param<!> -> <!OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!><!NI;DEBUG_INFO_MISSING_UNRESOLVED!>param<!>()<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
fun foo() {
|
||||
fun fact(n: Int) = {
|
||||
if (n > 0) {
|
||||
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>fact<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>*<!> n
|
||||
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>fact<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>*<!> n
|
||||
}
|
||||
else {
|
||||
1
|
||||
|
||||
@@ -10,4 +10,4 @@ fun <T, Q> List<T>.map1(f: (T)-> Q): List<T>? = tail!!.map1(f)
|
||||
|
||||
fun <T, Q> List<T>.map2(f: (T)-> Q): List<T>? = tail.sure().map2(f)
|
||||
|
||||
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = <!OI;TYPE_MISMATCH!>tail<!>.<!NI;DEBUG_INFO_UNRESOLVED_WITH_TARGET, NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>sure<!><<!OI;UPPER_BOUND_VIOLATED!>T<!>>().<!NI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, OI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>map3<!>(f)
|
||||
fun <T, Q> List<T>.map3(f: (T)-> Q): List<T>? = <!OI;TYPE_MISMATCH!>tail<!>.<!NI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>sure<!><<!OI;UPPER_BOUND_VIOLATED!>T<!>>().<!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;UNRESOLVED_REFERENCE_WRONG_RECEIVER!>map3<!>(f)
|
||||
+2
-2
@@ -11,7 +11,7 @@ fun test() {
|
||||
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>foo<!> <!TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!>}<!>
|
||||
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>foo<!> <!TYPE_MISMATCH!>{ x: Int -> x}<!>
|
||||
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!> { <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>it<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1 }
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!> { <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1}
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!> { <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>it<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1 }
|
||||
<!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, OI;TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!> { <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!> <!NI;DEBUG_INFO_MISSING_UNRESOLVED, OI;DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>+<!> 1}
|
||||
bar { x: Int -> x + 1}
|
||||
}
|
||||
@@ -36,7 +36,7 @@ fun Number.num() {}
|
||||
fun main(b: Base<out Number>) {
|
||||
b.foo().num()
|
||||
if (b is Derived<*>) {
|
||||
b.foo().<!DEBUG_INFO_UNRESOLVED_WITH_TARGET, UNRESOLVED_REFERENCE_WRONG_RECEIVER!>num<!>()
|
||||
b.foo().<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>num<!>()
|
||||
b.baz().length
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user