Skip to content

evaluator: execution depends on file order #2555

@nxcc

Description

@nxcc

What version of CUE are you using (cue version)?

$ cue-0.6.0 version
cue version v0.6.0

go version go1.20.6
      -buildmode exe
       -compiler gc
       -trimpath true
     CGO_ENABLED 0
          GOARCH amd64
            GOOS linux
         GOAMD64 v1

Does this issue reproduce with the latest stable release?

yes

What did you do?

testscript:

exec mv z.cue a.cue
exec cue-0.6.0 export .

-- b.cue --
package kube
oAuthProxy: [ID=_]: {name: ID}
for _, obj in oAuthProxy {(#oAuthProxy & {in: obj}).out}
#oAuthProxy: {
	in: {name: string}
	out: {deployment: "\(in.name)-proxy": {}}
}

-- c.cue --
package kube
oAuthProxy: prometheus: {}

-- z.cue --
package kube
deployment: {}
for _, deployment in deployment {}

What did you expect to see?

PASS

What did you see instead?

deployment: field "prometheus-proxy" not allowed by earlier comprehension or reference cycle

Comment

disabling the first line (exec mv...) make this test pass, so failure depends on the file order (alphabetical)

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsFixorderingBugs where the evaluator behaves differently depending on the order of fields, files, etc.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions