# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: recursive closing starting at non-definition
#evalPartial
-- in.cue --
z: a: {
	#B: {
		c: d: 1
		c: f: 1
	}
}
A: z & {a: {#B: {c: e: 2}}}
-- out/def --
z: {
	a: {
		#B: {
			c: {
				d: 1
				f: 1
			}
		}
	}
}
A: z & {
	a: {
		#B: {
			c: {
				e: 2
			}
		}
	}
}
-- out/export --
z: {
	a: {}
}
A: {
	a: {}
}
-- out/yaml --
z:
  a: {}
A:
  a: {}
-- out/json --
{"z":{"a":{}},"A":{"a":{}}}
-- out/legacy-debug --
<0>{z: <1>{a: <2>{#B: <3>C{c: <4>C{d: 1, f: 1}}}}, A: <5>{a: <6>{#B: <7>C{c: _|_(2:field "e" not allowed in closed struct)}}}}
-- out/compile --
--- in.cue
{
  z: {
    a: {
      #B: {
        c: {
          d: 1
        }
        c: {
          f: 1
        }
      }
    }
  }
  A: (〈0;z〉 & {
    a: {
      #B: {
        c: {
          e: 2
        }
      }
    }
  })
}
-- out/eval --
(struct){
  z: (struct){
    a: (struct){
      #B: (#struct){
        c: (#struct){
          d: (int){ 1 }
          f: (int){ 1 }
        }
      }
    }
  }
  A: (struct){
    a: (struct){
      #B: (#struct){
        c: (#struct){
          d: (int){ 1 }
          f: (int){ 1 }
          e: (int){ 2 }
        }
      }
    }
  }
}
