# 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
    }
  }
  x: (struct){
    b: (int){ int }
    c: (_|_){
      // [incomplete] x.c: non-concrete value int in operand to +:
      //     ./in.cue:8:5
    }
  }
  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
    }
  }
  w: (struct){
    b: (int){ 100 }
    c: (_|_){
      // [incomplete] w.c: non-concrete value int in operand to +:
      //     ./in.cue:16:5
    }
  }
  wp: (struct){
    b: (int){ 100 }
    c: (_|_){
      // [incomplete] wp.c: non-concrete value int in operand to +:
      //     ./in.cue:16:5
    }
  }
}
