# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: issue318
#evalFull
-- in.cue --
#T: {
	arg: x: string
	out1: "\(arg.x) \(arg.y)"
	out2: "\(arg.y)"
	vx:   arg.x
	vy:   arg.y
}
-- out/def --
#T: {
	arg: {
		x: string
	}
	out1: _|_ // undefined field "y"
	out2: _|_ // undefined field "y"
	vx:   arg.x
	vy:   _|_ // undefined field "y"
}
-- out/export --

-- out/yaml --
{}
-- out/json --
{}
-- out/legacy-debug --
<0>{#T: <1>C{arg: <2>C{x: string}, out1: _|_(<3>.arg.y:undefined field "y"), out2: _|_(<3>.arg.y:undefined field "y"), vx: string, vy: _|_(<3>.arg.y:undefined field "y")}}
-- out/compile --
--- in.cue
{
  #T: {
    arg: {
      x: string
    }
    out1: "\(〈0;arg〉.x) \(〈0;arg〉.y)"
    out2: "\(〈0;arg〉.y)"
    vx: 〈0;arg〉.x
    vy: 〈0;arg〉.y
  }
}
-- out/eval --
Errors:
invalid interpolation: undefined field y:
    ./in.cue:3:8
invalid interpolation: undefined field y:
    ./in.cue:4:8
undefined field y:
    ./in.cue:6:12

Result:
(_|_){
  // [eval]
  #T: (_|_){
    // [eval]
    arg: (#struct){
      x: (string){ string }
    }
    out1: (_|_){
      // [eval] invalid interpolation: undefined field y:
      //     ./in.cue:3:8
    }
    out2: (_|_){
      // [eval] invalid interpolation: undefined field y:
      //     ./in.cue:4:8
    }
    vx: (string){ string }
    vy: (_|_){
      // [eval] undefined field y:
      //     ./in.cue:6:12
    }
  }
}
