# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: definitions with embedding
#evalPartial
-- in.cue --
#E: {
	a: {b: int}
}

#S: {
	#E
	a: {c: int}
	b: 3
}

// adding a field to a nested struct that is closed.
#e1: #S & {a: d: 4}

// literal struct not closed until after unification.
#v1: #S & {a: c: 4}
-- out/def --
#E: {
	a: {
		b: int
	}
}
#S: {
	a: {
		c: int
	}
	b: 3
	#E
}

// adding a field to a nested struct that is closed.
#e1: #S & {
	a: {
		d: 4
	}
}

// literal struct not closed until after unification.
#v1: #S & {
	a: {
		c: 4
	}
}
-- out/export --

-- out/yaml --
{}
-- out/json --
{}
-- out/legacy-debug --
<0>{#E: <1>C{a: <2>C{b: int}}, #S: <3>C{a: <4>C{b: int, c: int}, b: 3}, #e1: <5>C{a: _|_(4:field "d" not allowed in closed struct), b: 3}, #v1: <6>C{a: <7>C{b: int, c: 4}, b: 3}}
-- out/compile --
--- in.cue
{
  #E: {
    a: {
      b: int
    }
  }
  #S: {
    〈1;#E〉
    a: {
      c: int
    }
    b: 3
  }
  #e1: (〈0;#S〉 & {
    a: {
      d: 4
    }
  })
  #v1: (〈0;#S〉 & {
    a: {
      c: 4
    }
  })
}
-- out/eval --
Errors:
#e1.a: field not allowed: d:
    ./in.cue:2:5
    ./in.cue:6:2
    ./in.cue:7:5
    ./in.cue:12:6
    ./in.cue:12:15

Result:
(_|_){
  // [eval]
  #E: (#struct){
    a: (#struct){
      b: (int){ int }
    }
  }
  #S: (#struct){
    a: (#struct){
      b: (int){ int }
      c: (int){ int }
    }
    b: (int){ 3 }
  }
  #e1: (_|_){
    // [eval]
    a: (_|_){
      // [eval]
      b: (int){ int }
      c: (int){ int }
      d: (_|_){
        // [eval] #e1.a: field not allowed: d:
        //     ./in.cue:2:5
        //     ./in.cue:6:2
        //     ./in.cue:7:5
        //     ./in.cue:12:6
        //     ./in.cue:12:15
      }
    }
    b: (int){ 3 }
  }
  #v1: (#struct){
    a: (#struct){
      b: (int){ int }
      c: (int){ 4 }
    }
    b: (int){ 3 }
  }
}
