diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index 8f2c6d66f19..ae661d57d81 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -27,7 +27,10 @@ import org.jetbrains.kotlin.backend.konan.descriptors.needsInlining import org.jetbrains.kotlin.backend.konan.descriptors.propertyIfAccessor import org.jetbrains.kotlin.backend.konan.descriptors.resolveFakeOverride import org.jetbrains.kotlin.backend.konan.ir.DeserializerDriver +import org.jetbrains.kotlin.builtins.isFunctionType +import org.jetbrains.kotlin.builtins.isSuspendFunctionType import org.jetbrains.kotlin.descriptors.DeclarationDescriptor +import org.jetbrains.kotlin.descriptors.ParameterDescriptor import org.jetbrains.kotlin.descriptors.ValueDescriptor import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor import org.jetbrains.kotlin.ir.IrElement @@ -44,6 +47,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue +import org.jetbrains.kotlin.resolve.inline.InlineUtil import org.jetbrains.kotlin.types.TypeProjectionImpl import org.jetbrains.kotlin.types.TypeSubstitutor @@ -223,11 +227,12 @@ private class Inliner(val globalSubstituteMap: MutableMap { diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 51e41e29cca..f863278328c 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -2101,6 +2101,11 @@ task inline_lambdaInDefaultValue(type: RunKonanTest) { source = "codegen/inline/lambdaInDefaultValue.kt" } +task inline_lambdaAsAny(type: RunKonanTest) { + goldValue = "Ok\n" + source = "codegen/inline/lambdaAsAny.kt" +} + task deserialized_inline0(type: RunKonanTest) { source = "serialization/deserialized_inline0.kt" } diff --git a/backend.native/tests/codegen/inline/lambdaAsAny.kt b/backend.native/tests/codegen/inline/lambdaAsAny.kt new file mode 100644 index 00000000000..431f348ff59 --- /dev/null +++ b/backend.native/tests/codegen/inline/lambdaAsAny.kt @@ -0,0 +1,11 @@ +package codegen.inline.lambdaAsAny + +import kotlin.test.* + +inline fun foo(x: Any) { + println(if (x === x) "Ok" else "Fail") +} + +@Test fun runTest() { + foo { 42 } +} \ No newline at end of file