# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: combined definitions
#evalPartial
-- in.cue --
// Allow combining of structs within a definition
#D1: {
	env: a: "A"
	env: b: "B"
	#def: {a: "A"}
	#def: {b: "B"}
}

d1: #D1 & {env: c: "C"}

#D2: {
	a: int
}
#D2: {
	b: int
}

#D3: {
	env: a: "A"
}
#D3: {
	env: b: "B"
}

#D4: {
	env: #DC
	env: b: int
}

#DC: {a: int}
-- out/def --
// Allow combining of structs within a definition
#D1: {
	env: {
		a: "A"
		b: "B"
	}
	#def: {
		a: "A"
		b: "B"
	}
}
d1: #D1 & {
	env: {
		c: "C"
	}
}
#D2: {
	a: int
	b: int
}
#D3: {
	env: {
		a: "A"
		b: "B"
	}
}
#D4: {
	env: _|_ // field "b" not allowed in closed struct
}
#DC: {
	a: int
}
-- out/legacy-debug --
<0>{#D1: <1>C{env: <2>C{a: "A", b: "B"}, #def: <3>C{a: "A", b: "B"}}, d1: <4>C{env: _|_("C":field "c" not allowed in closed struct), #def: <5>C{a: "A", b: "B"}}, #D2: <6>C{a: int, b: int}, #D3: <7>C{env: <8>C{a: "A", b: "B"}}, #D4: <9>C{env: _|_(int:field "b" not allowed in closed struct)}, #DC: <10>C{a: int}}
-- out/compile --
--- in.cue
{
  #D1: {
    env: {
      a: "A"
    }
    env: {
      b: "B"
    }
    #def: {
      a: "A"
    }
    #def: {
      b: "B"
    }
  }
  d1: (〈0;#D1〉 & {
    env: {
      c: "C"
    }
  })
  #D2: {
    a: int
  }
  #D2: {
    b: int
  }
  #D3: {
    env: {
      a: "A"
    }
  }
  #D3: {
    env: {
      b: "B"
    }
  }
  #D4: {
    env: 〈1;#DC〉
    env: {
      b: int
    }
  }
  #DC: {
    a: int
  }
}
-- out/eval --
Errors:
field `b` not allowed
field `c` not allowed

Result:
(_|_){
  // [eval]
  #D1: (#struct){
    env: (#struct){
      a: (string){ "A" }
      b: (string){ "B" }
    }
    #def: (#struct){
      a: (string){ "A" }
      b: (string){ "B" }
    }
  }
  d1: (_|_){
    // [eval]
    env: (_|_){
      // [eval] field `c` not allowed
      a: (string){ "A" }
      b: (string){ "B" }
      c: (string){ "C" }
    }
    #def: (#struct){
      a: (string){ "A" }
      b: (string){ "B" }
    }
  }
  #D2: (#struct){
    a: (int){ int }
    b: (int){ int }
  }
  #D3: (#struct){
    env: (#struct){
      a: (string){ "A" }
      b: (string){ "B" }
    }
  }
  #D4: (_|_){
    // [eval]
    env: (_|_){
      // [eval] field `b` not allowed
      a: (int){ int }
      b: (int){ int }
    }
  }
  #DC: (#struct){
    a: (int){ int }
  }
}
