Revert "[NI] Fix reporting smartcast diagnostics for intersection types"

This reverts commit 033d7262

That commit breaks bootstraping
This commit is contained in:
Dmitriy Novozhilov
2019-04-11 18:49:02 +03:00
parent 849d18669b
commit a92cf19641
15 changed files with 36 additions and 115 deletions
@@ -30,9 +30,9 @@ fun <T : CharSequence?> foo(x: T) {
<!DEBUG_INFO_SMARTCAST!>x<!>.length
x<!UNNECESSARY_SAFE_CALL!>?.<!>length
<!NI;DEBUG_INFO_SMARTCAST!>x<!>.bar1()
x.bar1()
x.bar2()
<!DEBUG_INFO_SMARTCAST!>x<!>.bar3()
<!OI;DEBUG_INFO_SMARTCAST!>x<!>.bar3()
}
if (x is CharSequence) {
@@ -24,7 +24,7 @@ fun <T : CharSequence?> foo(x: T) {
y1 = <!DEBUG_INFO_SMARTCAST!>x<!>
y2 = <!DEBUG_INFO_SMARTCAST!>x<!>
bar1(<!DEBUG_INFO_SMARTCAST!>x<!>)
bar1(<!OI;DEBUG_INFO_SMARTCAST!>x<!>)
bar2(<!DEBUG_INFO_SMARTCAST!>x<!>)
bar3(<!DEBUG_INFO_SMARTCAST!>x<!>)
}
@@ -31,8 +31,8 @@ fun test() {
x.foo().checkType { _<CharSequence?>() }
x.baz("")
x.baz(1).checkType { _<Unit>() }
<!SMARTCAST_IMPOSSIBLE!>x<!>.baz(1, 2)
<!OI;SMARTCAST_IMPOSSIBLE!>x<!>.baz(1, 2)
<!SMARTCAST_IMPOSSIBLE!>x<!>.foobar().checkType { _<String>() }
<!OI;SMARTCAST_IMPOSSIBLE!>x<!>.foobar().checkType { _<String>() }
}
}
@@ -1,19 +0,0 @@
// !WITH_NEW_INFERENCE
// Issue: KT-30826
interface I1
interface I2 {
fun foo() {}
}
class A : I1, I2
fun foo(x: I1?) {
var y = x
y as I2
val bar = {
<!SMARTCAST_IMPOSSIBLE!>y<!>.foo() // NPE in NI, smartcast impossible in OI
}
y = null
bar()
}
@@ -1,24 +0,0 @@
package
public fun foo(/*0*/ x: I1?): kotlin.Unit
public final class A : I1, I2 {
public constructor A()
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface I1 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface I2 {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}