diff --git a/cmd/cue/cmd/common.go b/cmd/cue/cmd/common.go index 0b03a1cb354..aa47081129e 100644 --- a/cmd/cue/cmd/common.go +++ b/cmd/cue/cmd/common.go @@ -605,7 +605,12 @@ func buildTools(cmd *Command, tags, args []string) (*cue.Instance, error) { return nil, err } - inst := cue.Merge(insts...).Build(ti) + inst := insts[0] + if len(insts) > 1 { + inst = cue.Merge(insts...) + } + + inst = inst.Build(ti) return inst, inst.Err } diff --git a/cmd/cue/cmd/testdata/script/issue525.txt b/cmd/cue/cmd/testdata/script/issue525.txt new file mode 100644 index 00000000000..234662ab707 --- /dev/null +++ b/cmd/cue/cmd/testdata/script/issue525.txt @@ -0,0 +1,29 @@ +cue cmd gengithub + +-- x.cue -- +package x + +test: #Workflow & { +} + +#Workflow: { + #: "working-directory": string +} +-- x_tool.cue -- +package x + +import ( + "tool/file" + "encoding/yaml" +) + +command: gengithub: { + write: file.Create & { + filename: "test.yml" + contents: """ + # Generated by ci_tool.cue; do not edit + + \(yaml.Marshal(test)) + """ + } +} \ No newline at end of file diff --git a/internal/core/adt/composite.go b/internal/core/adt/composite.go index 5dfaa126c5d..c68c5b564d8 100644 --- a/internal/core/adt/composite.go +++ b/internal/core/adt/composite.go @@ -274,9 +274,11 @@ func (v *Vertex) ToDataSingle() *Vertex { // ToDataAll returns a new v where v and all its descendents contain only // the regular fields. func (v *Vertex) ToDataAll() *Vertex { - arcs := make([]*Vertex, len(v.Arcs)) - for i, a := range v.Arcs { - arcs[i] = a.ToDataAll() + arcs := make([]*Vertex, 0, len(v.Arcs)) + for _, a := range v.Arcs { + if a.Label.IsRegular() { + arcs = append(arcs, a.ToDataAll()) + } } w := *v