diff --git a/pkg/accumulator/resaccumulator.go b/pkg/accumulator/resaccumulator.go index e28e688ee..c83d40dcf 100644 --- a/pkg/accumulator/resaccumulator.go +++ b/pkg/accumulator/resaccumulator.go @@ -39,7 +39,7 @@ func (ra *ResAccumulator) ResMap() resmap.ResMap { // Vars returns a copy of underlying vars. func (ra *ResAccumulator) Vars() []types.Var { - return ra.varSet.Set() + return ra.varSet.AsSlice() } func (ra *ResAccumulator) AppendAll( @@ -75,7 +75,7 @@ func (ra *ResAccumulator) MergeAccumulator(other *ResAccumulator) (err error) { if err != nil { return err } - return ra.varSet.MergeSet(&other.varSet) + return ra.varSet.MergeSet(other.varSet) } // makeVarReplacementMap returns a map of Var names to diff --git a/pkg/types/var.go b/pkg/types/var.go index 6a48032a0..819b06a74 100644 --- a/pkg/types/var.go +++ b/pkg/types/var.go @@ -75,15 +75,20 @@ type VarSet struct { set []Var } -// Set returns a copy of the var set. -func (vs *VarSet) Set() []Var { +// AsSlice returns the vars as a slice. +func (vs *VarSet) AsSlice() []Var { s := make([]Var, len(vs.set)) copy(s, vs.set) return s } +// Copy returns a copy of the var set. +func (vs *VarSet) Copy() VarSet { + return VarSet{set: vs.AsSlice()} +} + // MergeSet absorbs other vars with error on name collision. -func (vs *VarSet) MergeSet(incoming *VarSet) error { +func (vs *VarSet) MergeSet(incoming VarSet) error { return vs.MergeSlice(incoming.set) } diff --git a/pkg/types/var_test.go b/pkg/types/var_test.go index f48c5e1cf..23dd840a8 100644 --- a/pkg/types/var_test.go +++ b/pkg/types/var_test.go @@ -89,7 +89,7 @@ func TestDefaulting(t *testing.T) { } func TestVarSet(t *testing.T) { - set := &VarSet{} + set := VarSet{} vars := []Var{ { Name: "SHELLVARS", @@ -120,10 +120,10 @@ func TestVarSet(t *testing.T) { } for _, v := range vars { if !set.Contains(v) { - t.Fatalf("set %v should contain var %v", set.Set(), v) + t.Fatalf("set %v should contain var %v", set.AsSlice(), v) } } - set2 := &VarSet{} + set2 := VarSet{} err = set2.MergeSet(set) if err != nil { t.Fatalf("unexpected err: %v", err) @@ -144,7 +144,7 @@ func TestVarSet(t *testing.T) { t.Fatalf("unexpected field path: %v", v.FieldRef.FieldPath) } // Confirm sorting. - names := set2.Set() + names := set2.AsSlice() if names[0].Name != "AWARD" || names[1].Name != "BACKEND" || names[2].Name != "SHELLVARS" {