...

Text file src/cuelang.org/go/cue/testdata/eval/comprehensions.txtar

Documentation: cuelang.org/go/cue/testdata/eval

     1-- in.cue --
     2import "strings"
     3
     4a: {x: 10, y: 100, z: 50}
     5b: {
     6	for k, v in a if v <= 50 {
     7		"\(k)": v
     8	}
     9	x: int
    10	if x > 3 {
    11		k: 20
    12	}
    13	k: int
    14	if k > 0 {
    15		l: 40
    16	}
    17}
    18
    19c: {
    20	for k, v in a let y = v + 10 if y > 50 {
    21		"\(k)": y
    22	}
    23}
    24
    25A: X: run: "dfoo"
    26
    27if true {
    28	A: X: {
    29		run:   string
    30		files: "\(strings.Join([ run], "\n"))"
    31	}
    32}
    33
    34matchOrder: {
    35  a1: {
    36    out: [string]: Val: 1
    37    out: in.a
    38
    39    in: a: {
    40      if true {
    41        b: {}
    42      }
    43    }
    44  }
    45  a2: {
    46    out: [string]: Val: 1
    47
    48    in: a: {
    49      if true {
    50        b: {}
    51      }
    52    }
    53
    54    out: in.a
    55  }
    56  a3: {
    57
    58    in: a: {
    59      if true {
    60        b: {}
    61      }
    62    }
    63
    64    out: [string]: Val: 1
    65    out: in.a
    66  }
    67  a4: {
    68    out: in.a
    69    out: [string]: Val: 1
    70
    71    in: a: {
    72      if true {
    73        b: {}
    74      }
    75    }
    76  }
    77  a5: {
    78    out: in.a
    79
    80    in: a: {
    81      if true {
    82        b: {}
    83      }
    84    }
    85
    86    out: [string]: Val: 1
    87  }
    88  a6: {
    89    in: a: {
    90      if true {
    91        b: {}
    92      }
    93    }
    94
    95    out: in.a
    96    out: [string]: Val: 1
    97  }
    98}
    99
   100-- out/eval/stats --
   101Leaks:  4
   102Freed:  64
   103Reused: 57
   104Allocs: 11
   105Retain: 19
   106
   107Unifications: 68
   108Conjuncts:    96
   109Disjuncts:    81
   110-- out/eval --
   111(struct){
   112  a: (struct){
   113    x: (int){ 10 }
   114    y: (int){ 100 }
   115    z: (int){ 50 }
   116  }
   117  b: (struct){
   118    x: (int){ 10 }
   119    k: (int){ 20 }
   120    l: (int){ 40 }
   121    z: (int){ 50 }
   122  }
   123  c: (struct){
   124    y: (int){ 110 }
   125    z: (int){ 60 }
   126  }
   127  A: (struct){
   128    X: (struct){
   129      run: (string){ "dfoo" }
   130      files: (string){ "dfoo" }
   131    }
   132  }
   133  matchOrder: (struct){
   134    a1: (struct){
   135      out: (struct){
   136        b: (struct){
   137          Val: (int){ 1 }
   138        }
   139      }
   140      in: (struct){
   141        a: (struct){
   142          b: (struct){
   143          }
   144        }
   145      }
   146    }
   147    a2: (struct){
   148      out: (struct){
   149        b: (struct){
   150          Val: (int){ 1 }
   151        }
   152      }
   153      in: (struct){
   154        a: (struct){
   155          b: (struct){
   156          }
   157        }
   158      }
   159    }
   160    a3: (struct){
   161      in: (struct){
   162        a: (struct){
   163          b: (struct){
   164          }
   165        }
   166      }
   167      out: (struct){
   168        b: (struct){
   169          Val: (int){ 1 }
   170        }
   171      }
   172    }
   173    a4: (struct){
   174      out: (struct){
   175        b: (struct){
   176          Val: (int){ 1 }
   177        }
   178      }
   179      in: (struct){
   180        a: (struct){
   181          b: (struct){
   182          }
   183        }
   184      }
   185    }
   186    a5: (struct){
   187      out: (struct){
   188        b: (struct){
   189          Val: (int){ 1 }
   190        }
   191      }
   192      in: (struct){
   193        a: (struct){
   194          b: (struct){
   195          }
   196        }
   197      }
   198    }
   199    a6: (struct){
   200      in: (struct){
   201        a: (struct){
   202          b: (struct){
   203          }
   204        }
   205      }
   206      out: (struct){
   207        b: (struct){
   208          Val: (int){ 1 }
   209        }
   210      }
   211    }
   212  }
   213}
   214-- out/compile --
   215--- in.cue
   216{
   217  a: {
   218    x: 10
   219    y: 100
   220    z: 50
   221  }
   222  b: {
   223    for k, v in 〈1;a〉 if (〈0;v〉 <= 50) {
   224      "\(〈1;k〉)": 〈1;v〉
   225    }
   226    x: int
   227    if (〈0;x〉 > 3) {
   228      k: 20
   229    }
   230    k: int
   231    if (〈0;k〉 > 0) {
   232      l: 40
   233    }
   234  }
   235  c: {
   236    for k, v in 〈1;a〉 let y = (〈0;v〉 + 10) if (〈0;y〉 > 50) {
   237      "\(〈2;k〉)": 〈1;y〉
   238    }
   239  }
   240  A: {
   241    X: {
   242      run: "dfoo"
   243    }
   244  }
   245  if true {
   246    A: {
   247      X: {
   248        run: string
   249        files: "\(〈import;strings〉.Join([
   250          〈1;run〉,
   251        ], "\n"))"
   252      }
   253    }
   254  }
   255  matchOrder: {
   256    a1: {
   257      out: {
   258        [string]: {
   259          Val: 1
   260        }
   261      }
   262      out: 〈0;in〉.a
   263      in: {
   264        a: {
   265          if true {
   266            b: {}
   267          }
   268        }
   269      }
   270    }
   271    a2: {
   272      out: {
   273        [string]: {
   274          Val: 1
   275        }
   276      }
   277      in: {
   278        a: {
   279          if true {
   280            b: {}
   281          }
   282        }
   283      }
   284      out: 〈0;in〉.a
   285    }
   286    a3: {
   287      in: {
   288        a: {
   289          if true {
   290            b: {}
   291          }
   292        }
   293      }
   294      out: {
   295        [string]: {
   296          Val: 1
   297        }
   298      }
   299      out: 〈0;in〉.a
   300    }
   301    a4: {
   302      out: 〈0;in〉.a
   303      out: {
   304        [string]: {
   305          Val: 1
   306        }
   307      }
   308      in: {
   309        a: {
   310          if true {
   311            b: {}
   312          }
   313        }
   314      }
   315    }
   316    a5: {
   317      out: 〈0;in〉.a
   318      in: {
   319        a: {
   320          if true {
   321            b: {}
   322          }
   323        }
   324      }
   325      out: {
   326        [string]: {
   327          Val: 1
   328        }
   329      }
   330    }
   331    a6: {
   332      in: {
   333        a: {
   334          if true {
   335            b: {}
   336          }
   337        }
   338      }
   339      out: 〈0;in〉.a
   340      out: {
   341        [string]: {
   342          Val: 1
   343        }
   344      }
   345    }
   346  }
   347}

View as plain text