Add doubtful functionality to TemporaryVariable.

Adapted from https://github.com/develar/kotlin/commit/a9e0a42fb1347fa8e21c86b5a073ef8a7c873da0.
This commit is contained in:
Pavel V. Talanov
2012-08-10 21:38:34 +04:00
parent a923274e05
commit 2ca5c276ef
2 changed files with 8 additions and 14 deletions
@@ -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.JsName;
import com.google.dart.compiler.backend.js.ast.JsNameRef; import com.google.dart.compiler.backend.js.ast.JsNameRef;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.k2js.translate.utils.JsAstUtils; import org.jetbrains.k2js.translate.utils.JsAstUtils;
/** /**
* @author Pavel Talanov * @author Pavel Talanov
*/ */
public final class TemporaryVariable { public class TemporaryVariable {
@Nullable
@NotNull
private final JsExpression assignmentExpression; private final JsExpression assignmentExpression;
@NotNull @NotNull
private final JsName variableName; 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.variableName = temporaryName;
this.initExpression = initExpression; this.assignmentExpression = initExpression == null ? null : JsAstUtils.assignment(variableName.makeRef(), initExpression);
this.assignmentExpression = JsAstUtils.assignment(variableName.makeRef(), this.initExpression);
} }
@NotNull @NotNull
@@ -52,11 +49,7 @@ public final class TemporaryVariable {
@NotNull @NotNull
public JsExpression assignmentExpression() { public JsExpression assignmentExpression() {
assert assignmentExpression != null;
return assignmentExpression; return assignmentExpression;
} }
@NotNull
public JsExpression initExpression() {
return initExpression;
}
} }
@@ -173,8 +173,9 @@ public class TranslationContext {
return staticContext.getQualifierForDescriptor(descriptor); return staticContext.getQualifierForDescriptor(descriptor);
} }
//TODO: review all invocation with notnull parameters
@NotNull @NotNull
public TemporaryVariable declareTemporary(@NotNull JsExpression initExpression) { public TemporaryVariable declareTemporary(@Nullable JsExpression initExpression) {
return dynamicContext.declareTemporary(initExpression); return dynamicContext.declareTemporary(initExpression);
} }