From a138edcb2ea100850d230ef35cefad40a07f3c62 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Tue, 6 Aug 2024 17:22:00 +0200
Subject: [PATCH] Fix: Collect parameters for class methods when binding them

---
 src/pystencilssfg/ir/source_components.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/pystencilssfg/ir/source_components.py b/src/pystencilssfg/ir/source_components.py
index 6aace69..06788cf 100644
--- a/src/pystencilssfg/ir/source_components.py
+++ b/src/pystencilssfg/ir/source_components.py
@@ -435,11 +435,7 @@ class SfgMethod(SfgFunction, SfgClassMember):
 
         self._inline = inline
         self._const = const
-
-        from .postprocessing import CallTreePostProcessing
-
-        param_collector = CallTreePostProcessing()
-        self._parameters: set[SfgVar] = param_collector(self._tree).function_params
+        self._parameters: set[SfgVar] = set()
 
     @property
     def inline(self) -> bool:
@@ -449,6 +445,14 @@ class SfgMethod(SfgFunction, SfgClassMember):
     def const(self) -> bool:
         return self._const
 
+    def _bind(self, cls: SfgClass, vis: SfgVisibility):
+        super()._bind(cls, vis)
+
+        from .postprocessing import CallTreePostProcessing
+
+        param_collector = CallTreePostProcessing(enclosing_class=cls)
+        self._parameters = param_collector(self._tree).function_params
+
 
 class SfgConstructor(SfgClassMember):
     def __init__(
-- 
GitLab