d50c6f1b6d
`FirUselessTypeOperationCallChecker` always checks exact types matching for `as` operator Simplify code of cast checker and utils ^KT-56629 Fixed ^KT-56615 Fixed ^KT-59820 Fixed
37 lines
696 B
Kotlin
Vendored
37 lines
696 B
Kotlin
Vendored
// ISSUE: KT-56629, KT-56615
|
|
|
|
class Klass
|
|
fun foo(arg: Klass) {
|
|
arg <!USELESS_CAST!>as Klass<!>
|
|
arg <!USELESS_CAST!>as? Klass<!>
|
|
}
|
|
|
|
fun test_1(a: Any?) {
|
|
(a as String?)!!
|
|
a<!UNSAFE_CALL!>.<!>length
|
|
(a <!USELESS_CAST!>as? String<!>)!!
|
|
<!DEBUG_INFO_SMARTCAST!>a<!>.length
|
|
}
|
|
|
|
fun test_3(a: Any?) {
|
|
a as String
|
|
a <!USELESS_CAST!>as String<!>
|
|
}
|
|
|
|
fun test_4(a: Any?) {
|
|
a as String
|
|
a <!USELESS_CAST!>as? String<!>
|
|
}
|
|
|
|
fun test_5(a: Any?) {
|
|
(a as? String)!!
|
|
<!DEBUG_INFO_SMARTCAST!>a<!>.length
|
|
(a <!USELESS_CAST!>as String<!>)
|
|
}
|
|
|
|
fun test_6(a: Any?) {
|
|
(a as? String)!!
|
|
<!DEBUG_INFO_SMARTCAST!>a<!>.length
|
|
(a <!USELESS_CAST!>as? String<!>)
|
|
}
|