cuelang.org/go@v0.13.0/cue/testdata/basicrewrite/014_disjunctions.txtar (about)

     1  #name: disjunctions
     2  #evalPartial
     3  -- in.cue --
     4  o1:  1 | 2 | 3
     5  o2:  (1 | 2 | 3) & 1
     6  o3:  2 & (1 | *2 | 3)
     7  o4:  (1 | *2 | 3) & (1 | 2 | *3)
     8  o5:  (1 | *2 | 3) & (3 | *2 | 1)
     9  o6:  (1 | 2 | 3) & (3 | 1 | 2)
    10  o7:  (1 | 2 | 3) & (2 | 3)
    11  o8:  (1 | 2 | 3) & (3 | 2)
    12  o9:  (2 | 3) & (1 | 2 | 3)
    13  o10: (3 | 2) & (1 | *2 | 3)
    14  
    15  m1: (1 | (*2 | 3)) & (>=2 & <=3)
    16  m2: (1 | (*2 | 3)) & (2 | 3)
    17  m3: (*1 | *(*2 | 3)) & (2 | 3)
    18  m4: (2 | 3) & (*2 | 3)
    19  m5: (*2 | 3) & (2 | 3)
    20  
    21  // (*2 | 3) & (2 | 3)
    22  // (2 | 3) & (*2 | 3)
    23  // 2&(*2 | 3) | 3&(*2 | 3)
    24  // (*1 | (*2 | 3)) & (2 | 3)
    25  // *1& (2 | 3) | (*2 | 3)&(2 | 3)
    26  // *2&(2 | 3) | 3&(2 | 3)
    27  
    28  // (2 | 3)&(*1 | (*2 | 3))
    29  // 2&(*1 | (*2 | 3)) | 3&(*1 | (*2 | 3))
    30  // *1&2 | (*2 | 3)&2 | *1&3 | (*2 | 3)&3
    31  // (*2 | 3)&2 | (*2 | 3)&3
    32  // *2 | 3
    33  
    34  // All errors are treated the same as per the unification model.
    35  i1: [1, 2][3] | "c"
    36  -- out/def --
    37  o1:  1 | 2 | 3
    38  o2:  1
    39  o3:  2
    40  o4:  1 | 2 | 3 | *_|_
    41  o5:  1 | *2 | 3
    42  o6:  1 | 2 | 3
    43  o7:  2 | 3
    44  o8:  2 | 3
    45  o9:  2 | 3
    46  o10: 3 | *2
    47  m1:  *2 | 3
    48  m2:  *2 | 3
    49  m3:  *2 | 3
    50  m4:  *2 | 3
    51  m5:  *2 | 3
    52  
    53  // All errors are treated the same as per the unification model.
    54  i1: "c"
    55  -- out/legacy-debug --
    56  <0>{o1: (1 | 2 | 3), o2: 1, o3: 2, o4: (1 | 2 | 3 | *_|_), o5: (1 | *2 | 3), o6: (1 | 2 | 3), o7: (2 | 3), o8: (2 | 3), o9: (2 | 3), o10: (3 | *2), m1: (*2 | 3), m2: (*2 | 3), m3: (*2 | 3), m4: (*2 | 3), m5: (*2 | 3), i1: "c"}
    57  -- out/compile --
    58  --- in.cue
    59  {
    60    o1: (1|2|3)
    61    o2: ((1|2|3) & 1)
    62    o3: (2 & (1|*2|3))
    63    o4: ((1|*2|3) & (1|2|*3))
    64    o5: ((1|*2|3) & (3|*2|1))
    65    o6: ((1|2|3) & (3|1|2))
    66    o7: ((1|2|3) & (2|3))
    67    o8: ((1|2|3) & (3|2))
    68    o9: ((2|3) & (1|2|3))
    69    o10: ((3|2) & (1|*2|3))
    70    m1: ((1|(*2|3)) & (>=2 & <=3))
    71    m2: ((1|(*2|3)) & (2|3))
    72    m3: ((*1|*(*2|3)) & (2|3))
    73    m4: ((2|3) & (*2|3))
    74    m5: ((*2|3) & (2|3))
    75    i1: ([
    76      1,
    77      2,
    78    ][3]|"c")
    79  }
    80  -- out/eval/stats --
    81  Leaks:  1
    82  Freed:  134
    83  Reused: 126
    84  Allocs: 9
    85  Retain: 1
    86  
    87  Unifications: 18
    88  Conjuncts:    150
    89  Disjuncts:    135
    90  -- out/eval --
    91  (struct){
    92    o1: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) }
    93    o2: (int){ 1 }
    94    o3: (int){ 2 }
    95    o4: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) }
    96    o5: (int){ |(*(int){ 2 }, (int){ 1 }, (int){ 3 }) }
    97    o6: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) }
    98    o7: (int){ |((int){ 2 }, (int){ 3 }) }
    99    o8: (int){ |((int){ 2 }, (int){ 3 }) }
   100    o9: (int){ |((int){ 2 }, (int){ 3 }) }
   101    o10: (int){ |(*(int){ 2 }, (int){ 3 }) }
   102    m1: (int){ |(*(int){ 2 }, (int){ 3 }) }
   103    m2: (int){ |(*(int){ 2 }, (int){ 3 }) }
   104    m3: (int){ |(*(int){ 2 }, (int){ 3 }) }
   105    m4: (int){ |(*(int){ 2 }, (int){ 3 }) }
   106    m5: (int){ |(*(int){ 2 }, (int){ 3 }) }
   107    i1: (string){ "c" }
   108  }