[FIR] Add regression tests for number of issues fixed in K2
List of issues: KT-4113, KT-6822, KT-7389, KT-17817, KT-20223 KT-21463, KT-24503, KT-24737, KT-24779, KT-24901 KT-27261, KT-28668, KT-30497, KT-30756, KT-36958 KT-37365, KT-37490, KT-38288, KT-41038, KT-41721 KT-42136, KT-42169, KT-42449, KT-42715, KT-43553 KT-43603, KT-43846, KT-43936, KT-46288, KT-46301 KT-47373, KT-47484, KT-47490, KT-47495, KT-47750 KT-47815, KT-47870, KT-48975, KT-49024, KT-49045 KT-50134, KT-50160, KT-50550, KT-51045, KT-51143 KT-51796, KT-52262, KT-52424, KT-52860, KT-52934 KT-53086, KT-53494, KT-53671, KT-53752, KT-53819 KT-54478, KT-54518, KT-54931, KT-54990, KT-55138 KT-55379, KT-55555, KT-56243
This commit is contained in:
committed by
Space Team
parent
8ae5213155
commit
aef9b129d2
+44
@@ -0,0 +1,44 @@
|
||||
FILE: assignToStarProjectedType.kt
|
||||
public final class Inv<T> : R|kotlin/Any| {
|
||||
public constructor<T>(): R|Inv<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final fun <T> invOf(): R|Inv<T>| {
|
||||
^invOf R|/Inv.Inv|<R|T|>()
|
||||
}
|
||||
public abstract class Base<T> : R|kotlin/Any| {
|
||||
public constructor<T>(): R|Base<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final var foo: R|Inv<T>?| = R|/invOf|<R|T|>()
|
||||
public get(): R|Inv<T>?|
|
||||
public set(value: R|Inv<T>?|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
public final class Bar : R|Base<kotlin/String>| {
|
||||
public constructor(): R|Bar| {
|
||||
super<R|Base<kotlin/String>|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final fun test_1(): R|kotlin/Unit| {
|
||||
lval x: R|Bar| = R|/Bar.Bar|()
|
||||
R|<local>/x|.R|SubstitutionOverride</Bar.foo: R|Inv<kotlin/String>?|>| = R|/invOf|<R|kotlin/String|>()
|
||||
R|<local>/x|.R|SubstitutionOverride</Bar.foo: R|Inv<kotlin/String>?|>| = Null(null)
|
||||
}
|
||||
public final fun test_2(x: R|Base<*>|): R|kotlin/Unit| {
|
||||
R|<local>/x|.R|SubstitutionOverride</Base.foo: R|Inv<CapturedType(*)>?|>| = R|/invOf<CS errors: /invOf>#|<<ERROR TYPE REF: Cannot infer argument for type parameter T>>()
|
||||
R|<local>/x|.R|SubstitutionOverride</Base.foo: R|Inv<CapturedType(*)>?|>| = Null(null)
|
||||
}
|
||||
public final fun test_3(x: R|kotlin/Any|): R|kotlin/Unit| {
|
||||
when () {
|
||||
(R|<local>/x| is R|Base<*>|) -> {
|
||||
R|<local>/x|.R|SubstitutionOverride</Base.foo: R|Inv<CapturedType(*)>?|>| = R|/invOf<CS errors: /invOf>#|<<ERROR TYPE REF: Cannot infer argument for type parameter T>>()
|
||||
R|<local>/x|.R|SubstitutionOverride</Base.foo: R|Inv<CapturedType(*)>?|>| = Null(null)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// ISSUE: KT-51045
|
||||
|
||||
class Inv<T>
|
||||
fun <T> invOf(): Inv<T> = Inv()
|
||||
|
||||
abstract class Base<T> {
|
||||
final var foo: Inv<T>? = invOf()
|
||||
}
|
||||
|
||||
class Bar : Base<String>()
|
||||
|
||||
fun test_1() {
|
||||
val x = Bar()
|
||||
x.foo = invOf()
|
||||
x.foo = null
|
||||
}
|
||||
|
||||
fun test_2(x: Base<*>) {
|
||||
x.foo = <!ASSIGNMENT_TYPE_MISMATCH!>invOf()<!>
|
||||
x.foo = null
|
||||
}
|
||||
|
||||
fun test_3(x: Any) {
|
||||
if (x is Base<*>) {
|
||||
x.foo = <!ASSIGNMENT_TYPE_MISMATCH!>invOf()<!>
|
||||
x.foo = null
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user