From e5763a692f9f9e104562b8aa172929504fd3bcf0 Mon Sep 17 00:00:00 2001 From: "vladislav.grechko" Date: Mon, 19 Jun 2023 20:56:31 +0200 Subject: [PATCH] Substitute type arguments to return type of inlined function references Such substitution is crucial on codegen stage if the return type is reified (e.g. for `Array`) ^KT-59507: Fixed ^KT-59281: Fixed --- .../FirLightTreeBlackBoxCodegenTestGenerated.java | 6 ++++++ .../codegen/FirPsiBlackBoxCodegenTestGenerated.java | 6 ++++++ .../backend/common/lower/inline/FunctionInlining.kt | 13 ++++++++++--- .../src/org/jetbrains/kotlin/ir/types/irTypes.kt | 6 ++++++ .../box/callableReference/arrayConstructor.kt | 1 - .../codegen/box/callableReference/arrayOfNulls.kt | 8 ++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++++ .../codegen/IrBlackBoxCodegenTestGenerated.java | 6 ++++++ ...IrBlackBoxCodegenWithIrInlinerTestGenerated.java | 6 ++++++ .../codegen/LightAnalysisModeTestGenerated.java | 5 +++++ .../js/test/fir/FirJsCodegenBoxTestGenerated.java | 6 ++++++ .../js/test/ir/IrJsCodegenBoxTestGenerated.java | 6 ++++++ .../js/test/ir/IrJsES6CodegenBoxTestGenerated.java | 6 ++++++ .../FirNativeCodegenBoxTestGenerated.java | 6 ++++++ .../FirNativeCodegenBoxTestNoPLGenerated.java | 6 ++++++ .../blackboxtest/NativeCodegenBoxTestGenerated.java | 6 ++++++ .../NativeCodegenBoxTestNoPLGenerated.java | 6 ++++++ .../wasm/test/FirWasmCodegenBoxTestGenerated.java | 6 ++++++ .../wasm/test/K1WasmCodegenBoxTestGenerated.java | 6 ++++++ 19 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 compiler/testData/codegen/box/callableReference/arrayOfNulls.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index 67a709466b6..793ffcfa6cb 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -3087,6 +3087,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 035ca15cc5c..e21c7f86c6d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -3087,6 +3087,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() throws Exception { diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt index fa3ada70226..d2f97909952 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/FunctionInlining.kt @@ -6,7 +6,10 @@ package org.jetbrains.kotlin.backend.common.lower.inline -import org.jetbrains.kotlin.backend.common.* +import org.jetbrains.kotlin.backend.common.BodyLoweringPass +import org.jetbrains.kotlin.backend.common.CommonBackendContext +import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext +import org.jetbrains.kotlin.backend.common.ScopeWithIr import org.jetbrains.kotlin.backend.common.ir.Symbols import org.jetbrains.kotlin.backend.common.ir.isPure import org.jetbrains.kotlin.backend.common.lower.InnerClassesSupport @@ -403,13 +406,17 @@ class FunctionInlining( typeParam.symbol to superType.arguments[typeParam.index].typeOrNull!! } + require(superType.arguments.isNotEmpty()) { "type should have at least one type argument: ${superType.render()}" } + // This expression equals to return type of function reference with substituted type arguments + val functionReferenceReturnType = superType.arguments.last().typeOrFail + val immediateCall = when (inlinedFunction) { is IrConstructor -> { val classTypeParametersCount = inlinedFunction.parentAsClass.typeParameters.size IrConstructorCallImpl.fromSymbolOwner( if (inlineArgumentsWithTheirOriginalTypeAndOffset) irFunctionReference.startOffset else irCall.startOffset, if (inlineArgumentsWithTheirOriginalTypeAndOffset) irFunctionReference.endOffset else irCall.endOffset, - inlinedFunction.returnType, + functionReferenceReturnType, inlinedFunction.symbol, classTypeParametersCount, INLINED_FUNCTION_REFERENCE @@ -419,7 +426,7 @@ class FunctionInlining( IrCallImpl( if (inlineArgumentsWithTheirOriginalTypeAndOffset) irFunctionReference.startOffset else irCall.startOffset, if (inlineArgumentsWithTheirOriginalTypeAndOffset) irFunctionReference.endOffset else irCall.endOffset, - inlinedFunction.returnType, + functionReferenceReturnType, inlinedFunction.symbol, inlinedFunction.typeParameters.size, inlinedFunction.valueParameters.size, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt index 48299012573..5b75723096e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypes.kt @@ -111,6 +111,12 @@ val IrType.classFqName: FqName? val IrTypeArgument.typeOrNull: IrType? get() = (this as? IrTypeProjection)?.type +val IrTypeArgument.typeOrFail: IrType + get() { + require(this is IrTypeProjection) { "Type argument should be of type `IrTypeProjection`, but was `${this::class}` instead" } + return this.type + } + fun IrType.makeNotNull() = withNullability(false) fun IrType.makeNullable() = withNullability(true) diff --git a/compiler/testData/codegen/box/callableReference/arrayConstructor.kt b/compiler/testData/codegen/box/callableReference/arrayConstructor.kt index 237e45a6f48..f27c367d29e 100644 --- a/compiler/testData/codegen/box/callableReference/arrayConstructor.kt +++ b/compiler/testData/codegen/box/callableReference/arrayConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_INLINER: IR // WITH_STDLIB fun g(b: (Int, (Int) -> String) -> Array): Array = diff --git a/compiler/testData/codegen/box/callableReference/arrayOfNulls.kt b/compiler/testData/codegen/box/callableReference/arrayOfNulls.kt new file mode 100644 index 00000000000..8acb265a9cc --- /dev/null +++ b/compiler/testData/codegen/box/callableReference/arrayOfNulls.kt @@ -0,0 +1,8 @@ +// WITH_STDLIB + +// KT-59544 +// SKIP_SOURCEMAP_REMAPPING + +inline fun h(b: (Int) -> Array) = b(1).size + +fun box(): String = ('N' + h(::arrayOfNulls)) + "K" \ No newline at end of file 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 c35e46a66de..ee970ac7fd2 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 @@ -2931,6 +2931,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() 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 66033136369..5e8e52ce040 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 @@ -3087,6 +3087,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 34cc77838e0..9b824abea33 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -3087,6 +3087,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() 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 6332fb92a27..c4fe74a9289 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -2708,6 +2708,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @TestMetadata("builtinFunctionReferenceOwner.kt") public void testBuiltinFunctionReferenceOwner() throws Exception { runTest("compiler/testData/codegen/box/callableReference/builtinFunctionReferenceOwner.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index 9f96f3a048a..5af4c32551c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -1929,6 +1929,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index 328a073e637..d0f7ebb69a0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -1929,6 +1929,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index 1f5a6c314f6..327a0058a3e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -1929,6 +1929,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java index 32dea00c172..e99f91f87a7 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java @@ -1973,6 +1973,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java index e73d91be404..034da51ab98 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java @@ -2029,6 +2029,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index c222c3116e6..0541be872ad 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -1946,6 +1946,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java index 8751d00f2a0..35c1c686a03 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java @@ -1974,6 +1974,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index 47e526dabb7..3211b59288e 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -1917,6 +1917,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index 2c67b09e74f..cd2860f4f44 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -1917,6 +1917,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/callableReference/arrayOf.kt"); } + @Test + @TestMetadata("arrayOfNulls.kt") + public void testArrayOfNulls() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/arrayOfNulls.kt"); + } + @Test @TestMetadata("callableReferenceOfCompanionConst.kt") public void testCallableReferenceOfCompanionConst() throws Exception {