-- in.cue --
deployment: [string]: #Deployment

deployment: foo: spec: replicas: 1

#Deployment: {
	#TypeMeta

	spec: #Spec
}

#Spec: replicas: int

#TypeMeta: {}

recloseSimple: {
  #foo: {}
  a: {#foo} & {b: int}
}

// Reclosing
reclose1: {
  #D: {
    x: int
    y: int
  }
  #a: {
    #D
    b: {
      c: int
    }
  }

  z: #a.b
  z: d: 3 // don't allow this
}

reclose2: {
  #D: {
    x: int
    y: int
  }
  a: {
    #D
    b: { // keep open
      c: int
    }
  }

  z: a.b
  z: d: 3 // allow this
}

reclose3: {
  #Step: {
    (#A | #B)
    #Common
  }
  #Common: {
    Name: string
  }
  #A: {
    #Common
    Something: int
  }
  #B: {
    #Common
    Else: int
  }
  x: #Step
  x: #A & {
    Name:      "a"
    Something: 4
  }
}

-- out/eval --
Errors:
reclose1.z: field d not allowed:
    ./in.cue:28:8
    ./in.cue:33:6
    ./in.cue:34:6
recloseSimple.a: field b not allowed:
    ./in.cue:16:9
    ./in.cue:17:6
    ./in.cue:17:7
    ./in.cue:17:16

Result:
(_|_){
  // [eval]
  deployment: (struct){
    foo: (#struct){
      spec: (#struct){
        replicas: (int){ 1 }
      }
    }
  }
  #Deployment: (#struct){
    spec: (#struct){
      replicas: (int){ int }
    }
  }
  #Spec: (#struct){
    replicas: (int){ int }
  }
  #TypeMeta: (#struct){
  }
  recloseSimple: (_|_){
    // [eval]
    #foo: (#struct){
    }
    a: (_|_){
      // [eval]
      b: (_|_){
        // [eval] recloseSimple.a: field b not allowed:
        //     ./in.cue:16:9
        //     ./in.cue:17:6
        //     ./in.cue:17:7
        //     ./in.cue:17:16
      }
    }
  }
  reclose1: (_|_){
    // [eval]
    #D: (#struct){
      x: (int){ int }
      y: (int){ int }
    }
    #a: (#struct){
      x: (int){ int }
      y: (int){ int }
      b: (#struct){
        c: (int){ int }
      }
    }
    z: (_|_){
      // [eval]
      c: (int){ int }
      d: (_|_){
        // [eval] reclose1.z: field d not allowed:
        //     ./in.cue:28:8
        //     ./in.cue:33:6
        //     ./in.cue:34:6
      }
    }
  }
  reclose2: (struct){
    #D: (#struct){
      x: (int){ int }
      y: (int){ int }
    }
    a: (#struct){
      x: (int){ int }
      y: (int){ int }
      b: (struct){
        c: (int){ int }
      }
    }
    z: (struct){
      c: (int){ int }
      d: (int){ 3 }
    }
  }
  reclose3: (struct){
    #Step: (#struct){ |((#struct){
        Name: (string){ string }
        Something: (int){ int }
      }, (#struct){
        Name: (string){ string }
        Else: (int){ int }
      }) }
    #Common: (#struct){
      Name: (string){ string }
    }
    #A: (#struct){
      Name: (string){ string }
      Something: (int){ int }
    }
    #B: (#struct){
      Name: (string){ string }
      Else: (int){ int }
    }
    x: (#struct){
      Name: (string){ "a" }
      Something: (int){ 4 }
    }
  }
}
-- out/compile --
--- in.cue
{
  deployment: {
    [string]: 〈1;#Deployment〉
  }
  deployment: {
    foo: {
      spec: {
        replicas: 1
      }
    }
  }
  #Deployment: {
    〈1;#TypeMeta〉
    spec: 〈1;#Spec〉
  }
  #Spec: {
    replicas: int
  }
  #TypeMeta: {}
  recloseSimple: {
    #foo: {}
    a: ({
      〈1;#foo〉
    } & {
      b: int
    })
  }
  reclose1: {
    #D: {
      x: int
      y: int
    }
    #a: {
      〈1;#D〉
      b: {
        c: int
      }
    }
    z: 〈0;#a〉.b
    z: {
      d: 3
    }
  }
  reclose2: {
    #D: {
      x: int
      y: int
    }
    a: {
      〈1;#D〉
      b: {
        c: int
      }
    }
    z: 〈0;a〉.b
    z: {
      d: 3
    }
  }
  reclose3: {
    #Step: {
      (〈1;#A〉|〈1;#B〉)
      〈1;#Common〉
    }
    #Common: {
      Name: string
    }
    #A: {
      〈1;#Common〉
      Something: int
    }
    #B: {
      〈1;#Common〉
      Else: int
    }
    x: 〈0;#Step〉
    x: (〈0;#A〉 & {
      Name: "a"
      Something: 4
    })
  }
}
