Forráskód Böngészése

x/model: clarify Merge semantics

Blake Mizerany 1 éve
szülő
commit
cfe0bb6bb6
1 módosított fájl, 11 hozzáadás és 9 törlés
  1. 11 9
      x/model/name.go

+ 11 - 9
x/model/name.go

@@ -175,19 +175,21 @@ func ParseName(s string) Name {
 	return r
 }
 
-// Merge folds the domain, namespace, tag, and build of b into a if not set.
-// The name is left untouched.
+// Merge performs a partial merge of dst into src. Only the non-name parts
+// are merged. The name part is always left untouched. Other parts are
+// merged if and only if they are missing in dst.
 //
-// Use this for merging a ref with a default ref.
-func Merge(a, b Name) Name {
+// Use this for merging a fully qualified ref with a partial ref, such as
+// when filling in a missing parts with defaults.
+func Merge(dst, src Name) Name {
 	return Name{
 		// name is left untouched
-		nick: a.nick,
+		nick: dst.nick,
 
-		domain:    cmp.Or(a.domain, b.domain),
-		namespace: cmp.Or(a.namespace, b.namespace),
-		tag:       cmp.Or(a.tag, b.tag),
-		build:     cmp.Or(a.build, b.build),
+		domain:    cmp.Or(dst.domain, src.domain),
+		namespace: cmp.Or(dst.namespace, src.namespace),
+		tag:       cmp.Or(dst.tag, src.tag),
+		build:     cmp.Or(dst.build, src.build),
 	}
 }