# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: field templates
#evalPartial
-- in.cue --
a: {
	{[name=_]: int}
	k: 1
}
b: {
	{[X=_]: {x: 0, y: *1 | int}}
	v: {}
	w: {x: 0}
}
b: {[y=_]: {}}
c: {
	{[Name=_]: {name: Name, y: 1}}
	foo: {}
	bar: _
}
-- out/def --
a: {
	{[name=string]: int}
	k: 1
}
b: {
	{[X=string]: {
		x: 0, y: *1 | int
	}}
	v: {
		x: 0
		y: *1 | int
	}
	w: {
		x: 0
		y: *1 | int
	}
}
c: {
	{[Name=string]: {
		y: 1, name: Name
	}}
	foo: {
		y:    1
		name: "foo"
	}
	bar: {
		y:    1
		name: "bar"
	}
}
-- out/export --
a: {
	k: 1
}
b: {
	v: {
		x: 0
		y: 1
	}
	w: {
		x: 0
		y: 1
	}
}
c: {
	foo: {
		y:    1
		name: "foo"
	}
	bar: {
		y:    1
		name: "bar"
	}
}
-- out/yaml --
a:
  k: 1
b:
  v:
    x: 0
    y: 1
  w:
    x: 0
    y: 1
c:
  foo:
    y: 1
    name: foo
  bar:
    y: 1
    name: bar
-- out/json --
{"a":{"k":1},"b":{"v":{"x":0,"y":1},"w":{"x":0,"y":1}},"c":{"foo":{"y":1,"name":"foo"},"bar":{"y":1,"name":"bar"}}}
-- out/legacy-debug --
<0>{a: <1>{[]: <2>(name: string)->int, k: 1}, b: <3>{[]: <4>(X: string)->(<5>{x: 0, y: (*1 | int)} & <6>{}), v: <7>{x: 0, y: (*1 | int)}, w: <8>{x: 0, y: (*1 | int)}}, c: <9>{[]: <10>(Name: string)-><11>{y: 1, name: <10>.Name}, foo: <12>{y: 1, name: "foo"}, bar: <13>{y: 1, name: "bar"}}}
-- out/compile --
--- in.cue
{
  a: {
    {
      [_]: int
    }
    k: 1
  }
  b: {
    {
      [_]: {
        x: 0
        y: (*1|int)
      }
    }
    v: {}
    w: {
      x: 0
    }
  }
  b: {
    [_]: {}
  }
  c: {
    {
      [_]: {
        name: 〈1;-〉
        y: 1
      }
    }
    foo: {}
    bar: _
  }
}
-- out/eval --
(struct){
  a: (struct){
    k: (int){ 1 }
  }
  b: (struct){
    v: (struct){
      x: (int){ 0 }
      y: (int){ |(*(int){ 1 }, (int){ int }) }
    }
    w: (struct){
      x: (int){ 0 }
      y: (int){ |(*(int){ 1 }, (int){ int }) }
    }
  }
  c: (struct){
    foo: (struct){
      name: (string){ "foo" }
      y: (int){ 1 }
    }
    bar: (struct){
      name: (string){ "bar" }
      y: (int){ 1 }
    }
  }
}
