# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: retain references with interleaved embedding
#evalFull
-- in.cue --
a: d: {
	#base
	#info: {...}
	Y: #info.X
}

#base: {
	#info: {...}
}

a: [Name=string]: {#info: {
	X: "foo"
}}
-- out/def --
a: {
	{[Name=string]: {
		#info: {
			X: "foo"
		}
	}}
	d: {
		#info: {
			...
		}
		Y: #info.X
		#base
	}
}
#base: {
	#info: {
		...
	}
}
-- out/export --
a: {
	d: {
		Y: "foo"
	}
}
-- out/yaml --
a:
  d:
    Y: foo
-- out/json --
{"a":{"d":{"Y":"foo"}}}
-- out/legacy-debug --
<0>{a: <1>{[]: <2>(Name: string)-><3>{#info: <4>C{X: "foo"}}, d: <5>C{#info: <6>C{X: "foo"}, Y: "foo"}}, #base: <7>C{#info: <8>{...}}}
-- out/compile --
--- in.cue
{
  a: {
    d: {
      〈2;#base〉
      #info: {
        ...
      }
      Y: 〈0;#info〉.X
    }
  }
  #base: {
    #info: {
      ...
    }
  }
  a: {
    [string]: {
      #info: {
        X: "foo"
      }
    }
  }
}
-- out/eval --
(struct){
  a: (struct){
    d: (#struct){
      #info: (#struct){
        X: (string){ "foo" }
      }
      Y: (string){ "foo" }
    }
  }
  #base: (#struct){
    #info: (#struct){
    }
  }
}
