From dfd763c269137adb62c92957dfea1e45a77555ea Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Tue, 1 Dec 2015 19:05:37 -0600
Subject: [PATCH] Improve error checking in ArrayChanger

---
 loopy/kernel/tools.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index 1b12373e4..8b21fc787 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
-- 
GitLab