# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: builtins
#evalPartial
-- in.cue --
a1: {
	a: and([b, c])
	b: =~"oo"
	c: =~"fo"
}
a2: a1 & {a: "foo"}
a3: a1 & {a: "bar"}

o1: {
	a: or([b, c])
	b: string
	c: "bar"
}
o2: o1 & {a: "foo"}
o3: o1 & {a: "foo", b: "baz"}
-- out/def --
a1: {
	a: =~"oo" & =~"fo"
	b: =~"oo"
	c: =~"fo"
}
a2: a1 & {
	a: "foo"
}
a3: a1 & {
	a: "bar"
}
o1: {
	a: string
	b: string
	c: "bar"
}
o2: o1 & {
	a: "foo"
}
o3: o1 & {
	a: "foo"
	b: "baz"
}
-- out/legacy-debug --
<0>{a1: <1>{a: (=~"oo" & =~"fo"), b: =~"oo", c: =~"fo"}, a2: <2>{a: "foo", b: =~"oo", c: =~"fo"}, a3: <3>{a: _|_((=~"oo" & "bar"):invalid value "bar" (does not match =~"oo")), b: =~"oo", c: =~"fo"}, o1: <4>{a: string, b: string, c: "bar"}, o2: <5>{a: "foo", b: string, c: "bar"}, o3: <6>{a: _|_(("baz" & "foo"):empty disjunction: conflicting values "baz" and "foo";("bar" & "foo"):empty disjunction: conflicting values "bar" and "foo"), b: "baz", c: "bar"}}
-- out/eval --
Errors:
o3.a: 2 errors in empty disjunction:
o3.a: conflicting values "bar" and "foo":
    ./in.cue:10:12
    ./in.cue:12:5
    ./in.cue:15:5
    ./in.cue:15:14
o3.a: conflicting values "baz" and "foo":
    ./in.cue:10:9
    ./in.cue:15:5
    ./in.cue:15:14
    ./in.cue:15:24
a3.a: invalid value "bar" (out of bound =~"oo"):
    ./in.cue:3:5
a3.a: invalid value "bar" (out of bound =~"fo"):
    ./in.cue:4:5

Result:
(_|_){
  // [eval]
  a1: (struct){
    a: (string){ &(=~"oo", =~"fo") }
    b: (string){ =~"oo" }
    c: (string){ =~"fo" }
  }
  a2: (struct){
    a: (string){ "foo" }
    b: (string){ =~"oo" }
    c: (string){ =~"fo" }
  }
  a3: (_|_){
    // [eval]
    a: (_|_){
      // [eval] a3.a: invalid value "bar" (out of bound =~"oo"):
      //     ./in.cue:3:5
      // a3.a: invalid value "bar" (out of bound =~"fo"):
      //     ./in.cue:4:5
    }
    b: (string){ =~"oo" }
    c: (string){ =~"fo" }
  }
  o1: (struct){
    a: (string){ |((string){ string }, (string){ "bar" }) }
    b: (string){ string }
    c: (string){ "bar" }
  }
  o2: (struct){
    a: (string){ "foo" }
    b: (string){ string }
    c: (string){ "bar" }
  }
  o3: (_|_){
    // [eval]
    a: (_|_){
      // [eval] o3.a: 2 errors in empty disjunction:
      // o3.a: conflicting values "bar" and "foo":
      //     ./in.cue:10:12
      //     ./in.cue:12:5
      //     ./in.cue:15:5
      //     ./in.cue:15:14
      // o3.a: conflicting values "baz" and "foo":
      //     ./in.cue:10:9
      //     ./in.cue:15:5
      //     ./in.cue:15:14
      //     ./in.cue:15:24
    }
    b: (string){ "baz" }
    c: (string){ "bar" }
  }
}
