1.1 --- a/micropython/inspect.py Sun Nov 04 18:27:20 2007 +0100
1.2 +++ b/micropython/inspect.py Fri Nov 09 00:19:03 2007 +0100
1.3 @@ -101,10 +101,11 @@
1.4
1.5 "An inspected class."
1.6
1.7 - def __init__(self, name, parent_name):
1.8 + def __init__(self, name, parent_name, node=None):
1.9 NamespaceDict.__init__(self)
1.10 self.name = name
1.11 self.parent_name = parent_name
1.12 + self.node = node
1.13
1.14 self.bases = []
1.15 self.instattr = set() # instance attributes
1.16 @@ -241,17 +242,23 @@
1.17
1.18 "An inspected function."
1.19
1.20 - def __init__(self, name, parent_name, argnames, has_star, has_dstar):
1.21 + def __init__(self, name, parent_name, argnames, has_star, has_dstar, node=None):
1.22 NamespaceDict.__init__(self)
1.23 self.name = name
1.24 self.parent_name = parent_name
1.25 self.argnames = argnames
1.26 self.has_star = has_star
1.27 self.has_dstar = has_dstar
1.28 + self.node = node
1.29
1.30 self.localnames = None # cache for locals
1.31 self.alllocalnames = None # cache for all_locals
1.32
1.33 + # Add parameters to the namespace.
1.34 +
1.35 + for name in argnames:
1.36 + self[name] = None
1.37 +
1.38 # Image generation details.
1.39
1.40 self.location = None
1.41 @@ -511,7 +518,7 @@
1.42 if self.namespaces:
1.43 print "Class %r in %r is not global: ignored." % (node.name, self)
1.44 else:
1.45 - cls = Class(node.name, self.get_parent().full_name())
1.46 + cls = Class(node.name, self.get_parent().full_name(), node)
1.47 for base in node.bases:
1.48 base_ref = self.dispatch(base)
1.49 if base_ref is None:
1.50 @@ -583,8 +590,9 @@
1.51 node.name,
1.52 self.get_parent().full_name(),
1.53 node.argnames,
1.54 - has_star=(node.flags & 4 != 0),
1.55 - has_dstar=(node.flags & 8 != 0)
1.56 + (node.flags & 4 != 0),
1.57 + (node.flags & 8 != 0),
1.58 + node
1.59 )
1.60
1.61 self.namespaces.append(function)