JS inline refactor: extracted flattenStatement() function
This commit is contained in:
committed by
Zalim Bashorov
parent
80eca3e49e
commit
7fbed5ee86
@@ -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.FunctionInlineMutator.getInlineableCallReplacement;
|
||||||
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;
|
||||||
|
|
||||||
public class JsInliner extends JsVisitorWithContextImpl {
|
public class JsInliner extends JsVisitorWithContextImpl {
|
||||||
|
|
||||||
@@ -145,12 +146,7 @@ public class JsInliner extends JsVisitorWithContextImpl {
|
|||||||
/** @see #lastStatementWasShifted */
|
/** @see #lastStatementWasShifted */
|
||||||
statementContext.shiftCurrentStatementForward();
|
statementContext.shiftCurrentStatementForward();
|
||||||
InsertionPoint<JsStatement> insertionPoint = statementContext.getInsertionPoint();
|
InsertionPoint<JsStatement> insertionPoint = statementContext.getInsertionPoint();
|
||||||
if (inlineableBody instanceof JsBlock) {
|
insertionPoint.insertAllAfter(flattenStatement(inlineableBody));
|
||||||
JsBlock block = (JsBlock) inlineableBody;
|
|
||||||
insertionPoint.insertAllAfter(block.getStatements());
|
|
||||||
} else {
|
|
||||||
insertionPoint.insertAfter(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.Namer;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -456,4 +457,13 @@ public final class JsAstUtils {
|
|||||||
qualifier = (JsNameRef) parent;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user