From 6e08aef3ccb014356b58445c3669e6b0bf0b05ae Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 21 Nov 2016 22:42:53 -0600
Subject: [PATCH] Fix type inference for multiple-return assignments where some
 do and some don't return a known type

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

diff --git a/loopy/type_inference.py b/loopy/type_inference.py
index 16be9605c..a31f011a0 100644
--- a/loopy/type_inference.py
+++ b/loopy/type_inference.py
@@ -409,14 +409,17 @@ def _infer_var_type(kernel, var_name, type_inf_mapper, subst_expander):
             result = []
             for return_dtype_set in return_dtype_set:
                 result_i = None
+                found = False
                 for assignee, comp_dtype_set in zip(
                         writer_insn.assignee_var_names(), return_dtype_set):
                     if assignee == var_name:
+                        found = True
                         result_i = comp_dtype_set
                         break
 
-                assert result is not None
-                result.append(result_i)
+                assert found
+                if result_i is not None:
+                    result.append(result_i)
 
         debug("             result: %s" % result)
 
-- 
GitLab