# HG changeset patch # User Paul Boddie # Date 1490978547 -7200 # Node ID 059cb35b44212c42e49246cf6e4d8e020bce45e0 # Parent d7093295564541b526e9622df43db12b7db3be8f Consolidated initialiser and return value code. diff -r d70932955645 -r 059cb35b4421 resolving.py --- a/resolving.py Fri Mar 31 00:17:01 2017 +0200 +++ b/resolving.py Fri Mar 31 18:42:27 2017 +0200 @@ -240,20 +240,7 @@ # Resolve values for each name in a scope. for name, values in name_initialisers.items(): - initialised_names = {} - aliased_names = {} - - for i, name_ref in enumerate(values): - initialised_ref, _aliased_names = self.resolve_reference(path, name_ref) - if initialised_ref: - initialised_names[i] = initialised_ref - if _aliased_names: - aliased_names[i] = _aliased_names - - if initialised_names: - self.initialised_names[(path, name)] = initialised_names - if aliased_names: - self.aliased_names[(path, name)] = aliased_names + self._resolve_values(path, name, values) def resolve_return_values(self): @@ -265,20 +252,29 @@ # Resolve each return value provided by the scope. - initialised_names = {} - aliased_names = {} + self._resolve_values(path, "$return", values) + + def _resolve_values(self, path, name, values): + + """ + Resolve in 'path' the references for 'name' involving the given + 'values'. + """ + + initialised_names = {} + aliased_names = {} - for i, name_ref in enumerate(values): - initialised_ref, _aliased_names = self.resolve_reference(path, name_ref) - if initialised_ref: - initialised_names[i] = initialised_ref - if _aliased_names: - aliased_names[i] = _aliased_names + for i, name_ref in enumerate(values): + initialised_ref, _aliased_names = self.resolve_reference(path, name_ref) + if initialised_ref: + initialised_names[i] = initialised_ref + if _aliased_names: + aliased_names[i] = _aliased_names - if initialised_names: - self.initialised_names[(path, "$return")] = initialised_names - if aliased_names: - self.aliased_names[(path, "$return")] = aliased_names + if initialised_names: + self.initialised_names[(path, name)] = initialised_names + if aliased_names: + self.aliased_names[(path, name)] = aliased_names def resolve_reference(self, path, name_ref):