# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: struct comprehension with template
#evalFull
-- in.cue --
result: [ for _, v in service {v}]

service: [Name=string]: {
	name: *Name | string
	type: "service"
	port: *7080 | int
}
service: foo: {}
service: bar: {port: 8000}
service: baz: {name: "foobar"}
-- out/def --
result: [{
	name: *"foo" | string
	type: "service"
	port: *7080 | int
}, {
	name: *"bar" | string
	type: "service"
	port: 8000
}, {
	name: "foobar"
	type: "service"
	port: *7080 | int
}]
service: {
	{[Name=string]: {
		name: *Name | string, type: "service", port: *7080 | int
	}}
	foo: {
		name: *"foo" | string
		type: "service"
		port: *7080 | int
	}
	bar: {
		name: *"bar" | string
		type: "service"
		port: 8000
	}
	baz: {
		name: "foobar"
		type: "service"
		port: *7080 | int
	}
}
-- out/export --
result: [{
	name: "foo"
	type: "service"
	port: 7080
}, {
	name: "bar"
	type: "service"
	port: 8000
}, {
	name: "foobar"
	type: "service"
	port: 7080
}]
service: {
	foo: {
		name: "foo"
		type: "service"
		port: 7080
	}
	bar: {
		name: "bar"
		type: "service"
		port: 8000
	}
	baz: {
		name: "foobar"
		type: "service"
		port: 7080
	}
}
-- out/yaml --
result:
- name: foo
  type: service
  port: 7080
- name: bar
  type: service
  port: 8000
- name: foobar
  type: service
  port: 7080
service:
  foo:
    name: foo
    type: service
    port: 7080
  bar:
    name: bar
    type: service
    port: 8000
  baz:
    name: foobar
    type: service
    port: 7080
-- out/json --
{"result":[{"name":"foo","type":"service","port":7080},{"name":"bar","type":"service","port":8000},{"name":"foobar","type":"service","port":7080}],"service":{"foo":{"name":"foo","type":"service","port":7080},"bar":{"name":"bar","type":"service","port":8000},"baz":{"name":"foobar","type":"service","port":7080}}}
-- out/legacy-debug --
<0>{result: [<1>{name: "foo", type: "service", port: 7080},<2>{name: "bar", type: "service", port: 8000},<3>{name: "foobar", type: "service", port: 7080}], service: <4>{[]: <5>(Name: string)-><6>{name: (*<5>.Name | string), type: "service", port: (*7080 | int)}, foo: <7>{name: "foo", type: "service", port: 7080}, bar: <8>{name: "bar", type: "service", port: 8000}, baz: <9>{name: "foobar", type: "service", port: 7080}}}
-- out/compile --
--- in.cue
{
  result: [
    for _, v in 〈0;service〉 {
      〈1;v〉
    },
  ]
  service: {
    [string]: {
      name: (*〈1;-〉|string)
      type: "service"
      port: (*7080|int)
    }
  }
  service: {
    foo: {}
  }
  service: {
    bar: {
      port: 8000
    }
  }
  service: {
    baz: {
      name: "foobar"
    }
  }
}
-- out/eval --
(struct){
  result: (#list){
    0: (struct){
      name: (string){ |(*(string){ "foo" }, (string){ string }) }
      type: (string){ "service" }
      port: (int){ |(*(int){ 7080 }, (int){ int }) }
    }
    1: (struct){
      port: (int){ 8000 }
      name: (string){ |(*(string){ "bar" }, (string){ string }) }
      type: (string){ "service" }
    }
    2: (struct){
      name: (string){ "foobar" }
      type: (string){ "service" }
      port: (int){ |(*(int){ 7080 }, (int){ int }) }
    }
  }
  service: (struct){
    foo: (struct){
      name: (string){ |(*(string){ "foo" }, (string){ string }) }
      type: (string){ "service" }
      port: (int){ |(*(int){ 7080 }, (int){ int }) }
    }
    bar: (struct){
      port: (int){ 8000 }
      name: (string){ |(*(string){ "bar" }, (string){ string }) }
      type: (string){ "service" }
    }
    baz: (struct){
      name: (string){ "foobar" }
      type: (string){ "service" }
      port: (int){ |(*(int){ 7080 }, (int){ int }) }
    }
  }
}
