[FIR] Use isSubtypeOfClass with platform types mapping instead of isSubtypeOf during checking CAST_NEVER_SUCCEEDS

Refactor and generalize code

^KT-62783 Fixed
This commit is contained in:
Ivan Kochurkin
2023-10-23 22:06:40 +02:00
committed by Space Team
parent 0935e2b270
commit 3b9095a5ab
9 changed files with 123 additions and 29 deletions
@@ -0,0 +1,19 @@
// ISSUE: KT-62783
abstract class Foo<T>
class FooBar : Foo<Any>()
fun test1(value: FooBar) {
value as Foo<*>
value as? Foo<*>
value as Foo<*>?
value as? Foo<*>?
}
fun test2(value: FooBar?) {
value as Foo<*>
value as? Foo<*>
value as Foo<*>?
value as? Foo<*>?
}
@@ -0,0 +1,19 @@
// ISSUE: KT-62783
abstract class Foo<T>
class FooBar : Foo<Any>()
fun test1(value: FooBar) {
value <!USELESS_CAST!>as Foo<*><!>
value <!USELESS_CAST!>as? Foo<*><!>
value <!USELESS_CAST!>as Foo<*>?<!>
value <!USELESS_CAST!>as? Foo<*>?<!>
}
fun test2(value: FooBar?) {
value as Foo<*>
value <!USELESS_CAST!>as? Foo<*><!>
value <!USELESS_CAST!>as Foo<*>?<!>
value <!USELESS_CAST!>as? Foo<*>?<!>
}