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.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;
}
}
@@ -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);
}