From 784513dd1853e18880defc78e631ff507dde04da Mon Sep 17 00:00:00 2001 From: Mike Farah Date: Sun, 22 Dec 2019 15:35:16 +1100 Subject: [PATCH] Merge anchors - refactored --- pkg/yqlib/data_navigator.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/yqlib/data_navigator.go b/pkg/yqlib/data_navigator.go index edf341f4..b0bd6d0c 100644 --- a/pkg/yqlib/data_navigator.go +++ b/pkg/yqlib/data_navigator.go @@ -303,7 +303,7 @@ func (n *navigator) visitAliases(contents []*yaml.Node, key string, visit mapVis return visitedAlias, errorInAlias } } else if contents[index+1].Kind == yaml.SequenceNode { - // could be an array of aliases...need to search this backwards too! + // could be an array of aliases... visitedAliasSeq, errorVisitingAliasSeq := n.visitAliasSequence(contents[index+1].Content, key, visit) if visitedAliasSeq == true || errorVisitingAliasSeq != nil { return visitedAliasSeq, errorVisitingAliasSeq @@ -315,6 +315,7 @@ func (n *navigator) visitAliases(contents []*yaml.Node, key string, visit mapVis } func (n *navigator) visitAliasSequence(possibleAliasArray []*yaml.Node, key string, visit mapVisitorFn) (bool, error) { + // need to search this backwards too, so that aliases defined last override the preceding. for aliasIndex := len(possibleAliasArray) - 1; aliasIndex >= 0; aliasIndex = aliasIndex - 1 { child := possibleAliasArray[aliasIndex] if child.Kind == yaml.AliasNode {