1.1 --- a/resolving.py Fri Mar 31 00:17:01 2017 +0200
1.2 +++ b/resolving.py Fri Mar 31 18:42:27 2017 +0200
1.3 @@ -240,20 +240,7 @@
1.4 # Resolve values for each name in a scope.
1.5
1.6 for name, values in name_initialisers.items():
1.7 - initialised_names = {}
1.8 - aliased_names = {}
1.9 -
1.10 - for i, name_ref in enumerate(values):
1.11 - initialised_ref, _aliased_names = self.resolve_reference(path, name_ref)
1.12 - if initialised_ref:
1.13 - initialised_names[i] = initialised_ref
1.14 - if _aliased_names:
1.15 - aliased_names[i] = _aliased_names
1.16 -
1.17 - if initialised_names:
1.18 - self.initialised_names[(path, name)] = initialised_names
1.19 - if aliased_names:
1.20 - self.aliased_names[(path, name)] = aliased_names
1.21 + self._resolve_values(path, name, values)
1.22
1.23 def resolve_return_values(self):
1.24
1.25 @@ -265,20 +252,29 @@
1.26
1.27 # Resolve each return value provided by the scope.
1.28
1.29 - initialised_names = {}
1.30 - aliased_names = {}
1.31 + self._resolve_values(path, "$return", values)
1.32 +
1.33 + def _resolve_values(self, path, name, values):
1.34 +
1.35 + """
1.36 + Resolve in 'path' the references for 'name' involving the given
1.37 + 'values'.
1.38 + """
1.39 +
1.40 + initialised_names = {}
1.41 + aliased_names = {}
1.42
1.43 - for i, name_ref in enumerate(values):
1.44 - initialised_ref, _aliased_names = self.resolve_reference(path, name_ref)
1.45 - if initialised_ref:
1.46 - initialised_names[i] = initialised_ref
1.47 - if _aliased_names:
1.48 - aliased_names[i] = _aliased_names
1.49 + for i, name_ref in enumerate(values):
1.50 + initialised_ref, _aliased_names = self.resolve_reference(path, name_ref)
1.51 + if initialised_ref:
1.52 + initialised_names[i] = initialised_ref
1.53 + if _aliased_names:
1.54 + aliased_names[i] = _aliased_names
1.55
1.56 - if initialised_names:
1.57 - self.initialised_names[(path, "$return")] = initialised_names
1.58 - if aliased_names:
1.59 - self.aliased_names[(path, "$return")] = aliased_names
1.60 + if initialised_names:
1.61 + self.initialised_names[(path, name)] = initialised_names
1.62 + if aliased_names:
1.63 + self.aliased_names[(path, name)] = aliased_names
1.64
1.65 def resolve_reference(self, path, name_ref):
1.66