[FIR] Fix false positive case of CANNOT_CHECK_FOR_ERASED
Restore CANNOT_CHECK_FOR_ERASED as error
This commit is contained in:
committed by
teamcityserver
parent
850d76f6bf
commit
f05436b939
@@ -0,0 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class Base
|
||||
class Derived<E : CharSequence> : Base()
|
||||
fun f(entry: Base) = entry is Derived<out CharSequence>
|
||||
@@ -0,0 +1,17 @@
|
||||
package
|
||||
|
||||
public fun f(/*0*/ entry: Base): kotlin.Boolean
|
||||
|
||||
public open class Base {
|
||||
public constructor Base()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class Derived</*0*/ E : kotlin.CharSequence> : Base {
|
||||
public constructor Derived</*0*/ E : kotlin.CharSequence>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+8
-3
@@ -6,11 +6,11 @@ fun <E> foo(x: Any, y: Any) : Any {
|
||||
}
|
||||
|
||||
if (1 == 2) {
|
||||
x <!UNCHECKED_CAST!>as C<!>
|
||||
x as C
|
||||
}
|
||||
|
||||
if (2 == 3) {
|
||||
x <!UNCHECKED_CAST!>as? C<!>
|
||||
x as? C
|
||||
}
|
||||
|
||||
class Outer<F> {
|
||||
@@ -22,7 +22,12 @@ fun <E> foo(x: Any, y: Any) : Any {
|
||||
return y
|
||||
}
|
||||
|
||||
y <!UNCHECKED_CAST!>as Outer<*>.Inner<!>
|
||||
if (y is Outer<*>.Inner) {
|
||||
return y
|
||||
}
|
||||
|
||||
y as Outer<*>.Inner
|
||||
y as Outer.Inner
|
||||
|
||||
return C()
|
||||
}
|
||||
|
||||
+5
@@ -22,7 +22,12 @@ fun <E> foo(x: Any, y: Any) : Any {
|
||||
return y
|
||||
}
|
||||
|
||||
if (y is <!CANNOT_CHECK_FOR_ERASED!>Outer<*>.Inner<!>) {
|
||||
return y
|
||||
}
|
||||
|
||||
y <!UNCHECKED_CAST!>as Outer<*>.Inner<!>
|
||||
y <!USELESS_CAST!>as <!NO_TYPE_ARGUMENTS_ON_RHS!>Outer.Inner<!><!>
|
||||
|
||||
return C()
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
class Base<in T>
|
||||
class Qwe<T : Any>(val a: T?) {
|
||||
fun test1(obj: Any) {
|
||||
obj <!UNCHECKED_CAST!>as Qwe<T><!>
|
||||
obj as Qwe<T>
|
||||
check(obj.a)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user