[FE 1.0] Fix some diagnostic tests

This commit is contained in:
Victor Petukhov
2021-07-21 17:20:00 +03:00
committed by Mikhael Bogdanov
parent 7250aed3b5
commit 95492f7370
17 changed files with 92 additions and 98 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ package boundsWithSubstitutors
class C : A<C>()
val a = B<C>()
val a1 = B<<!UPPER_BOUND_VIOLATED!>Int<!>>()
val a1 = B<<!UPPER_BOUND_VIOLATED, UPPER_BOUND_VIOLATED!>Int<!>>()
class X<A, B : A>()
+4 -4
View File
@@ -27,15 +27,15 @@ fun foo(l: A<String>?) {
foo(l?.bar()) checkType { _<String?>() }
foo(l?.gav()) checkType { _<String?>() }
if (l != null) {
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { _<String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { _<String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
}
}
fun fooNotNull(l: A<String>) {
// No errors should be here
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { _<String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { _<String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>bar()) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
foo(l<!UNNECESSARY_SAFE_CALL!>?.<!>gav()) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
}
fun bar() {
@@ -20,7 +20,7 @@ fun foo2(a: A<out CharSequence>, b: A<in CharSequence>) {
a.foo2(Inv())
a.foo2(<!TYPE_MISMATCH!>Inv<CharSequence>()<!>)
a.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH!>Inv()<!>)
a.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>Inv()<!>)
a.foo3(In())
a.foo3(In<CharSequence>())
@@ -32,7 +32,7 @@ fun foo2(a: A<out CharSequence>, b: A<in CharSequence>) {
b.foo2(Inv())
b.foo2(<!TYPE_MISMATCH!>Inv<CharSequence>()<!>)
b.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH!>Inv()<!>)
b.foo2<<!UPPER_BOUND_VIOLATED!>Inv<CharSequence><!>>(<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>Inv()<!>)
b.foo3(<!TYPE_MISMATCH!>In<CharSequence>()<!>)
@@ -39,7 +39,7 @@ fun <R> select(vararg x: R) = x[0]
fun poll0(): Flow<String> {
return flow {
val inv = select(::bar, ::foo)
inv()
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
}
}
@@ -53,7 +53,7 @@ fun poll01(): Flow<String> {
fun poll02(): Flow<String> {
return flow {
val inv = select(::bar3, ::foo3)
inv()
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
}
}
@@ -67,7 +67,7 @@ fun poll03(): Flow<String> {
fun poll04(): Flow<String> {
return flow {
val inv = select(::bar5, ::foo5)
inv
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
}
}
@@ -81,7 +81,7 @@ fun poll05(): Flow<String> {
fun poll06(): Flow<String> {
return flow {
val inv = select(foo7(), <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!>)
inv
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
}
}
@@ -101,14 +101,14 @@ fun poll11(flag: Boolean): Flow<String> {
fun poll12(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = if (flag) { ::bar3 } else { ::foo3 }
inv()
}
}
fun poll13(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { ::bar2 } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
val inv = if (flag) { ::bar2 } else { ::foo3 }
inv()
}
}
@@ -122,8 +122,8 @@ fun poll14(flag: Boolean): Flow<String> {
fun poll15(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = if (flag) { ::bar5 } else { ::foo5 }
inv()
}
}
@@ -137,14 +137,14 @@ fun poll16(flag: Boolean): Flow<String> {
fun poll17(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { foo7() } else { <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> }
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
inv
}
}
fun poll2(flag: Boolean): Flow<String> {
return flow {
val inv = when (flag) { true -> ::bar else -> ::foo }
inv()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -158,7 +158,7 @@ fun poll21(flag: Boolean): Flow<String> {
fun poll22(flag: Boolean): Flow<String> {
return flow {
val inv = when (flag) { true -> ::bar3 else -> ::foo3 }
inv()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -193,7 +193,7 @@ fun poll26(flag: Boolean): Flow<String> {
fun poll3(flag: Boolean): Flow<String> {
return flow {
val inv = when (flag) { true -> ::bar false -> ::foo }
inv()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -207,7 +207,7 @@ fun poll31(flag: Boolean): Flow<String> {
fun poll32(flag: Boolean): Flow<String> {
return flow {
val inv = when (flag) { true -> ::bar3 false -> ::foo3 }
inv()
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -241,8 +241,8 @@ fun poll36(flag: Boolean): Flow<String> {
fun poll4(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar } finally { ::foo }
inv()
}
}
@@ -255,8 +255,8 @@ fun poll41(): Flow<String> {
fun poll42(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar3 } finally { ::foo3 }
inv()
}
}
@@ -269,8 +269,8 @@ fun poll43(): Flow<String> {
fun poll44(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar5 } finally { ::foo5 }
inv()
}
}
@@ -290,8 +290,8 @@ fun poll46(): Flow<String> {
fun poll5(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar } catch (e: Exception) { ::foo } finally { ::foo }
inv()
}
}
@@ -304,8 +304,8 @@ fun poll51(): Flow<String> {
fun poll52(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar3 } catch (e: Exception) { ::foo3 } finally { ::foo3 }
inv()
}
}
@@ -318,8 +318,8 @@ fun poll53(): Flow<String> {
fun poll54(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar5 } catch (e: Exception) { ::foo5 } finally { ::foo5 }
inv()
}
}
@@ -333,14 +333,14 @@ fun poll55(): Flow<String> {
fun poll56(): Flow<String> {
return flow {
val inv = try { <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> } catch (e: Exception) { foo7() } finally { foo7() }
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
inv
}
}
fun poll6(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = ::bar
inv
}
}
@@ -353,8 +353,8 @@ fun poll61(): Flow<String> {
fun poll62(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = ::bar3
inv
}
}
@@ -367,8 +367,8 @@ fun poll63(): Flow<String> {
fun poll64(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = ::bar5
inv
}
}
@@ -388,8 +388,8 @@ fun poll66(): Flow<String> {
fun poll7(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = ::bar<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv()
}
}
@@ -402,8 +402,8 @@ fun poll71(): Flow<String> {
fun poll72(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = ::bar3<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv()
}
}
@@ -416,8 +416,8 @@ fun poll73(): Flow<String> {
fun poll74(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = ::bar5<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv
}
}
@@ -437,7 +437,7 @@ fun poll76(): Flow<String> {
fun poll8(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!> in setOf(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!>)
val inv = ::bar in setOf(::foo)
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -451,7 +451,7 @@ fun poll81(): Flow<String> {
fun poll82(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> in setOf(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo3<!><!>)
val inv = ::bar3 in setOf(::foo3)
<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>inv<!>()
}
}
@@ -465,7 +465,7 @@ fun poll83(): Flow<String> {
fun poll84(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> in setOf(<!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo5<!><!>)
val inv = ::bar5 in setOf(::foo5)
inv
}
}
@@ -486,8 +486,8 @@ fun poll86(): Flow<String> {
fun poll87(): Flow<String> {
return flow {
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Foo7<!><!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> setOf(foo7())
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>Foo7<!><!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>in<!> <!TYPE_INFERENCE_ONLY_INPUT_TYPES!>setOf<!>(<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>foo7<!>())
<!TYPE_INFERENCE_ONLY_INPUT_TYPES!>inv<!>
}
}
@@ -50,14 +50,14 @@ fun poll11(flag: Boolean): Flow<String> {
fun poll12(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = if (flag) { ::bar3 } else { ::foo3 }
inv()
}
}
fun poll13(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { ::bar2 } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
val inv = if (flag) { ::bar2 } else { ::foo3 }
inv()
}
}
@@ -71,8 +71,8 @@ fun poll14(flag: Boolean): Flow<String> {
fun poll15(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } else { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = if (flag) { ::bar5 } else { ::foo5 }
inv()
}
}
@@ -86,14 +86,14 @@ fun poll16(flag: Boolean): Flow<String> {
fun poll17(flag: Boolean): Flow<String> {
return flow {
val inv = if (flag) { foo7() } else { <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> }
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
inv
}
}
fun poll4(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar } finally { ::foo }
inv()
}
}
@@ -106,8 +106,8 @@ fun poll41(): Flow<String> {
fun poll42(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar3 } finally { ::foo3 }
inv()
}
}
@@ -120,8 +120,8 @@ fun poll43(): Flow<String> {
fun poll44(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar5 } finally { ::foo5 }
inv()
}
}
@@ -141,8 +141,8 @@ fun poll46(): Flow<String> {
fun poll5(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar } catch (e: Exception) { ::foo } finally { ::foo }
inv()
}
}
@@ -155,8 +155,8 @@ fun poll51(): Flow<String> {
fun poll52(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo3<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar3 } catch (e: Exception) { ::foo3 } finally { ::foo3 }
inv()
}
}
@@ -169,8 +169,8 @@ fun poll53(): Flow<String> {
fun poll54(): Flow<String> {
return flow {
val inv = try { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!> } catch (e: Exception) { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> } finally { <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::foo5<!> }
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = try { ::bar5 } catch (e: Exception) { ::foo5 } finally { ::foo5 }
inv()
}
}
@@ -184,6 +184,6 @@ fun poll55(): Flow<String> {
fun poll56(): Flow<String> {
return flow {
val inv = try { <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>::Foo7<!> } catch (e: Exception) { foo7() } finally { foo7() }
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
inv
}
}
@@ -37,8 +37,8 @@ class Flow<out R>(private val block: suspend FlowCollector<R>.() -> Unit)
fun poll7(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = ::bar<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv()
}
}
@@ -51,8 +51,8 @@ fun poll71(): Flow<String> {
fun poll72(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar3<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_MISSING_UNRESOLVED!>inv()<!>
val inv = ::bar3<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv()
}
}
@@ -65,8 +65,8 @@ fun poll73(): Flow<String> {
fun poll74(): Flow<String> {
return flow {
val inv = <!TYPE_INFERENCE_POSTPONED_VARIABLE_IN_RECEIVER_TYPE!>::bar5<!><!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>inv<!>
val inv = ::bar5<!NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE!>!!<!>
inv
}
}
+1 -1
View File
@@ -30,7 +30,7 @@ fun String.asFsdAddress(): String {
fun box(): String {
val state = Test().state
if (state is GoBuildingRunningState<*>) {
<!DEBUG_INFO_SMARTCAST, TYPE_MISMATCH_WARNING!>state<!>.buildingWorkingDirectory.asFsdAddress()
state.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>buildingWorkingDirectory<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>asFsdAddress<!>()
}
return "OK"
}
@@ -14,4 +14,4 @@ fun test4(x: <!UPPER_BOUND_VIOLATED_IN_TYPEALIAS_EXPANSION!>TC2<Number, List<Any
val test5 = TC2<Number, Collection<Number>>()
val test6 = TC2<Number, Collection<Int>>()
val test7 = TC2<Number, List<Int>>()
val test8 = TC2<Number, <!UPPER_BOUND_VIOLATED!>List<Any><!>>()
val test8 = TC2<Number, <!UPPER_BOUND_VIOLATED, UPPER_BOUND_VIOLATED!>List<Any><!>>()
@@ -28,4 +28,4 @@ fun test12(x: TC<Number, <!UPPER_BOUND_VIOLATED!>List<Any><!>>) {}
val test13 = TC<Number, Collection<Number>>()
val test14 = TC<Number, Collection<Int>>()
val test15 = TC<Number, List<Int>>()
val test16 = TC<Number, <!UPPER_BOUND_VIOLATED!>List<Any><!>>()
val test16 = TC<Number, <!UPPER_BOUND_VIOLATED, UPPER_BOUND_VIOLATED!>List<Any><!>>()
@@ -1,3 +1,4 @@
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
// FULL_JDK
// FILE: MapLike.java
@@ -2,14 +2,8 @@ package
public val test1: kotlin.collections.List<kotlin.Int>
public val test2: kotlin.collections.List<kotlin.Int>
public val test3: [ERROR : Type for generate {
yield(3)
yieldBarReturnType(3)
}]
public val test4: [ERROR : Type for generate {
yield(3)
barReturnType()
}]
public val test3: kotlin.collections.List<kotlin.Int>
public val test4: kotlin.collections.List<kotlin.Int>
public fun </*0*/ S> generate(/*0*/ @kotlin.BuilderInference g: suspend GenericController<S>.() -> kotlin.Unit): kotlin.collections.List<S>
public final class GenericController</*0*/ T> {
@@ -1,8 +1,6 @@
package
public val extension: [ERROR : Type for generate {
extensionYield("foo")
}]
public val extension: kotlin.collections.List<kotlin.String>
public val normal: kotlin.collections.List<kotlin.Int>
public val safeExtension: kotlin.collections.List<kotlin.String>
public fun </*0*/ S> generate(/*0*/ @kotlin.BuilderInference g: suspend GenericController<S>.() -> kotlin.Unit): kotlin.collections.List<S>
@@ -21,7 +21,7 @@ fun test_2() {
fun test_3() {
sequence {
yield(materialize<Int>())
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>materialize<!>()
<!TYPE_MISMATCH, TYPE_MISMATCH!>materialize()<!>
}
}
@@ -1,10 +1,10 @@
// FIR_IDENTICAL
// ISSUE: KT-41308
// ISSUE: KT-41308, KT-47830
fun main() {
sequence {
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>sequence<!> {
val list: List<String>? = null
val outputList = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.List<kotlin.String>")!>list ?: listOf()<!>
yieldAll(outputList)
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, NONE_APPLICABLE!>yieldAll<!>(outputList)
}
}
@@ -1,4 +1,4 @@
// ISSUE: KT-41430
// ISSUE: KT-41430, KT-47830
class A
@@ -14,7 +14,7 @@ fun test_2(list: List<Set<A>>) {
fun test_3(list: List<Set<A>>) {
sequence {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableSet<A>")!>list.flatMapTo(mutableSetOf()) { it }<!>
<!DEBUG_INFO_EXPRESSION_TYPE("Type is unknown")!>list.flatMapTo(mutableSetOf()) { it }<!>
yield(A())
}
}
@@ -22,6 +22,6 @@ fun test_3(list: List<Set<A>>) {
fun test_4(list: List<Set<A>>) {
sequence {
yield(A())
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableSet<A>")!>list.flatMapTo(mutableSetOf()) { it }<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.collections.MutableSet<A>"), TYPE_MISMATCH, TYPE_MISMATCH!>list.flatMapTo(mutableSetOf()) { it }<!>
}
}
@@ -1,4 +1,4 @@
// !LANGUAGE: +NewInference
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
// FILE: SmartFMap.java
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
// FULL_JDK
// FILE: MapLike.java