# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: reference to root
#evalPartial
-- in.cue --
a: {b: int}
c: a & {
	b: 100
	d: a.b + 3 // do not resolve as c != a.
}
x: {
	b: int
	c: b + 5
}
y: x & {
	b: 100
	// c should resolve to 105
}
v: {
	b: int
	c: v.b + 5 // reference starting from copied node.
}
w:  v & {b: 100}
wp: v & {b: 100}
-- out/def --
x: {
	b: int
	c: b + 5
}
y: x & {
	b: 100
}
a: {
	b: int
}
c: a & {
	b: 100
	d: a.b + 3
}
v: {
	b: int
	c: v.b + 5
}
w: v & {
	b: 100
}
wp: v & {
	b: 100
}
-- out/legacy-debug --
<0>{x: <1>{b: int, c: (<2>.b + 5)}, y: <3>{b: 100, c: 105}, a: <4>{b: int}, c: <5>{b: 100, d: (<6>.a.b + 3)}, v: <7>{b: int, c: (<6>.v.b + 5)}, w: <8>{b: 100, c: (<6>.v.b + 5)}, wp: <9>{b: 100, c: (<6>.v.b + 5)}}
-- out/compile --
--- in.cue
{
  a: {
    b: int
  }
  c: (〈0;a〉 & {
    b: 100
    d: (〈1;a〉.b + 3)
  })
  x: {
    b: int
    c: (〈0;b〉 + 5)
  }
  y: (〈0;x〉 & {
    b: 100
  })
  v: {
    b: int
    c: (〈1;v〉.b + 5)
  }
  w: (〈0;v〉 & {
    b: 100
  })
  wp: (〈0;v〉 & {
    b: 100
  })
}
-- out/eval --
(struct){
  a: (struct){
    b: (int){ int }
  }
  c: (struct){
    b: (int){ 100 }
    d: (_|_){
      // [incomplete] c.d: non-concrete value int in operand to +:
      //     ./in.cue:4:5
      //     ./in.cue:1:5
    }
  }
  x: (struct){
    b: (int){ int }
    c: (_|_){
      // [incomplete] x.c: non-concrete value int in operand to +:
      //     ./in.cue:8:5
      //     ./in.cue:7:2
    }
  }
  y: (struct){
    b: (int){ 100 }
    c: (int){ 105 }
  }
  v: (struct){
    b: (int){ int }
    c: (_|_){
      // [incomplete] v.c: non-concrete value int in operand to +:
      //     ./in.cue:16:5
      //     ./in.cue:15:2
    }
  }
  w: (struct){
    b: (int){ 100 }
    c: (_|_){
      // [incomplete] w.c: non-concrete value int in operand to +:
      //     ./in.cue:16:5
      //     ./in.cue:15:2
    }
  }
  wp: (struct){
    b: (int){ 100 }
    c: (_|_){
      // [incomplete] wp.c: non-concrete value int in operand to +:
      //     ./in.cue:16:5
      //     ./in.cue:15:2
    }
  }
}
