diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index d1c7d6a5cc0..76cfcf0546f 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -3820,6 +3820,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/inline/continueInLoopWithInlinableCondition.kt"); } + @TestMetadata("crossModuleUnsignedLiterals.kt") + public void testCrossModuleUnsignedLiterals() throws Exception { + runTest("js/js.translator/testData/box/inline/crossModuleUnsignedLiterals.kt"); + } + @TestMetadata("dontInlineFunctionCall.kt") public void testDontInlineFunctionCall() throws Exception { runTest("js/js.translator/testData/box/inline/dontInlineFunctionCall.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java index 9399ba2f919..bf6e5512401 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrBoxJsTestGenerated.java @@ -3820,6 +3820,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/inline/continueInLoopWithInlinableCondition.kt"); } + @TestMetadata("crossModuleUnsignedLiterals.kt") + public void testCrossModuleUnsignedLiterals() throws Exception { + runTest("js/js.translator/testData/box/inline/crossModuleUnsignedLiterals.kt"); + } + @TestMetadata("dontInlineFunctionCall.kt") public void testDontInlineFunctionCall() throws Exception { runTest("js/js.translator/testData/box/inline/dontInlineFunctionCall.kt"); diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsAstUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsAstUtils.java index 7e4d9358205..d6e43b7d5fa 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsAstUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/JsAstUtils.java @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.js.backend.ast.metadata.MetadataProperties; import org.jetbrains.kotlin.js.backend.ast.metadata.SideEffectKind; import org.jetbrains.kotlin.js.translate.context.Namer; import org.jetbrains.kotlin.js.translate.context.TranslationContext; +import org.jetbrains.kotlin.js.translate.reference.ReferenceTranslator; import org.jetbrains.kotlin.name.ClassId; import org.jetbrains.kotlin.resolve.source.KotlinSourceElementKt; import org.jetbrains.kotlin.util.OperatorNameConventions; @@ -255,8 +256,7 @@ public final class JsAstUtils { ClassDescriptor classDescriptor = findClassAcrossModuleDependencies(context.getCurrentModule(), unsignedClassId); assert classDescriptor != null : "Class descriptor is null for " + unsignedClassId; - JsName descName = context.getInnerNameForDescriptor(classDescriptor); - return new JsNew(descName.makeRef(), Collections.singletonList(expression)); + return new JsNew(ReferenceTranslator.translateAsTypeReference(classDescriptor, context), Collections.singletonList(expression)); } @NotNull diff --git a/js/js.translator/testData/box/inline/crossModuleUnsignedLiterals.kt b/js/js.translator/testData/box/inline/crossModuleUnsignedLiterals.kt new file mode 100644 index 00000000000..9255e766b5a --- /dev/null +++ b/js/js.translator/testData/box/inline/crossModuleUnsignedLiterals.kt @@ -0,0 +1,22 @@ +// IGNORE_BACKEND: JS_IR + +// EXPECTED_REACHABLE_NODES: 1625 +// MODULE: lib +// FILE: lib.kt + + +inline fun tenUInt() = 10U + +inline fun tenULong() = 10UL + +// MODULE: main(lib) +// FILE: main.kt + +fun box(): String { + + if (tenUInt() != 10U) return "fail 1" + + if (tenULong() != 10UL) return "fail 2" + + return "OK" +} \ No newline at end of file