# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: structs
#evalPartial
-- in.cue --
a: t & {c:  5} // {c:5,d:15}
b: ti & {c: 7} // {c:7,d:21}
t: {c: number, d: c * 3} // {c:number,d:number*3}
ti: t & {c: int}
-- out/def --
a: t & {
	c: 5
}
t: {
	c: number
	d: c * 3
}
b: ti & {
	c: 7
}
ti: t & {
	c: int
}
-- out/legacy-debug --
<0>{a: <1>{c: 5, d: 15}, t: <2>{c: number, d: (<3>.c * 3)}, b: <4>{c: 7, d: 21}, ti: <5>{c: int, d: (<6>.c * 3)}}
-- out/compile --
--- in.cue
{
  a: (〈0;t〉 & {
    c: 5
  })
  b: (〈0;ti〉 & {
    c: 7
  })
  t: {
    c: number
    d: (〈0;c〉 * 3)
  }
  ti: (〈0;t〉 & {
    c: int
  })
}
-- out/eval --
(struct){
  a: (struct){
    c: (int){ 5 }
    d: (int){ 15 }
  }
  b: (struct){
    c: (int){ 7 }
    d: (int){ 21 }
  }
  t: (struct){
    c: (number){ number }
    d: (_|_){
      // [incomplete] t.d: non-concrete value number in operand to *:
      //     ./in.cue:3:19
    }
  }
  ti: (struct){
    c: (int){ int }
    d: (_|_){
      // [incomplete] ti.d: non-concrete value int in operand to *:
      //     ./in.cue:3:19
    }
  }
}
