[FIR] Run FirSupertypesChecker for anonymous objects, ^KT-54300 Fixed

This commit is contained in:
Ivan Kochurkin
2022-10-04 22:14:19 +02:00
committed by Space Team
parent 69ee40325b
commit 1deb253bac
8 changed files with 12 additions and 5 deletions
@@ -5,3 +5,4 @@ interface C<T> {}
interface D<T> {}
interface Test : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>in<!> Int>, B<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>out<!> Int>, C<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>>?<!REDUNDANT_NULLABLE!>?<!NULLABLE_SUPERTYPE!>?<!><!>, D<Int> {}
val x = object : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>> {}
@@ -4,4 +4,5 @@ interface B<T> {}
interface C<T> {}
interface D<T> {}
interface Test : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>in<!> Int>, B<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>out<!> Int>, C<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>><!NULLABLE_SUPERTYPE!>?<!><!REDUNDANT_NULLABLE!>?<!><!REDUNDANT_NULLABLE!>?<!>, D<Int> {}
interface Test : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>in<!> Int>, B<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>out<!> Int>, C<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>><!NULLABLE_SUPERTYPE!>?<!><!REDUNDANT_NULLABLE!>?<!><!REDUNDANT_NULLABLE!>?<!>, D<Int> {}
val x = object : A<<!PROJECTION_IN_IMMEDIATE_ARGUMENT_TO_SUPERTYPE!>*<!>> {}
@@ -1,5 +1,7 @@
package
public val x: A<*>
public interface A</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -29,3 +31,4 @@ public interface Test : A<in kotlin.Int>, B<out kotlin.Int>, C<*>?, D<kotlin.Int
public open override /*4*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*4*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -46,7 +46,7 @@ fun test() {
val x9: (Foo<Float>) -> Int = { x: Foo<<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>> -> 10 }
val x10 = object : <!UNRESOLVED_REFERENCE!>_<!> {}
val x11 = object : Foo<<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>_<!>> {}
val x11 = object : <!FINAL_SUPERTYPE!>Foo<<!UNRESOLVED_REFERENCE, UNRESOLVED_REFERENCE!>_<!>><!> {}
if (x11 is <!UNRESOLVED_REFERENCE!>_<!>) { }
if (<!USELESS_IS_CHECK!>x11 is Foo<<!UNRESOLVED_REFERENCE!>_<!>><!>) { }