# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: recursive evaluation within list
#evalFull
-- in.cue --
l: [a]
a: b & {c: "t"}
b: {
	d: c
	c: string
}
l1: [a1]
a1: b1 & {c: "t"}
b1: {
	d: "s" + c
	c: string
}
-- out/def --
l: [a]
a: b & {
	c: "t"
}
b: {
	c: string
	d: c
}
l1: [a1]
a1: b1 & {
	c: "t"
}
b1: {
	c: string
	d: "s" + c
}
-- out/legacy-debug --
<0>{l: [<1>{c: "t", d: "t"}], a: <2>{c: "t", d: "t"}, b: <3>{c: string, d: string}, l1: [<4>{c: "t", d: "st"}], a1: <5>{c: "t", d: "st"}, b1: <6>{c: string, d: ("s" + <7>.c)}}
-- out/compile --
--- in.cue
{
  l: [
    〈0;a〉,
  ]
  a: (〈0;b〉 & {
    c: "t"
  })
  b: {
    d: 〈0;c〉
    c: string
  }
  l1: [
    〈0;a1〉,
  ]
  a1: (〈0;b1〉 & {
    c: "t"
  })
  b1: {
    d: ("s" + 〈0;c〉)
    c: string
  }
}
-- out/eval --
(struct){
  l: (#list){
    0: (struct){
      d: (string){ "t" }
      c: (string){ "t" }
    }
  }
  a: (struct){
    d: (string){ "t" }
    c: (string){ "t" }
  }
  b: (struct){
    d: (string){ string }
    c: (string){ string }
  }
  l1: (#list){
    0: (struct){
      d: (string){ "st" }
      c: (string){ "t" }
    }
  }
  a1: (struct){
    d: (string){ "st" }
    c: (string){ "t" }
  }
  b1: (struct){
    d: (_|_){
      // [incomplete] b1.d: non-concrete value string in operand to +:
      //     ./in.cue:10:5
    }
    c: (string){ string }
  }
}
