From 84b4c13bf6758f1cc664eebb647f57740d83e831 Mon Sep 17 00:00:00 2001
From: zy69guqi <richard.angersbach@fau.de>
Date: Mon, 3 Mar 2025 16:39:59 +0100
Subject: [PATCH] Fix typecheck

---
 src/pystencils/backend/ast/structural.py                  | 6 +++---
 src/pystencils/backend/transformations/loop_vectorizer.py | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/pystencils/backend/ast/structural.py b/src/pystencils/backend/ast/structural.py
index b0dace4e0..5c8fca9ad 100644
--- a/src/pystencils/backend/ast/structural.py
+++ b/src/pystencils/backend/ast/structural.py
@@ -247,7 +247,7 @@ class PsLoop(PsStructuralNode):
             self._start.clone(),
             self._stop.clone(),
             self._step.clone(),
-            self._body.clone(),
+            self._body._clone_structural(),
         )
 
     def get_children(self) -> tuple[PsAstNode, ...]:
@@ -312,8 +312,8 @@ class PsConditional(PsStructuralNode):
     def _clone_structural(self) -> PsConditional:
         return PsConditional(
             self._condition.clone(),
-            self._branch_true.clone(),
-            self._branch_false.clone() if self._branch_false is not None else None,
+            self._branch_true._clone_structural(),
+            self._branch_false._clone_structural() if self._branch_false is not None else None,
         )
 
     def get_children(self) -> tuple[PsAstNode, ...]:
diff --git a/src/pystencils/backend/transformations/loop_vectorizer.py b/src/pystencils/backend/transformations/loop_vectorizer.py
index e1e4fea50..6b518a30d 100644
--- a/src/pystencils/backend/transformations/loop_vectorizer.py
+++ b/src/pystencils/backend/transformations/loop_vectorizer.py
@@ -213,7 +213,7 @@ class LoopVectorizer:
 
                 trailing_ctr = self._ctx.duplicate_symbol(scalar_ctr)
                 trailing_loop_body = substitute_symbols(
-                    loop.body.clone(), {scalar_ctr: PsExpression.make(trailing_ctr)}
+                    loop.body._clone_structural(), {scalar_ctr: PsExpression.make(trailing_ctr)}
                 )
                 trailing_loop = PsLoop(
                     PsExpression.make(trailing_ctr),
-- 
GitLab