# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: complex interaction of groundness
#evalFull
-- in.cue --
res: [ for x in a for y in x {y & {d: "b"}}]
res: [ a.b.c & {d: "b"}]

a: b: [C=string]: {d: string, s: "a" + d}
a: b: c: d: string
-- out/def --
res: [{
	d: "b"
	s: "ab"
} & (a.b.c & {
	d: "b"
})]
a: {
	b: {
		{[C=string]: {
			d: string, s: "a" + d
		}}
		c: {
			d: string
			s: "a" + d
		}
	}
}
-- out/legacy-debug --
<0>{res: [<1>{d: "b", s: "ab"}], a: <2>{b: <3>{[]: <4>(C: string)-><5>{d: string, s: ("a" + <5>.d)}, c: <6>{d: string, s: ("a" + <7>.d)}}}}
-- out/compile --
--- in.cue
{
  res: [
    for _, x in 〈0;a〉 for _, y in 〈0;x〉 {
      (〈1;y〉 & {
        d: "b"
      })
    },
  ]
  res: [
    (〈0;a〉.b.c & {
      d: "b"
    }),
  ]
  a: {
    b: {
      [string]: {
        d: string
        s: ("a" + 〈0;d〉)
      }
    }
  }
  a: {
    b: {
      c: {
        d: string
      }
    }
  }
}
-- out/eval --
(struct){
  res: (#list){
    0: (struct){
      d: (string){ "b" }
      s: (string){ "ab" }
    }
  }
  a: (struct){
    b: (struct){
      c: (struct){
        d: (string){ string }
        s: (_|_){
          // [incomplete] a.b.c.s: non-concrete value string in operand to +:
          //     ./in.cue:4:34
        }
      }
    }
  }
}
