# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: complex groundness  2
#evalFull
-- in.cue --
r1: f1 & {y: "c"}

f1: {y: string, res: a.b.c & {d: y}}

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