Absolute access is probably not copied correctly after _eval_subs()
I think there is a bug in Field.Access::_eval_subs(self, old, new)
as the is_absolute_access
property is not copied.
It should be
def _eval_subs(self, old, new):
return Field.Access(self.field,
tuple(sp.sympify(a).subs(old, new) for a in self.offsets),
tuple(sp.sympify(a).subs(old, new) for a in self.index),
is_absolute_access=self.is_absolute_access, # << this is missing, maybe there is more ...
dtype=self.dtype)
instead of
def _eval_subs(self, old, new):
return Field.Access(self.field,
tuple(sp.sympify(a).subs(old, new) for a in self.offsets),
tuple(sp.sympify(a).subs(old, new) for a in self.index),
dtype=self.dtype)
Otherwise when performing sympy substitutions, that property might get lost and subsequent resolve_field_access()
endeavors may produce garbage.