From 890902a95960c0cbfcde545c6415db512b438073 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Fri, 2 Jun 2017 12:43:22 -0400
Subject: [PATCH] Improve error message on lookup access to aggregate type

---
 loopy/type_inference.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/loopy/type_inference.py b/loopy/type_inference.py
index b8b0cbcbf..4df619fea 100644
--- a/loopy/type_inference.py
+++ b/loopy/type_inference.py
@@ -332,8 +332,13 @@ class TypeInferenceMapper(CombineMapper):
         if not agg_result:
             return agg_result
 
-        field = agg_result[0].numpy_dtype.fields[expr.name]
-        dtype = field[0]
+        fields = agg_result[0].numpy_dtype.fields
+        if fields is None:
+            raise LoopyError("cannot look up attribute '%s' in "
+                    "non-aggregate expression '%s'"
+                    % (expr.aggregate, expr.name))
+
+        dtype = fields[0]
         return [NumpyType(dtype)]
 
     def map_comparison(self, expr):
-- 
GitLab