-- 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
    })
  }
}
