From 099c281a7b64a9a2827ccd7d7367e3b7486e990a Mon Sep 17 00:00:00 2001
From: Stephan Seitz <stephan.seitz@fau.de>
Date: Mon, 5 Aug 2019 21:03:26 +0200
Subject: [PATCH] Determine undefined_symbols of SympyAssignment by
 free_symbols instead of atoms (needed for Sum,Product: Symbol is used and
 defined in rhs)

This filters out symbols that have arguments.
sp.Indexed should not be considered only its arguments.
---
 pystencils/astnodes.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pystencils/astnodes.py b/pystencils/astnodes.py
index d9867fed..e3dca67d 100644
--- a/pystencils/astnodes.py
+++ b/pystencils/astnodes.py
@@ -517,7 +517,7 @@ class SympyAssignment(Node):
 
     @property
     def undefined_symbols(self):
-        result = self.rhs.atoms(sp.Symbol)
+        result = {s for s in self.rhs.free_symbols if not isinstance(s, sp.Indexed)}
         # Add loop counters if there a field accesses
         loop_counters = set()
         for symbol in result:
-- 
GitLab