diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index cc2c9e5865f..20b53b5787d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -3465,6 +3465,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @Test + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @Test @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt index 9748e7878ec..6ab782b5f35 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt @@ -33,8 +33,8 @@ object IteratorNext : IntrinsicMethod() { // If the array element type is unboxed primitive, do not unbox. Otherwise AsmUtil.unbox throws exception val type = if (AsmUtil.isBoxedPrimitiveType(signature.returnType)) AsmUtil.unboxType(signature.returnType) else signature.returnType val newSignature = signature.newReturnType(type) - return IrIntrinsicFunction.create(expression, newSignature, context, AsmTypes.OBJECT_TYPE) { - val primitiveClassName = getKotlinPrimitiveClassName(type) + val primitiveClassName = getKotlinPrimitiveClassName(type) + return IrIntrinsicFunction.create(expression, newSignature, context, getPrimitiveIteratorType(primitiveClassName)) { it.invokevirtual( getPrimitiveIteratorType(primitiveClassName).internalName, "next${primitiveClassName.asString()}", diff --git a/compiler/testData/codegen/box/callableReference/function/kt47741.kt b/compiler/testData/codegen/box/callableReference/function/kt47741.kt new file mode 100644 index 00000000000..a245c1ffb37 --- /dev/null +++ b/compiler/testData/codegen/box/callableReference/function/kt47741.kt @@ -0,0 +1,6 @@ +// IGNORE_BACKEND: WASM + +fun box(): String { + val generateId = (1 .. Int.MAX_VALUE).iterator()::next + return if (generateId() == 1) "OK" else "FAIL" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 2c35b03b4e3..7baf9347cbe 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -3465,6 +3465,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @Test + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @Test @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index d671f92eb3c..ee415eac978 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -3465,6 +3465,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @Test + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @Test @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index a60cddd4f36..eef49e8409e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -3027,6 +3027,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/nestedConstructorFromClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index daf1c8bf7fb..09168c3e313 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -2192,6 +2192,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/nestedConstructorFromClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 012f91394d0..f6cad8927c2 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -2192,6 +2192,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/nestedConstructorFromClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 49a20225a7d..781405f2f1e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -2192,6 +2192,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/nestedConstructorFromClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index e78b8c88f49..72e81320d72 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -1622,6 +1622,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/callableReference/function/kt32462.kt"); } + @TestMetadata("kt47741.kt") + public void testKt47741() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/function/kt47741.kt"); + } + @TestMetadata("nestedConstructorFromClass.kt") public void testNestedConstructorFromClass() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/nestedConstructorFromClass.kt");