1.1 --- a/annotate.py Wed Feb 14 01:34:35 2007 +0100
1.2 +++ b/annotate.py Wed Feb 14 18:33:08 2007 +0100
1.3 @@ -501,6 +501,7 @@
1.4
1.5 invoke.invocations = invocations
1.6 self.namespace.set_types(getattr(invoke, "types", []))
1.7 + combine(self.namespace.raises, getattr(invoke, "raises", []))
1.8 return invoke
1.9
1.10 def visitInvokeBlock(self, invoke):
1.11 @@ -998,7 +999,9 @@
1.12
1.13 # Incorporate any raised exceptions.
1.14
1.15 - combine(self.namespace.raises, self.last_raises)
1.16 + if not hasattr(invoke, "raises"):
1.17 + invoke.raises = []
1.18 + combine(invoke.raises, self.last_raises)
1.19
1.20 # In order to keep global accesses working, the module namespace must be
1.21 # adjusted.
2.1 --- a/simplified.py Wed Feb 14 01:34:35 2007 +0100
2.2 +++ b/simplified.py Wed Feb 14 18:33:08 2007 +0100
2.3 @@ -300,6 +300,7 @@
2.4 common[attr] = getattr(self, attr)
2.5
2.6 if new_name is not None:
2.7 + common["copy_of"] = self
2.8 common["name"] = new_name
2.9
2.10 # Instantiate the copy, avoiding side-effects with original and defining.
3.1 --- a/viewer.py Wed Feb 14 01:34:35 2007 +0100
3.2 +++ b/viewer.py Wed Feb 14 18:33:08 2007 +0100
3.3 @@ -920,13 +920,14 @@
3.4 def _invocations_list(self, node):
3.5 if hasattr(node, "invocations"):
3.6 for invocation in node.invocations:
3.7 - fn = invocation.full_name()
3.8 + fn = getattr(invocation, "copy_of", invocation).full_name()
3.9 module = invocation.module.name
3.10 name = invocation.name
3.11 structures = [x.name for x in invocation.structures]
3.12 + qualified_name = ".".join([module] + structures + [name])
3.13 self.stream.write("<div class='invocation'>")
3.14 self.stream.write("<a href='%s.html#%s'>" % (self._url(module), self._url(fn)))
3.15 - self.stream.write(self._text(".".join([module] + structures + [name])))
3.16 + self.stream.write(self._text(qualified_name))
3.17 self.stream.write("</a>")
3.18 self.stream.write("</div>\n")
3.19