From 43c34df0293963f0ca8a8eed2e3d60f08300c5f4 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 26 Jun 2024 16:59:31 -0500
Subject: [PATCH] Fix expected type in struct item assignment

---
 loopy/target/c/__init__.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/loopy/target/c/__init__.py b/loopy/target/c/__init__.py
index 0a54ecc6..4c5d7720 100644
--- a/loopy/target/c/__init__.py
+++ b/loopy/target/c/__init__.py
@@ -40,7 +40,7 @@ from loopy.diagnostic import LoopyError, LoopyTypeError
 from loopy.symbolic import IdentityMapper
 from loopy.target.execution import ExecutorBase
 from loopy.translation_unit import FunctionIdT, TranslationUnit
-from loopy.types import NumpyType, LoopyType
+from loopy.types import NumpyType, LoopyType, to_loopy_type
 from loopy.typing import ExpressionT
 from loopy.kernel import LoopKernel
 from loopy.kernel.array import ArrayBase, FixedStrideArrayDimTag
@@ -1137,6 +1137,10 @@ class CFamilyASTBuilder(ASTBuilderBase[Generable]):
 
         lhs_code = ecm(insn.assignee, prec=PREC_NONE, type_context=None)
         rhs_type_context = dtype_to_type_context(kernel.target, lhs_dtype)
+
+        if isinstance(insn.assignee, p.Lookup):
+            lhs_dtype = to_loopy_type(lhs_dtype.numpy_dtype[insn.assignee.name])
+
         if lhs_atomicity is None:
             from cgen import Assign
             return Assign(
-- 
GitLab