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