[FE] Add additional test for marking with warnings a call resolve of which is going to be changed

This commit is contained in:
Victor Petukhov
2022-04-21 14:21:36 +03:00
committed by teamcity
parent 39d13442be
commit 38913b68b2
9 changed files with 152 additions and 0 deletions
@@ -0,0 +1,16 @@
// WITH_STDLIB
class Foo<T>
class Bar<T>
fun <T> Bar<T>.takeFoo(foo: Foo<out Any?>): Int = 1
class Inv<O>
fun <K : <!FINAL_UPPER_BOUND!>Inv<out Inv<out Int>><!>> main() {
fun <T, S : <!UNRESOLVED_REFERENCE!>T<!>> Bar<T>.takeFoo(foo: Foo<in S>): String = ""
val foo = Foo<K>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>Bar<Inv<in Inv<in Number>>>().takeFoo(foo)<!>
}
@@ -0,0 +1,16 @@
// WITH_STDLIB
class Foo<T>
class Bar<T>
fun <T> Bar<T>.takeFoo(foo: Foo<out Any?>): Int = 1
class Inv<O>
fun <K : <!FINAL_UPPER_BOUND!>Inv<out Inv<out Int>><!>> main() {
fun <T, S : T> Bar<T>.takeFoo(foo: Foo<in S>): String = ""
val foo = Foo<K>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>Bar<Inv<in Inv<in Number>>>().<!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING!>takeFoo<!>(foo)<!>
}
@@ -0,0 +1,25 @@
package
public fun </*0*/ K : Inv<out Inv<out kotlin.Int>>> main(): kotlin.Unit
public fun </*0*/ T> Bar<T>.takeFoo(/*0*/ foo: Foo<out kotlin.Any?>): kotlin.Int
public final class Bar</*0*/ T> {
public constructor Bar</*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
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Foo</*0*/ T> {
public constructor Foo</*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
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Inv</*0*/ O> {
public constructor Inv</*0*/ O>()
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
}
@@ -0,0 +1,17 @@
// !LANGUAGE: +ForbidInferringTypeVariablesIntoEmptyIntersection
// WITH_STDLIB
class Foo<T>
class Bar<T>
fun <T> Bar<T>.takeFoo(foo: Foo<out Any?>): Int = 1
class Inv<O>
fun <K : <!FINAL_UPPER_BOUND!>Inv<out Inv<out Int>><!>> main() {
fun <T, S : <!UNRESOLVED_REFERENCE!>T<!>> Bar<T>.takeFoo(foo: Foo<in S>): String = ""
val foo = Foo<K>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>Bar<Inv<in Inv<in Number>>>().takeFoo(foo)<!>
}
@@ -0,0 +1,17 @@
// !LANGUAGE: +ForbidInferringTypeVariablesIntoEmptyIntersection
// WITH_STDLIB
class Foo<T>
class Bar<T>
fun <T> Bar<T>.takeFoo(foo: Foo<out Any?>): Int = 1
class Inv<O>
fun <K : <!FINAL_UPPER_BOUND!>Inv<out Inv<out Int>><!>> main() {
fun <T, S : T> Bar<T>.takeFoo(foo: Foo<in S>): String = ""
val foo = Foo<K>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>Bar<Inv<in Inv<in Number>>>().takeFoo(foo)<!>
}
@@ -0,0 +1,25 @@
package
public fun </*0*/ K : Inv<out Inv<out kotlin.Int>>> main(): kotlin.Unit
public fun </*0*/ T> Bar<T>.takeFoo(/*0*/ foo: Foo<out kotlin.Any?>): kotlin.Int
public final class Bar</*0*/ T> {
public constructor Bar</*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
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Foo</*0*/ T> {
public constructor Foo</*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
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Inv</*0*/ O> {
public constructor Inv</*0*/ O>()
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
}