[FIR] Add CANNOT_CHECK_FOR_ERASED
This commit is contained in:
committed by
TeamCityServer
parent
e52a410599
commit
291bc74676
+9
@@ -0,0 +1,9 @@
|
||||
interface A
|
||||
interface B: A
|
||||
interface D
|
||||
|
||||
interface BaseSuper<out T>
|
||||
interface BaseImpl: BaseSuper<D>
|
||||
interface DerivedSuper<out S>: <!INCONSISTENT_TYPE_PARAMETER_VALUES!>BaseSuper<S>, BaseImpl<!>
|
||||
|
||||
fun test(t: BaseSuper<B>) = t is <!CANNOT_CHECK_FOR_ERASED!>DerivedSuper<A><!>
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
interface A
|
||||
interface B: A
|
||||
interface D
|
||||
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
fun f(a: MutableList<String>) = a is MutableList<CharSequence>
|
||||
+1
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
fun f(a: MutableList<String>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<CharSequence><!>
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
open class A
|
||||
open class B: A()
|
||||
|
||||
open class Base<out T>
|
||||
open class SubBase<T> : Base<T>()
|
||||
|
||||
|
||||
fun ff(l: Base<B>) = l is SubBase<A>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class A
|
||||
open class B: A()
|
||||
|
||||
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
interface A
|
||||
interface B: A
|
||||
|
||||
interface Base<T>
|
||||
|
||||
fun <T> test(a: Base<B>) where T: Base<A> = a is T
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface A
|
||||
interface B: A
|
||||
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
|
||||
fun ff(l: Any) = l is MutableList<String>
|
||||
@@ -1,2 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
fun ff(l: Any) = l is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!>
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
fun f(a: MutableList<in String>) = a is MutableList<CharSequence>
|
||||
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
fun f(a: MutableList<in String>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<CharSequence><!>
|
||||
@@ -1,2 +0,0 @@
|
||||
|
||||
fun f(a : MutableList<out Any>) = a is MutableList<out Int>
|
||||
@@ -1,2 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
fun f(a : MutableList<out Any>) = a is <!CANNOT_CHECK_FOR_ERASED!>MutableList<out Int><!>
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
fun f(a: List<Any>) = a is List<Number>
|
||||
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
fun f(a: List<Any>) = a is <!CANNOT_CHECK_FOR_ERASED!>List<Number><!>
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
open class A
|
||||
open class B: A()
|
||||
open class D
|
||||
|
||||
open class Base<out T, out U>
|
||||
open class Derived<out S>: Base<S, S>()
|
||||
|
||||
fun test(a: Base<D, B>) = a is Derived<A>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class A
|
||||
open class B: A()
|
||||
open class D
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
open class A
|
||||
open class B: A()
|
||||
open class D
|
||||
|
||||
open class Base<out T, out U>
|
||||
open class Derived<out S>: Base<S, S>()
|
||||
|
||||
fun test(a: Base<B, D>) = a is Derived<A>
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
open class A
|
||||
open class B: A()
|
||||
open class D
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fun <T, S : T> test(x: T?, y: S, z: T) {
|
||||
x is T
|
||||
x is <!CANNOT_CHECK_FOR_ERASED!>T<!>
|
||||
<!USELESS_IS_CHECK!>x is T?<!>
|
||||
|
||||
<!USELESS_IS_CHECK!>y is T<!>
|
||||
|
||||
@@ -2,5 +2,5 @@ open class RecA<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>RecB<T><!>()
|
||||
open class RecB<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>RecA<T><!>()
|
||||
open class SelfR<T>: <!CYCLIC_INHERITANCE_HIERARCHY!>SelfR<T><!>()
|
||||
|
||||
fun test(f: SelfR<String>) = f is RecA<String>
|
||||
fun test(f: RecB<String>) = f is RecA<String>
|
||||
fun test(f: SelfR<String>) = f is <!CANNOT_CHECK_FOR_ERASED!>RecA<String><!>
|
||||
fun test(f: RecB<String>) = f is <!CANNOT_CHECK_FOR_ERASED!>RecA<String><!>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
fun ff(l: Any) = when(l) {
|
||||
is MutableList<String> -> 1
|
||||
else <!SYNTAX!>2<!>
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
fun ff(l: Any) = when(l) {
|
||||
is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!> -> 1
|
||||
|
||||
Vendored
+1
-1
@@ -9,7 +9,7 @@ public class A {
|
||||
// FILE: main.kt
|
||||
|
||||
fun main(a: A, ml: Any) {
|
||||
if (ml is MutableList<String>) {
|
||||
if (ml is <!CANNOT_CHECK_FOR_ERASED!>MutableList<String><!>) {
|
||||
a.foo(<!JAVA_TYPE_MISMATCH!>ml<!>)
|
||||
a.foo(ml as List<Any>)
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
// KT-398 Internal error when property initializes with function
|
||||
|
||||
class X<T>() {
|
||||
val check = { a : Any -> a is T }
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
if(X<String>().check(10)) return "fail"
|
||||
if(!X<String>().check("lala")) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// KT-398 Internal error when property initializes with function
|
||||
|
||||
class X<T>() {
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
// KT-399 Type argument inference not implemented for CALL_EXPRESSION
|
||||
|
||||
fun <T> getSameTypeChecker(obj: T) : Function1<Any,Boolean> {
|
||||
return { a : Any -> a is T }
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
if(getSameTypeChecker<String>("lala")(10)) return "fail"
|
||||
if(!getSameTypeChecker<String>("mama")("lala")) return "fail"
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// KT-399 Type argument inference not implemented for CALL_EXPRESSION
|
||||
|
||||
fun <T> getSameTypeChecker(obj: T) : Function1<Any,Boolean> {
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
fun f(a: Array<out Number>) = a.isArrayOf<Int>()
|
||||
|
||||
fun f1(a: Array<out Number>) = <!USELESS_IS_CHECK!>a is Array<*><!>
|
||||
|
||||
fun f2(a: Array<out Number>) = a is Array<Int>
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun f(a: Array<out Number>) = a.isArrayOf<Int>()
|
||||
|
||||
fun f1(a: Array<out Number>) = <!USELESS_IS_CHECK!>a is Array<*><!>
|
||||
|
||||
Reference in New Issue
Block a user