Fix overload ambiguity after smartcast to nullable Nothing

#KT-39544 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-06-23 00:13:15 +03:00
parent 9313073971
commit a06c8786df
8 changed files with 105 additions and 1 deletions
@@ -0,0 +1,29 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: B.java
public abstract class B<T> implements A<T> {}
// FILE: test.kt
interface A<T> {
val content: T
}
fun f(x: Any?) {}
fun f(x: Byte) {}
fun f(x: Char) {}
fun g(i: Int) {}
fun g(x: B<Int>) {
val y = x.content
if (y == null) {
f(<!DEBUG_INFO_CONSTANT!>y<!>)
<!NONE_APPLICABLE!>g<!>(<!DEBUG_INFO_CONSTANT!>y<!>)
}
if (y is Nothing?) {
f(y)
<!NONE_APPLICABLE!>g<!>(y)
}
}