Box inline class return value in covariant override of suspend fun

This commit is contained in:
Dmitry Petrov
2020-04-07 17:01:19 +03:00
parent 8a2b39d647
commit 0c21d63290
30 changed files with 1900 additions and 13 deletions
@@ -88,7 +88,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
private val isIrBackend: Boolean = false,
private val typePreprocessor: ((KotlinType) -> KotlinType?)? = null,
private val namePreprocessor: ((ClassDescriptor) -> String?)? = null
): KotlinTypeMapperBase() {
) : KotlinTypeMapperBase() {
private val isReleaseCoroutines = languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
private val typeMappingConfiguration = object : TypeMappingConfiguration<Type> {
@@ -269,10 +269,6 @@ class KotlinTypeMapper @JvmOverloads constructor(
}
}
private fun mapInlineClassType(kotlinType: KotlinType): Type {
return mapInlineClassType(kotlinType, TypeMappingMode.DEFAULT, typeMappingConfiguration)
}
private fun writeGenericType(
type: KotlinType,
asmType: Type,
@@ -367,14 +363,37 @@ class KotlinTypeMapper @JvmOverloads constructor(
?: functionDescriptor.returnType!!
private fun getActualReturnTypeForSuspendFunctionWithInlineClassReturnTypeHack(functionDescriptor: FunctionDescriptor): KotlinType? {
val originalSuspendFunctionForJvmView = functionDescriptor.unwrapInitialDescriptorForSuspendFunction()
if (originalSuspendFunctionForJvmView === functionDescriptor) return null
val originalReturnType = originalSuspendFunctionForJvmView.returnType!!
// For each suspend function, we have a corresponding JVM view function that has an extra continuation parameter,
// and, more importantly, returns 'kotlin.Any' (so that it can return as a reference value or a special COROUTINE_SUSPENDED object).
// This also causes boxing of primitives and inline class values.
// If we have a function returning an inline class value that is mapped to a reference type, we want to avoid boxing.
// However, we have to do that consistently both on declaration site and on call site in case of covariant overrides.
if (!functionDescriptor.isSuspend) return null
val originalSuspendFunction = functionDescriptor.unwrapInitialDescriptorForSuspendFunction()
val originalReturnType = originalSuspendFunction.returnType!!
if (!originalReturnType.isInlineClassType()) return null
val jvmReturnType = mapType(originalReturnType)
return if (AsmUtil.isPrimitive(jvmReturnType)) null else originalReturnType
if (!originalReturnType.isInlineClassTypeSafeToKeepUnboxedOnSuspendFunReturn()) {
return originalSuspendFunction.module.builtIns.nullableAnyType
}
// NB JVM view of a Kotlin function overrides JVM views of corresponding overridden functions
val originalOverridden = getAllOverriddenDeclarations(functionDescriptor).map {
it.unwrapInitialDescriptorForSuspendFunction().original
}
if (originalOverridden.any { !it.returnType!!.isInlineClassTypeSafeToKeepUnboxedOnSuspendFunReturn() }) {
return originalSuspendFunction.module.builtIns.nullableAnyType
}
return originalReturnType
}
private fun KotlinType.isInlineClassTypeSafeToKeepUnboxedOnSuspendFunReturn(): Boolean =
isInlineClassType() && !AsmUtil.isPrimitive(mapType(this)) && (!isMarkedNullable || !isNullableUnderlyingType())
@JvmOverloads
fun mapToCallableMethod(
descriptor: FunctionDescriptor,
@@ -806,13 +825,13 @@ class KotlinTypeMapper @JvmOverloads constructor(
}
} else {
val directMember = DescriptorUtils.getDirectMember(f)
val thisIfNeeded: KotlinType? = when {
kind == OwnerKind.DEFAULT_IMPLS -> {
val thisIfNeeded: KotlinType? = when (kind) {
OwnerKind.DEFAULT_IMPLS -> {
val receiverTypeAndTypeParameters = patchTypeParametersForDefaultImplMethod(directMember)
writeFormalTypeParameters(receiverTypeAndTypeParameters.typeParameters + directMember.typeParameters, sw)
receiverTypeAndTypeParameters.receiverType
}
kind == OwnerKind.ERASED_INLINE_CLASS -> {
OwnerKind.ERASED_INLINE_CLASS -> {
writeFormalTypeParameters(directMember.typeParameters, sw)
(directMember.containingDeclaration as ClassDescriptor).defaultType
}
@@ -7161,10 +7161,125 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")
@@ -0,0 +1,45 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: String)
interface IBar {
suspend fun bar(): Any
}
class Test() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test1(): String {
val b: IBar = this
return (b.bar() as IC).s
}
suspend fun test2(): String = bar().s
}
fun box(): String {
var result = "FAIL 1"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2 "
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,47 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: String)
interface IBar {
suspend fun bar(): IC?
}
class Test() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s
}
suspend fun test2(): String {
return bar().s
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,46 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any)
interface IBar {
suspend fun bar(): IC?
}
class Test() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s as String
}
suspend fun test2(): String {
return bar()!!.s as String
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,49 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Int)
interface IBar {
suspend fun bar(): IC?
}
fun Int.toResultString() =
if (this == 42) "OK" else "!!! $this"
class Test() : IBar {
override suspend fun bar(): IC = IC(42)
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s.toResultString()
}
suspend fun test2(): String {
return bar()!!.s.toResultString()
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,45 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any?)
interface IBar {
suspend fun bar(): IC?
}
class Test() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s as String
}
suspend fun test2(): String = bar().s as String
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,56 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any?)
interface IBar {
suspend fun bar(): IC?
}
class Test1() : IBar {
override suspend fun bar(): IC {
return IC(null)
}
suspend fun test(): Any? {
val b: IBar = this
return b.bar()!!.s
}
}
class Test2() : IBar {
override suspend fun bar(): IC {
return IC(null)
}
suspend fun test(): IC {
val b: IBar = this
return b.bar()!!
}
}
fun box(): String {
var result: Any? = "FAIL 1"
builder {
result = Test1().test()
}
if (result != null) return "FAIL 1 $result"
result = "FAIL 2"
builder {
result = Test2().test()
}
if (result != IC(null)) return "FAIL 2 $result"
return "OK"
}
@@ -0,0 +1,49 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Int?)
interface IBar {
suspend fun bar(): IC?
}
fun Int?.toResultString() =
if (this == 42) "OK" else "!!! $this"
class Test() : IBar {
override suspend fun bar(): IC = IC(42)
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s.toResultString()
}
suspend fun test2(): String {
return bar()!!.s.toResultString()
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,49 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Int?)
interface IBar {
suspend fun bar(): IC?
}
fun Int?.toResultString() =
if (this == null) "OK" else "!!! $this"
class Test() : IBar {
override suspend fun bar(): IC = IC(null)
suspend fun test1(): String {
val b: IBar = this
return b.bar()!!.s.toResultString()
}
suspend fun test2(): String {
return bar()!!.s.toResultString()
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,46 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any)
interface IBar {
suspend fun bar(): Any
}
class Test() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test1(): String {
val b: IBar = this
return (b.bar() as IC).s as String
}
suspend fun test2(): String = bar().s as String
}
fun box(): String {
var result = "FAIL 1"
builder {
result = Test().test1()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2 "
builder {
result = Test().test2()
}
if (result != "OK") return "FAIL 2 $result"
return result
}
@@ -0,0 +1,50 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Int)
interface IBar {
suspend fun bar(): Any
}
class Test() : IBar {
override suspend fun bar(): IC = IC(42)
suspend fun test1(): Int {
val b: IBar = this
return (b.bar() as IC).s
}
suspend fun test2(): Int {
val b: IBar = this
return (b.bar() as IC).s
}
}
fun Int.toBoxResult() =
if (this == 42) "OK" else toString()
fun box(): String {
var result: String = "FAIL"
builder {
result = Test().test1().toBoxResult()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test().test2().toBoxResult()
}
if (result != "OK") return "FAIL 2 $result"
return result as String
}
@@ -0,0 +1,29 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: String)
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC("OK")) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s
}
return res!!
}
@@ -0,0 +1,29 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Any)
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC("OK")) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s as String
}
return res!!
}
@@ -0,0 +1,29 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Any)
interface Base<T : IC?> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC("OK")) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = base.generic()!!.s as String
}
return res!!
}
@@ -0,0 +1,32 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Int)
fun Int.toResultString() =
if (this == 42) "OK" else "!! $this"
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC(42)) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s.toResultString()
}
return res!!
}
@@ -0,0 +1,29 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Any?)
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC("OK")) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s as String
}
return res!!
}
@@ -0,0 +1,32 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Any?)
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC(null)) }
}
fun Any?.toResultString(): String =
if (this == null) "OK" else "!! $this"
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s.toResultString()
}
return res!!
}
@@ -0,0 +1,32 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Int?)
fun Int?.toResultString() =
if (this == 42) "OK" else "!! $this"
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC(42)) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s.toResultString()
}
return res!!
}
@@ -0,0 +1,32 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
inline class IC(val s: Int?)
fun Int?.toResultString() =
if (this == null) "OK" else "!! $this"
interface Base<T> {
suspend fun generic(): T
}
class Derived : Base<IC> {
override suspend fun generic(): IC = suspendCoroutine { it.resume(IC(null)) }
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
var res: String? = null
builder {
val base: Base<*> = Derived()
res = (base.generic() as IC).s.toResultString()
}
return res!!
}
@@ -0,0 +1,110 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
// COMMON_COROUTINES_TEST
import helpers.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: String)
interface IBar {
suspend fun bar(): IC
}
class Test1() : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(ss: IC): IC = IC(ss.s)
suspend fun <T> quz(t: T): T = t
override suspend fun bar(): IC {
return foo(qux(quz(IC("OK"))))
}
suspend fun test(): String {
val b: IBar = this
return b.bar().s
}
}
class Test2 : IBar {
suspend fun foo(value: IC): IC {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(s: String): IC = IC(s)
suspend fun quz(): String = "OK"
override suspend fun bar(): IC {
return foo(qux(quz()))
}
suspend fun test(): String {
val b: IBar = this
return b.bar().s
}
}
class Test3 : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
override suspend fun bar(): IC {
return foo(IC("OK"))
}
suspend fun test(): String {
val b: IBar = this
return b.bar().s
}
}
fun box(): String {
var result = "FAIL"
builder {
result = Test1().test()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test2().test()
}
if (result != "OK") return "FAIL 2 $result"
result = "FAIL 3"
builder {
result = Test3().test()
}
return result
}
@@ -0,0 +1,104 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
// COMMON_COROUTINES_TEST
import helpers.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any)
interface IBar {
suspend fun bar(): IC
}
class Test1() : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(ss: IC): IC = IC(ss.s)
suspend fun <T> quz(t: T): T = t
override suspend fun bar(): IC {
return foo(qux(quz(IC("OK"))))
}
suspend fun test(): Any {
val b: IBar = this
return b.bar().s
}
}
class Test2 : IBar {
suspend fun foo(value: IC): IC {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(s: String): IC = IC(s)
suspend fun quz(): String = "OK"
override suspend fun bar(): IC {
return foo(qux(quz()))
}
suspend fun test(): Any {
val b: IBar = this
return b.bar().s
}
}
class Test3 : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
override suspend fun bar(): IC {
return foo(IC("OK"))
}
suspend fun test(): Any {
val b: IBar = this
return b.bar().s
}
}
fun box(): String {
var result: Any = "FAIL1"
builder {
result = Test1().test()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test2().test()
}
if (result != "OK") return "FAIL 2 $result"
result = "FAIL 3"
builder {
result = Test3().test()
}
return result as String
}
@@ -0,0 +1,38 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
// COMMON_COROUTINES_TEST
import helpers.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any)
interface IBar {
suspend fun bar(): IC
}
class Test0() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test(): Any {
val b: IBar = this
return b.bar().s
}
}
fun box(): String {
var result: Any = "FAIL"
builder {
result = Test0().test()
}
if (result != "OK") return "FAIL 0 $result"
return result as String
}
@@ -0,0 +1,37 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
// COMMON_COROUTINES_TEST
import helpers.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Any)
interface IBar {
suspend fun bar(): IC
}
class Test0() : IBar {
override suspend fun bar(): IC = IC("OK")
suspend fun test(): Any {
return bar().s
}
}
fun box(): String {
var result: Any = "FAIL"
builder {
result = Test0().test()
}
if (result != "OK") return "FAIL 0 $result"
return result as String
}
@@ -0,0 +1,113 @@
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// WITH_COROUTINES
// COMMON_COROUTINES_TEST
import helpers.*
import COROUTINES_PACKAGE.*
import COROUTINES_PACKAGE.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
@Suppress("UNSUPPORTED_FEATURE")
inline class IC(val s: Int)
interface IBar {
suspend fun bar(): IC
}
class Test1() : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(ss: IC): IC = IC(ss.s)
suspend fun <T> quz(t: T): T = t
override suspend fun bar(): IC {
return foo(qux(quz(IC(42))))
}
suspend fun test(): Int {
val b: IBar = this
return b.bar().s
}
}
class Test2 : IBar {
suspend fun foo(value: IC): IC {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
suspend fun qux(s: Int): IC = IC(s)
suspend fun quz(): Int = 42
override suspend fun bar(): IC {
return foo(qux(quz()))
}
suspend fun test(): Int {
val b: IBar = this
return b.bar().s
}
}
class Test3 : IBar {
suspend fun <T> foo(value: T): T {
return suspendCoroutineUninterceptedOrReturn {
it.resume(value)
COROUTINE_SUSPENDED
}
}
override suspend fun bar(): IC {
return foo(IC(42))
}
suspend fun test(): Int {
val b: IBar = this
return b.bar().s
}
}
fun Int.toBoxResult() =
if (this == 42) "OK" else toString()
fun box(): String {
var result: String = "FAIL"
builder {
result = Test1().test().toBoxResult()
}
if (result != "OK") return "FAIL 1 $result"
result = "FAIL2"
builder {
result = Test2().test().toBoxResult()
}
if (result != "OK") return "FAIL 2 $result"
result = "FAIL 3"
builder {
result = Test3().test().toBoxResult()
}
return result as String
}
@@ -7921,6 +7921,96 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines.experimental");
@@ -7930,6 +8020,56 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")
@@ -7921,6 +7921,96 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines.experimental");
@@ -7930,6 +8020,56 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_2() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines.experimental");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")
@@ -7161,10 +7161,125 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")
@@ -6091,10 +6091,125 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")
@@ -6091,10 +6091,125 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/bridgeGenerationNonInline.kt", "kotlin.coroutines");
}
@TestMetadata("covariantOverrideSuspendFun.kt")
public void testCovariantOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Any.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_Int.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_Int.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableAny_null.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt.kt");
}
@TestMetadata("covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt")
public void testCovariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFunWithNullableInlineClass_NullableInt_null.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Any.kt")
public void testCovariantOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Any.kt");
}
@TestMetadata("covariantOverrideSuspendFun_Int.kt")
public void testCovariantOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/covariantOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun.kt")
public void testGenericOverrideSuspendFun() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any.kt")
public void testGenericOverrideSuspendFun_Any() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any.kt");
}
@TestMetadata("genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt")
public void testGenericOverrideSuspendFun_Any_NullableInlineClassUpperBound() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Any_NullableInlineClassUpperBound.kt");
}
@TestMetadata("genericOverrideSuspendFun_Int.kt")
public void testGenericOverrideSuspendFun_Int() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_Int.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny.kt")
public void testGenericOverrideSuspendFun_NullableAny() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableAny_null.kt")
public void testGenericOverrideSuspendFun_NullableAny_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableAny_null.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt.kt")
public void testGenericOverrideSuspendFun_NullableInt() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt.kt");
}
@TestMetadata("genericOverrideSuspendFun_NullableInt_null.kt")
public void testGenericOverrideSuspendFun_NullableInt_null() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/inlineClasses/genericOverrideSuspendFun_NullableInt_null.kt");
}
@TestMetadata("interfaceDelegateWithInlineClass.kt")
public void testInterfaceDelegateWithInlineClass_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/interfaceDelegateWithInlineClass.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun.kt")
public void testOverrideSuspendFun_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any.kt")
public void testOverrideSuspendFun_Any_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_itf.kt")
public void testOverrideSuspendFun_Any_itf_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_itf.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Any_this.kt")
public void testOverrideSuspendFun_Any_this_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Any_this.kt", "kotlin.coroutines");
}
@TestMetadata("overrideSuspendFun_Int.kt")
public void testOverrideSuspendFun_Int_1_3() throws Exception {
runTestWithPackageReplacement("compiler/testData/codegen/box/coroutines/inlineClasses/overrideSuspendFun_Int.kt", "kotlin.coroutines");
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/intLikeVarSpilling")