From cb60e938d3371cff005d79eb039d651d4d8effd1 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 13 Aug 2012 15:10:28 +0400 Subject: [PATCH] Remove duplicating code in translation of while/do while expressions. Adapted from https://github.com/develar/kotlin/commit/a9e0a42fb1347fa8e21c86b5a073ef8a7c873da0. --- .../k2js/translate/expression/ExpressionVisitor.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java index fe1196da221..4a93b9672da 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/expression/ExpressionVisitor.java @@ -214,20 +214,19 @@ public final class ExpressionVisitor extends TranslatorVisitor { 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;