diff --git a/src/mapper/__init__.py b/src/mapper/__init__.py index d54d1dafd9c50b5a509196cde2e7fa14e7578740..7817546eb39367688bbf28ff7666083351159899 100644 --- a/src/mapper/__init__.py +++ b/src/mapper/__init__.py @@ -195,7 +195,9 @@ class IdentityMapperBase(object): return result def map_common_subexpression(self, expr, *args, **kwargs): - return expr.__class__(self.rec(expr.child, *args, **kwargs)) + return expr.__class__( + self.rec(expr.child, *args, **kwargs), + **expr.get_extra_properties()) diff --git a/src/primitives.py b/src/primitives.py index 14b066fabb321f0c4f3c8e5a3961995a35b34613..fe1c2b3f9846303bf24d6eee493c67ea35b21c8e 100644 --- a/src/primitives.py +++ b/src/primitives.py @@ -548,6 +548,9 @@ class CommonSubexpression(Expression): return (other.__class__ == self.__class__ and other.child == self.child) + def get_extra_properties(self): + return {} + def get_mapper_method(self, mapper): return mapper.map_common_subexpression