2ecba6ac39
This directive anyway does not make test run twice with OI, and with NI It only once run the test with specific settings (// LANGUAGE) and ignores irrelevant (OI or NI tags)
24 lines
719 B
Kotlin
Vendored
24 lines
719 B
Kotlin
Vendored
// !DIAGNOSTICS: -UNUSED_PARAMETER, -SENSELESS_COMPARISON, -DEBUG_INFO_SMARTCAST
|
|
|
|
fun takeNotNull(s: String) {}
|
|
fun <T> notNull(): T = TODO()
|
|
fun <T> nullable(): T? = null
|
|
fun <T> dependOn(x: T) = x
|
|
|
|
fun test() {
|
|
takeNotNull(notNull()!!)
|
|
takeNotNull(nullable()!!)
|
|
|
|
var x: String? = null
|
|
takeNotNull(dependOn(x)!!)
|
|
takeNotNull(dependOn(dependOn(x))!!)
|
|
takeNotNull(dependOn(dependOn(x)!!))
|
|
takeNotNull(dependOn(dependOn(x!!)))
|
|
|
|
if (x != null) {
|
|
takeNotNull(dependOn(x)<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
|
|
takeNotNull(dependOn(dependOn(x))<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
|
|
takeNotNull(dependOn(dependOn(x)<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>))
|
|
}
|
|
}
|