From b5ab6cbad06a0610d9132cf63b12dab5888a3b6f Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 28 Aug 2014 15:19:40 +0400 Subject: [PATCH] Drop extra fields which covered by metadata: staticRef from JsName. --- .../com/google/dart/compiler/backend/js/ast/JsName.java | 9 --------- .../k2js/inline/clean/removeUnusedFunctionDefinitions.kt | 7 ++++--- .../clean/removeUnusedLocalFunctionDeclarations.kt | 5 +++-- .../org/jetbrains/k2js/inline/context/FunctionContext.kt | 8 +++++--- .../src/org/jetbrains/k2js/inline/util/collectUtils.kt | 7 ++++--- .../org/jetbrains/k2js/inline/util/invocationUtils.kt | 5 +++-- .../jetbrains/k2js/translate/context/DefinitionPlace.kt | 3 ++- .../k2js/translate/expression/ExpressionVisitor.java | 3 ++- .../translate/expression/LiteralFunctionTranslator.kt | 5 +++-- 9 files changed, 26 insertions(+), 26 deletions(-) diff --git a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsName.java b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsName.java index 0fb3a5cd37c..b58099cd680 100644 --- a/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsName.java +++ b/js/js.dart-ast/src/com/google/dart/compiler/backend/js/ast/JsName.java @@ -14,7 +14,6 @@ import org.jetbrains.annotations.NotNull; public class JsName extends HasMetadata implements Symbol { private final JsScope enclosing; private final String ident; - private JsNode staticRef = null; /** * @param ident the unmangled ident to use for this name @@ -28,14 +27,6 @@ public class JsName extends HasMetadata implements Symbol { return ident; } - public JsNode getStaticRef() { - return staticRef; - } - - public void setStaticRef(JsNode staticRef) { - this.staticRef = staticRef; - } - @NotNull public JsNameRef makeRef() { return new JsNameRef(this); diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedFunctionDefinitions.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedFunctionDefinitions.kt index 29e1962a8fd..c5aea01b26c 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedFunctionDefinitions.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedFunctionDefinitions.kt @@ -17,11 +17,11 @@ package org.jetbrains.k2js.inline.clean import com.google.dart.compiler.backend.js.ast.* -import org.jetbrains.k2js.inline.util.IdentitySet +import com.google.dart.compiler.backend.js.ast.metadata.staticRef import com.intellij.util.containers.Stack import java.util.IdentityHashMap -import org.jetbrains.k2js +import org.jetbrains.k2js.inline.util.IdentitySet import org.jetbrains.k2js.inline.util.collectReferencesInside import org.jetbrains.k2js.inline.util.collectFunctionReferencesInside @@ -100,6 +100,7 @@ private class UnusedLocalFunctionsCollector(functions: Map) } } + // TODO drop name param? private fun processNonLocalFunction(name: JsName, function: JsFunction) { for (referenced in collectFunctionReferencesInside(function)) { tracker.markReachable(referenced) @@ -107,7 +108,7 @@ private class UnusedLocalFunctionsCollector(functions: Map) } private fun isFunctionReference(nameRef: HasName?): Boolean { - return nameRef?.getName()?.getStaticRef() is JsFunction + return nameRef?.getName()?.staticRef is JsFunction } private fun wasProcessed(function: JsFunction?): Boolean = function in processed diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedLocalFunctionDeclarations.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedLocalFunctionDeclarations.kt index 4d179820ba2..7feb39bfd7a 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedLocalFunctionDeclarations.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/clean/removeUnusedLocalFunctionDeclarations.kt @@ -17,6 +17,7 @@ package org.jetbrains.k2js.inline.clean import com.google.dart.compiler.backend.js.ast.* +import com.google.dart.compiler.backend.js.ast.metadata.staticRef import java.util.ArrayList import java.util.IdentityHashMap @@ -78,8 +79,8 @@ private class UnusedInstanceCollector : JsVisitorWithContextImpl() { private fun isLocalFunctionDeclaration(jsVar: JsVars.JsVar): Boolean { val name = jsVar.getName() val expr = jsVar.getInitExpression() - val staticRef = name?.getStaticRef() + val staticRef = name?.staticRef return staticRef != null && staticRef == expr } -} \ No newline at end of file +} diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/context/FunctionContext.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/context/FunctionContext.kt index 66f26341c43..d3222b3b282 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/context/FunctionContext.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/context/FunctionContext.kt @@ -25,6 +25,8 @@ import com.google.dart.compiler.backend.js.ast.JsName import com.google.dart.compiler.backend.js.ast.JsNameRef import com.google.dart.compiler.backend.js.ast.JsScope import com.google.dart.compiler.backend.js.ast.JsStatement +import com.google.dart.compiler.backend.js.ast.metadata.staticRef + import org.jetbrains.k2js.inline.util.aliasArgumentsIfNeeded import org.jetbrains.k2js.inline.util.getInnerFunction import org.jetbrains.k2js.inline.util.getSimpleName @@ -70,7 +72,7 @@ abstract class FunctionContext( val callName = getSimpleName(call) if (callName == null) continue - val staticRef = callName.getStaticRef() + val staticRef = callName.staticRef if (staticRef !is JsFunction) continue val functionCalled = staticRef as JsFunction @@ -125,7 +127,7 @@ abstract class FunctionContext( /** in case 4, 5 get ref (reduce 4, 5 to 2, 3 accordingly) */ if (callQualifier is JsNameRef) { - val staticRef = (callQualifier as JsNameRef).getName()?.getStaticRef() + val staticRef = (callQualifier as JsNameRef).getName()?.staticRef callQualifier = when (staticRef) { is JsNameRef -> staticRef @@ -191,4 +193,4 @@ abstract class FunctionContext( return innerClone } -} \ No newline at end of file +} diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/util/collectUtils.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/util/collectUtils.kt index 1faa98f6ea7..60171ddda55 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/util/collectUtils.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/util/collectUtils.kt @@ -17,17 +17,18 @@ package org.jetbrains.k2js.inline.util import com.google.dart.compiler.backend.js.ast.* -import org.jetbrains.k2js.inline.util.IdentitySet +import com.google.dart.compiler.backend.js.ast.metadata.staticRef import java.util.ArrayList import java.util.IdentityHashMap +import org.jetbrains.k2js.inline.util.IdentitySet import org.jetbrains.k2js.inline.util.collectors.ReferenceNameCollector import org.jetbrains.k2js.inline.util.collectors.NameCollector import org.jetbrains.k2js.inline.util.collectors.InstanceCollector import org.jetbrains.k2js.inline.util.collectors.FunctionCollector public fun collectFunctionReferencesInside(scope: JsNode): List = - collectReferencesInside(scope) filter { it.getStaticRef() is JsFunction } + collectReferencesInside(scope) filter { it.staticRef is JsFunction } public fun collectReferencesInside(scope: JsNode): List { return with(ReferenceNameCollector()) { @@ -57,4 +58,4 @@ public fun collectInstances(klass: Class, scope: JsNode): List accept(scope) collected } -} \ No newline at end of file +} diff --git a/js/js.inliner/src/org/jetbrains/k2js/inline/util/invocationUtils.kt b/js/js.inliner/src/org/jetbrains/k2js/inline/util/invocationUtils.kt index da2e6942409..0075ce044ce 100644 --- a/js/js.inliner/src/org/jetbrains/k2js/inline/util/invocationUtils.kt +++ b/js/js.inliner/src/org/jetbrains/k2js/inline/util/invocationUtils.kt @@ -27,6 +27,7 @@ import com.google.dart.compiler.backend.js.ast.JsReturn import org.jetbrains.k2js.translate.context.Namer import com.google.dart.compiler.backend.js.ast.HasName import com.google.dart.compiler.backend.js.ast.JsNode +import com.google.dart.compiler.backend.js.ast.metadata.staticRef /** * Gets invocation qualifier name. @@ -121,5 +122,5 @@ private fun getCallerQualifierImpl(invocation: JsInvocation): JsExpression? { private fun getStaticRef(invocation: JsInvocation): JsNode? { val qualifier = invocation.getQualifier() val qualifierName = (qualifier as? HasName)?.getName() - return qualifierName?.getStaticRef() -} \ No newline at end of file + return qualifierName?.staticRef +} diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/DefinitionPlace.kt b/js/js.translator/src/org/jetbrains/k2js/translate/context/DefinitionPlace.kt index 969e81060ef..e63c270849d 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/DefinitionPlace.kt +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/DefinitionPlace.kt @@ -21,6 +21,7 @@ import com.google.dart.compiler.backend.js.ast.JsPropertyInitializer import com.google.dart.compiler.backend.js.ast.JsNameRef import com.google.dart.compiler.backend.js.ast.JsObjectScope import com.google.dart.compiler.backend.js.ast.JsFunction +import com.google.dart.compiler.backend.js.ast.metadata.staticRef class DefinitionPlace( private val scope: JsObjectScope, @@ -33,7 +34,7 @@ class DefinitionPlace( if (expression is JsFunction) { /** JsInliner should be able * to find function by name */ - name.setStaticRef(expression) + name.staticRef = expression } properties.add(JsPropertyInitializer(name.makeRef(), expression)) 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 c352e224180..02c2eeeb95f 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 @@ -17,6 +17,7 @@ package org.jetbrains.k2js.translate.expression; import com.google.dart.compiler.backend.js.ast.*; +import com.google.dart.compiler.backend.js.ast.metadata.MetadataPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; @@ -401,7 +402,7 @@ public final class ExpressionVisitor extends TranslatorVisitor { FunctionDescriptor descriptor = getFunctionDescriptor(context.bindingContext(), expression); JsName name = context.getNameForDescriptor(descriptor); if (InlineUtil.getInlineType(descriptor).isInline()) { - name.setStaticRef(alias); + MetadataPackage.setStaticRef(name, alias); } return new JsVars(new JsVars.JsVar(name, alias)).source(expression); diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/expression/LiteralFunctionTranslator.kt b/js/js.translator/src/org/jetbrains/k2js/translate/expression/LiteralFunctionTranslator.kt index dd619123dc4..9230e01ad21 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/expression/LiteralFunctionTranslator.kt +++ b/js/js.translator/src/org/jetbrains/k2js/translate/expression/LiteralFunctionTranslator.kt @@ -17,6 +17,7 @@ package org.jetbrains.k2js.translate.expression import com.google.dart.compiler.backend.js.ast.* +import com.google.dart.compiler.backend.js.ast.metadata.staticRef import org.jetbrains.jet.lang.descriptors.CallableDescriptor import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor import org.jetbrains.jet.lang.psi.JetDeclarationWithBody @@ -167,7 +168,7 @@ private fun moveCapturedLocalInside(capturingFunction: JsFunction, capturedName: } private fun declareAliasInsideFunction(function: JsFunction, name: JsName, alias: JsExpression) { - name.setStaticRef(alias) + name.staticRef = alias function.getInnerFunction()?.addDeclaration(name, alias) } @@ -193,7 +194,7 @@ private fun JsFunction.addDeclaration(name: JsName, value: JsExpression?) { } private fun HasName.getStaticRef(): JsNode? { - return this.getName()?.getStaticRef() + return this.getName()?.staticRef } private fun isLocalInlineDeclaration(descriptor: CallableDescriptor): Boolean {