diff --git a/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java b/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java index 63ad6b25dae0e6e5d37139fccef463f314d996e5..acb3ecfa252f00c4298f51d03b1e8fd1d3a3b9da 100644 --- a/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java +++ b/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java @@ -313,17 +313,23 @@ public class MachineConstantsOptimizer implements AbstractVisitor<Node, Void> { @Override public Node visitRecordNode(RecordNode node, Void expected) { - return new RecordNode(node.getSourceCodePosition(), node.getDeclarations(), node.getExpressions().stream().map(expr -> (ExprNode) visitExprNode(expr, expected)).collect(Collectors.toList())); + RecordNode result = new RecordNode(node.getSourceCodePosition(), node.getDeclarations(), node.getExpressions().stream().map(expr -> (ExprNode) visitExprNode(expr, expected)).collect(Collectors.toList())); + result.setType(node.getType()); + return result; } @Override public Node visitStructNode(StructNode node, Void expected) { - return new StructNode(node.getSourceCodePosition(), node.getDeclarations(), node.getExpressions().stream().map(expr -> (ExprNode) visitExprNode(expr, expected)).collect(Collectors.toList())); + StructNode result = new StructNode(node.getSourceCodePosition(), node.getDeclarations(), node.getExpressions().stream().map(expr -> (ExprNode) visitExprNode(expr, expected)).collect(Collectors.toList())); + result.setType(node.getType()); + return result; } @Override public Node visitRecordFieldAccessNode(RecordFieldAccessNode node, Void expected) { - return new RecordFieldAccessNode(node.getSourceCodePosition(), (ExprNode) visitExprNode(node.getRecord(), expected), node.getIdentifier()); + RecordFieldAccessNode result = new RecordFieldAccessNode(node.getSourceCodePosition(), (ExprNode) visitExprNode(node.getRecord(), expected), node.getIdentifier()); + result.setType(node.getType()); + return result; } @Override