1.1 --- a/annotate.py Sat Dec 09 02:16:20 2006 +0100
1.2 +++ b/annotate.py Mon Dec 11 00:47:49 2006 +0100
1.3 @@ -576,6 +576,8 @@
1.4 expr_attr.type.namespace.revoke(expr.name, attr)
1.5 elif isinstance(expr, LoadExc):
1.6 self.namespace.revoke_exception_type(attr)
1.7 + elif isinstance(expr, LoadTemp):
1.8 + self.namespace.revoke_temp_type(expr.index, attr)
1.9
1.10 def visitLoadExc(self, loadexc):
1.11
1.12 @@ -1235,6 +1237,14 @@
1.13
1.14 self.raises.remove(type)
1.15
1.16 + def revoke_temp_type(self, index, type):
1.17 +
1.18 + "Revoke from the temporary variable 'index' the given 'type'."
1.19 +
1.20 + new_types = self.temp[index][-1][:]
1.21 + new_types.remove(type)
1.22 + self.temp[index][-1] = new_types
1.23 +
1.24 def merge_namespace(self, namespace, everything=1):
1.25
1.26 """