1.1 --- a/simplified.py Mon Feb 26 00:53:19 2007 +0100
1.2 +++ b/simplified.py Mon Feb 26 00:59:15 2007 +0100
1.3 @@ -516,6 +516,9 @@
1.4 def __init__(self, *args, **kw):
1.5 Node.__init__(self, *args, **kw)
1.6 WithName.__init__(self)
1.7 + self.returns = []
1.8 + self.return_locals = []
1.9 + self.raises = []
1.10
1.11 class Module(Comparable):
1.12
1.13 @@ -601,8 +604,10 @@
1.14
1.15 key = (subprogram, instance)
1.16 if not self.attributes_for_instances.has_key(key):
1.17 - self.attributes_for_instances[key] = Attribute(attribute.context, subprogram.copy(instance, subprogram.full_name()))
1.18 - print "New subprogram", self.attributes_for_instances[key].type, "for", key
1.19 + new_subprogram = subprogram.copy(instance, subprogram.full_name())
1.20 + subprogram.module.simplifier.subnames[new_subprogram.full_name()] = new_subprogram
1.21 + self.attributes_for_instances[key] = Attribute(attribute.context, new_subprogram)
1.22 + print "New subprogram", new_subprogram, "for", key
1.23
1.24 return self.attributes_for_instances[key]
1.25
1.26 @@ -642,8 +647,8 @@
1.27
1.28 def has_instance(self, node):
1.29 requesting_instance = getattr(node, "instance", None)
1.30 - return requesting_instance is not None and requesting_instance.get_class() is self or \
1.31 - self.instance_relations.has_key(requesting_instance) or self.instances.has_key(self._get_key(node))
1.32 + #return requesting_instance is not None and requesting_instance.get_class() is self or \
1.33 + return self.instance_relations.has_key(requesting_instance) or self.instances.has_key(self._get_key(node))
1.34
1.35 def add_instance(self, node, instance):
1.36 requesting_instance = getattr(node, "instance", None)
1.37 @@ -655,8 +660,8 @@
1.38
1.39 def get_instance(self, node):
1.40 requesting_instance = getattr(node, "instance", None)
1.41 - if requesting_instance is not None and requesting_instance.get_class() is self:
1.42 - return requesting_instance
1.43 + #if requesting_instance is not None and requesting_instance.get_class() is self:
1.44 + # return requesting_instance
1.45 return self.instance_relations.get(requesting_instance) or self.instances[self._get_key(node)]
1.46
1.47 class Instance(Structure):
1.48 @@ -692,7 +697,10 @@
1.49 # NOTE: initialise built-in types, initialise built-in constants.
1.50
1.51 #def full_name(self):
1.52 - # return self.typename + "-c"
1.53 + # try:
1.54 + # return Instance.full_name(self)
1.55 + # except KeyError:
1.56 + # return self.typename + "-c"
1.57
1.58 class Attribute:
1.59