[FIR] Properly handle that type variable is contained in inv or contravar positions
#KT-45344 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
3d1f4b8386
commit
6cc3fff48d
+2
-2
@@ -140,8 +140,8 @@ class Main<L>(x: L?, y: L) {
|
||||
val x120 = foo12(x!!)
|
||||
val x121 = foo12(y!!)
|
||||
|
||||
val x122 = foo12(x)
|
||||
val x123 = foo12(y)
|
||||
val x122 = <!INAPPLICABLE_CANDIDATE!>foo12<!>(x)
|
||||
val x123 = <!INAPPLICABLE_CANDIDATE!>foo12<!>(y)
|
||||
|
||||
val x133 = Foo13(x).foo1(y)
|
||||
val x135 = Foo13(y).foo1(y)
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNUSED_VARIABLE
|
||||
|
||||
class Inv<T>(val x: T?)
|
||||
|
||||
fun <K> create(y: K) = Inv(y)
|
||||
fun <K> createPrivate(y: K) = Inv(y)
|
||||
|
||||
fun takeInvInt(i: Inv<Int>) {}
|
||||
|
||||
fun <S> test(i: Int, s: S) {
|
||||
val a = Inv(s)
|
||||
|
||||
a
|
||||
|
||||
val b = create(i)
|
||||
|
||||
b
|
||||
|
||||
val c = createPrivate(i)
|
||||
|
||||
c
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>takeInvInt<!>(create(i))
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNUSED_VARIABLE
|
||||
|
||||
class Inv<T>(val x: T?)
|
||||
|
||||
+1
-1
@@ -13,4 +13,4 @@ class Foo {
|
||||
|
||||
operator fun setValue(thisRef: Foo, property: KProperty<*>, value: T) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user