PSI2IR fix suspend conversion tests
- support chained suspend conversion + SAM conversion - support suspend conversion in vararg elements
This commit is contained in:
committed by
teamcityserver
parent
0cc6fbbc6e
commit
d41fc0b599
Generated
+18
@@ -1058,6 +1058,12 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("classReference.kt")
|
@TestMetadata("classReference.kt")
|
||||||
public void testClassReference() throws Exception {
|
public void testClassReference() throws Exception {
|
||||||
@@ -1646,12 +1652,24 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("suspendConversionInVararg.kt")
|
||||||
|
public void testSuspendConversionInVararg() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionInVararg.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
||||||
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("suspendConversionWithFunInterfaces.kt")
|
||||||
|
public void testSuspendConversionWithFunInterfaces() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionWithFunInterfaces.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
||||||
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
||||||
|
|||||||
+52
-27
@@ -230,7 +230,7 @@ private fun StatementGenerator.generateReceiverForCalleeImportedFromObject(
|
|||||||
private fun StatementGenerator.generateVarargExpressionUsing(
|
private fun StatementGenerator.generateVarargExpressionUsing(
|
||||||
varargArgument: VarargValueArgument,
|
varargArgument: VarargValueArgument,
|
||||||
valueParameter: ValueParameterDescriptor,
|
valueParameter: ValueParameterDescriptor,
|
||||||
@Suppress("UNUSED_PARAMETER") resolvedCall: ResolvedCall<*>, // TODO resolvedCall is required for suspend conversions, see KT-38604
|
resolvedCall: ResolvedCall<*>,
|
||||||
generateArgumentExpression: (KtExpression) -> IrExpression?
|
generateArgumentExpression: (KtExpression) -> IrExpression?
|
||||||
): IrExpression? {
|
): IrExpression? {
|
||||||
if (varargArgument.arguments.isEmpty()) {
|
if (varargArgument.arguments.isEmpty()) {
|
||||||
@@ -249,16 +249,21 @@ private fun StatementGenerator.generateVarargExpressionUsing(
|
|||||||
|
|
||||||
val irVararg = IrVarargImpl(varargStartOffset, varargEndOffset, valueParameter.type.toIrType(), varargElementType.toIrType())
|
val irVararg = IrVarargImpl(varargStartOffset, varargEndOffset, valueParameter.type.toIrType(), varargElementType.toIrType())
|
||||||
|
|
||||||
for (argument in varargArgument.arguments) {
|
for (varargElementArgument in varargArgument.arguments) {
|
||||||
val ktArgumentExpression = argument.getArgumentExpression()
|
val ktArgumentExpression = varargElementArgument.getArgumentExpression()
|
||||||
?: throw AssertionError("No argument expression for vararg element ${argument.asElement().text}")
|
?: throw AssertionError("No argument expression for vararg element ${varargElementArgument.asElement().text}")
|
||||||
val irArgumentExpression = generateArgumentExpression(ktArgumentExpression)
|
val irArgumentExpression =
|
||||||
?: throw AssertionError("'generateArgumentExpression' should return non-null for vararg element ${ktArgumentExpression.text}")
|
generateArgumentExpression(ktArgumentExpression)
|
||||||
|
?.let { irArg ->
|
||||||
|
applySuspendConversionForValueArgumentIfRequired(irArg, varargElementArgument, valueParameter, resolvedCall)
|
||||||
|
}
|
||||||
|
?: throw AssertionError("no expression for vararg element ${ktArgumentExpression.text}")
|
||||||
|
|
||||||
val irVarargElement =
|
val irVarargElement =
|
||||||
if (argument.getSpreadElement() != null ||
|
if (varargElementArgument.getSpreadElement() != null ||
|
||||||
context.languageVersionSettings
|
context.languageVersionSettings
|
||||||
.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions) &&
|
.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions) &&
|
||||||
argument.isNamed()
|
varargElementArgument.isNamed()
|
||||||
)
|
)
|
||||||
IrSpreadElementImpl(
|
IrSpreadElementImpl(
|
||||||
ktArgumentExpression.startOffsetSkippingComments, ktArgumentExpression.endOffset,
|
ktArgumentExpression.startOffsetSkippingComments, ktArgumentExpression.endOffset,
|
||||||
@@ -323,17 +328,24 @@ private fun StatementGenerator.applySuspendConversionForValueArgumentIfRequired(
|
|||||||
|
|
||||||
val valueParameterType = if (valueParameter.isVararg) valueParameter.varargElementType!! else valueParameter.type
|
val valueParameterType = if (valueParameter.isVararg) valueParameter.varargElementType!! else valueParameter.type
|
||||||
|
|
||||||
val irSuspendFunType = valueParameterType.toIrType()
|
val suspendFunType: KotlinType =
|
||||||
return IrBlockImpl(expression.startOffset, expression.endOffset, irSuspendFunType, IrStatementOrigin.SUSPEND_CONVERSION).apply {
|
if (context.extensions.samConversion.isSamType(valueParameterType))
|
||||||
val irAdapterFunction = createFunctionForSuspendConversion(startOffset, endOffset, suspendConversionType, valueParameterType)
|
valueParameterType.getSubstitutedFunctionTypeForSamType()
|
||||||
// TODO add a bound receiver property to IrFunctionExpressionImpl?
|
else
|
||||||
val irAdapterRef = IrFunctionReferenceImpl(
|
valueParameterType
|
||||||
startOffset, endOffset, irSuspendFunType, irAdapterFunction.symbol, irAdapterFunction.typeParameters.size,
|
|
||||||
irAdapterFunction.valueParameters.size, null, IrStatementOrigin.SUSPEND_CONVERSION
|
val irAdapterRefType = suspendFunType.toIrType()
|
||||||
)
|
return IrBlockImpl(expression.startOffset, expression.endOffset, irAdapterRefType, IrStatementOrigin.SUSPEND_CONVERSION)
|
||||||
statements.add(irAdapterFunction)
|
.apply {
|
||||||
statements.add(irAdapterRef.apply { extensionReceiver = expression })
|
val irAdapterFunction = createFunctionForSuspendConversion(startOffset, endOffset, suspendConversionType, suspendFunType)
|
||||||
}
|
// TODO add a bound receiver property to IrFunctionExpressionImpl?
|
||||||
|
val irAdapterRef = IrFunctionReferenceImpl(
|
||||||
|
startOffset, endOffset, irAdapterRefType, irAdapterFunction.symbol, irAdapterFunction.typeParameters.size,
|
||||||
|
irAdapterFunction.valueParameters.size, null, IrStatementOrigin.SUSPEND_CONVERSION
|
||||||
|
)
|
||||||
|
statements.add(irAdapterFunction)
|
||||||
|
statements.add(irAdapterRef.apply { extensionReceiver = expression })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun StatementGenerator.createFunctionForSuspendConversion(
|
private fun StatementGenerator.createFunctionForSuspendConversion(
|
||||||
@@ -343,8 +355,7 @@ private fun StatementGenerator.createFunctionForSuspendConversion(
|
|||||||
suspendFunType: KotlinType
|
suspendFunType: KotlinType
|
||||||
): IrSimpleFunction {
|
): IrSimpleFunction {
|
||||||
val irFunReturnType = funType.arguments.last().type.toIrType()
|
val irFunReturnType = funType.arguments.last().type.toIrType()
|
||||||
val suspendFunReturnType = suspendFunType.arguments.last().type
|
val irSuspendFunReturnType = suspendFunType.arguments.last().type.toIrType()
|
||||||
val irSuspendFunReturnType = suspendFunReturnType.toIrType()
|
|
||||||
|
|
||||||
val irAdapterFun = context.irFactory.createFunction(
|
val irAdapterFun = context.irFactory.createFunction(
|
||||||
startOffset, endOffset,
|
startOffset, endOffset,
|
||||||
@@ -395,7 +406,7 @@ private fun StatementGenerator.createFunctionForSuspendConversion(
|
|||||||
for (irAdapterParameter in irAdapterFun.valueParameters) {
|
for (irAdapterParameter in irAdapterFun.valueParameters) {
|
||||||
irAdapteeCall.putValueArgument(irAdapterParameter.index, irGet(irAdapterParameter))
|
irAdapteeCall.putValueArgument(irAdapterParameter.index, irGet(irAdapterParameter))
|
||||||
}
|
}
|
||||||
if (suspendFunReturnType.isUnit()) {
|
if (suspendFunType.arguments.last().type.isUnit()) {
|
||||||
+irAdapteeCall
|
+irAdapteeCall
|
||||||
} else {
|
} else {
|
||||||
+IrReturnImpl(
|
+IrReturnImpl(
|
||||||
@@ -592,15 +603,29 @@ fun StatementGenerator.generateSamConversionForValueArgumentsIfRequired(call: Ca
|
|||||||
|
|
||||||
val irSamType = substitutedSamType.toIrType()
|
val irSamType = substitutedSamType.toIrType()
|
||||||
|
|
||||||
fun samConvertScalarExpression(irArgument: IrExpression) =
|
fun IrExpression.isFunctionReferenceAdapter() =
|
||||||
|
this is IrBlock && (origin == IrStatementOrigin.SUSPEND_CONVERSION || origin == IrStatementOrigin.ADAPTED_FUNCTION_REFERENCE)
|
||||||
|
|
||||||
|
fun IrExpression.applySamConversion() =
|
||||||
IrTypeOperatorCallImpl(
|
IrTypeOperatorCallImpl(
|
||||||
irArgument.startOffset, irArgument.endOffset,
|
startOffset, endOffset,
|
||||||
irSamType,
|
irSamType,
|
||||||
IrTypeOperator.SAM_CONVERSION,
|
IrTypeOperator.SAM_CONVERSION, irSamType,
|
||||||
irSamType,
|
castArgumentToFunctionalInterfaceForSamType(this, substitutedSamType)
|
||||||
castArgumentToFunctionalInterfaceForSamType(irArgument, substitutedSamType)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fun samConvertScalarExpression(irArgument: IrExpression) =
|
||||||
|
if (irArgument.isFunctionReferenceAdapter()) {
|
||||||
|
// Apply SAM_CONVERSION directly to the adapter reference
|
||||||
|
val irBlock = irArgument as IrBlock
|
||||||
|
irBlock.type = irSamType
|
||||||
|
val irAdapterRef = irBlock.statements.last() as IrFunctionReference
|
||||||
|
irBlock.statements[irBlock.statements.lastIndex] = irAdapterRef.applySamConversion()
|
||||||
|
irBlock
|
||||||
|
} else {
|
||||||
|
irArgument.applySamConversion()
|
||||||
|
}
|
||||||
|
|
||||||
call.irValueArgumentsByIndex[i] =
|
call.irValueArgumentsByIndex[i] =
|
||||||
if (originalArgument !is IrVararg) {
|
if (originalArgument !is IrVararg) {
|
||||||
samConvertScalarExpression(originalArgument)
|
samConvertScalarExpression(originalArgument)
|
||||||
|
|||||||
+4
-3
@@ -286,9 +286,10 @@ internal class InsertImplicitCasts(
|
|||||||
|
|
||||||
override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression =
|
override fun visitTypeOperator(expression: IrTypeOperatorCall): IrExpression =
|
||||||
when (expression.operator) {
|
when (expression.operator) {
|
||||||
IrTypeOperator.SAM_CONVERSION -> expression.transformPostfix {
|
IrTypeOperator.SAM_CONVERSION ->
|
||||||
argument = argument.cast(typeOperand.originalKotlinType!!.getSubstitutedFunctionTypeForSamType())
|
expression.transformPostfix {
|
||||||
}
|
argument = argument.cast(typeOperand.originalKotlinType!!.getSubstitutedFunctionTypeForSamType())
|
||||||
|
}
|
||||||
|
|
||||||
IrTypeOperator.IMPLICIT_CAST -> {
|
IrTypeOperator.IMPLICIT_CAST -> {
|
||||||
// This branch is required for handling specific ambiguous cases in implicit cast insertion,
|
// This branch is required for handling specific ambiguous cases in implicit cast insertion,
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun foo1(/*0*/ f: suspend () -> kotlin.String): kotlin.Unit
|
|
||||||
public fun foo2(/*0*/ f: suspend (kotlin.Int) -> kotlin.String): kotlin.Unit
|
|
||||||
public fun foo3(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun test(/*0*/ f0: suspend () -> kotlin.String, /*1*/ f1: () -> kotlin.String, /*2*/ f2: (kotlin.Int) -> kotlin.String, /*3*/ f3: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
Vendored
+1
@@ -1,5 +1,6 @@
|
|||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
|
||||||
fun foo1(f: suspend () -> Unit) {}
|
fun foo1(f: suspend () -> Unit) {}
|
||||||
fun bar1() {}
|
fun bar1() {}
|
||||||
|
|||||||
Vendored
-8
@@ -1,8 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun bar1(): kotlin.Unit
|
|
||||||
public fun bar2(/*0*/ x: kotlin.Int): kotlin.Unit
|
|
||||||
public fun bar2(/*0*/ s: kotlin.String): kotlin.Unit
|
|
||||||
public fun foo1(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun </*0*/ T> foo2(/*0*/ e: T, /*1*/ f: suspend (T) -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun test(): kotlin.Unit
|
|
||||||
+8
-14
@@ -1,7 +1,13 @@
|
|||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
// ^ TODO: get rid of T::class.java
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
class C
|
||||||
|
|
||||||
class Inv2<T, K>
|
class Inv2<T, K>
|
||||||
|
|
||||||
inline fun <reified T> materialize(): T = T::class.java.newInstance()
|
inline fun <reified T> materialize(): T = T::class.java.newInstance()
|
||||||
@@ -10,42 +16,30 @@ inline fun <reified T> foo1(crossinline f: suspend (T) -> String): T = materiali
|
|||||||
inline fun <reified T> foo2(crossinline f: suspend () -> T): T = materialize()
|
inline fun <reified T> foo2(crossinline f: suspend () -> T): T = materialize()
|
||||||
inline fun <reified T, K> foo3(crossinline f: suspend (T) -> K): Inv2<T, K> = Inv2()
|
inline fun <reified T, K> foo3(crossinline f: suspend (T) -> K): Inv2<T, K> = Inv2()
|
||||||
|
|
||||||
fun <T> foo11(f: suspend (T) -> String): T = 1 as T
|
fun <T> foo11(f: suspend (T) -> String): T = C() as T
|
||||||
fun <T> foo21(f: suspend () -> T): T = "" as T
|
fun <T> foo21(f: suspend () -> T): T = "" as T
|
||||||
fun <T, K> foo31(f: suspend (T) -> K): Inv2<T, K> = Inv2()
|
fun <T, K> foo31(f: suspend (T) -> K): Inv2<T, K> = Inv2()
|
||||||
|
|
||||||
fun <I> id(e: I): I = e
|
fun <I> id(e: I): I = e
|
||||||
|
|
||||||
fun test(f: (Int) -> String, g: () -> String) {
|
fun test(f: (C) -> String, g: () -> String) {
|
||||||
val a0 = foo1(f)
|
val a0 = foo1(f)
|
||||||
val a01 = foo11(f)
|
val a01 = foo11(f)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>a0<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>a01<!>
|
|
||||||
|
|
||||||
val a1 = foo2(g)
|
val a1 = foo2(g)
|
||||||
val a11 = foo21(g)
|
val a11 = foo21(g)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>a1<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>a11<!>
|
|
||||||
|
|
||||||
val a2 = foo3(f)
|
val a2 = foo3(f)
|
||||||
val a21 = foo31(f)
|
val a21 = foo31(f)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Inv2<kotlin.Int, kotlin.String>")!>a2<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Inv2<kotlin.Int, kotlin.String>")!>a21<!>
|
|
||||||
|
|
||||||
val a3 = foo1(id(f))
|
val a3 = foo1(id(f))
|
||||||
val a31 = foo11(id(f))
|
val a31 = foo11(id(f))
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>a3<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>a31<!>
|
|
||||||
|
|
||||||
val a4 = foo2(id(g))
|
val a4 = foo2(id(g))
|
||||||
val a41 = foo21(id(g))
|
val a41 = foo21(id(g))
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>a4<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>a41<!>
|
|
||||||
|
|
||||||
val a5 = foo3(id(f))
|
val a5 = foo3(id(f))
|
||||||
val a51 = foo31(id(f))
|
val a51 = foo31(id(f))
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Inv2<kotlin.Int, kotlin.String>")!>a5<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Inv2<kotlin.Int, kotlin.String>")!>a51<!>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
|
|||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun </*0*/ T> foo1(/*0*/ f: suspend (T) -> kotlin.String): T
|
|
||||||
public fun </*0*/ T> foo2(/*0*/ f: suspend () -> T): T
|
|
||||||
public fun </*0*/ T, /*1*/ K> foo3(/*0*/ f: suspend (T) -> K): Inv2<T, K>
|
|
||||||
public fun </*0*/ I> id(/*0*/ e: I): I
|
|
||||||
public fun test(/*0*/ f: (kotlin.Int) -> kotlin.String, /*1*/ g: () -> kotlin.String): kotlin.Unit
|
|
||||||
|
|
||||||
public final class Inv2</*0*/ T, /*1*/ K> {
|
|
||||||
public constructor Inv2</*0*/ T, /*1*/ K>()
|
|
||||||
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
|
|
||||||
}
|
|
||||||
Vendored
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
// FIR_IDENTICAL
|
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
|
|
||||||
fun interface SuspendRunnable {
|
fun interface SuspendRunnable {
|
||||||
suspend fun invoke()
|
suspend fun invoke()
|
||||||
|
|||||||
Vendored
-11
@@ -1,11 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun foo(/*0*/ s: SuspendRunnable): kotlin.Unit
|
|
||||||
public fun test(/*0*/ f: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
|
|
||||||
public fun interface SuspendRunnable {
|
|
||||||
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 abstract suspend fun invoke(): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
+11
-4
@@ -1,13 +1,17 @@
|
|||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
|
||||||
fun foo(x: () -> Int) {}
|
var foo1 = false
|
||||||
fun foo(x: suspend () -> Int) {}
|
var foo2 = false
|
||||||
|
|
||||||
|
fun foo(x: () -> Int) { foo1 = true }
|
||||||
|
fun foo(x: suspend () -> Int) { foo2 = true}
|
||||||
|
|
||||||
fun usualCall(): Int = 42
|
fun usualCall(): Int = 42
|
||||||
suspend fun suspendCall(): Int = 42
|
suspend fun suspendCall(): Int = 42
|
||||||
|
|
||||||
// candidate without suspend conversions is more specific
|
|
||||||
fun test2(f: () -> Int, g: suspend () -> Int) {
|
fun test2(f: () -> Int, g: suspend () -> Int) {
|
||||||
foo(f)
|
foo(f)
|
||||||
foo(g)
|
foo(g)
|
||||||
@@ -15,5 +19,8 @@ fun test2(f: () -> Int, g: suspend () -> Int) {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
test2({ 1 }, { 2 })
|
test2({ 1 }, { 2 })
|
||||||
return "OK"
|
return if (foo1 && foo2)
|
||||||
|
"OK"
|
||||||
|
else
|
||||||
|
"foo1: $foo1; foo2: $foo2"
|
||||||
}
|
}
|
||||||
-8
@@ -1,8 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun foo(/*0*/ x: () -> kotlin.Int): kotlin.Unit
|
|
||||||
public fun foo(/*0*/ x: suspend () -> kotlin.Int): kotlin.Unit
|
|
||||||
public suspend fun suspendCall(): kotlin.Int
|
|
||||||
public fun test1(): kotlin.Unit
|
|
||||||
public fun test2(/*0*/ f: () -> kotlin.Int, /*1*/ g: suspend () -> kotlin.Int): kotlin.Unit
|
|
||||||
public fun usualCall(): kotlin.Int
|
|
||||||
+2
@@ -1,6 +1,8 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
|
||||||
fun foo(f: () -> String, g: suspend () -> String, h: suspend () -> String) {}
|
fun foo(f: () -> String, g: suspend () -> String, h: suspend () -> String) {}
|
||||||
|
|
||||||
|
|||||||
-4
@@ -1,4 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun foo(/*0*/ f: () -> kotlin.String, /*1*/ g: suspend () -> kotlin.String, /*2*/ h: suspend () -> kotlin.String): kotlin.Unit
|
|
||||||
public fun test(/*0*/ f: () -> kotlin.String, /*1*/ g: suspend () -> kotlin.String): kotlin.Unit
|
|
||||||
+10
-3
@@ -1,5 +1,12 @@
|
|||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
|
|
||||||
|
fun interface Runnable {
|
||||||
|
fun run()
|
||||||
|
}
|
||||||
|
|
||||||
fun interface SuspendRunnable {
|
fun interface SuspendRunnable {
|
||||||
suspend fun run()
|
suspend fun run()
|
||||||
@@ -12,7 +19,7 @@ object Test1 {
|
|||||||
fun call(r: SuspendRunnable) {}
|
fun call(r: SuspendRunnable) {}
|
||||||
|
|
||||||
fun bar(f: () -> Unit) {
|
fun bar(f: () -> Unit) {
|
||||||
<!DEBUG_INFO_CALL("fqName: Test1.call; typeCall: function")!>call(f)<!>
|
call(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,13 +31,13 @@ object Test2 {
|
|||||||
fun call(r: SuspendRunnable) {}
|
fun call(r: SuspendRunnable) {}
|
||||||
|
|
||||||
fun bar(f: () -> Unit) {
|
fun bar(f: () -> Unit) {
|
||||||
<!DEBUG_INFO_CALL("fqName: Test2.Scope.call; typeCall: function")!>call(f)<!>
|
call(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
Test2.Scope.bar { }
|
|
||||||
Test1.Scope.bar { }
|
Test1.Scope.bar { }
|
||||||
|
Test2.Scope.bar { }
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
-42
@@ -1,42 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun interface SuspendRunnable {
|
|
||||||
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 abstract suspend fun run(): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
|
|
||||||
public object Test1 {
|
|
||||||
private constructor Test1()
|
|
||||||
public final fun call(/*0*/ r: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
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 object Scope {
|
|
||||||
private constructor Scope()
|
|
||||||
public final fun bar(/*0*/ f: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public final fun call(/*0*/ r: SuspendRunnable): kotlin.Unit
|
|
||||||
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 object Test2 {
|
|
||||||
private constructor Test2()
|
|
||||||
public final fun call(/*0*/ r: java.lang.Runnable): kotlin.Unit
|
|
||||||
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 object Scope {
|
|
||||||
private constructor Scope()
|
|
||||||
public final fun bar(/*0*/ f: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public final fun call(/*0*/ r: SuspendRunnable): kotlin.Unit
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+3
-5
@@ -1,6 +1,8 @@
|
|||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
|
|
||||||
object Test1 {
|
object Test1 {
|
||||||
fun foo(f: () -> Unit) {}
|
fun foo(f: () -> Unit) {}
|
||||||
@@ -9,7 +11,7 @@ object Test1 {
|
|||||||
fun foo(f: suspend () -> Unit) {}
|
fun foo(f: suspend () -> Unit) {}
|
||||||
|
|
||||||
fun test(g: () -> Unit) {
|
fun test(g: () -> Unit) {
|
||||||
<!DEBUG_INFO_CALL("fqName: Test1.foo; typeCall: function")!>foo(g)<!>
|
foo(g)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -25,8 +27,6 @@ object Test2 {
|
|||||||
fun test() {
|
fun test() {
|
||||||
val result = foo(::bar)
|
val result = foo(::bar)
|
||||||
val result2 = foo2(::bar)
|
val result2 = foo2(::bar)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>result2<!>
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,8 +43,6 @@ object Test3 {
|
|||||||
fun test() {
|
fun test() {
|
||||||
val result = foo(::bar)
|
val result = foo(::bar)
|
||||||
val result2 = foo2(::bar)
|
val result2 = foo2(::bar)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result<!>
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>result2<!>
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
-54
@@ -1,54 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public object Test1 {
|
|
||||||
private constructor Test1()
|
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final fun foo(/*0*/ f: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public object Scope {
|
|
||||||
private constructor Scope()
|
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final fun foo(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public final fun test(/*0*/ g: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public object Test2 {
|
|
||||||
private constructor Test2()
|
|
||||||
public final suspend fun bar(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final fun </*0*/ T> foo(/*0*/ f: suspend () -> T): T
|
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public object Scope {
|
|
||||||
private constructor Scope()
|
|
||||||
public final fun bar(): kotlin.String
|
|
||||||
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 final fun test(): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public object Test3 {
|
|
||||||
private constructor Test3()
|
|
||||||
public final suspend fun bar(/*0*/ x: kotlin.Int = ...): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
||||||
public final fun </*0*/ T> foo(/*0*/ f: suspend () -> T): T
|
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
|
|
||||||
public object Scope {
|
|
||||||
private constructor Scope()
|
|
||||||
public final fun bar(/*0*/ x: kotlin.Int = ...): kotlin.String
|
|
||||||
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 final fun test(): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+3
@@ -1,6 +1,9 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
|
|
||||||
fun useSuspendVararg(vararg sfn: suspend () -> Unit) {}
|
fun useSuspendVararg(vararg sfn: suspend () -> Unit) {}
|
||||||
|
|
||||||
|
|||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun testSuspendConversionInVarargElementsAll(/*0*/ f1: () -> kotlin.Unit, /*1*/ f2: () -> kotlin.Unit, /*2*/ f3: () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun testSuspendConversionInVarargElementsSome(/*0*/ sf1: suspend () -> kotlin.Unit, /*1*/ f2: () -> kotlin.Unit, /*2*/ sf3: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun useSuspendVararg(/*0*/ vararg sfn: suspend () -> kotlin.Unit /*kotlin.Array<out suspend () -> kotlin.Unit>*/): kotlin.Unit
|
|
||||||
+2
-2
@@ -1,6 +1,7 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: JVM
|
||||||
|
|
||||||
fun interface SuspendRunnable {
|
fun interface SuspendRunnable {
|
||||||
suspend fun invoke()
|
suspend fun invoke()
|
||||||
@@ -17,8 +18,7 @@ suspend fun bar3(s: String = ""): Int = 0
|
|||||||
fun box(): String {
|
fun box(): String {
|
||||||
foo1(::bar1)
|
foo1(::bar1)
|
||||||
foo1(::bar2)
|
foo1(::bar2)
|
||||||
|
foo1(::bar3)
|
||||||
foo1(::bar3) // Should be ambiguity
|
|
||||||
|
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
-15
@@ -1,15 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun bar1(): kotlin.Unit
|
|
||||||
public fun bar2(/*0*/ s: kotlin.String = ...): kotlin.Int
|
|
||||||
public fun bar3(): kotlin.Unit
|
|
||||||
public suspend fun bar3(/*0*/ s: kotlin.String = ...): kotlin.Int
|
|
||||||
public fun foo1(/*0*/ s: SuspendRunnable): kotlin.Unit
|
|
||||||
public fun test(): kotlin.Unit
|
|
||||||
|
|
||||||
public fun interface SuspendRunnable {
|
|
||||||
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 abstract suspend fun invoke(): kotlin.Unit
|
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
||||||
}
|
|
||||||
Vendored
+1
@@ -1,6 +1,7 @@
|
|||||||
// FIR_IDENTICAL
|
// FIR_IDENTICAL
|
||||||
// !LANGUAGE: +SuspendConversion
|
// !LANGUAGE: +SuspendConversion
|
||||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
// IGNORE_BACKEND: WASM
|
||||||
|
|
||||||
fun unitCoercion(f: suspend () -> Unit) {}
|
fun unitCoercion(f: suspend () -> Unit) {}
|
||||||
fun foo(): Int = 0
|
fun foo(): Int = 0
|
||||||
|
|||||||
Vendored
-11
@@ -1,11 +0,0 @@
|
|||||||
package
|
|
||||||
|
|
||||||
public fun all(/*0*/ s: kotlin.String = ...): kotlin.Int
|
|
||||||
public fun bar(/*0*/ i: kotlin.Int, /*1*/ l: kotlin.Long = ...): kotlin.String
|
|
||||||
public fun baz(/*0*/ vararg ints: kotlin.Int /*kotlin.IntArray*/): kotlin.String
|
|
||||||
public fun defaults(/*0*/ f: suspend (kotlin.Int) -> kotlin.String): kotlin.Unit
|
|
||||||
public fun foo(): kotlin.Int
|
|
||||||
public fun test(): kotlin.Unit
|
|
||||||
public fun unitCoercion(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun unitCoercionAndDefaults(/*0*/ f: suspend () -> kotlin.Unit): kotlin.Unit
|
|
||||||
public fun varargs(/*0*/ f: suspend (kotlin.Int, kotlin.Int, kotlin.Int) -> kotlin.String): kotlin.Unit
|
|
||||||
+2
-2
@@ -16,7 +16,7 @@ fun test() {
|
|||||||
withVararg(xs = [p0]) /*~> Unit */
|
withVararg(xs = [p0]) /*~> Unit */
|
||||||
}
|
}
|
||||||
|
|
||||||
::withVararg
|
::withVararg /*-> IFoo */
|
||||||
} /*-> IFoo */)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-9
@@ -28,13 +28,13 @@ FILE fqName:<root> fileName:/withAdaptationForSam.kt
|
|||||||
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
CALL 'public final fun useFoo (foo: <root>.IFoo): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
CALL 'public final fun useFoo (foo: <root>.IFoo): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
foo: TYPE_OP type=<root>.IFoo origin=SAM_CONVERSION typeOperand=<root>.IFoo
|
foo: BLOCK type=<root>.IFoo origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
BLOCK type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:withVararg visibility:local modality:FINAL <> (p0:kotlin.Int) returnType:kotlin.Unit
|
||||||
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:withVararg visibility:local modality:FINAL <> (p0:kotlin.Int) returnType:kotlin.Unit
|
VALUE_PARAMETER ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE name:p0 index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE name:p0 index:0 type:kotlin.Int
|
BLOCK_BODY
|
||||||
BLOCK_BODY
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
CALL 'public final fun withVararg (vararg xs: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
||||||
CALL 'public final fun withVararg (vararg xs: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
xs: VARARG type=kotlin.IntArray varargElementType=kotlin.Int
|
||||||
xs: VARARG type=kotlin.IntArray varargElementType=kotlin.Int
|
GET_VAR 'p0: kotlin.Int declared in <root>.test.withVararg' type=kotlin.Int origin=null
|
||||||
GET_VAR 'p0: kotlin.Int declared in <root>.test.withVararg' type=kotlin.Int origin=null
|
TYPE_OP type=<root>.IFoo origin=SAM_CONVERSION typeOperand=<root>.IFoo
|
||||||
FUNCTION_REFERENCE 'local final fun withVararg (p0: kotlin.Int): kotlin.Unit declared in <root>.test' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun withVararg (vararg xs: kotlin.Int): kotlin.Int declared in <root>
|
FUNCTION_REFERENCE 'local final fun withVararg (p0: kotlin.Int): kotlin.Unit declared in <root>.test' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun withVararg (vararg xs: kotlin.Int): kotlin.Int declared in <root>
|
||||||
|
|||||||
Vendored
+43
@@ -0,0 +1,43 @@
|
|||||||
|
FILE fqName:<root> fileName:/chainedFunSuspendConversionForSimpleExpression.kt
|
||||||
|
CLASS INTERFACE name:SuspendRunnable modality:ABSTRACT visibility:public [fun] superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.SuspendRunnable) returnType:kotlin.Unit [suspend]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:foo visibility:public modality:FINAL <> (s:<root>.SuspendRunnable) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:s index:0 type:<root>.SuspendRunnable
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.Function0<kotlin.Unit> declared in <root>'
|
||||||
|
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
|
||||||
|
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.bar'
|
||||||
|
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
|
||||||
|
FUN name:test visibility:public modality:FINAL <> (f:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
GET_VAR 'f: kotlin.Function0<kotlin.Unit> declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
CALL 'public final fun bar (): kotlin.Function0<kotlin.Unit> declared in <root>' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
VAR name:t type:kotlin.Function0<kotlin.Unit> [var]
|
||||||
|
GET_VAR 'f: kotlin.Function0<kotlin.Unit> declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
GET_VAR 'var t: kotlin.Function0<kotlin.Unit> [var] declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
// !LANGUAGE: +SuspendConversion
|
||||||
|
// SKIP_KT_DUMP
|
||||||
|
|
||||||
|
fun interface SuspendRunnable {
|
||||||
|
suspend fun invoke()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(s: SuspendRunnable) {}
|
||||||
|
|
||||||
|
fun bar(): () -> Unit = {}
|
||||||
|
|
||||||
|
fun test(f: () -> Unit) {
|
||||||
|
foo(f)
|
||||||
|
foo(bar())
|
||||||
|
var t = f
|
||||||
|
foo(t)
|
||||||
|
}
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
FILE fqName:<root> fileName:/chainedFunSuspendConversionForSimpleExpression.kt
|
||||||
|
CLASS INTERFACE name:SuspendRunnable modality:ABSTRACT visibility:public [fun] superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.SuspendRunnable) returnType:kotlin.Unit [suspend]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:foo visibility:public modality:FINAL <> (s:<root>.SuspendRunnable) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:s index:0 type:<root>.SuspendRunnable
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.Function0<kotlin.Unit> declared in <root>'
|
||||||
|
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
|
||||||
|
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.bar'
|
||||||
|
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
|
||||||
|
FUN name:test visibility:public modality:FINAL <> (f:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion0 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.test.suspendConversion0' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion0 (): kotlin.Unit [suspend] declared in <root>.test' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f: kotlin.Function0<kotlin.Unit> declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion1 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.test.suspendConversion1' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion1 (): kotlin.Unit [suspend] declared in <root>.test' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: CALL 'public final fun bar (): kotlin.Function0<kotlin.Unit> declared in <root>' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
VAR name:t type:kotlin.Function0<kotlin.Unit> [var]
|
||||||
|
GET_VAR 'f: kotlin.Function0<kotlin.Unit> declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
CALL 'public final fun foo (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion2 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.test.suspendConversion2' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion2 (): kotlin.Unit [suspend] declared in <root>.test' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'var t: kotlin.Function0<kotlin.Unit> [var] declared in <root>.test' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
+2
-2
@@ -36,7 +36,7 @@ fun testAdaptedCR() {
|
|||||||
withVarargOfInt(xs = [p0]) /*~> Unit */
|
withVarargOfInt(xs = [p0]) /*~> Unit */
|
||||||
}
|
}
|
||||||
|
|
||||||
::withVarargOfInt
|
::withVarargOfInt /*-> IFoo */
|
||||||
} /*-> IFoo */])
|
}])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-9
@@ -65,13 +65,13 @@ FILE fqName:<root> fileName:/samConversionInVarargs.kt
|
|||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
CALL 'public final fun useVararg (vararg foos: <root>.IFoo): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
CALL 'public final fun useVararg (vararg foos: <root>.IFoo): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
foos: VARARG type=kotlin.Array<out <root>.IFoo> varargElementType=<root>.IFoo
|
foos: VARARG type=kotlin.Array<out <root>.IFoo> varargElementType=<root>.IFoo
|
||||||
TYPE_OP type=<root>.IFoo origin=SAM_CONVERSION typeOperand=<root>.IFoo
|
BLOCK type=<root>.IFoo origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
BLOCK type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:withVarargOfInt visibility:local modality:FINAL <> (p0:kotlin.Int) returnType:kotlin.Unit
|
||||||
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:withVarargOfInt visibility:local modality:FINAL <> (p0:kotlin.Int) returnType:kotlin.Unit
|
VALUE_PARAMETER ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE name:p0 index:0 type:kotlin.Int
|
||||||
VALUE_PARAMETER ADAPTER_PARAMETER_FOR_CALLABLE_REFERENCE name:p0 index:0 type:kotlin.Int
|
BLOCK_BODY
|
||||||
BLOCK_BODY
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
CALL 'public final fun withVarargOfInt (vararg xs: kotlin.Int): kotlin.String declared in <root>' type=kotlin.String origin=null
|
||||||
CALL 'public final fun withVarargOfInt (vararg xs: kotlin.Int): kotlin.String declared in <root>' type=kotlin.String origin=null
|
xs: VARARG type=kotlin.IntArray varargElementType=kotlin.Int
|
||||||
xs: VARARG type=kotlin.IntArray varargElementType=kotlin.Int
|
GET_VAR 'p0: kotlin.Int declared in <root>.testAdaptedCR.withVarargOfInt' type=kotlin.Int origin=null
|
||||||
GET_VAR 'p0: kotlin.Int declared in <root>.testAdaptedCR.withVarargOfInt' type=kotlin.Int origin=null
|
TYPE_OP type=<root>.IFoo origin=SAM_CONVERSION typeOperand=<root>.IFoo
|
||||||
FUNCTION_REFERENCE 'local final fun withVarargOfInt (p0: kotlin.Int): kotlin.Unit declared in <root>.testAdaptedCR' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun withVarargOfInt (vararg xs: kotlin.Int): kotlin.String declared in <root>
|
FUNCTION_REFERENCE 'local final fun withVarargOfInt (p0: kotlin.Int): kotlin.Unit declared in <root>.testAdaptedCR' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun withVarargOfInt (vararg xs: kotlin.Int): kotlin.String declared in <root>
|
||||||
|
|||||||
Vendored
+2
-2
@@ -37,7 +37,7 @@ fun testSamConversionOnAdapted() {
|
|||||||
foo1() /*~> Unit */
|
foo1() /*~> Unit */
|
||||||
}
|
}
|
||||||
|
|
||||||
::foo1
|
::foo1 /*-> KRunnable */
|
||||||
} /*-> KRunnable */)
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -49,10 +49,10 @@ FILE fqName:<root> fileName:/samConversionOnCallableReference.kt
|
|||||||
FUN name:testSamConversionOnAdapted visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
FUN name:testSamConversionOnAdapted visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
CALL 'public final fun use (r: <root>.KRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
CALL 'public final fun use (r: <root>.KRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
r: TYPE_OP type=<root>.KRunnable origin=SAM_CONVERSION typeOperand=<root>.KRunnable
|
r: BLOCK type=<root>.KRunnable origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
BLOCK type=kotlin.Function0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:foo1 visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
||||||
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:foo1 visibility:local modality:FINAL <> () returnType:kotlin.Unit
|
BLOCK_BODY
|
||||||
BLOCK_BODY
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
CALL 'public final fun foo1 (vararg xs: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
||||||
CALL 'public final fun foo1 (vararg xs: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
TYPE_OP type=<root>.KRunnable origin=SAM_CONVERSION typeOperand=<root>.KRunnable
|
||||||
FUNCTION_REFERENCE 'local final fun foo1 (): kotlin.Unit declared in <root>.testSamConversionOnAdapted' type=kotlin.Function0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun foo1 (vararg xs: kotlin.Int): kotlin.Int declared in <root>
|
FUNCTION_REFERENCE 'local final fun foo1 (): kotlin.Unit declared in <root>.testSamConversionOnAdapted' type=kotlin.Function0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun foo1 (vararg xs: kotlin.Int): kotlin.Int declared in <root>
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
FILE fqName:<root> fileName:/suspendConversionInVararg.kt
|
||||||
|
FUN name:useSuspendVararg visibility:public modality:FINAL <> (sfn:kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:sfn index:0 type:kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType:kotlin.coroutines.SuspendFunction0<kotlin.Unit> [vararg]
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:testSuspendConversionInVarargElementsSome visibility:public modality:FINAL <> (f1:kotlin.Function0<kotlin.Unit>, sf2:kotlin.coroutines.SuspendFunction0<kotlin.Unit>, f3:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f1 index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:sf2 index:1 type:kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f3 index:2 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun useSuspendVararg (vararg sfn: kotlin.coroutines.SuspendFunction0<kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
sfn: VARARG type=kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType=kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
GET_VAR 'f1: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
GET_VAR 'sf2: kotlin.coroutines.SuspendFunction0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=null
|
||||||
|
GET_VAR 'f3: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUN name:testSuspendConversionInVarargElementsAll visibility:public modality:FINAL <> (f1:kotlin.Function0<kotlin.Unit>, f2:kotlin.Function0<kotlin.Unit>, f3:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f1 index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f2 index:1 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f3 index:2 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun useSuspendVararg (vararg sfn: kotlin.coroutines.SuspendFunction0<kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
sfn: VARARG type=kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType=kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
GET_VAR 'f1: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
GET_VAR 'f2: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
GET_VAR 'f3: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
// SKIP_KT_DUMP
|
||||||
|
// !LANGUAGE: +SuspendConversion
|
||||||
|
|
||||||
|
fun useSuspendVararg(vararg sfn: suspend () -> Unit) {}
|
||||||
|
|
||||||
|
fun testSuspendConversionInVarargElementsSome(
|
||||||
|
f1: () -> Unit,
|
||||||
|
sf2: suspend () -> Unit
|
||||||
|
f3: () -> Unit,
|
||||||
|
) {
|
||||||
|
useSuspendVararg(f1, sf2, f3)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testSuspendConversionInVarargElementsAll(
|
||||||
|
f1: () -> Unit,
|
||||||
|
f2: () -> Unit,
|
||||||
|
f3: () -> Unit
|
||||||
|
) {
|
||||||
|
useSuspendVararg(f1, f2, f3)
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
FILE fqName:<root> fileName:/suspendConversionInVararg.kt
|
||||||
|
FUN name:useSuspendVararg visibility:public modality:FINAL <> (sfn:kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:sfn index:0 type:kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType:kotlin.coroutines.SuspendFunction0<kotlin.Unit> [vararg]
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:testSuspendConversionInVarargElementsSome visibility:public modality:FINAL <> (f1:kotlin.Function0<kotlin.Unit>, sf2:kotlin.coroutines.SuspendFunction0<kotlin.Unit>, f3:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f1 index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:sf2 index:1 type:kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f3 index:2 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun useSuspendVararg (vararg sfn: kotlin.coroutines.SuspendFunction0<kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
sfn: VARARG type=kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType=kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
BLOCK type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion0 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome.suspendConversion0' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion0 (): kotlin.Unit [suspend] declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f1: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
GET_VAR 'sf2: kotlin.coroutines.SuspendFunction0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=null
|
||||||
|
BLOCK type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion1 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome.suspendConversion1' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion1 (): kotlin.Unit [suspend] declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f3: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsSome' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUN name:testSuspendConversionInVarargElementsAll visibility:public modality:FINAL <> (f1:kotlin.Function0<kotlin.Unit>, f2:kotlin.Function0<kotlin.Unit>, f3:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:f1 index:0 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f2 index:1 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
VALUE_PARAMETER name:f3 index:2 type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun useSuspendVararg (vararg sfn: kotlin.coroutines.SuspendFunction0<kotlin.Unit>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
sfn: VARARG type=kotlin.Array<out kotlin.coroutines.SuspendFunction0<kotlin.Unit>> varargElementType=kotlin.coroutines.SuspendFunction0<kotlin.Unit>
|
||||||
|
BLOCK type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion0 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll.suspendConversion0' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion0 (): kotlin.Unit [suspend] declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f1: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
BLOCK type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion1 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll.suspendConversion1' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion1 (): kotlin.Unit [suspend] declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f2: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
BLOCK type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION
|
||||||
|
FUN ADAPTER_FOR_SUSPEND_CONVERSION name:suspendConversion2 visibility:local modality:FINAL <> ($receiver:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit [suspend]
|
||||||
|
$receiver: VALUE_PARAMETER ADAPTER_PARAMETER_FOR_SUSPEND_CONVERSION name:callee type:kotlin.Function0<kotlin.Unit>
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_VAR 'callee: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll.suspendConversion2' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
|
FUNCTION_REFERENCE 'local final fun suspendConversion2 (): kotlin.Unit [suspend] declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=SUSPEND_CONVERSION reflectionTarget=null
|
||||||
|
$receiver: GET_VAR 'f3: kotlin.Function0<kotlin.Unit> declared in <root>.testSuspendConversionInVarargElementsAll' type=kotlin.Function0<kotlin.Unit> origin=null
|
||||||
+59
@@ -0,0 +1,59 @@
|
|||||||
|
FILE fqName:<root> fileName:/suspendConversionWithFunInterfaces.kt
|
||||||
|
CLASS INTERFACE name:SuspendRunnable modality:ABSTRACT visibility:public [fun] superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.SuspendRunnable) returnType:kotlin.Unit [suspend]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:foo1 visibility:public modality:FINAL <> (s:<root>.SuspendRunnable) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:s index:0 type:<root>.SuspendRunnable
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar2 visibility:public modality:FINAL <> (s:kotlin.String) returnType:kotlin.Int
|
||||||
|
VALUE_PARAMETER name:s index:0 type:kotlin.String
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar2 (s: kotlin.String): kotlin.Int declared in <root>'
|
||||||
|
CONST Int type=kotlin.Int value=0
|
||||||
|
FUN name:bar3 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar3 visibility:public modality:FINAL <> (s:kotlin.String) returnType:kotlin.Int [suspend]
|
||||||
|
VALUE_PARAMETER name:s index:0 type:kotlin.String
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar3 (s: kotlin.String): kotlin.Int [suspend] declared in <root>'
|
||||||
|
CONST Int type=kotlin.Int value=0
|
||||||
|
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar1 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun bar1 (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar2 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun bar2 (s: kotlin.String): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar3 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun bar3 (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
// SKIP_KT_DUMP
|
||||||
|
// !LANGUAGE: +SuspendConversion
|
||||||
|
|
||||||
|
fun interface SuspendRunnable {
|
||||||
|
suspend fun invoke()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo1(s: SuspendRunnable) {}
|
||||||
|
fun bar1() {}
|
||||||
|
|
||||||
|
fun bar2(s: String = ""): Int = 0
|
||||||
|
|
||||||
|
fun bar3() {}
|
||||||
|
suspend fun bar3(s: String = ""): Int = 0
|
||||||
|
|
||||||
|
fun box() {
|
||||||
|
foo1(::bar1)
|
||||||
|
foo1(::bar2)
|
||||||
|
foo1(::bar3)
|
||||||
|
}
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
FILE fqName:<root> fileName:/suspendConversionWithFunInterfaces.kt
|
||||||
|
CLASS INTERFACE name:SuspendRunnable modality:ABSTRACT visibility:public [fun] superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN name:invoke visibility:public modality:ABSTRACT <> ($this:<root>.SuspendRunnable) returnType:kotlin.Unit [suspend]
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.SuspendRunnable
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:foo1 visibility:public modality:FINAL <> (s:<root>.SuspendRunnable) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:s index:0 type:<root>.SuspendRunnable
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar2 visibility:public modality:FINAL <> (s:kotlin.String) returnType:kotlin.Int
|
||||||
|
VALUE_PARAMETER name:s index:0 type:kotlin.String
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar2 (s: kotlin.String): kotlin.Int declared in <root>'
|
||||||
|
CONST Int type=kotlin.Int value=0
|
||||||
|
FUN name:bar3 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
FUN name:bar3 visibility:public modality:FINAL <> (s:kotlin.String) returnType:kotlin.Int [suspend]
|
||||||
|
VALUE_PARAMETER name:s index:0 type:kotlin.String
|
||||||
|
EXPRESSION_BODY
|
||||||
|
CONST String type=kotlin.String value=""
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun bar3 (s: kotlin.String): kotlin.Int [suspend] declared in <root>'
|
||||||
|
CONST Int type=kotlin.Int value=0
|
||||||
|
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar1 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun bar1 (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun bar1 (): kotlin.Unit [suspend] declared in <root>.box' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun bar1 (): kotlin.Unit declared in <root>
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar2 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
|
CALL 'public final fun bar2 (s: kotlin.String): kotlin.Int declared in <root>' type=kotlin.Int origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun bar2 (): kotlin.Unit [suspend] declared in <root>.box' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun bar2 (s: kotlin.String): kotlin.Int declared in <root>
|
||||||
|
CALL 'public final fun foo1 (s: <root>.SuspendRunnable): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
s: BLOCK type=<root>.SuspendRunnable origin=ADAPTED_FUNCTION_REFERENCE
|
||||||
|
FUN ADAPTER_FOR_CALLABLE_REFERENCE name:bar3 visibility:local modality:FINAL <> () returnType:kotlin.Unit [suspend]
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public final fun bar3 (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||||
|
TYPE_OP type=<root>.SuspendRunnable origin=SAM_CONVERSION typeOperand=<root>.SuspendRunnable
|
||||||
|
FUNCTION_REFERENCE 'local final fun bar3 (): kotlin.Unit [suspend] declared in <root>.box' type=kotlin.coroutines.SuspendFunction0<kotlin.Unit> origin=ADAPTED_FUNCTION_REFERENCE reflectionTarget=public final fun bar3 (): kotlin.Unit declared in <root>
|
||||||
Generated
+18
@@ -1058,6 +1058,12 @@ public class IrTextTestGenerated extends AbstractIrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("classReference.kt")
|
@TestMetadata("classReference.kt")
|
||||||
public void testClassReference() throws Exception {
|
public void testClassReference() throws Exception {
|
||||||
@@ -1646,12 +1652,24 @@ public class IrTextTestGenerated extends AbstractIrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("suspendConversionInVararg.kt")
|
||||||
|
public void testSuspendConversionInVararg() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionInVararg.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
||||||
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("suspendConversionWithFunInterfaces.kt")
|
||||||
|
public void testSuspendConversionWithFunInterfaces() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionWithFunInterfaces.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
||||||
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
||||||
|
|||||||
+40
-40
@@ -32899,6 +32899,46 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
public static class SuspendConversion extends AbstractLightAnalysisModeTest {
|
public static class SuspendConversion extends AbstractLightAnalysisModeTest {
|
||||||
|
@TestMetadata("basicSuspendConversion.kt")
|
||||||
|
public void ignoreBasicSuspendConversion() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversion.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("basicSuspendConversionGenerics.kt")
|
||||||
|
public void ignoreBasicSuspendConversionGenerics() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
|
public void ignoreChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("overloadResolutionBySuspendModifier.kt")
|
||||||
|
public void ignoreOverloadResolutionBySuspendModifier() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/overloadResolutionBySuspendModifier.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("severalConversionsInOneCall.kt")
|
||||||
|
public void ignoreSeveralConversionsInOneCall() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/severalConversionsInOneCall.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("suspendAndFunConversionInDisabledMode.kt")
|
||||||
|
public void ignoreSuspendAndFunConversionInDisabledMode() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/suspendAndFunConversionInDisabledMode.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("suspendConversionOnVarargElements.kt")
|
||||||
|
public void ignoreSuspendConversionOnVarargElements() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionOnVarargElements.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("suspendConversionWithFunInterfaces.kt")
|
||||||
|
public void ignoreSuspendConversionWithFunInterfaces() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionWithFunInterfaces.kt");
|
||||||
|
}
|
||||||
|
|
||||||
private void runTest(String testDataFilePath) throws Exception {
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
|
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
|
||||||
}
|
}
|
||||||
@@ -32907,56 +32947,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/suspendConversion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/suspendConversion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversion.kt")
|
|
||||||
public void testBasicSuspendConversion() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversion.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionForCallableReference.kt")
|
@TestMetadata("basicSuspendConversionForCallableReference.kt")
|
||||||
public void testBasicSuspendConversionForCallableReference() throws Exception {
|
public void testBasicSuspendConversionForCallableReference() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionGenerics.kt")
|
|
||||||
public void testBasicSuspendConversionGenerics() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
|
||||||
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("overloadResolutionBySuspendModifier.kt")
|
|
||||||
public void testOverloadResolutionBySuspendModifier() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/overloadResolutionBySuspendModifier.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("severalConversionsInOneCall.kt")
|
|
||||||
public void testSeveralConversionsInOneCall() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/severalConversionsInOneCall.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("suspendAndFunConversionInDisabledMode.kt")
|
|
||||||
public void testSuspendAndFunConversionInDisabledMode() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendAndFunConversionInDisabledMode.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("suspendConversionCompatibility.kt")
|
@TestMetadata("suspendConversionCompatibility.kt")
|
||||||
public void testSuspendConversionCompatibility() throws Exception {
|
public void testSuspendConversionCompatibility() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionCompatibility.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionCompatibility.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("suspendConversionOnVarargElements.kt")
|
|
||||||
public void testSuspendConversionOnVarargElements() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionOnVarargElements.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("suspendConversionWithFunInterfaces.kt")
|
|
||||||
public void testSuspendConversionWithFunInterfaces() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionWithFunInterfaces.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("suspendConversionWithReferenceAdaptation.kt")
|
@TestMetadata("suspendConversionWithReferenceAdaptation.kt")
|
||||||
public void testSuspendConversionWithReferenceAdaptation() throws Exception {
|
public void testSuspendConversionWithReferenceAdaptation() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionWithReferenceAdaptation.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/suspendConversionWithReferenceAdaptation.kt");
|
||||||
|
|||||||
@@ -868,6 +868,11 @@ public class KlibTextTestCaseGenerated extends AbstractKlibTextTestCase {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
runTest("compiler/testData/ir/irText/expressions/chainOfSafeCalls.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("complexAugmentedAssignment.kt")
|
@TestMetadata("complexAugmentedAssignment.kt")
|
||||||
public void testComplexAugmentedAssignment() throws Exception {
|
public void testComplexAugmentedAssignment() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt");
|
runTest("compiler/testData/ir/irText/expressions/complexAugmentedAssignment.kt");
|
||||||
@@ -1258,11 +1263,21 @@ public class KlibTextTestCaseGenerated extends AbstractKlibTextTestCase {
|
|||||||
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
runTest("compiler/testData/ir/irText/expressions/stringTemplates.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("suspendConversionInVararg.kt")
|
||||||
|
public void testSuspendConversionInVararg() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionInVararg.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
@TestMetadata("suspendConversionOnArbitraryExpression.kt")
|
||||||
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
public void testSuspendConversionOnArbitraryExpression() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionOnArbitraryExpression.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("suspendConversionWithFunInterfaces.kt")
|
||||||
|
public void testSuspendConversionWithFunInterfaces() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/expressions/suspendConversionWithFunInterfaces.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
@TestMetadata("temporaryInEnumEntryInitializer.kt")
|
||||||
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
public void testTemporaryInEnumEntryInitializer() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt");
|
runTest("compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.kt");
|
||||||
|
|||||||
js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java
Generated
-5
@@ -27532,11 +27532,6 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes
|
|||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionGenerics.kt")
|
|
||||||
public void testBasicSuspendConversionGenerics() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
|||||||
Generated
-5
@@ -26938,11 +26938,6 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionGenerics.kt")
|
|
||||||
public void testBasicSuspendConversionGenerics() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
|||||||
Generated
-5
@@ -26898,11 +26898,6 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionGenerics.kt")
|
|
||||||
public void testBasicSuspendConversionGenerics() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
|||||||
js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java
Generated
-5
@@ -15059,11 +15059,6 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
|||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionForCallableReference.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("basicSuspendConversionGenerics.kt")
|
|
||||||
public void testBasicSuspendConversionGenerics() throws Exception {
|
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/basicSuspendConversionGenerics.kt");
|
|
||||||
}
|
|
||||||
|
|
||||||
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
@TestMetadata("chainedFunSuspendConversionForSimpleExpression.kt")
|
||||||
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
public void testChainedFunSuspendConversionForSimpleExpression() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
runTest("compiler/testData/codegen/box/suspendConversion/chainedFunSuspendConversionForSimpleExpression.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user