From 12a803a3ae52628ebfe45b98281ead3cf3d941cc Mon Sep 17 00:00:00 2001 From: Miles Vella <673-vella@users.noreply.gitlab.cs.uni-duesseldorf.de> Date: Mon, 10 Mar 2025 14:46:34 +0100 Subject: [PATCH] Fix lost type info --- .../codegenerator/MachineConstantsOptimizer.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java b/src/main/java/de/hhu/stups/codegenerator/MachineConstantsOptimizer.java index 63ad6b25..acb3ecfa 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 -- GitLab