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
24 lines
599 B
Kotlin
Vendored
24 lines
599 B
Kotlin
Vendored
// !CHECK_TYPE
|
|
|
|
fun test() : Unit {
|
|
var x : Int? = 0
|
|
var y : Int = 0
|
|
|
|
checkSubtype<Int?>(x)
|
|
checkSubtype<Int>(y)
|
|
checkSubtype<Int>(x as Int)
|
|
checkSubtype<Int>(y <!USELESS_CAST!>as Int<!>)
|
|
checkSubtype<Int?>(x as Int?)
|
|
checkSubtype<Int?>(y as Int?)
|
|
checkSubtype<Int?>(x <!USELESS_CAST!>as? Int<!>)
|
|
checkSubtype<Int?>(y <!USELESS_CAST!>as? Int<!>)
|
|
checkSubtype<Int?>(x as? Int?)
|
|
checkSubtype<Int?>(y as? Int?)
|
|
|
|
val s = "" as Any
|
|
("" as String?)?.length
|
|
(data@("" as String?))?.length
|
|
(<!WRONG_ANNOTATION_TARGET!>@MustBeDocumented()<!>( "" as String?))?.length
|
|
Unit
|
|
}
|