aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-13 20:36:17 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-13 20:36:17 +0000
commit6150fa0b469e54b7a211d0a4e585d3e37794df23 (patch)
treea4d2b4378260ce10232b3c2568c78a9499c81182 /src/main/java
parent2af848d7c4e9a39f7ddedf3d62046eabc9fe65a5 (diff)
Push temporary variable generation into Scope
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java3
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/Scope.java4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
index 1b6d62a..1aa682a 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
@@ -92,8 +92,7 @@ class JavaStatementReader {
private List<StatementNode> readSwitchStatement(SwitchStatement switchStatement) {
ExpressionNode switchValue = readExpressionWithoutBoxing(switchStatement.getExpression());
- LocalVariableDeclarationNode switchValueAssignment = scope.localVariable(
- "_couscous_tmp_0",
+ LocalVariableDeclarationNode switchValueAssignment = scope.temporaryVariable(
switchValue.getType(),
switchValue);
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/Scope.java b/src/main/java/org/zwobble/couscous/frontends/java/Scope.java
index 28cd6b6..de0a7b6 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/Scope.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/Scope.java
@@ -65,6 +65,10 @@ public class Scope {
return LocalVariableDeclarationNode.localVariableDeclaration(declaration, initialValue);
}
+ public LocalVariableDeclarationNode temporaryVariable(TypeName type, ExpressionNode initialValue) {
+ return localVariable("_couscous_tmp_0", type, initialValue);
+ }
+
public ExpressionNode reference(String key) {
VariableDeclaration variable = variablesByKey.get(key);
if (variable == null) {