From 2ca5c276efb6d04e51d0e97baf4c1e2c3d3022b9 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Fri, 10 Aug 2012 21:38:34 +0400 Subject: [PATCH] Add doubtful functionality to TemporaryVariable. Adapted from https://github.com/develar/kotlin/commit/a9e0a42fb1347fa8e21c86b5a073ef8a7c873da0. --- .../translate/context/TemporaryVariable.java | 19 ++++++------------- .../translate/context/TranslationContext.java | 3 ++- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java index ec3958b1680..1583a4592cd 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/TemporaryVariable.java @@ -20,24 +20,21 @@ import com.google.dart.compiler.backend.js.ast.JsExpression; import com.google.dart.compiler.backend.js.ast.JsName; import com.google.dart.compiler.backend.js.ast.JsNameRef; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.k2js.translate.utils.JsAstUtils; /** * @author Pavel Talanov */ -public final class TemporaryVariable { - - @NotNull +public class TemporaryVariable { + @Nullable private final JsExpression assignmentExpression; @NotNull private final JsName variableName; - @NotNull - private final JsExpression initExpression; - /*package*/ TemporaryVariable(@NotNull JsName temporaryName, @NotNull JsExpression initExpression) { + /*package*/ TemporaryVariable(@NotNull JsName temporaryName, @Nullable JsExpression initExpression) { this.variableName = temporaryName; - this.initExpression = initExpression; - this.assignmentExpression = JsAstUtils.assignment(variableName.makeRef(), this.initExpression); + this.assignmentExpression = initExpression == null ? null : JsAstUtils.assignment(variableName.makeRef(), initExpression); } @NotNull @@ -52,11 +49,7 @@ public final class TemporaryVariable { @NotNull public JsExpression assignmentExpression() { + assert assignmentExpression != null; return assignmentExpression; } - - @NotNull - public JsExpression initExpression() { - return initExpression; - } } \ No newline at end of file diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java b/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java index af645dd67b0..4eade262f20 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/context/TranslationContext.java @@ -173,8 +173,9 @@ public class TranslationContext { return staticContext.getQualifierForDescriptor(descriptor); } + //TODO: review all invocation with notnull parameters @NotNull - public TemporaryVariable declareTemporary(@NotNull JsExpression initExpression) { + public TemporaryVariable declareTemporary(@Nullable JsExpression initExpression) { return dynamicContext.declareTemporary(initExpression); }