From 4d5198acf19d435ca0450669efc6116b5464a0f6 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 14 Jun 2021 17:02:05 -0500
Subject: [PATCH] Generated code: better 'filenames', no false optimization
 claims

---
 arraycontext/container/arithmetic.py | 7 ++++---
 arraycontext/container/dataclass.py  | 3 ++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/arraycontext/container/arithmetic.py b/arraycontext/container/arithmetic.py
index ef612fe..7e5da8b 100644
--- a/arraycontext/container/arithmetic.py
+++ b/arraycontext/container/arithmetic.py
@@ -347,7 +347,7 @@ def with_container_arithmetic(
                 if {bool(outer_bcast_type_names)}:  # optimized away
                     if isinstance(arg2, {tup_str(outer_bcast_type_names)}):
                         return cls({bcast_init_args})
-                if {numpy_pred("arg2")}:  # optimized away
+                if {numpy_pred("arg2")}:
                     result = np.empty_like(arg2, dtype=object)
                     for i in np.ndindex(arg2.shape):
                         result[i] = {op_str.format("arg1", "arg2[i]")}
@@ -376,7 +376,7 @@ def with_container_arithmetic(
                         if {bool(outer_bcast_type_names)}:  # optimized away
                             if isinstance(arg1, {tup_str(outer_bcast_type_names)}):
                                 return cls({bcast_init_args})
-                        if {numpy_pred("arg1")}:  # optimized away
+                        if {numpy_pred("arg1")}:
                             result = np.empty_like(arg1, dtype=object)
                             for i in np.ndindex(arg1.shape):
                                 result[i] = {op_str.format("arg1[i]", "arg2")}
@@ -393,7 +393,8 @@ def with_container_arithmetic(
         # This will evaluate the module, which is all we need.
         code = gen.get().rstrip()+"\n"
         result_dict = {"_MODULE_SOURCE_CODE": code, "cls": cls}
-        exec(compile(code, "<generated code>", "exec"), result_dict)
+        exec(compile(code, f"<container arithmetic for {cls.__name__}>", "exec"),
+                result_dict)
 
         return cls
 
diff --git a/arraycontext/container/dataclass.py b/arraycontext/container/dataclass.py
index 37230e4..ccf7322 100644
--- a/arraycontext/container/dataclass.py
+++ b/arraycontext/container/dataclass.py
@@ -106,7 +106,8 @@ def dataclass_array_container(cls: type) -> type:
         """)
 
     exec_dict = {"cls": cls, "_MODULE_SOURCE_CODE": serialize_code}
-    exec(compile(serialize_code, "<generated code>", "exec"), exec_dict)
+    exec(compile(serialize_code, f"<container serialization for {cls.__name__}>",
+        "exec"), exec_dict)
 
     return cls
 
-- 
GitLab