diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py index 1b12373e4938a3f95b43ef365a383a77ba2ffba8..8b21fc787b63ade17396fe9240859129d4ba7e33 100644 --- a/loopy/kernel/tools.py +++ b/loopy/kernel/tools.py @@ -903,12 +903,18 @@ class ArrayChanger(object): def get(self): ary_name = self.array_name if ary_name in self.kernel.temporary_variables: - return self.kernel.temporary_variables[ary_name] + result = self.kernel.temporary_variables[ary_name] elif ary_name in self.kernel.arg_dict: - return self.kernel.arg_dict[ary_name] + result = self.kernel.arg_dict[ary_name] else: raise NameError("array '%s' was not found" % ary_name) + from loopy.kernel.array import ArrayBase + if not isinstance(result, ArrayBase): + raise LoopyError("variable '%s' is not an array" % ary_name) + + return result + def with_changed_array(self, new_array): knl = self.kernel ary_name = self.array_name