Add doubtful functionality to TemporaryVariable.
Adapted from https://github.com/develar/kotlin/commit/a9e0a42fb1347fa8e21c86b5a073ef8a7c873da0.
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user