[FIR] Add CANNOT_CHECK_FOR_ERASED

This commit is contained in:
Ivan Kochurkin
2021-09-15 20:44:47 +03:00
committed by TeamCityServer
parent e52a410599
commit 291bc74676
44 changed files with 514 additions and 134 deletions
@@ -0,0 +1,9 @@
interface A
interface B: A
interface D
interface BaseSuper<out T>
interface BaseImpl: BaseSuper<D>
interface DerivedSuper<out S>: <!INCONSISTENT_TYPE_PARAMETER_VALUES!>BaseSuper<S>, BaseImpl<!>
fun test(t: BaseSuper<B>) = t is <!CANNOT_CHECK_FOR_ERASED!>DerivedSuper<A><!>
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
interface A
interface B: A
interface D
@@ -1 +0,0 @@
fun f(a: MutableList<String>) = a is MutableList<CharSequence>
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun f(a: MutableList<String>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<CharSequence><!>
@@ -1,8 +0,0 @@
open class A
open class B: A()
open class Base<out T>
open class SubBase<T> : Base<T>()
fun ff(l: Base<B>) = l is SubBase<A>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A
open class B: A()
@@ -1,6 +0,0 @@
interface A
interface B: A
interface Base<T>
fun <T> test(a: Base<B>) where T: Base<A> = a is T
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A
interface B: A
@@ -1,2 +0,0 @@
fun ff(l: Any) = l is MutableList<String>
@@ -1,2 +1,3 @@
// FIR_IDENTICAL
fun ff(l: Any) = l is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!>
@@ -1 +0,0 @@
fun f(a: MutableList<in String>) = a is MutableList<CharSequence>
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun f(a: MutableList<in String>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<CharSequence><!>
@@ -1,2 +0,0 @@
fun f(a : MutableList<out Any>) = a is MutableList<out Int>
@@ -1,2 +1,3 @@
// FIR_IDENTICAL
fun f(a : MutableList<out Any>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<out Int><!>
@@ -1 +0,0 @@
fun f(a: List<Any>) = a is List<Number>
@@ -1 +1,2 @@
// FIR_IDENTICAL
fun f(a: List<Any>) = a is <!CANNOT_CHECK_FOR_ERASED!>List<Number><!>
@@ -1,8 +0,0 @@
open class A
open class B: A()
open class D
open class Base<out T, out U>
open class Derived<out S>: Base<S, S>()
fun test(a: Base<D, B>) = a is Derived<A>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A
open class B: A()
open class D
@@ -1,8 +0,0 @@
open class A
open class B: A()
open class D
open class Base<out T, out U>
open class Derived<out S>: Base<S, S>()
fun test(a: Base<B, D>) = a is Derived<A>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class A
open class B: A()
open class D
@@ -1,5 +1,5 @@
fun <T, S : T> test(x: T?, y: S, z: T) {
x is T
x is <!CANNOT_CHECK_FOR_ERASED!>T<!>
<!USELESS_IS_CHECK!>x is T?<!>
<!USELESS_IS_CHECK!>y is T<!>
@@ -2,5 +2,5 @@ open class RecA<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>RecB<T><!>()
open class RecB<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>RecA<T><!>()
open class SelfR<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>SelfR<T><!>()
fun test(f: SelfR<String>) = f is RecA<String>
fun test(f: RecB<String>) = f is RecA<String>
fun test(f: SelfR<String>) = f is <!CANNOT_CHECK_FOR_ERASED!>RecA<String><!>
fun test(f: RecB<String>) = f is <!CANNOT_CHECK_FOR_ERASED!>RecA<String><!>
@@ -1,5 +0,0 @@
fun ff(l: Any) = when(l) {
is MutableList<String> -> 1
else <!SYNTAX!>2<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
fun ff(l: Any) = when(l) {
is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!> -> 1