# HG changeset patch # User paulb@localhost.localdomain # Date 1182648083 -7200 # Node ID ea1d6c6f220fd23f7967e879aadecd3ab7646a59 # Parent 90d94ecbdaf5b4b09a3aae11b9cb079c90a34b20 Do not merge temporary results from internal subprograms. diff -r 90d94ecbdaf5 -r ea1d6c6f220f simplify/annotate.py --- a/simplify/annotate.py Sat Jun 23 21:10:01 2007 +0200 +++ b/simplify/annotate.py Sun Jun 24 03:21:23 2007 +0200 @@ -1076,14 +1076,14 @@ # snapshots or results. if getattr(target, "returns_value", 0): - self.namespace.merge_namespace(locals, everything=0) + self.namespace.merge_namespace(locals, everything=0, temp=0) # For blocks not returning values (such as loops), merge # snapshots and results since they contain details of genuine # returns. else: - self.namespace.merge_namespace(locals) + self.namespace.merge_namespace(locals, temp=0) # Incorporate any raised exceptions. diff -r 90d94ecbdaf5 -r ea1d6c6f220f simplify/simplified/utils.py --- a/simplify/simplified/utils.py Sat Jun 23 21:10:01 2007 +0200 +++ b/simplify/simplified/utils.py Sun Jun 24 03:21:23 2007 +0200 @@ -261,7 +261,7 @@ new_types.remove(type) self.temp[index][-1] = new_types - def merge_namespace(self, namespace, everything=1): + def merge_namespace(self, namespace, everything=1, temp=1): """ Merge items from the given 'namespace' with this namespace. When the @@ -275,11 +275,12 @@ if everything: self.returns.update(namespace.returns) self.return_locals.update(namespace.return_locals) - for name, values in namespace.temp.items(): - if values: - if not self.temp.has_key(name) or not self.temp[name]: - self.temp[name] = [set()] - self.temp[name][-1].update(values[-1]) + if temp: + for name, values in namespace.temp.items(): + if values: + if not self.temp.has_key(name) or not self.temp[name]: + self.temp[name] = [set()] + self.temp[name][-1].update(values[-1]) def merge_items(self, items):