diff --git a/pkg/yqlib/candidate_node.go b/pkg/yqlib/candidate_node.go index 92f14cde..5fbf3e7a 100644 --- a/pkg/yqlib/candidate_node.go +++ b/pkg/yqlib/candidate_node.go @@ -46,7 +46,11 @@ const ( func createStringScalarNode(stringValue string) *CandidateNode { var node = &CandidateNode{Kind: ScalarNode} node.Value = stringValue - node.Tag = "!!str" + if stringValue == "<<" { + node.Tag = "!!merge" + } else { + node.Tag = "!!str" + } return node } diff --git a/pkg/yqlib/operator_multiply.go b/pkg/yqlib/operator_multiply.go index 9db2c4f5..a09b7c49 100644 --- a/pkg/yqlib/operator_multiply.go +++ b/pkg/yqlib/operator_multiply.go @@ -189,7 +189,7 @@ func mergeObjects(d *dataTreeNavigator, context Context, lhs *CandidateNode, rhs log.Debugf("going to applied assignment to LHS: %v with RHS: %v", NodeToString(lhs), NodeToString(candidate)) - if candidate.Tag == "!!merge" { + if candidate.Tag == "!!merge" && !candidate.IsMapKey { continue }