cuelang.org/go@v0.13.0/cue/testdata/cycle/issue494.txtar (about)

     1  -- in.cue --
     2  _Q: [{pos: 0}, {pos: 1}]
     3  
     4  a: [rn=string]: _Q[0:len(a[rn])]
     5  a: ben: [{}]
     6  
     7  b: [rn=string]: _Q[0:1]
     8  b: ben: [{}]
     9  
    10  c: [rn=string]: [...{l: len(a[rn])}]
    11  c: ben: [{}]
    12  
    13  #d: [rn=string]: [...{pos: uint}] & _Q[0:len(#d[rn])]
    14  #d: ben: [{}]
    15  
    16  d: #d
    17  
    18  e: [rn=string]: _Q[0 : len(a[rn])+1]
    19  e: ben: [{}, ...]
    20  
    21  f: [rn=string]: _Q[0 : len(a[rn])+1]
    22  f: ben: [{}]
    23  
    24  g: [rn=string]: _Q[0:len(a[rn])]
    25  g: ben: [{}, {}]
    26  -- out/eval/stats --
    27  Leaks:  0
    28  Freed:  43
    29  Reused: 38
    30  Allocs: 5
    31  Retain: 0
    32  
    33  Unifications: 43
    34  Conjuncts:    83
    35  Disjuncts:    45
    36  -- out/evalalpha --
    37  Errors:
    38  f.ben: incompatible list lengths (1 and 2)
    39  g.ben: incompatible list lengths (1 and 2)
    40  
    41  Result:
    42  (_|_){
    43    // [eval]
    44    _Q: (#list){
    45      0: (struct){
    46        pos: (int){ 0 }
    47      }
    48      1: (struct){
    49        pos: (int){ 1 }
    50      }
    51    }
    52    a: (struct){
    53      ben: (#list){
    54        0: (struct){
    55          pos: (int){ 0 }
    56        }
    57      }
    58    }
    59    b: (struct){
    60      ben: (#list){
    61        0: (struct){
    62          pos: (int){ 0 }
    63        }
    64      }
    65    }
    66    c: (struct){
    67      ben: (#list){
    68        0: (struct){
    69          l: (int){ 1 }
    70        }
    71      }
    72    }
    73    #d: (#struct){
    74      ben: (#list){
    75        0: (#struct){
    76          pos: (int){ 0 }
    77        }
    78      }
    79    }
    80    d: ~(#d)
    81    e: (struct){
    82      ben: (#list){
    83        0: (struct){
    84          pos: (int){ 0 }
    85        }
    86        1: (struct){
    87          pos: (int){ 1 }
    88        }
    89      }
    90    }
    91    f: (_|_){
    92      // [eval]
    93      ben: (_|_){
    94        // [eval] f.ben: incompatible list lengths (1 and 2)
    95        0: (struct){
    96        }
    97      }
    98    }
    99    g: (_|_){
   100      // [eval]
   101      ben: (_|_){
   102        // [eval] g.ben: incompatible list lengths (1 and 2)
   103        0: (struct){
   104        }
   105        1: (struct){
   106        }
   107      }
   108    }
   109  }
   110  -- diff/-out/evalalpha<==>+out/eval --
   111  diff old new
   112  --- old
   113  +++ new
   114  @@ -41,13 +41,7 @@
   115         }
   116       }
   117     }
   118  -  d: (#struct){
   119  -    ben: (#list){
   120  -      0: (#struct){
   121  -        pos: (int){ 0 }
   122  -      }
   123  -    }
   124  -  }
   125  +  d: ~(#d)
   126     e: (struct){
   127       ben: (#list){
   128         0: (struct){
   129  @@ -63,10 +57,6 @@
   130       ben: (_|_){
   131         // [eval] f.ben: incompatible list lengths (1 and 2)
   132         0: (struct){
   133  -        pos: (int){ 0 }
   134  -      }
   135  -      1: (struct){
   136  -        pos: (int){ 1 }
   137         }
   138       }
   139     }
   140  @@ -75,7 +65,6 @@
   141       ben: (_|_){
   142         // [eval] g.ben: incompatible list lengths (1 and 2)
   143         0: (struct){
   144  -        pos: (int){ 0 }
   145         }
   146         1: (struct){
   147         }
   148  -- diff/todo/p2 --
   149  error path moved
   150  -- out/eval --
   151  Errors:
   152  f.ben: incompatible list lengths (1 and 2)
   153  g.ben: incompatible list lengths (1 and 2)
   154  
   155  Result:
   156  (_|_){
   157    // [eval]
   158    _Q: (#list){
   159      0: (struct){
   160        pos: (int){ 0 }
   161      }
   162      1: (struct){
   163        pos: (int){ 1 }
   164      }
   165    }
   166    a: (struct){
   167      ben: (#list){
   168        0: (struct){
   169          pos: (int){ 0 }
   170        }
   171      }
   172    }
   173    b: (struct){
   174      ben: (#list){
   175        0: (struct){
   176          pos: (int){ 0 }
   177        }
   178      }
   179    }
   180    c: (struct){
   181      ben: (#list){
   182        0: (struct){
   183          l: (int){ 1 }
   184        }
   185      }
   186    }
   187    #d: (#struct){
   188      ben: (#list){
   189        0: (#struct){
   190          pos: (int){ 0 }
   191        }
   192      }
   193    }
   194    d: (#struct){
   195      ben: (#list){
   196        0: (#struct){
   197          pos: (int){ 0 }
   198        }
   199      }
   200    }
   201    e: (struct){
   202      ben: (#list){
   203        0: (struct){
   204          pos: (int){ 0 }
   205        }
   206        1: (struct){
   207          pos: (int){ 1 }
   208        }
   209      }
   210    }
   211    f: (_|_){
   212      // [eval]
   213      ben: (_|_){
   214        // [eval] f.ben: incompatible list lengths (1 and 2)
   215        0: (struct){
   216          pos: (int){ 0 }
   217        }
   218        1: (struct){
   219          pos: (int){ 1 }
   220        }
   221      }
   222    }
   223    g: (_|_){
   224      // [eval]
   225      ben: (_|_){
   226        // [eval] g.ben: incompatible list lengths (1 and 2)
   227        0: (struct){
   228          pos: (int){ 0 }
   229        }
   230        1: (struct){
   231        }
   232      }
   233    }
   234  }
   235  -- out/compile --
   236  --- in.cue
   237  {
   238    _Q: [
   239      {
   240        pos: 0
   241      },
   242      {
   243        pos: 1
   244      },
   245    ]
   246    a: {
   247      [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
   248    }
   249    a: {
   250      ben: [
   251        {},
   252      ]
   253    }
   254    b: {
   255      [string]: 〈1;_Q〉[0:1]
   256    }
   257    b: {
   258      ben: [
   259        {},
   260      ]
   261    }
   262    c: {
   263      [string]: [
   264        ...{
   265          l: len(〈3;a〉[〈2;-〉])
   266        },
   267      ]
   268    }
   269    c: {
   270      ben: [
   271        {},
   272      ]
   273    }
   274    #d: {
   275      [string]: ([
   276        ...{
   277          pos: &(int, >=0)
   278        },
   279      ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])])
   280    }
   281    #d: {
   282      ben: [
   283        {},
   284      ]
   285    }
   286    d: 〈0;#d〉
   287    e: {
   288      [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
   289    }
   290    e: {
   291      ben: [
   292        {},
   293        ...,
   294      ]
   295    }
   296    f: {
   297      [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
   298    }
   299    f: {
   300      ben: [
   301        {},
   302      ]
   303    }
   304    g: {
   305      [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
   306    }
   307    g: {
   308      ben: [
   309        {},
   310        {},
   311      ]
   312    }
   313  }