1.1 --- a/micropython/inspect.py Sun Jun 19 02:01:51 2011 +0200
1.2 +++ b/micropython/inspect.py Sun Jun 19 02:07:58 2011 +0200
1.3 @@ -398,7 +398,7 @@
1.4
1.5 return self.get_namespace()._use_attribute(name, attrname, value)
1.6
1.7 - def use_specific_attribute(self, objname, attrname):
1.8 + def use_specific_attribute(self, objname, attrname, from_name=None):
1.9
1.10 """
1.11 Note usage on the object having the given 'objname' of the attribute
1.12 @@ -406,7 +406,7 @@
1.13 object providing the attribute.
1.14 """
1.15
1.16 - return self.get_namespace()._use_specific_attribute(objname, attrname)
1.17 + return self.get_namespace()._use_specific_attribute(objname, attrname, from_name)
1.18
1.19 # Visitor methods.
1.20
1.21 @@ -657,7 +657,14 @@
1.22 # NOTE: Consider not registering assignments involving methods, since
1.23 # NOTE: this is merely creating aliases for such methods.
1.24
1.25 - self.use_specific_attribute(None, node.name)
1.26 + if isinstance(self.get_namespace(), (Class, Module)):
1.27 + if not isinstance(self.expr, Attr) or not isinstance(self.expr.get_value(), Function):
1.28 + self.use_specific_attribute(None, node.name)
1.29 + else:
1.30 + fn = self.expr.get_value()
1.31 + ns = self.get_namespace().full_name()
1.32 + self.use_specific_attribute(fn.parent.full_name(), fn.name, "%s.%s" % (ns, node.name))
1.33 +
1.34 return None
1.35
1.36 visitAssTuple = visitAssList