github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/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 --
    27  Errors:
    28  f.ben: incompatible list lengths (1 and 2)
    29  g.ben: incompatible list lengths (1 and 2)
    30  
    31  Result:
    32  (_|_){
    33    // [eval]
    34    _Q: (#list){
    35      0: (struct){
    36        pos: (int){ 0 }
    37      }
    38      1: (struct){
    39        pos: (int){ 1 }
    40      }
    41    }
    42    a: (struct){
    43      ben: (#list){
    44        0: (struct){
    45          pos: (int){ 0 }
    46        }
    47      }
    48    }
    49    b: (struct){
    50      ben: (#list){
    51        0: (struct){
    52          pos: (int){ 0 }
    53        }
    54      }
    55    }
    56    c: (struct){
    57      ben: (#list){
    58        0: (struct){
    59          l: (int){ 1 }
    60        }
    61      }
    62    }
    63    #d: (#struct){
    64      ben: (#list){
    65        0: (#struct){
    66          pos: (int){ 0 }
    67        }
    68      }
    69    }
    70    d: (#struct){
    71      ben: (#list){
    72        0: (#struct){
    73          pos: (int){ 0 }
    74        }
    75      }
    76    }
    77    e: (struct){
    78      ben: (#list){
    79        0: (struct){
    80          pos: (int){ 0 }
    81        }
    82        1: (struct){
    83          pos: (int){ 1 }
    84        }
    85      }
    86    }
    87    f: (_|_){
    88      // [eval]
    89      ben: (_|_){
    90        // [eval] f.ben: incompatible list lengths (1 and 2)
    91        0: (struct){
    92          pos: (int){ 0 }
    93        }
    94        1: (struct){
    95          pos: (int){ 1 }
    96        }
    97      }
    98    }
    99    g: (_|_){
   100      // [eval]
   101      ben: (_|_){
   102        // [eval] g.ben: incompatible list lengths (1 and 2)
   103        0: (struct){
   104          pos: (int){ 0 }
   105        }
   106        1: (struct){
   107        }
   108      }
   109    }
   110  }
   111  -- out/compile --
   112  --- in.cue
   113  {
   114    _Q: [
   115      {
   116        pos: 0
   117      },
   118      {
   119        pos: 1
   120      },
   121    ]
   122    a: {
   123      [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
   124    }
   125    a: {
   126      ben: [
   127        {},
   128      ]
   129    }
   130    b: {
   131      [string]: 〈1;_Q〉[0:1]
   132    }
   133    b: {
   134      ben: [
   135        {},
   136      ]
   137    }
   138    c: {
   139      [string]: [
   140        ...{
   141          l: len(〈3;a〉[〈2;-〉])
   142        },
   143      ]
   144    }
   145    c: {
   146      ben: [
   147        {},
   148      ]
   149    }
   150    #d: {
   151      [string]: ([
   152        ...{
   153          pos: &(int, >=0)
   154        },
   155      ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])])
   156    }
   157    #d: {
   158      ben: [
   159        {},
   160      ]
   161    }
   162    d: 〈0;#d〉
   163    e: {
   164      [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
   165    }
   166    e: {
   167      ben: [
   168        {},
   169        ...,
   170      ]
   171    }
   172    f: {
   173      [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)]
   174    }
   175    f: {
   176      ben: [
   177        {},
   178      ]
   179    }
   180    g: {
   181      [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])]
   182    }
   183    g: {
   184      ben: [
   185        {},
   186        {},
   187      ]
   188    }
   189  }