cuelang.org/go@v0.10.1/cue/testdata/eval/comprehensions.txtar (about)

     1  -- in.cue --
     2  import "strings"
     3  
     4  a: {x: 10, y: 100, z: 50}
     5  b: {
     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  
    19  c: {
    20  	for k, v in a let y = v + 10 if y > 50 {
    21  		"\(k)": y
    22  	}
    23  }
    24  
    25  A: X: run: "dfoo"
    26  
    27  if true {
    28  	A: X: {
    29  		run:   string
    30  		files: "\(strings.Join([ run], "\n"))"
    31  	}
    32  }
    33  
    34  matchOrder: {
    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 --
   101  Leaks:  4
   102  Freed:  64
   103  Reused: 57
   104  Allocs: 11
   105  Retain: 19
   106  
   107  Unifications: 68
   108  Conjuncts:    96
   109  Disjuncts:    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  }