From 89a359d3f961bfa4d4bb9bb0059d23420fc13fb9 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <kloeckner@hpcgeek.ccv.brown.edu>
Date: Wed, 6 May 2009 12:39:33 -0400
Subject: [PATCH] Support "extra properties" for common subexpressions.

---
 src/mapper/__init__.py | 4 +++-
 src/primitives.py      | 3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/mapper/__init__.py b/src/mapper/__init__.py
index d54d1da..7817546 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 14b066f..fe1c2b3 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
 
-- 
GitLab