cuelang.org/go@v0.13.0/cue/testdata/basicrewrite/013_obj_unify.txtar (about)

     1  #name: obj unify
     2  #evalPartial
     3  -- in.cue --
     4  o1: {a: 1} & {b: 2}       // {a:1,b:2}
     5  o2: {a: 1, b:    2} & {b: 2} // {a:1,b:2}
     6  o3: {a: 1} & {a: 1, b:    2} // {a:1,b:2}
     7  o4: {a: 1} & {b: 2}       // {a:1,b:2}
     8  o4: {a: 1, b:    2} & {b: 2}
     9  o4: {a: 1} & {a: 1, b:    2}
    10  e:  1   // 1 & {a:3}
    11  e: {a: 3}
    12  -- out/def --
    13  o1: {
    14  	a: 1
    15  	b: 2
    16  }
    17  o2: {
    18  	a: 1
    19  	b: 2
    20  }
    21  o3: {
    22  	a: 1
    23  	b: 2
    24  }
    25  o4: {
    26  	a: 1
    27  	b: 2
    28  }
    29  e: _|_ // conflicting values 1 and {a: 3} (mismatched types int and struct)
    30  -- out/legacy-debug --
    31  <0>{o1: <1>{a: 1, b: 2}, o2: <2>{a: 1, b: 2}, o3: <3>{a: 1, b: 2}, o4: <4>{a: 1, b: 2}, e: _|_((1 & <5>{a: 3}):conflicting values 1 and {a: 3} (mismatched types int and struct))}
    32  -- out/compile --
    33  --- in.cue
    34  {
    35    o1: ({
    36      a: 1
    37    } & {
    38      b: 2
    39    })
    40    o2: ({
    41      a: 1
    42      b: 2
    43    } & {
    44      b: 2
    45    })
    46    o3: ({
    47      a: 1
    48    } & {
    49      a: 1
    50      b: 2
    51    })
    52    o4: ({
    53      a: 1
    54    } & {
    55      b: 2
    56    })
    57    o4: ({
    58      a: 1
    59      b: 2
    60    } & {
    61      b: 2
    62    })
    63    o4: ({
    64      a: 1
    65    } & {
    66      a: 1
    67      b: 2
    68    })
    69    e: 1
    70    e: {
    71      a: 3
    72    }
    73  }
    74  -- out/eval/stats --
    75  Leaks:  0
    76  Freed:  15
    77  Reused: 12
    78  Allocs: 3
    79  Retain: 0
    80  
    81  Unifications: 15
    82  Conjuncts:    32
    83  Disjuncts:    15
    84  -- out/evalalpha --
    85  Errors:
    86  e: conflicting values 1 and {a:3} (mismatched types int and struct):
    87      ./in.cue:7:5
    88      ./in.cue:8:4
    89  
    90  Result:
    91  (_|_){
    92    // [eval]
    93    o1: (struct){
    94      a: (int){ 1 }
    95      b: (int){ 2 }
    96    }
    97    o2: (struct){
    98      a: (int){ 1 }
    99      b: (int){ 2 }
   100    }
   101    o3: (struct){
   102      a: (int){ 1 }
   103      b: (int){ 2 }
   104    }
   105    o4: (struct){
   106      a: (int){ 1 }
   107      b: (int){ 2 }
   108    }
   109    e: (_|_){
   110      // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct):
   111      //     ./in.cue:7:5
   112      //     ./in.cue:8:4
   113      a: (_|_){// 3
   114      }
   115    }
   116  }
   117  -- diff/-out/evalalpha<==>+out/eval --
   118  diff old new
   119  --- old
   120  +++ new
   121  @@ -26,6 +26,7 @@
   122       // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct):
   123       //     ./in.cue:7:5
   124       //     ./in.cue:8:4
   125  -    a: (int){ 3 }
   126  +    a: (_|_){// 3
   127  +    }
   128     }
   129   }
   130  -- diff/explanation --
   131  An extra error messages that is correct, but not required.
   132  -- out/eval --
   133  Errors:
   134  e: conflicting values 1 and {a:3} (mismatched types int and struct):
   135      ./in.cue:7:5
   136      ./in.cue:8:4
   137  
   138  Result:
   139  (_|_){
   140    // [eval]
   141    o1: (struct){
   142      a: (int){ 1 }
   143      b: (int){ 2 }
   144    }
   145    o2: (struct){
   146      a: (int){ 1 }
   147      b: (int){ 2 }
   148    }
   149    o3: (struct){
   150      a: (int){ 1 }
   151      b: (int){ 2 }
   152    }
   153    o4: (struct){
   154      a: (int){ 1 }
   155      b: (int){ 2 }
   156    }
   157    e: (_|_){
   158      // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct):
   159      //     ./in.cue:7:5
   160      //     ./in.cue:8:4
   161      a: (int){ 3 }
   162    }
   163  }