1.1 --- a/resolving.py Mon Mar 13 17:59:13 2017 +0100
1.2 +++ b/resolving.py Tue Mar 14 16:40:04 2017 +0100
1.3 @@ -259,26 +259,26 @@
1.4
1.5 "Resolve return values using name references."
1.6
1.7 - return_values = {}
1.8 -
1.9 # Get the return values from each namespace.
1.10
1.11 for path, values in self.return_values.items():
1.12 - l = set()
1.13 +
1.14 + # Resolve each return value provided by the scope.
1.15
1.16 - for value in values:
1.17 - if not value:
1.18 - ref = None
1.19 - else:
1.20 - ref, aliased_name = self.resolve_reference(path, value)
1.21 + initialised_names = {}
1.22 + aliased_names = {}
1.23
1.24 - l.add(ref or Reference("<var>"))
1.25 -
1.26 - return_values[path] = l
1.27 + for i, name_ref in enumerate(values):
1.28 + initialised_ref, aliased_name = self.resolve_reference(path, name_ref)
1.29 + if initialised_ref:
1.30 + initialised_names[i] = initialised_ref
1.31 + if aliased_name:
1.32 + aliased_names[i] = aliased_name
1.33
1.34 - # Replace the original values.
1.35 -
1.36 - self.return_values = return_values
1.37 + if initialised_names:
1.38 + self.initialised_names[(path, "$return")] = initialised_names
1.39 + if aliased_names:
1.40 + self.aliased_names[(path, "$return")] = aliased_names
1.41
1.42 def resolve_reference(self, path, name_ref):
1.43