From 97ad75a9f9546d1c0fbfab1b5b64ab82323edc99 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 19 Nov 2013 23:16:01 +0400 Subject: [PATCH] JS Backend: fix tests after object refactoring --- .../k2js/translate/expression/ExpressionVisitor.java | 8 +++----- .../reference/ClassObjectAccessTranslator.java | 10 +++++++++- .../org/jetbrains/k2js/translate/utils/PsiUtils.java | 9 --------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java index 598a9c6fb7e..18d8b67ca25 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java @@ -51,7 +51,6 @@ import static org.jetbrains.k2js.translate.reference.ReferenceTranslator.transla import static org.jetbrains.k2js.translate.utils.BindingUtils.*; import static org.jetbrains.k2js.translate.utils.ErrorReportingUtils.message; import static org.jetbrains.k2js.translate.utils.JsAstUtils.*; -import static org.jetbrains.k2js.translate.utils.PsiUtils.getObjectDeclarationName; import static org.jetbrains.k2js.translate.utils.TranslationUtils.translateInitializerForProperty; import static org.jetbrains.k2js.translate.utils.mutator.LastExpressionMutator.mutateLastExpression; @@ -473,10 +472,9 @@ public final class ExpressionVisitor extends TranslatorVisitor { @NotNull public JsNode visitObjectDeclaration(@NotNull JetObjectDeclaration expression, @NotNull TranslationContext context) { - JetObjectDeclarationName objectDeclarationName = getObjectDeclarationName(expression); - DeclarationDescriptor descriptor = getDescriptorForElement(context.bindingContext(), objectDeclarationName); - JsName propertyName = context.getNameForDescriptor(descriptor); + DeclarationDescriptor descriptor = getDescriptorForElement(context.bindingContext(), expression); + JsName name = context.getNameForDescriptor(descriptor); JsExpression value = ClassTranslator.generateClassCreation(expression, context); - return newVar(propertyName, value).source(expression); + return newVar(name, value).source(expression); } } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ClassObjectAccessTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ClassObjectAccessTranslator.java index f999d0a142f..947e64f3dfa 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ClassObjectAccessTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ClassObjectAccessTranslator.java @@ -31,6 +31,8 @@ import org.jetbrains.k2js.translate.utils.AnnotationsUtils; import java.util.Collections; import java.util.List; +import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isEnumEntry; +import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isObject; import static org.jetbrains.k2js.translate.reference.ReferenceTranslator.translateAsFQReference; import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForReferenceExpression; @@ -54,7 +56,13 @@ public class ClassObjectAccessTranslator extends AbstractTranslator implements C private ClassObjectAccessTranslator(@NotNull DeclarationDescriptor descriptor, @NotNull TranslationContext context) { super(context); - this.referenceToClassObject = Namer.getClassObjectAccessor(translateAsFQReference(descriptor, context())); + JsExpression fqReference = translateAsFQReference(descriptor, context()); + if (isObject(descriptor) || isEnumEntry(descriptor)) { + this.referenceToClassObject = fqReference; + } + else { + this.referenceToClassObject = Namer.getClassObjectAccessor(fqReference); + } } @Override diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java b/js/js.translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java index 9346339e2fb..f5b1b1b2231 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/utils/PsiUtils.java @@ -120,19 +120,10 @@ public final class PsiUtils { return Collections.emptyList(); } - @NotNull - public static JetObjectDeclarationName getObjectDeclarationName(@NotNull JetObjectDeclaration objectDeclaration) { - //TODO: util - JetObjectDeclarationName nameAsDeclaration = objectDeclaration.getNameAsDeclaration(); - assert nameAsDeclaration != null; - return nameAsDeclaration; - } - @NotNull public static JetExpression getLoopRange(@NotNull JetForExpression expression) { JetExpression rangeExpression = expression.getLoopRange(); assert rangeExpression != null; return rangeExpression; } - }