JS inline refactor: extracted flattenStatement() function

This commit is contained in:
Alexey Tsvetkov
2014-10-02 15:33:36 +04:00
committed by Zalim Bashorov
parent 80eca3e49e
commit 7fbed5ee86
2 changed files with 12 additions and 6 deletions
@@ -32,6 +32,7 @@ import static org.jetbrains.k2js.inline.clean.CleanPackage.removeUnusedFunctionD
import static org.jetbrains.k2js.inline.FunctionInlineMutator.getInlineableCallReplacement;
import static org.jetbrains.k2js.inline.util.UtilPackage.IdentitySet;
import static org.jetbrains.k2js.inline.util.UtilPackage.collectNamedFunctions;
import static org.jetbrains.k2js.translate.utils.JsAstUtils.flattenStatement;
public class JsInliner extends JsVisitorWithContextImpl {
@@ -145,12 +146,7 @@ public class JsInliner extends JsVisitorWithContextImpl {
/** @see #lastStatementWasShifted */
statementContext.shiftCurrentStatementForward();
InsertionPoint<JsStatement> insertionPoint = statementContext.getInsertionPoint();
if (inlineableBody instanceof JsBlock) {
JsBlock block = (JsBlock) inlineableBody;
insertionPoint.insertAllAfter(block.getStatements());
} else {
insertionPoint.insertAfter(inlineableBody);
}
insertionPoint.insertAllAfter(flattenStatement(inlineableBody));
}
/**
@@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
import org.jetbrains.k2js.translate.context.Namer;
import org.jetbrains.k2js.translate.context.TranslationContext;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -456,4 +457,13 @@ public final class JsAstUtils {
qualifier = (JsNameRef) parent;
}
}
@NotNull
public static List<JsStatement> flattenStatement(@NotNull JsStatement statement) {
if (statement instanceof JsBlock) {
return ((JsBlock) statement).getStatements();
}
return new SmartList<JsStatement>(statement);
}
}