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));
|
||||
}
|
||||
|
||||
//NOTE: since JsWhile and JsDoWhile do not have an ancestor, cannot avoid duplication here
|
||||
@Override
|
||||
@NotNull
|
||||
public JsNode visitWhileExpression(@NotNull JetWhileExpression expression, @NotNull TranslationContext context) {
|
||||
JsWhile result = new JsWhile();
|
||||
result.setCondition(translateConditionExpression(expression.getCondition(), context));
|
||||
result.setBody(translateNullableExpressionAsNotNullStatement(expression.getBody(), context));
|
||||
return result;
|
||||
return createWhile(new JsWhile(), expression, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
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.setBody(translateNullableExpressionAsNotNullStatement(expression.getBody(), context));
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user