From 961c5fc0df923e31709e78c34c4112dc33ed7cd2 Mon Sep 17 00:00:00 2001 From: Erokhin Stanislav Date: Fri, 18 Oct 2013 22:33:59 +0400 Subject: [PATCH] JS backend: drop ClassAliasingMap from ClassTranslator --- .../declaration/ClassAliasingMap.java | 26 ------------- .../ClassDeclarationTranslator.java | 37 +------------------ .../declaration/ClassTranslator.java | 32 +++++----------- .../NamespaceDeclarationTranslator.java | 1 - 4 files changed, 10 insertions(+), 86 deletions(-) delete mode 100644 js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassAliasingMap.java diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassAliasingMap.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassAliasingMap.java deleted file mode 100644 index ee39c81a4c0..00000000000 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassAliasingMap.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.k2js.translate.declaration; - -import com.google.dart.compiler.backend.js.ast.JsNameRef; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; - -public interface ClassAliasingMap { - @Nullable - JsNameRef get(ClassDescriptor descriptor, ClassDescriptor referencedDescriptor); -} diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java index e14426ec4ba..1e651d92164 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassDeclarationTranslator.java @@ -17,10 +17,7 @@ package org.jetbrains.k2js.translate.declaration; import com.google.dart.compiler.backend.js.ast.JsExpression; -import com.google.dart.compiler.backend.js.ast.JsNameRef; import com.google.dart.compiler.backend.js.ast.JsPropertyInitializer; -import gnu.trove.THashMap; -import gnu.trove.TObjectObjectProcedure; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; @@ -35,46 +32,14 @@ import static org.jetbrains.k2js.translate.utils.BindingUtils.getClassDescriptor */ public final class ClassDeclarationTranslator extends AbstractTranslator { - private final THashMap openClassDescriptorToQualifiedLabel = new THashMap(); - - private final ClassAliasingMap classDescriptorToQualifiedLabel = new ClassAliasingMap() { - @NotNull - @Override - public JsNameRef get(ClassDescriptor descriptor, ClassDescriptor referencedDescriptor) { - JsNameRef ref = openClassDescriptorToQualifiedLabel.get(descriptor); - if (ref != null) { - return ref; - } - - // will be resolved later - ref = new JsNameRef(""); - openClassDescriptorToQualifiedLabel.put(descriptor, ref); - return ref; - } - }; - public ClassDeclarationTranslator(@NotNull TranslationContext context) { super(context); } - public void fixUnresolvedClassReferences() { - openClassDescriptorToQualifiedLabel.forEachEntry(new TObjectObjectProcedure() { - @Override - public boolean execute(ClassDescriptor descriptor, JsNameRef ref) { - if (ref.getName() == null) { - // from library - ref.resolve(context().getNameForDescriptor(descriptor)); - ref.setQualifier(context().getQualifierForDescriptor(descriptor)); - } - return true; - } - }); - } - @Nullable public JsPropertyInitializer translate(@NotNull JetClassOrObject declaration, TranslationContext context) { ClassDescriptor descriptor = getClassDescriptor(context().bindingContext(), declaration); - JsExpression value = new ClassTranslator(declaration, classDescriptorToQualifiedLabel, context).translate(); + JsExpression value = new ClassTranslator(declaration, context).translate(); return new JsPropertyInitializer(context.getNameForDescriptor(descriptor).makeRef(), value); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java index 11b48d4dc1f..16bdda0e3af 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/ClassTranslator.java @@ -21,7 +21,6 @@ import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.openapi.util.Trinity; import com.intellij.util.SmartList; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassKind; import org.jetbrains.jet.lang.descriptors.PropertyDescriptor; @@ -58,19 +57,16 @@ public final class ClassTranslator extends AbstractTranslator { @NotNull private final ClassDescriptor descriptor; - @Nullable - private final ClassAliasingMap aliasingMap; - @NotNull public static JsInvocation generateClassCreation(@NotNull JetClassOrObject classDeclaration, @NotNull TranslationContext context) { - return new ClassTranslator(classDeclaration, null, context).translate(); + return new ClassTranslator(classDeclaration, context).translate(); } @NotNull public static JsInvocation generateClassCreation(@NotNull JetClassOrObject classDeclaration, @NotNull ClassDescriptor descriptor, @NotNull TranslationContext context) { - return new ClassTranslator(classDeclaration, descriptor, null, context).translate(); + return new ClassTranslator(classDeclaration, descriptor, context).translate(); } @NotNull @@ -78,7 +74,7 @@ public final class ClassTranslator extends AbstractTranslator { @NotNull JetObjectDeclaration objectDeclaration, @NotNull TranslationContext context ) { - return new ClassTranslator(objectDeclaration, null, context).translateObjectLiteralExpression(); + return new ClassTranslator(objectDeclaration, context).translateObjectLiteralExpression(); } @NotNull @@ -87,23 +83,22 @@ public final class ClassTranslator extends AbstractTranslator { @NotNull ClassDescriptor descriptor, @NotNull TranslationContext context ) { - return new ClassTranslator(objectDeclaration, descriptor, null, context).translateObjectLiteralExpression(); + return new ClassTranslator(objectDeclaration, descriptor, context).translateObjectLiteralExpression(); } ClassTranslator( @NotNull JetClassOrObject classDeclaration, - @Nullable ClassAliasingMap aliasingMap, @NotNull TranslationContext context ) { - this(classDeclaration, getClassDescriptor(context.bindingContext(), classDeclaration), aliasingMap, context); + this(classDeclaration, getClassDescriptor(context.bindingContext(), classDeclaration), context); } - ClassTranslator(@NotNull JetClassOrObject classDeclaration, + ClassTranslator( + @NotNull JetClassOrObject classDeclaration, @NotNull ClassDescriptor descriptor, - @Nullable ClassAliasingMap aliasingMap, - @NotNull TranslationContext context) { + @NotNull TranslationContext context + ) { super(context); - this.aliasingMap = aliasingMap; this.descriptor = descriptor; this.classDeclaration = classDeclaration; } @@ -259,15 +254,6 @@ public final class ClassTranslator extends AbstractTranslator { @NotNull private JsNameRef getClassReference(@NotNull ClassDescriptor superClassDescriptor) { - // aliasing here is needed for the declaration generation step - if (aliasingMap != null) { - JsNameRef name = aliasingMap.get(superClassDescriptor, descriptor); - if (name != null) { - return name; - } - } - - // from library return context().getQualifiedReference(superClassDescriptor); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/NamespaceDeclarationTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/NamespaceDeclarationTranslator.java index fab2aa5c9ae..12bc8d4f810 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/declaration/NamespaceDeclarationTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/declaration/NamespaceDeclarationTranslator.java @@ -72,7 +72,6 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator { return Collections.emptyList(); } - context().classDeclarationTranslator().fixUnresolvedClassReferences(); for (NamespaceTranslator translator : descriptorToTranslator.values()) { translator.add(descriptorToDefineInvocation); }