Remove duplicating code in translation of while/do while expressions.
Adapted from https://github.com/develar/kotlin/commit/a9e0a42fb1347fa8e21c86b5a073ef8a7c873da0.
This commit is contained in:
@@ -214,20 +214,19 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
|||||||
return convertToExpression(expression.accept(this, context));
|
return convertToExpression(expression.accept(this, context));
|
||||||
}
|
}
|
||||||
|
|
||||||
//NOTE: since JsWhile and JsDoWhile do not have an ancestor, cannot avoid duplication here
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitWhileExpression(@NotNull JetWhileExpression expression, @NotNull TranslationContext context) {
|
public JsNode visitWhileExpression(@NotNull JetWhileExpression expression, @NotNull TranslationContext context) {
|
||||||
JsWhile result = new JsWhile();
|
return createWhile(new JsWhile(), expression, context);
|
||||||
result.setCondition(translateConditionExpression(expression.getCondition(), context));
|
|
||||||
result.setBody(translateNullableExpressionAsNotNullStatement(expression.getBody(), context));
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public JsNode visitDoWhileExpression(@NotNull JetDoWhileExpression expression, @NotNull TranslationContext context) {
|
public JsNode visitDoWhileExpression(@NotNull JetDoWhileExpression expression, @NotNull TranslationContext context) {
|
||||||
JsDoWhile result = new JsDoWhile();
|
return createWhile(new JsDoWhile(), expression, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
private JsNode createWhile(@NotNull JsWhile result, @NotNull JetWhileExpressionBase expression, @NotNull TranslationContext context) {
|
||||||
result.setCondition(translateConditionExpression(expression.getCondition(), context));
|
result.setCondition(translateConditionExpression(expression.getCondition(), context));
|
||||||
result.setBody(translateNullableExpressionAsNotNullStatement(expression.getBody(), context));
|
result.setBody(translateNullableExpressionAsNotNullStatement(expression.getBody(), context));
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user