[NI] Don't complete nested call if there's no constraints at all

This commit is contained in:
Mikhail Zarechenskiy
2019-03-25 10:20:39 +03:00
parent 9825984bc5
commit ca894a6a71
27 changed files with 84 additions and 77 deletions
@@ -7,18 +7,18 @@ fun <T> nullable(): T? = null
fun <T> dependOn(x: T) = x
fun test() {
<!NI;UNREACHABLE_CODE!>takeNotNull(<!><!NI;IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>notNull<!>()<!NI;UNREACHABLE_CODE!><!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)<!>
<!NI;UNREACHABLE_CODE!>takeNotNull(<!NI;IMPLICIT_NOTHING_AS_TYPE_PARAMETER!>nullable<!>()!!)<!>
takeNotNull(notNull()<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!>)
takeNotNull(nullable()!!)
<!NI;UNREACHABLE_CODE!>var x: String? = null<!>
<!NI;UNREACHABLE_CODE!>takeNotNull(dependOn(x)!!)<!>
<!NI;UNREACHABLE_CODE!>takeNotNull(dependOn(dependOn(x))!!)<!>
<!NI;UNREACHABLE_CODE!>takeNotNull(dependOn(dependOn(x)!!))<!>
<!NI;UNREACHABLE_CODE!>takeNotNull(dependOn(dependOn(x!!)))<!>
var x: String? = null
takeNotNull(dependOn(x)!!)
takeNotNull(dependOn(dependOn(x))!!)
takeNotNull(dependOn(dependOn(x)!!))
takeNotNull(dependOn(dependOn(x!!)))
<!NI;UNREACHABLE_CODE!>if (x != null) {
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!>!!<!>))
}<!>
}
}