github.com/solo-io/cue@v0.4.7/cue/testdata/eval/closed_disjunction.txtar (about)

     1  -- in.cue --
     2  #A: {
     3      b?: int
     4      *{} | {c?: int} | {d?: int} | {e?: int}
     5  }
     6  
     7  a: #A & {
     8      b: 3
     9      c: 3
    10  }
    11  
    12  b: #A & {
    13      c: 3
    14      d: 4
    15  }
    16  -- out/eval --
    17  Errors:
    18  b: 2 errors in empty disjunction:
    19  b: field not allowed: c:
    20      ./in.cue:1:5
    21      ./in.cue:3:5
    22      ./in.cue:3:6
    23      ./in.cue:11:4
    24      ./in.cue:12:5
    25  b: field not allowed: d:
    26      ./in.cue:1:5
    27      ./in.cue:3:5
    28      ./in.cue:3:11
    29      ./in.cue:11:4
    30      ./in.cue:13:5
    31  
    32  Result:
    33  (_|_){
    34    // [eval]
    35    #A: (#struct){ |(*(#struct){
    36      }, (#struct){
    37      }, (#struct){
    38      }, (#struct){
    39      }) }
    40    a: (#struct){
    41      b: (int){ 3 }
    42      c: (int){ 3 }
    43    }
    44    b: (_|_){
    45      // [eval] b: 2 errors in empty disjunction:
    46      // b: field not allowed: c:
    47      //     ./in.cue:1:5
    48      //     ./in.cue:3:5
    49      //     ./in.cue:3:6
    50      //     ./in.cue:11:4
    51      //     ./in.cue:12:5
    52      // b: field not allowed: d:
    53      //     ./in.cue:1:5
    54      //     ./in.cue:3:5
    55      //     ./in.cue:3:11
    56      //     ./in.cue:11:4
    57      //     ./in.cue:13:5
    58      c: (_|_){
    59        // [eval] b: field not allowed: c:
    60        //     ./in.cue:1:5
    61        //     ./in.cue:3:5
    62        //     ./in.cue:3:35
    63        //     ./in.cue:11:4
    64        //     ./in.cue:12:5
    65      }
    66      d: (_|_){
    67        // [eval] b: field not allowed: d:
    68        //     ./in.cue:1:5
    69        //     ./in.cue:3:5
    70        //     ./in.cue:3:35
    71        //     ./in.cue:11:4
    72        //     ./in.cue:13:5
    73      }
    74    }
    75  }
    76  -- out/compile --
    77  --- in.cue
    78  {
    79    #A: {
    80      b?: int
    81      (*{}|{
    82        c?: int
    83      }|{
    84        d?: int
    85      }|{
    86        e?: int
    87      })
    88    }
    89    a: (怈0;#A怉 & {
    90      b: 3
    91      c: 3
    92    })
    93    b: (怈0;#A怉 & {
    94      c: 3
    95      d: 4
    96    })
    97  }