diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py
index 6a11449603e8f25322d67918c48e376c6ae180d3..2b01d628e75f0b4cd5c654d983c7628af7d38c38 100644
--- a/pymbolic/primitives.py
+++ b/pymbolic/primitives.py
@@ -888,7 +888,7 @@ class ExpressionNode:
     def __abs__(self) -> ExpressionNode:
         return Call(Variable("abs"), (self,))
 
-    def __iter__(self):
+    def __iter__(self) -> NoReturn:
         # prevent infinite loops (e.g. when inserting into numpy arrays)
         raise TypeError("expression types are not iterable")