cuelang.org/go@v0.10.1/cue/testdata/resolve/045_range_unification.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: range unification
     4  #evalPartial
     5  -- in.cue --
     6  	// with concrete values
     7  a1: >=1 & <=5 & 3
     8  a2: >=1 & <=5 & 1
     9  a3: >=1 & <=5 & 5
    10  a4: >=1 & <=5 & 6
    11  a5: >=1 & <=5 & 0
    12  
    13  a6:  3 & >=1 & <=5
    14  a7:  1 & >=1 & <=5
    15  a8:  5 & >=1 & <=5
    16  a9:  6 & >=1 & <=5
    17  a10: 0 & >=1 & <=5
    18  
    19  // with ranges
    20  b1: >=1 & <=5 & >=1 & <=5
    21  b2: >=1 & <=5 & >=1 & <=1
    22  b3: >=1 & <=5 & >=5 & <=5
    23  b4: >=1 & <=5 & >=2 & <=3
    24  b5: >=1 & <=5 & >=3 & <=9
    25  b6: >=1 & <=5 & >=5 & <=9
    26  b7: >=1 & <=5 & >=6 & <=9
    27  
    28  b8:  >=1 & <=5 & >=1 & <=5
    29  b9:  >=1 & <=1 & >=1 & <=5
    30  b10: >=5 & <=5 & >=1 & <=5
    31  b11: >=2 & <=3 & >=1 & <=5
    32  b12: >=3 & <=9 & >=1 & <=5
    33  b13: >=5 & <=9 & >=1 & <=5
    34  b14: >=6 & <=9 & >=1 & <=5
    35  
    36  // ranges with more general types
    37  c1: int & >=1 & <=5
    38  c2: >=1 & <=5 & int
    39  c3: string & >=1 & <=5
    40  c4: >=1 & <=5 & string
    41  
    42  // other types
    43  s1: >="d" & <="z" & "e"
    44  s2: >="d" & <="z" & "ee"
    45  
    46  n1: number & >=1 & <=2
    47  n2: int & >=1.1 & <=1.3
    48  n3: >=1.0 & <=3.0 & 2
    49  n4: >=0.0 & <=0.1 & 0.09999
    50  n5: >=1 & <=5 & 2.5
    51  -- out/def --
    52  	// with concrete values
    53  a1:  3
    54  a2:  1
    55  a3:  5
    56  a4:  _|_ // invalid value 6 (out of bound <=5)
    57  a5:  _|_ // invalid value 0 (out of bound >=1)
    58  a6:  3
    59  a7:  1
    60  a8:  5
    61  a9:  _|_ // invalid value 6 (out of bound <=5)
    62  a10: _|_ // invalid value 0 (out of bound >=1)
    63  
    64  // with ranges
    65  b1:  >=1 & <=5
    66  b2:  1
    67  b3:  5
    68  b4:  >=2 & <=3
    69  b5:  >=3 & <=5
    70  b6:  5
    71  b7:  _|_ // conflicting bounds >=6 and <=5
    72  b8:  >=1 & <=5
    73  b9:  1
    74  b10: 5
    75  b11: >=2 & <=3
    76  b12: >=3 & <=5
    77  b13: 5
    78  b14: _|_ // conflicting bounds >=6 and <=5
    79  
    80  // ranges with more general types
    81  c1: uint & >=1 & <=5
    82  c2: uint & >=1 & <=5
    83  c3: _|_ // conflicting values string and >=1 (mismatched types string and number)
    84  c4: _|_ // conflicting values (>=1 & <=5) and string (mismatched types number and string)
    85  
    86  // other types
    87  s1: "e"
    88  s2: "ee"
    89  n1: >=1 & <=2
    90  n2: _|_ // conflicting bounds int & >=1.1 and <=1.3
    91  n3: 2
    92  n4: 0.09999
    93  n5: 2.5
    94  -- out/legacy-debug --
    95  <0>{a1: 3, a2: 1, a3: 5, a4: _|_((<=5 & 6):invalid value 6 (out of bound <=5)), a5: _|_((>=1 & 0):invalid value 0 (out of bound >=1)), a6: 3, a7: 1, a8: 5, a9: _|_((<=5 & 6):invalid value 6 (out of bound <=5)), a10: _|_((>=1 & 0):invalid value 0 (out of bound >=1)), b1: (>=1 & <=5), b2: 1, b3: 5, b4: (>=2 & <=3), b5: (>=3 & <=5), b6: 5, b7: _|_(conflicting bounds >=6 and <=5), b8: (>=1 & <=5), b9: 1, b10: 5, b11: (>=2 & <=3), b12: (>=3 & <=5), b13: 5, b14: _|_(conflicting bounds >=6 and <=5), c1: (int & >=1 & <=5), c2: (<=5 & int & >=1), c3: _|_((string & >=1):conflicting values string and >=1 (mismatched types string and number)), c4: _|_(((>=1 & <=5) & string):conflicting values (>=1 & <=5) and string (mismatched types number and string)), s1: "e", s2: "ee", n1: (>=1 & <=2), n2: _|_(conflicting bounds int & >=1.1 and <=1.3), n3: 2, n4: 0.09999, n5: 2.5}
    96  -- out/compile --
    97  --- in.cue
    98  {
    99    a1: ((>=1 & <=5) & 3)
   100    a2: ((>=1 & <=5) & 1)
   101    a3: ((>=1 & <=5) & 5)
   102    a4: ((>=1 & <=5) & 6)
   103    a5: ((>=1 & <=5) & 0)
   104    a6: ((3 & >=1) & <=5)
   105    a7: ((1 & >=1) & <=5)
   106    a8: ((5 & >=1) & <=5)
   107    a9: ((6 & >=1) & <=5)
   108    a10: ((0 & >=1) & <=5)
   109    b1: (((>=1 & <=5) & >=1) & <=5)
   110    b2: (((>=1 & <=5) & >=1) & <=1)
   111    b3: (((>=1 & <=5) & >=5) & <=5)
   112    b4: (((>=1 & <=5) & >=2) & <=3)
   113    b5: (((>=1 & <=5) & >=3) & <=9)
   114    b6: (((>=1 & <=5) & >=5) & <=9)
   115    b7: (((>=1 & <=5) & >=6) & <=9)
   116    b8: (((>=1 & <=5) & >=1) & <=5)
   117    b9: (((>=1 & <=1) & >=1) & <=5)
   118    b10: (((>=5 & <=5) & >=1) & <=5)
   119    b11: (((>=2 & <=3) & >=1) & <=5)
   120    b12: (((>=3 & <=9) & >=1) & <=5)
   121    b13: (((>=5 & <=9) & >=1) & <=5)
   122    b14: (((>=6 & <=9) & >=1) & <=5)
   123    c1: ((int & >=1) & <=5)
   124    c2: ((>=1 & <=5) & int)
   125    c3: ((string & >=1) & <=5)
   126    c4: ((>=1 & <=5) & string)
   127    s1: ((>="d" & <="z") & "e")
   128    s2: ((>="d" & <="z") & "ee")
   129    n1: ((number & >=1) & <=2)
   130    n2: ((int & >=1.1) & <=1.3)
   131    n3: ((>=1.0 & <=3.0) & 2)
   132    n4: ((>=0.0 & <=0.1) & 0.09999)
   133    n5: ((>=1 & <=5) & 2.5)
   134  }
   135  -- out/eval/stats --
   136  Leaks:  0
   137  Freed:  36
   138  Reused: 34
   139  Allocs: 2
   140  Retain: 0
   141  
   142  Unifications: 36
   143  Conjuncts:    120
   144  Disjuncts:    36
   145  -- out/evalalpha --
   146  Errors:
   147  c3: conflicting values string and >=1 (mismatched types string and number):
   148      ./in.cue:34:5
   149      ./in.cue:34:14
   150  c4: conflicting values string and >=1 (mismatched types string and number):
   151      ./in.cue:35:5
   152      ./in.cue:35:17
   153  a4: invalid value 6 (out of bound <=5):
   154      ./in.cue:5:11
   155      ./in.cue:5:17
   156  a5: invalid value 0 (out of bound >=1):
   157      ./in.cue:6:5
   158      ./in.cue:6:17
   159  a9: invalid value 6 (out of bound <=5):
   160      ./in.cue:11:16
   161      ./in.cue:11:6
   162  a10: invalid value 0 (out of bound >=1):
   163      ./in.cue:12:10
   164      ./in.cue:12:6
   165  b7: incompatible bounds >=6 and <=5:
   166      ./in.cue:21:17
   167      ./in.cue:21:11
   168  b14: incompatible bounds >=6 and <=5:
   169      ./in.cue:29:24
   170      ./in.cue:29:6
   171  n2: incompatible bounds >=1.1 and <=1.3:
   172      ./in.cue:42:19
   173      ./in.cue:42:11
   174  
   175  Result:
   176  (_|_){
   177    // [eval]
   178    a1: (int){ 3 }
   179    a2: (int){ 1 }
   180    a3: (int){ 5 }
   181    a4: (_|_){
   182      // [eval] a4: invalid value 6 (out of bound <=5):
   183      //     ./in.cue:5:11
   184      //     ./in.cue:5:17
   185    }
   186    a5: (_|_){
   187      // [eval] a5: invalid value 0 (out of bound >=1):
   188      //     ./in.cue:6:5
   189      //     ./in.cue:6:17
   190    }
   191    a6: (int){ 3 }
   192    a7: (int){ 1 }
   193    a8: (int){ 5 }
   194    a9: (_|_){
   195      // [eval] a9: invalid value 6 (out of bound <=5):
   196      //     ./in.cue:11:16
   197      //     ./in.cue:11:6
   198    }
   199    a10: (_|_){
   200      // [eval] a10: invalid value 0 (out of bound >=1):
   201      //     ./in.cue:12:10
   202      //     ./in.cue:12:6
   203    }
   204    b1: (number){ &(>=1, <=5) }
   205    b2: (number){ 1 }
   206    b3: (number){ 5 }
   207    b4: (number){ &(>=2, <=3) }
   208    b5: (number){ &(>=3, <=5) }
   209    b6: (number){ 5 }
   210    b7: (_|_){
   211      // [eval] b7: incompatible bounds >=6 and <=5:
   212      //     ./in.cue:21:17
   213      //     ./in.cue:21:11
   214    }
   215    b8: (number){ &(>=1, <=5) }
   216    b9: (number){ 1 }
   217    b10: (number){ 5 }
   218    b11: (number){ &(>=2, <=3) }
   219    b12: (number){ &(>=3, <=5) }
   220    b13: (number){ 5 }
   221    b14: (_|_){
   222      // [eval] b14: incompatible bounds >=6 and <=5:
   223      //     ./in.cue:29:24
   224      //     ./in.cue:29:6
   225    }
   226    c1: (int){ &(>=1, <=5, int) }
   227    c2: (int){ &(>=1, <=5, int) }
   228    c3: (_|_){
   229      // [eval] c3: conflicting values string and >=1 (mismatched types string and number):
   230      //     ./in.cue:34:5
   231      //     ./in.cue:34:14
   232    }
   233    c4: (_|_){
   234      // [eval] c4: conflicting values string and >=1 (mismatched types string and number):
   235      //     ./in.cue:35:5
   236      //     ./in.cue:35:17
   237    }
   238    s1: (string){ "e" }
   239    s2: (string){ "ee" }
   240    n1: (number){ &(>=1, <=2) }
   241    n2: (_|_){
   242      // [eval] n2: incompatible bounds >=1.1 and <=1.3:
   243      //     ./in.cue:42:19
   244      //     ./in.cue:42:11
   245    }
   246    n3: (int){ 2 }
   247    n4: (float){ 0.09999 }
   248    n5: (float){ 2.5 }
   249  }
   250  -- diff/-out/evalalpha<==>+out/eval --
   251  diff old new
   252  --- old
   253  +++ new
   254  @@ -1,19 +1,10 @@
   255   Errors:
   256  -b14: incompatible bounds >=6 and <=5:
   257  -    ./in.cue:29:6
   258  -    ./in.cue:29:24
   259  -b7: incompatible bounds >=6 and <=5:
   260  -    ./in.cue:21:11
   261  -    ./in.cue:21:17
   262   c3: conflicting values string and >=1 (mismatched types string and number):
   263       ./in.cue:34:5
   264       ./in.cue:34:14
   265  -c4: conflicting values >=1 and string (mismatched types number and string):
   266  +c4: conflicting values string and >=1 (mismatched types string and number):
   267       ./in.cue:35:5
   268       ./in.cue:35:17
   269  -n2: incompatible bounds >=1.1 and <=1.3:
   270  -    ./in.cue:42:11
   271  -    ./in.cue:42:19
   272   a4: invalid value 6 (out of bound <=5):
   273       ./in.cue:5:11
   274       ./in.cue:5:17
   275  @@ -26,6 +17,15 @@
   276   a10: invalid value 0 (out of bound >=1):
   277       ./in.cue:12:10
   278       ./in.cue:12:6
   279  +b7: incompatible bounds >=6 and <=5:
   280  +    ./in.cue:21:17
   281  +    ./in.cue:21:11
   282  +b14: incompatible bounds >=6 and <=5:
   283  +    ./in.cue:29:24
   284  +    ./in.cue:29:6
   285  +n2: incompatible bounds >=1.1 and <=1.3:
   286  +    ./in.cue:42:19
   287  +    ./in.cue:42:11
   288   
   289   Result:
   290   (_|_){
   291  @@ -64,8 +64,8 @@
   292     b6: (number){ 5 }
   293     b7: (_|_){
   294       // [eval] b7: incompatible bounds >=6 and <=5:
   295  -    //     ./in.cue:21:11
   296       //     ./in.cue:21:17
   297  +    //     ./in.cue:21:11
   298     }
   299     b8: (number){ &(>=1, <=5) }
   300     b9: (number){ 1 }
   301  @@ -75,8 +75,8 @@
   302     b13: (number){ 5 }
   303     b14: (_|_){
   304       // [eval] b14: incompatible bounds >=6 and <=5:
   305  -    //     ./in.cue:29:6
   306       //     ./in.cue:29:24
   307  +    //     ./in.cue:29:6
   308     }
   309     c1: (int){ &(>=1, <=5, int) }
   310     c2: (int){ &(>=1, <=5, int) }
   311  @@ -86,7 +86,7 @@
   312       //     ./in.cue:34:14
   313     }
   314     c4: (_|_){
   315  -    // [eval] c4: conflicting values >=1 and string (mismatched types number and string):
   316  +    // [eval] c4: conflicting values string and >=1 (mismatched types string and number):
   317       //     ./in.cue:35:5
   318       //     ./in.cue:35:17
   319     }
   320  @@ -95,8 +95,8 @@
   321     n1: (number){ &(>=1, <=2) }
   322     n2: (_|_){
   323       // [eval] n2: incompatible bounds >=1.1 and <=1.3:
   324  -    //     ./in.cue:42:11
   325       //     ./in.cue:42:19
   326  +    //     ./in.cue:42:11
   327     }
   328     n3: (int){ 2 }
   329     n4: (float){ 0.09999 }
   330  -- diff/todo/p3 --
   331  Reordering of error messages.
   332  -- out/eval --
   333  Errors:
   334  b14: incompatible bounds >=6 and <=5:
   335      ./in.cue:29:6
   336      ./in.cue:29:24
   337  b7: incompatible bounds >=6 and <=5:
   338      ./in.cue:21:11
   339      ./in.cue:21:17
   340  c3: conflicting values string and >=1 (mismatched types string and number):
   341      ./in.cue:34:5
   342      ./in.cue:34:14
   343  c4: conflicting values >=1 and string (mismatched types number and string):
   344      ./in.cue:35:5
   345      ./in.cue:35:17
   346  n2: incompatible bounds >=1.1 and <=1.3:
   347      ./in.cue:42:11
   348      ./in.cue:42:19
   349  a4: invalid value 6 (out of bound <=5):
   350      ./in.cue:5:11
   351      ./in.cue:5:17
   352  a5: invalid value 0 (out of bound >=1):
   353      ./in.cue:6:5
   354      ./in.cue:6:17
   355  a9: invalid value 6 (out of bound <=5):
   356      ./in.cue:11:16
   357      ./in.cue:11:6
   358  a10: invalid value 0 (out of bound >=1):
   359      ./in.cue:12:10
   360      ./in.cue:12:6
   361  
   362  Result:
   363  (_|_){
   364    // [eval]
   365    a1: (int){ 3 }
   366    a2: (int){ 1 }
   367    a3: (int){ 5 }
   368    a4: (_|_){
   369      // [eval] a4: invalid value 6 (out of bound <=5):
   370      //     ./in.cue:5:11
   371      //     ./in.cue:5:17
   372    }
   373    a5: (_|_){
   374      // [eval] a5: invalid value 0 (out of bound >=1):
   375      //     ./in.cue:6:5
   376      //     ./in.cue:6:17
   377    }
   378    a6: (int){ 3 }
   379    a7: (int){ 1 }
   380    a8: (int){ 5 }
   381    a9: (_|_){
   382      // [eval] a9: invalid value 6 (out of bound <=5):
   383      //     ./in.cue:11:16
   384      //     ./in.cue:11:6
   385    }
   386    a10: (_|_){
   387      // [eval] a10: invalid value 0 (out of bound >=1):
   388      //     ./in.cue:12:10
   389      //     ./in.cue:12:6
   390    }
   391    b1: (number){ &(>=1, <=5) }
   392    b2: (number){ 1 }
   393    b3: (number){ 5 }
   394    b4: (number){ &(>=2, <=3) }
   395    b5: (number){ &(>=3, <=5) }
   396    b6: (number){ 5 }
   397    b7: (_|_){
   398      // [eval] b7: incompatible bounds >=6 and <=5:
   399      //     ./in.cue:21:11
   400      //     ./in.cue:21:17
   401    }
   402    b8: (number){ &(>=1, <=5) }
   403    b9: (number){ 1 }
   404    b10: (number){ 5 }
   405    b11: (number){ &(>=2, <=3) }
   406    b12: (number){ &(>=3, <=5) }
   407    b13: (number){ 5 }
   408    b14: (_|_){
   409      // [eval] b14: incompatible bounds >=6 and <=5:
   410      //     ./in.cue:29:6
   411      //     ./in.cue:29:24
   412    }
   413    c1: (int){ &(>=1, <=5, int) }
   414    c2: (int){ &(>=1, <=5, int) }
   415    c3: (_|_){
   416      // [eval] c3: conflicting values string and >=1 (mismatched types string and number):
   417      //     ./in.cue:34:5
   418      //     ./in.cue:34:14
   419    }
   420    c4: (_|_){
   421      // [eval] c4: conflicting values >=1 and string (mismatched types number and string):
   422      //     ./in.cue:35:5
   423      //     ./in.cue:35:17
   424    }
   425    s1: (string){ "e" }
   426    s2: (string){ "ee" }
   427    n1: (number){ &(>=1, <=2) }
   428    n2: (_|_){
   429      // [eval] n2: incompatible bounds >=1.1 and <=1.3:
   430      //     ./in.cue:42:11
   431      //     ./in.cue:42:19
   432    }
   433    n3: (int){ 2 }
   434    n4: (float){ 0.09999 }
   435    n5: (float){ 2.5 }
   436  }