Drop extra fields which covered by metadata: inlineStrategy from JsInvocation.

This commit is contained in:
Zalim Bashorov
2014-08-28 15:29:52 +04:00
parent b5ab6cbad0
commit afdec6ecc4
3 changed files with 9 additions and 17 deletions
@@ -7,14 +7,12 @@ package com.google.dart.compiler.backend.js.ast;
import com.google.dart.compiler.util.AstUtil; import com.google.dart.compiler.util.AstUtil;
import com.intellij.util.SmartList; import com.intellij.util.SmartList;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.types.lang.InlineStrategy;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArguments { public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArguments {
private JsExpression qualifier; private JsExpression qualifier;
private InlineStrategy inlineStrategy = InlineStrategy.NOT_INLINE;
public JsInvocation() { public JsInvocation() {
super(new SmartList<JsExpression>()); super(new SmartList<JsExpression>());
@@ -52,14 +50,6 @@ public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArgument
this.qualifier = qualifier; this.qualifier = qualifier;
} }
public InlineStrategy getInlineStrategy() {
return inlineStrategy;
}
public void setInlineStrategy(InlineStrategy inlineStrategy) {
this.inlineStrategy = inlineStrategy;
}
@Override @Override
public void accept(JsVisitor v) { public void accept(JsVisitor v) {
v.visitInvocation(this); v.visitInvocation(this);
@@ -85,8 +75,6 @@ public final class JsInvocation extends JsExpressionImpl.JsExpressionHasArgument
public JsInvocation deepCopy() { public JsInvocation deepCopy() {
JsExpression qualifierCopy = AstUtil.deepCopy(qualifier); JsExpression qualifierCopy = AstUtil.deepCopy(qualifier);
List<JsExpression> argumentsCopy = AstUtil.deepCopy(arguments); List<JsExpression> argumentsCopy = AstUtil.deepCopy(arguments);
JsInvocation copy = new JsInvocation(qualifierCopy, argumentsCopy); return new JsInvocation(qualifierCopy, argumentsCopy).withMetadataFrom(this);
copy.setInlineStrategy(inlineStrategy);
return copy.withMetadataFrom(this);
} }
} }
@@ -17,8 +17,10 @@
package org.jetbrains.k2js.inline; package org.jetbrains.k2js.inline;
import com.google.dart.compiler.backend.js.ast.*; 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.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.types.lang.InlineStrategy;
import org.jetbrains.k2js.inline.context.*; import org.jetbrains.k2js.inline.context.*;
import org.jetbrains.k2js.inline.exception.InlineRecursionException; import org.jetbrains.k2js.inline.exception.InlineRecursionException;
@@ -26,9 +28,9 @@ import java.util.IdentityHashMap;
import java.util.Set; import java.util.Set;
import java.util.Stack; import java.util.Stack;
import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedLocalFunctionDeclarations;
import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionDefinitions;
import static org.jetbrains.k2js.inline.FunctionInlineMutator.getInlineableCallReplacement; import static org.jetbrains.k2js.inline.FunctionInlineMutator.getInlineableCallReplacement;
import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionDefinitions;
import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedLocalFunctionDeclarations;
import static org.jetbrains.k2js.inline.util.UtilPackage.IdentitySet; import static org.jetbrains.k2js.inline.util.UtilPackage.IdentitySet;
import static org.jetbrains.k2js.inline.util.UtilPackage.collectNamedFunctions; import static org.jetbrains.k2js.inline.util.UtilPackage.collectNamedFunctions;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.flattenStatement; import static org.jetbrains.k2js.translate.utils.JsAstUtils.flattenStatement;
@@ -179,7 +181,8 @@ public class JsInliner extends JsVisitorWithContextImpl {
} }
private static boolean shouldInline(@NotNull JsInvocation call) { private static boolean shouldInline(@NotNull JsInvocation call) {
return call.getInlineStrategy().isInline(); InlineStrategy strategy = MetadataPackage.getInlineStrategy(call);
return strategy != null && strategy.isInline();
} }
@@ -18,6 +18,7 @@ package org.jetbrains.k2js.translate.reference;
import com.google.dart.compiler.backend.js.ast.JsExpression; import com.google.dart.compiler.backend.js.ast.JsExpression;
import com.google.dart.compiler.backend.js.ast.JsInvocation; import com.google.dart.compiler.backend.js.ast.JsInvocation;
import com.google.dart.compiler.backend.js.ast.metadata.MetadataPackage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
@@ -46,7 +47,7 @@ public final class CallExpressionTranslator extends AbstractCallExpressionTransl
if (shouldBeInlined(expression, context) if (shouldBeInlined(expression, context)
&& callExpression instanceof JsInvocation) { && callExpression instanceof JsInvocation) {
((JsInvocation) callExpression).setInlineStrategy(InlineStrategy.IN_PLACE); MetadataPackage.setInlineStrategy((JsInvocation) callExpression, InlineStrategy.IN_PLACE);
} }
return callExpression; return callExpression;