Drop extra fields which covered by metadata: inlineStrategy from JsInvocation.
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user