1.1 --- a/resolving.py Wed Mar 08 00:49:56 2017 +0100
1.2 +++ b/resolving.py Wed Mar 08 14:53:01 2017 +0100
1.3 @@ -240,11 +240,6 @@
1.4 # Resolve values for each name in a scope.
1.5
1.6 for name, values in name_initialisers.items():
1.7 - if path == self.name:
1.8 - assigned_path = name
1.9 - else:
1.10 - assigned_path = "%s.%s" % (path, name)
1.11 -
1.12 initialised_names = {}
1.13 aliased_names = {}
1.14
1.15 @@ -350,9 +345,9 @@
1.16 initialised_names[i] = ref
1.17
1.18 if initialised_names:
1.19 - self.initialised_names[assigned_path] = initialised_names
1.20 + self.initialised_names[(path, name)] = initialised_names
1.21 if aliased_names:
1.22 - self.aliased_names[assigned_path] = aliased_names
1.23 + self.aliased_names[(path, name)] = aliased_names
1.24
1.25 def resolve_literals(self):
1.26
1.27 @@ -364,7 +359,7 @@
1.28 for constant, n in constants.items():
1.29 objpath = "%s.$c%d" % (path, n)
1.30 _constant, value_type, encoding = self.constant_values[objpath]
1.31 - self.initialised_names[objpath] = {0 : Reference("<instance>", value_type)}
1.32 + self.initialised_names[(path, objpath)] = {0 : Reference("<instance>", value_type)}
1.33
1.34 # Get the literals defined in each namespace.
1.35
1.36 @@ -372,7 +367,7 @@
1.37 for n in range(0, literals):
1.38 objpath = "%s.$C%d" % (path, n)
1.39 value_type = self.literal_types[objpath]
1.40 - self.initialised_names[objpath] = {0 : Reference("<instance>", value_type)}
1.41 + self.initialised_names[(path, objpath)] = {0 : Reference("<instance>", value_type)}
1.42
1.43 # Object resolution.
1.44