1.1 --- a/modules.py Wed Sep 28 22:59:21 2016 +0200
1.2 +++ b/modules.py Thu Sep 29 15:21:55 2016 +0200
1.3 @@ -122,6 +122,7 @@
1.4 del self.importer.all_module_attrs[self.name]
1.5
1.6 for name in self.classes.keys():
1.7 + del self.importer.classes[name]
1.8 del self.importer.all_class_attrs[name]
1.9 del self.importer.all_instance_attrs[name]
1.10 del self.importer.all_instance_attr_constants[name]
1.11 @@ -150,10 +151,22 @@
1.12 # Remove this module's objects from the importer. Objects are
1.13 # automatically propagated when defined.
1.14
1.15 + ref = self.importer.objects.get(self.name)
1.16 + if ref and ref.has_kind("<module>"):
1.17 + del self.importer.objects[self.name]
1.18 +
1.19 for name, ref in self.objects.items():
1.20 if not ref.has_kind("<module>"):
1.21 del self.importer.objects[name]
1.22
1.23 + def collect(self):
1.24 +
1.25 + "Collect removed objects."
1.26 +
1.27 + for name, ref in self.objects.items():
1.28 + if not self.importer.objects.has_key(ref.get_origin()) and self.importer.objects.has_key(name):
1.29 + del self.importer.objects[name]
1.30 +
1.31 def propagate_attrs(self):
1.32
1.33 "Derive attributes from the class and module member details."