[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:
Dmitriy Novozhilov
2023-02-10 11:31:10 +02:00
committed by Space Team
parent 8ae5213155
commit aef9b129d2
129 changed files with 4253 additions and 0 deletions
@@ -0,0 +1,9 @@
FILE: classLiteralWithExclExcl.kt
public final class B<T> : R|kotlin/Any| {
public constructor<T>(): R|B<T>| {
super<R|kotlin/Any|>()
}
}
public final val any2: R|kotlin/reflect/KClass<ERROR CLASS: Unresolved name: invoke>| = <getClass>(Q|B|!!.<Unresolved name: invoke>#<<ERROR TYPE REF: Symbol not found for T>>)
public get(): R|kotlin/reflect/KClass<ERROR CLASS: Unresolved name: invoke>|
@@ -0,0 +1,4 @@
// ISSUE: KT-47373
class B<T>
val any2 = <!UNRESOLVED_REFERENCE!><!NO_COMPANION_OBJECT!>B<!>!!<!><<!UNRESOLVED_REFERENCE!>T<!>>::class
@@ -0,0 +1,73 @@
FILE: a.kt
package a
@R|kotlin/Suppress|() <DANGLING MODIFIER: Top level declaration expected>FILE: b.kt
package b
public abstract interface I : R|kotlin/Any| {
public open fun <T> f(): <ERROR TYPE REF: Qualified expression with unexpected selector> {
^f <ERROR TYPE REF: Qualified expression with unexpected selector>ERROR_EXPR(The expression cannot be a selector (occur after a dot))String()
}
public final class C : R|b/I| {
public constructor(): R|b/I.C| {
super<R|kotlin/Any|>()
}
}
}
FILE: c.kt
package c
public abstract interface I : R|kotlin/Any| {
public open fun <T : R|kotlin/String|> f(x: R|T?|): R|T| {
^f R|<local>/x| ?: String(OK).<Unresolved name: strip>#()?.{ $subj$.<Unresolved name: substringBeforeLast>#(Char(61334), R|c/C.C|().R|c/I.f<Inapplicable(INAPPLICABLE): c/I.f>#|<R|kotlin/Long|>(Int(-62))) }!!
}
}
public final class C : R|c/I| {
public constructor(): R|c/C| {
super<R|kotlin/Any|>()
}
}
public final fun box(): R|kotlin/String| {
^box R|c/C.C|().R|c/I.f|<R|kotlin/String|>(Null(null))
}
FILE: d.kt
package d
public abstract interface I : R|kotlin/Any| {
public open fun <T> f(): <ERROR TYPE REF: cycle> {
^f R|d/I.C.C<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): d/I.C.C>#|(ERROR_EXPR(Argument is absent)).R|d/I.f<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): d/I.f>#|<<ERROR TYPE REF: Cannot infer argument for type parameter T>>(ERROR_EXPR(No right operand))
}
public final class C : R|d/I| {
public constructor(): R|d/I.C| {
super<R|kotlin/Any|>()
}
}
}
FILE: e.kt
package e
public final class A<E> : R|kotlin/Any| {
public constructor<E>(): R|e/A<E>| {
super<R|kotlin/Any|>()
}
public final var bar: <ERROR TYPE REF: Expression 'bar' of type 'ERROR CLASS: cycle' cannot be invoked as a function> = R|e/A.EmptyContinuation.EmptyContinuation<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): e/A.EmptyContinuation.EmptyContinuation>#|(ERROR_EXPR(Argument is absent)).<Expression 'bar' of type 'ERROR CLASS: cycle' cannot be invoked as a function>#(ERROR_EXPR(No right operand))
public get(): <ERROR TYPE REF: Expression 'bar' of type 'ERROR CLASS: cycle' cannot be invoked as a function>
public set(value: <ERROR TYPE REF: Expression 'bar' of type 'ERROR CLASS: cycle' cannot be invoked as a function>): R|kotlin/Unit|
public final class EmptyContinuation : R|e/A<ERROR CLASS: Unwrapped type is null>| {
public constructor(): R|e/A.EmptyContinuation| {
super<R|e/A<ERROR CLASS: Unwrapped type is null>|>()
}
}
}
@@ -0,0 +1,50 @@
// ISSUE: KT-47484, KT-47495
// FILE: a.kt
package a
@
<!SYNTAX!>:<!>Suppress(<!NAMED_PARAMETER_NOT_FOUND!>receiver<!> = <!UNRESOLVED_REFERENCE!>iterator<!><!SYNTAX, SYNTAX!><!>
// FILE: b.kt
package b
interface I {
fun <T
> f<!SYNTAX!><!> = "".
(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>C().<!FUNCTION_CALL_EXPECTED!>f<!><!><!SYNTAX!><!>
class C : I<!SYNTAX!><!>
// FILE: c.kt
package c
import kotlin.<!UNRESOLVED_IMPORT!>properties<!>.*
import kotlin.reflect.*
import kotlin.<!UNRESOLVED_IMPORT!>math<!>.*
interface I {
fun <T : <!FINAL_UPPER_BOUND!>String<!>> f(x: T?) = x ?: "OK".<!UNRESOLVED_REFERENCE!>strip<!>()?.substringBeforeLast('', <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>C().f<<!UPPER_BOUND_VIOLATED!>Long<!>>(<!ARGUMENT_TYPE_MISMATCH!>-62<!>)<!>)!!
}
class C : I
fun box() = C().f<String>(null)
// FILE: d.kt
package d
interface I {
fun <T
> f<!SYNTAX!><!> = <!TOO_MANY_ARGUMENTS!>C<!>(
<!SYNTAX!><!SYNTAX!><!>.<!><!TOO_MANY_ARGUMENTS!>f<!><!SYNTAX!><!>
class C : I<!SYNTAX!><!>
// FILE: e.kt
package e
class A<E<!SYNTAX!><!>
{
var bar = <!TOO_MANY_ARGUMENTS!>EmptyContinuation<!>(
<!SYNTAX!><!SYNTAX!><!>.<!><!FUNCTION_EXPECTED!>bar<!><!SYNTAX!><!>
class EmptyContinuation : A<<!SYNTAX, SYNTAX!><!>
@@ -0,0 +1,6 @@
FILE: typeArgumentsOnThis.kt
public final fun x(): R|kotlin/Unit| {
this#.<Unresolved name: invoke>#<<ERROR TYPE REF: Symbol not found for X>>::<Unresolved reference: y>#
}
public final val a: <ERROR TYPE REF: Unresolved reference: y> = this#.<Unresolved name: invoke>#<<ERROR TYPE REF: Symbol not found for X>>::<Unresolved reference: y>#
public get(): <ERROR TYPE REF: Unresolved reference: y>
@@ -0,0 +1,7 @@
// ISSUE: KT-24737
fun x(){
<!NO_THIS, UNRESOLVED_REFERENCE!>this<!><<!UNRESOLVED_REFERENCE!>X<!>>::y
}
val a = <!NO_THIS, UNRESOLVED_REFERENCE!>this<!><<!UNRESOLVED_REFERENCE!>X<!>>::y