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

     1  -- in.cue --
     2  a: {
     3  	foo: a: 1
     4  	[X = =~"foo"]: {
     5  		b:    1
     6  		name: X
     7  	}
     8  }
     9  d: a & {
    10  	"foobar": {
    11  		c: 2
    12  	}
    13  }
    14  
    15  t1: {
    16  	#a: {
    17  		[>"e" & <"z"]: int
    18  	}
    19  	b: #a & {f: 4}
    20  	c: #a & {z: 4}
    21  }
    22  
    23  t2: {
    24  	#a: {
    25  		["x" | "y"]: int
    26  	}
    27  	b: #a & {x: 4}
    28  	c: #a & {z: 4}
    29  }
    30  
    31  -- issue2109.cue --
    32  // Detect cycle:
    33  // The pattern constraint of FlagsURLS is applied to countries (because
    34  // FlagsURLs  is embedded. But the pattern constraint itself refers to
    35  // countries. So countries -> or(countries) -> countries.
    36  //
    37  // Theoretically, or(countries) can be resolved without a cycle. And then we
    38  // could see it does not apply to countries. For now we stick with this
    39  // approach understanding that it is easier to relax later.
    40  patternCycle: issue2109: p1: {
    41  	countries: ["US", "GB", "AU"]
    42  	FlagsURLs: {[or(countries)]: string}
    43  	FlagsURLs
    44  }
    45  patternCycle: issue2109: p2: {
    46  	FlagsURLs: {[or(countries)]: string}
    47  	FlagsURLs
    48  	countries: ["US", "GB", "AU"]
    49  }
    50  patternCycle: issue2109: p3: {
    51  	FlagsURLs
    52  	FlagsURLs: {[or(countries)]: string}
    53  	countries: ["US", "GB", "AU"]
    54  }
    55  
    56  patternCycle: t1: p1: {
    57  	countries: "US" | "GB" | "AU"
    58  	FlagsURLs: {[countries]: string}
    59  	FlagsURLs
    60  }
    61  patternCycle: t1: p2: {
    62  	FlagsURLs
    63  	countries: "US" | "GB" | "AU"
    64  	FlagsURLs: {[countries]: string}
    65  }
    66  patternCycle: t1: p3: {
    67  	FlagsURLs
    68  	FlagsURLs: {[countries]: string}
    69  	countries: "US" | "GB" | "AU"
    70  }
    71  
    72  -- out/eval/stats --
    73  Leaks:  4
    74  Freed:  80
    75  Reused: 73
    76  Allocs: 11
    77  Retain: 12
    78  
    79  Unifications: 63
    80  Conjuncts:    126
    81  Disjuncts:    90
    82  -- out/evalalpha --
    83  Errors:
    84  t1.c.z: field not allowed:
    85      ./in.cue:16:18
    86      ./in.cue:19:11
    87  t2.c.z: field not allowed:
    88      ./in.cue:24:16
    89      ./in.cue:27:11
    90  
    91  Result:
    92  (_|_){
    93    // [eval]
    94    a: (struct){
    95      foo: (struct){
    96        a: (int){ 1 }
    97        b: (int){ 1 }
    98        name: (string){ "foo" }
    99      }
   100    }
   101    d: (struct){
   102      foobar: (struct){
   103        c: (int){ 2 }
   104        b: (int){ 1 }
   105        name: (string){ "foobar" }
   106      }
   107      foo: (struct){
   108        a: (int){ 1 }
   109        b: (int){ 1 }
   110        name: (string){ "foo" }
   111      }
   112    }
   113    t1: (_|_){
   114      // [eval]
   115      #a: (#struct){
   116      }
   117      b: (#struct){
   118        f: (int){ 4 }
   119      }
   120      c: (_|_){
   121        // [eval]
   122        z: (_|_){
   123          // [eval] t1.c.z: field not allowed:
   124          //     ./in.cue:16:18
   125          //     ./in.cue:19:11
   126        }
   127      }
   128    }
   129    t2: (_|_){
   130      // [eval]
   131      #a: (#struct){
   132      }
   133      b: (#struct){
   134        x: (int){ 4 }
   135      }
   136      c: (_|_){
   137        // [eval]
   138        z: (_|_){
   139          // [eval] t2.c.z: field not allowed:
   140          //     ./in.cue:24:16
   141          //     ./in.cue:27:11
   142        }
   143      }
   144    }
   145    patternCycle: (struct){
   146      issue2109: (struct){
   147        p1: (struct){
   148          countries: (#list){
   149            0: (string){ "US" }
   150            1: (string){ "GB" }
   151            2: (string){ "AU" }
   152          }
   153          FlagsURLs: (struct){
   154          }
   155        }
   156        p2: (struct){
   157          FlagsURLs: (struct){
   158          }
   159          countries: (#list){
   160            0: (string){ "US" }
   161            1: (string){ "GB" }
   162            2: (string){ "AU" }
   163          }
   164        }
   165        p3: (struct){
   166          FlagsURLs: (struct){
   167          }
   168          countries: (#list){
   169            0: (string){ "US" }
   170            1: (string){ "GB" }
   171            2: (string){ "AU" }
   172          }
   173        }
   174      }
   175      t1: (struct){
   176        p1: (struct){
   177          countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   178          FlagsURLs: (struct){
   179          }
   180        }
   181        p2: (struct){
   182          countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   183          FlagsURLs: (struct){
   184          }
   185        }
   186        p3: (struct){
   187          FlagsURLs: (struct){
   188          }
   189          countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   190        }
   191      }
   192    }
   193  }
   194  -- diff/-out/evalalpha<==>+out/eval --
   195  diff old new
   196  --- old
   197  +++ new
   198  @@ -1,30 +1,10 @@
   199   Errors:
   200   t1.c.z: field not allowed:
   201  -    ./in.cue:15:6
   202  -    ./in.cue:19:5
   203  +    ./in.cue:16:18
   204       ./in.cue:19:11
   205   t2.c.z: field not allowed:
   206  -    ./in.cue:23:6
   207  -    ./in.cue:27:5
   208  +    ./in.cue:24:16
   209       ./in.cue:27:11
   210  -patternCycle.issue2109.p1.countries: cyclic pattern constraint:
   211  -    ./issue2109.cue:11:15
   212  -    ./issue2109.cue:10:13
   213  -patternCycle.issue2109.p2.countries: cyclic pattern constraint:
   214  -    ./issue2109.cue:15:15
   215  -    ./issue2109.cue:17:13
   216  -patternCycle.issue2109.p3.countries: cyclic pattern constraint:
   217  -    ./issue2109.cue:21:15
   218  -    ./issue2109.cue:22:13
   219  -patternCycle.t1.p1.countries: cyclic pattern constraint:
   220  -    ./issue2109.cue:27:15
   221  -    ./issue2109.cue:26:13
   222  -patternCycle.t1.p2.countries: cyclic pattern constraint:
   223  -    ./issue2109.cue:33:15
   224  -    ./issue2109.cue:32:13
   225  -patternCycle.t1.p3.countries: cyclic pattern constraint:
   226  -    ./issue2109.cue:37:15
   227  -    ./issue2109.cue:38:13
   228   
   229   Result:
   230   (_|_){
   231  @@ -37,16 +17,16 @@
   232       }
   233     }
   234     d: (struct){
   235  -    foo: (struct){
   236  -      a: (int){ 1 }
   237  -      b: (int){ 1 }
   238  -      name: (string){ "foo" }
   239  -    }
   240       foobar: (struct){
   241         c: (int){ 2 }
   242         b: (int){ 1 }
   243         name: (string){ "foobar" }
   244       }
   245  +    foo: (struct){
   246  +      a: (int){ 1 }
   247  +      b: (int){ 1 }
   248  +      name: (string){ "foo" }
   249  +    }
   250     }
   251     t1: (_|_){
   252       // [eval]
   253  @@ -59,8 +39,7 @@
   254         // [eval]
   255         z: (_|_){
   256           // [eval] t1.c.z: field not allowed:
   257  -        //     ./in.cue:15:6
   258  -        //     ./in.cue:19:5
   259  +        //     ./in.cue:16:18
   260           //     ./in.cue:19:11
   261         }
   262       }
   263  @@ -76,93 +55,56 @@
   264         // [eval]
   265         z: (_|_){
   266           // [eval] t2.c.z: field not allowed:
   267  -        //     ./in.cue:23:6
   268  -        //     ./in.cue:27:5
   269  +        //     ./in.cue:24:16
   270           //     ./in.cue:27:11
   271         }
   272       }
   273     }
   274  -  patternCycle: (_|_){
   275  -    // [eval]
   276  -    issue2109: (_|_){
   277  -      // [eval]
   278  -      p1: (_|_){
   279  -        // [eval]
   280  -        countries: (_|_){
   281  -          // [eval] patternCycle.issue2109.p1.countries: cyclic pattern constraint:
   282  -          //     ./issue2109.cue:11:15
   283  -          //     ./issue2109.cue:10:13
   284  -          0: (string){ "US" }
   285  -          1: (string){ "GB" }
   286  -          2: (string){ "AU" }
   287  -        }
   288  -        FlagsURLs: (struct){
   289  -        }
   290  -      }
   291  -      p2: (_|_){
   292  -        // [eval]
   293  -        FlagsURLs: (struct){
   294  -        }
   295  -        countries: (_|_){
   296  -          // [eval] patternCycle.issue2109.p2.countries: cyclic pattern constraint:
   297  -          //     ./issue2109.cue:15:15
   298  -          //     ./issue2109.cue:17:13
   299  -          0: (_|_){// "US"
   300  -          }
   301  -          1: (_|_){// "GB"
   302  -          }
   303  -          2: (_|_){// "AU"
   304  -          }
   305  -        }
   306  -      }
   307  -      p3: (_|_){
   308  -        // [eval]
   309  -        FlagsURLs: (struct){
   310  -        }
   311  -        countries: (_|_){
   312  -          // [eval] patternCycle.issue2109.p3.countries: cyclic pattern constraint:
   313  -          //     ./issue2109.cue:21:15
   314  -          //     ./issue2109.cue:22:13
   315  -          0: (_|_){// "US"
   316  -          }
   317  -          1: (_|_){// "GB"
   318  -          }
   319  -          2: (_|_){// "AU"
   320  -          }
   321  -        }
   322  -      }
   323  -    }
   324  -    t1: (_|_){
   325  -      // [eval]
   326  -      p1: (_|_){
   327  -        // [eval]
   328  -        countries: (_|_){
   329  -          // [eval] patternCycle.t1.p1.countries: cyclic pattern constraint:
   330  -          //     ./issue2109.cue:27:15
   331  -          //     ./issue2109.cue:26:13
   332  -        }
   333  -        FlagsURLs: (struct){
   334  -        }
   335  -      }
   336  -      p2: (_|_){
   337  -        // [eval]
   338  -        countries: (_|_){
   339  -          // [eval] patternCycle.t1.p2.countries: cyclic pattern constraint:
   340  -          //     ./issue2109.cue:33:15
   341  -          //     ./issue2109.cue:32:13
   342  -        }
   343  -        FlagsURLs: (struct){
   344  -        }
   345  -      }
   346  -      p3: (_|_){
   347  -        // [eval]
   348  -        FlagsURLs: (struct){
   349  -        }
   350  -        countries: (_|_){
   351  -          // [eval] patternCycle.t1.p3.countries: cyclic pattern constraint:
   352  -          //     ./issue2109.cue:37:15
   353  -          //     ./issue2109.cue:38:13
   354  -        }
   355  +  patternCycle: (struct){
   356  +    issue2109: (struct){
   357  +      p1: (struct){
   358  +        countries: (#list){
   359  +          0: (string){ "US" }
   360  +          1: (string){ "GB" }
   361  +          2: (string){ "AU" }
   362  +        }
   363  +        FlagsURLs: (struct){
   364  +        }
   365  +      }
   366  +      p2: (struct){
   367  +        FlagsURLs: (struct){
   368  +        }
   369  +        countries: (#list){
   370  +          0: (string){ "US" }
   371  +          1: (string){ "GB" }
   372  +          2: (string){ "AU" }
   373  +        }
   374  +      }
   375  +      p3: (struct){
   376  +        FlagsURLs: (struct){
   377  +        }
   378  +        countries: (#list){
   379  +          0: (string){ "US" }
   380  +          1: (string){ "GB" }
   381  +          2: (string){ "AU" }
   382  +        }
   383  +      }
   384  +    }
   385  +    t1: (struct){
   386  +      p1: (struct){
   387  +        countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   388  +        FlagsURLs: (struct){
   389  +        }
   390  +      }
   391  +      p2: (struct){
   392  +        countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   393  +        FlagsURLs: (struct){
   394  +        }
   395  +      }
   396  +      p3: (struct){
   397  +        FlagsURLs: (struct){
   398  +        }
   399  +        countries: (string){ |((string){ "US" }, (string){ "GB" }, (string){ "AU" }) }
   400         }
   401       }
   402     }
   403  -- diff/todo/p3 --
   404  Reordering of error messages.
   405  -- diff/explanation --
   406  Overall, the previous errors now passing is acceptable and consistent with
   407  the behavior of the new evaluator.
   408  -- out/eval --
   409  Errors:
   410  t1.c.z: field not allowed:
   411      ./in.cue:15:6
   412      ./in.cue:19:5
   413      ./in.cue:19:11
   414  t2.c.z: field not allowed:
   415      ./in.cue:23:6
   416      ./in.cue:27:5
   417      ./in.cue:27:11
   418  patternCycle.issue2109.p1.countries: cyclic pattern constraint:
   419      ./issue2109.cue:11:15
   420      ./issue2109.cue:10:13
   421  patternCycle.issue2109.p2.countries: cyclic pattern constraint:
   422      ./issue2109.cue:15:15
   423      ./issue2109.cue:17:13
   424  patternCycle.issue2109.p3.countries: cyclic pattern constraint:
   425      ./issue2109.cue:21:15
   426      ./issue2109.cue:22:13
   427  patternCycle.t1.p1.countries: cyclic pattern constraint:
   428      ./issue2109.cue:27:15
   429      ./issue2109.cue:26:13
   430  patternCycle.t1.p2.countries: cyclic pattern constraint:
   431      ./issue2109.cue:33:15
   432      ./issue2109.cue:32:13
   433  patternCycle.t1.p3.countries: cyclic pattern constraint:
   434      ./issue2109.cue:37:15
   435      ./issue2109.cue:38:13
   436  
   437  Result:
   438  (_|_){
   439    // [eval]
   440    a: (struct){
   441      foo: (struct){
   442        a: (int){ 1 }
   443        b: (int){ 1 }
   444        name: (string){ "foo" }
   445      }
   446    }
   447    d: (struct){
   448      foo: (struct){
   449        a: (int){ 1 }
   450        b: (int){ 1 }
   451        name: (string){ "foo" }
   452      }
   453      foobar: (struct){
   454        c: (int){ 2 }
   455        b: (int){ 1 }
   456        name: (string){ "foobar" }
   457      }
   458    }
   459    t1: (_|_){
   460      // [eval]
   461      #a: (#struct){
   462      }
   463      b: (#struct){
   464        f: (int){ 4 }
   465      }
   466      c: (_|_){
   467        // [eval]
   468        z: (_|_){
   469          // [eval] t1.c.z: field not allowed:
   470          //     ./in.cue:15:6
   471          //     ./in.cue:19:5
   472          //     ./in.cue:19:11
   473        }
   474      }
   475    }
   476    t2: (_|_){
   477      // [eval]
   478      #a: (#struct){
   479      }
   480      b: (#struct){
   481        x: (int){ 4 }
   482      }
   483      c: (_|_){
   484        // [eval]
   485        z: (_|_){
   486          // [eval] t2.c.z: field not allowed:
   487          //     ./in.cue:23:6
   488          //     ./in.cue:27:5
   489          //     ./in.cue:27:11
   490        }
   491      }
   492    }
   493    patternCycle: (_|_){
   494      // [eval]
   495      issue2109: (_|_){
   496        // [eval]
   497        p1: (_|_){
   498          // [eval]
   499          countries: (_|_){
   500            // [eval] patternCycle.issue2109.p1.countries: cyclic pattern constraint:
   501            //     ./issue2109.cue:11:15
   502            //     ./issue2109.cue:10:13
   503            0: (string){ "US" }
   504            1: (string){ "GB" }
   505            2: (string){ "AU" }
   506          }
   507          FlagsURLs: (struct){
   508          }
   509        }
   510        p2: (_|_){
   511          // [eval]
   512          FlagsURLs: (struct){
   513          }
   514          countries: (_|_){
   515            // [eval] patternCycle.issue2109.p2.countries: cyclic pattern constraint:
   516            //     ./issue2109.cue:15:15
   517            //     ./issue2109.cue:17:13
   518            0: (_|_){// "US"
   519            }
   520            1: (_|_){// "GB"
   521            }
   522            2: (_|_){// "AU"
   523            }
   524          }
   525        }
   526        p3: (_|_){
   527          // [eval]
   528          FlagsURLs: (struct){
   529          }
   530          countries: (_|_){
   531            // [eval] patternCycle.issue2109.p3.countries: cyclic pattern constraint:
   532            //     ./issue2109.cue:21:15
   533            //     ./issue2109.cue:22:13
   534            0: (_|_){// "US"
   535            }
   536            1: (_|_){// "GB"
   537            }
   538            2: (_|_){// "AU"
   539            }
   540          }
   541        }
   542      }
   543      t1: (_|_){
   544        // [eval]
   545        p1: (_|_){
   546          // [eval]
   547          countries: (_|_){
   548            // [eval] patternCycle.t1.p1.countries: cyclic pattern constraint:
   549            //     ./issue2109.cue:27:15
   550            //     ./issue2109.cue:26:13
   551          }
   552          FlagsURLs: (struct){
   553          }
   554        }
   555        p2: (_|_){
   556          // [eval]
   557          countries: (_|_){
   558            // [eval] patternCycle.t1.p2.countries: cyclic pattern constraint:
   559            //     ./issue2109.cue:33:15
   560            //     ./issue2109.cue:32:13
   561          }
   562          FlagsURLs: (struct){
   563          }
   564        }
   565        p3: (_|_){
   566          // [eval]
   567          FlagsURLs: (struct){
   568          }
   569          countries: (_|_){
   570            // [eval] patternCycle.t1.p3.countries: cyclic pattern constraint:
   571            //     ./issue2109.cue:37:15
   572            //     ./issue2109.cue:38:13
   573          }
   574        }
   575      }
   576    }
   577  }
   578  -- out/compile --
   579  --- in.cue
   580  {
   581    a: {
   582      foo: {
   583        a: 1
   584      }
   585      [=~"foo"]: {
   586        b: 1
   587        name: 〈1;-〉
   588      }
   589    }
   590    d: (〈0;a〉 & {
   591      foobar: {
   592        c: 2
   593      }
   594    })
   595    t1: {
   596      #a: {
   597        [(>"e" & <"z")]: int
   598      }
   599      b: (〈0;#a〉 & {
   600        f: 4
   601      })
   602      c: (〈0;#a〉 & {
   603        z: 4
   604      })
   605    }
   606    t2: {
   607      #a: {
   608        [("x"|"y")]: int
   609      }
   610      b: (〈0;#a〉 & {
   611        x: 4
   612      })
   613      c: (〈0;#a〉 & {
   614        z: 4
   615      })
   616    }
   617  }
   618  --- issue2109.cue
   619  {
   620    patternCycle: {
   621      issue2109: {
   622        p1: {
   623          countries: [
   624            "US",
   625            "GB",
   626            "AU",
   627          ]
   628          FlagsURLs: {
   629            [or(〈1;countries〉)]: string
   630          }
   631          〈0;FlagsURLs〉
   632        }
   633      }
   634    }
   635    patternCycle: {
   636      issue2109: {
   637        p2: {
   638          FlagsURLs: {
   639            [or(〈1;countries〉)]: string
   640          }
   641          〈0;FlagsURLs〉
   642          countries: [
   643            "US",
   644            "GB",
   645            "AU",
   646          ]
   647        }
   648      }
   649    }
   650    patternCycle: {
   651      issue2109: {
   652        p3: {
   653          〈0;FlagsURLs〉
   654          FlagsURLs: {
   655            [or(〈1;countries〉)]: string
   656          }
   657          countries: [
   658            "US",
   659            "GB",
   660            "AU",
   661          ]
   662        }
   663      }
   664    }
   665    patternCycle: {
   666      t1: {
   667        p1: {
   668          countries: ("US"|"GB"|"AU")
   669          FlagsURLs: {
   670            [〈1;countries〉]: string
   671          }
   672          〈0;FlagsURLs〉
   673        }
   674      }
   675    }
   676    patternCycle: {
   677      t1: {
   678        p2: {
   679          〈0;FlagsURLs〉
   680          countries: ("US"|"GB"|"AU")
   681          FlagsURLs: {
   682            [〈1;countries〉]: string
   683          }
   684        }
   685      }
   686    }
   687    patternCycle: {
   688      t1: {
   689        p3: {
   690          〈0;FlagsURLs〉
   691          FlagsURLs: {
   692            [〈1;countries〉]: string
   693          }
   694          countries: ("US"|"GB"|"AU")
   695        }
   696      }
   697    }
   698  }