1.1 --- a/micropython/data.py Sun Aug 17 02:16:35 2008 +0200
1.2 +++ b/micropython/data.py Sun Aug 17 02:57:41 2008 +0200
1.3 @@ -86,7 +86,7 @@
1.4 self.global_namespace.set(name, value, 0)
1.5 else:
1.6 attr = self._set(name, value)
1.7 - attr.update(value, single_assignment)
1.8 + attr.update(attr.value, single_assignment)
1.9
1.10 def set_module(self, name, value):
1.11
1.12 @@ -100,7 +100,7 @@
1.13 attr = self._set(name, value)
1.14 if attr.assignments is None:
1.15 attr.assignments = 1
1.16 - attr.assignment_values.add(value)
1.17 + attr.assignment_values.add(attr.value)
1.18
1.19 def _set(self, name, value):
1.20
1.21 @@ -108,7 +108,16 @@
1.22
1.23 if not self.namespace.has_key(name):
1.24
1.25 - # Attempt to fix the context.
1.26 + # Either accept the attribute as specified.
1.27 +
1.28 + if isinstance(value, Attr):
1.29 + if value.context is not None:
1.30 + self.namespace[name] = Attr(None, self, value.context, name, value.value)
1.31 + return self.namespace[name]
1.32 + else:
1.33 + value = value.value
1.34 +
1.35 + # Or attempt to fix the context.
1.36
1.37 context = self._context(value)
1.38 self.namespace[name] = Attr(None, self, context, name, value)
1.39 @@ -123,10 +132,7 @@
1.40 NOTE: since only instance contexts have significant effects at run-time.
1.41 """
1.42
1.43 - if value is not None:
1.44 - return value.parent
1.45 - else:
1.46 - return None
1.47 + return None
1.48
1.49 def __delitem__(self, name):
1.50 del self.namespace[name]
2.1 --- a/micropython/inspect.py Sun Aug 17 02:16:35 2008 +0200
2.2 +++ b/micropython/inspect.py Sun Aug 17 02:57:41 2008 +0200
2.3 @@ -334,10 +334,7 @@
2.4 return None
2.5
2.6 def visitAssName(self, node):
2.7 - if isinstance(self.expr, Attr):
2.8 - self.store(node.name, self.expr.value)
2.9 - else:
2.10 - self.store(node.name, self.expr)
2.11 + self.store(node.name, self.expr)
2.12 return None
2.13
2.14 visitAssTuple = visitAssList