From 7d58828a10e0f687df077048176cbf027122ab97 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 29 Mar 2012 01:12:00 -0400 Subject: [PATCH] Fix wrap_in_cse() for specialized CSEs. --- pymbolic/primitives.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py index dcfa09f..b68fa14 100644 --- a/pymbolic/primitives.py +++ b/pymbolic/primitives.py @@ -686,6 +686,13 @@ class CommonSubexpression(Expression): return (self.child, self.prefix) def get_extra_properties(self): + """Return a dictionary of extra kwargs to be passed to the + constructor from the identity mapper. + + This allows derived classes to exist without having to + extend every mapper that processes them. + """ + return {} mapper_method = intern("map_common_subexpression") @@ -875,7 +882,7 @@ def wrap_in_cse(expr, prefix=None): if isinstance(expr, CommonSubexpression): if prefix is None: return expr - if expr.prefix is None: + if expr.prefix is None and type(expr) is CommonSubexpression: return CommonSubexpression(expr.child, prefix) # existing prefix wins -- GitLab