1.1 --- a/micropython/data.py Sun Jun 26 17:01:29 2011 +0200
1.2 +++ b/micropython/data.py Sun Jun 26 23:54:37 2011 +0200
1.3 @@ -143,6 +143,9 @@
1.4
1.5 # Administrative methods.
1.6
1.7 + def finalise(self, objtable):
1.8 + self.finalise_attributes()
1.9 +
1.10 def items_for_vacuum(self):
1.11 return self.items() + self.lambdas.items()
1.12
1.13 @@ -1777,6 +1780,10 @@
1.14
1.15 # Administrative methods.
1.16
1.17 + def finalise(self, objtable):
1.18 + self.finalise_attributes()
1.19 + self.finalise_users(objtable)
1.20 +
1.21 def items_for_vacuum(self):
1.22 return self.lambdas.items()
1.23
1.24 @@ -1833,6 +1840,17 @@
1.25
1.26 return i
1.27
1.28 + def finalise_users(self, objtable):
1.29 +
1.30 + "Record the object types for generating guards."
1.31 +
1.32 + # Visit each user and examine the attribute usage for each name.
1.33 +
1.34 + for user in self.all_attribute_users:
1.35 + user._attrtypes = {}
1.36 + for name, usage in user._attrcombined.items():
1.37 + user._attrtypes[name] = get_object_types_for_usage(usage, objtable, name, self.full_name())
1.38 +
1.39 def as_instantiator(self):
1.40
1.41 "Make an instantiator function from a method, keeping all arguments."