From 0acc96c4f38d9387c5208ae07ade55c57ab6b224 Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Mon, 24 Jul 2017 11:50:47 +0300 Subject: [PATCH] Translate reference to kotlin.Unit to a shorter JS code --- .../js/translate/reference/ReferenceTranslator.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/ReferenceTranslator.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/ReferenceTranslator.java index 38f0baad515..2b659e03a37 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/ReferenceTranslator.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/ReferenceTranslator.java @@ -112,11 +112,17 @@ public final class ReferenceTranslator { } if (DescriptorUtils.isObject(descriptor) || DescriptorUtils.isEnumEntry(descriptor)) { + ClassDescriptor classDescriptor = (ClassDescriptor) descriptor; if (!isLocallyAvailableDeclaration(context, descriptor)) { - return getLazyReferenceToObject((ClassDescriptor) descriptor, context); + if (KotlinBuiltIns.isUnit(classDescriptor.getDefaultType())) { + return context.getInnerReference(descriptor); + } + else { + return getLazyReferenceToObject(classDescriptor, context); + } } else { - JsExpression functionRef = JsAstUtils.pureFqn(context.getNameForObjectInstance((ClassDescriptor) descriptor), null); + JsExpression functionRef = JsAstUtils.pureFqn(context.getNameForObjectInstance(classDescriptor), null); return new JsInvocation(functionRef); } }