cuelang.org/go@v0.10.1/cue/testdata/resolve/048_builtins.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: builtins
     4  #evalPartial
     5  -- in.cue --
     6  import (
     7  	"list"
     8  	"strings"
     9  )
    10  
    11  a1: {
    12  	a: and([b, c])
    13  	b: =~"oo"
    14  	c: =~"fo"
    15  }
    16  a2: a1 & {a: "foo"}
    17  a3: a1 & {a: "bar"}
    18  
    19  o1: {
    20  	a: or([b, c])
    21  	b: string
    22  	c: "bar"
    23  }
    24  o2: o1 & {a: "foo"}
    25  o3: o1 & {a: "foo", b: "baz"}
    26  
    27  // Issue #585
    28  stringListErrors: {
    29  	a: {
    30  		x: [string, ...string]
    31  		result: strings.Join(x, " ")
    32  	}
    33  
    34  	b: {
    35  		x: [int, ...string]
    36  		result: strings.Join(x, " ")
    37  	}
    38  
    39  	c: {
    40  		x: []
    41  		result: strings.Join(x, int)
    42  	}
    43  }
    44  
    45  decimalListErrors: {
    46  	a: {
    47  		x: [string]
    48  		result: list.Avg(x)
    49  	}
    50  
    51  	b: {
    52  		x: [int, ...string]
    53  		result: list.Avg(x)
    54  	}
    55  }
    56  -- out/def --
    57  a1: {
    58  	a: =~"oo" & =~"fo"
    59  	b: =~"oo"
    60  	c: =~"fo"
    61  }
    62  a2: a1 & {
    63  	a: "foo"
    64  }
    65  a3: a1 & {
    66  	a: "bar"
    67  }
    68  o1: {
    69  	a: string
    70  	b: string
    71  	c: "bar"
    72  }
    73  o2: o1 & {
    74  	a: "foo"
    75  }
    76  o3: o1 & {
    77  	a: "foo"
    78  	b: "baz"
    79  }
    80  -- out/legacy-debug --
    81  <0>{a1: <1>{a: (=~"oo" & =~"fo"), b: =~"oo", c: =~"fo"}, a2: <2>{a: "foo", b: =~"oo", c: =~"fo"}, a3: <3>{a: _|_((=~"oo" & "bar"):invalid value "bar" (does not match =~"oo")), b: =~"oo", c: =~"fo"}, o1: <4>{a: string, b: string, c: "bar"}, o2: <5>{a: "foo", b: string, c: "bar"}, o3: <6>{a: _|_(("baz" & "foo"):empty disjunction: conflicting values "baz" and "foo";("bar" & "foo"):empty disjunction: conflicting values "bar" and "foo"), b: "baz", c: "bar"}}
    82  -- out/eval/stats --
    83  Leaks:  6
    84  Freed:  61
    85  Reused: 53
    86  Allocs: 14
    87  Retain: 22
    88  
    89  Unifications: 55
    90  Conjuncts:    125
    91  Disjuncts:    75
    92  -- out/evalalpha --
    93  Errors:
    94  o3.a: conflicting values "bar" and "foo":
    95      ./in.cue:17:5
    96      ./in.cue:20:14
    97  o3.a: conflicting values "baz" and "foo":
    98      ./in.cue:20:14
    99      ./in.cue:20:24
   100  a3.a: invalid value "bar" (out of bound =~"oo"):
   101      ./in.cue:8:5
   102      ./in.cue:12:14
   103  a3.a: invalid value "bar" (out of bound =~"fo"):
   104      ./in.cue:9:5
   105      ./in.cue:12:14
   106  stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string:
   107      ./in.cue:31:11
   108      ./in.cue:30:7
   109  stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join:
   110      ./in.cue:36:27
   111  decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number:
   112      ./in.cue:43:11
   113      ./in.cue:42:7
   114  
   115  Result:
   116  (_|_){
   117    // [eval]
   118    a1: (struct){
   119      a: (string){ &(=~"oo", =~"fo") }
   120      b: (string){ =~"oo" }
   121      c: (string){ =~"fo" }
   122    }
   123    a2: (struct){
   124      a: (string){ "foo" }
   125      b: (string){ =~"oo" }
   126      c: (string){ =~"fo" }
   127    }
   128    a3: (_|_){
   129      // [eval]
   130      a: (_|_){
   131        // [eval] a3.a: invalid value "bar" (out of bound =~"oo"):
   132        //     ./in.cue:8:5
   133        //     ./in.cue:12:14
   134        // a3.a: invalid value "bar" (out of bound =~"fo"):
   135        //     ./in.cue:9:5
   136        //     ./in.cue:12:14
   137      }
   138      b: (string){ =~"oo" }
   139      c: (string){ =~"fo" }
   140    }
   141    o1: (struct){
   142      a: (string){ |((string){ string }, (string){ "bar" }) }
   143      b: (string){ string }
   144      c: (string){ "bar" }
   145    }
   146    o2: (struct){
   147      a: (string){ "foo" }
   148      b: (string){ string }
   149      c: (string){ "bar" }
   150    }
   151    o3: (_|_){
   152      // [eval]
   153      a: (_|_){
   154        // [eval] o3.a: conflicting values "bar" and "foo":
   155        //     ./in.cue:17:5
   156        //     ./in.cue:20:14
   157        // o3.a: conflicting values "baz" and "foo":
   158        //     ./in.cue:20:14
   159        //     ./in.cue:20:24
   160      }
   161      b: (string){ "baz" }
   162      c: (string){ "bar" }
   163    }
   164    stringListErrors: (_|_){
   165      // [eval]
   166      a: (struct){
   167        x: (list){
   168          0: (string){ string }
   169        }
   170        result: (_|_){
   171          // [incomplete] stringListErrors.a.result: non-concrete value string for element 0 of string list argument 0:
   172          //     ./in.cue:26:11
   173          //     ./in.cue:25:7
   174        }
   175      }
   176      b: (_|_){
   177        // [eval]
   178        x: (list){
   179          0: (int){ int }
   180        }
   181        result: (_|_){
   182          // [eval] stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string:
   183          //     ./in.cue:31:11
   184          //     ./in.cue:30:7
   185        }
   186      }
   187      c: (_|_){
   188        // [eval]
   189        x: (#list){
   190        }
   191        result: (_|_){
   192          // [eval] stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join:
   193          //     ./in.cue:36:27
   194        }
   195      }
   196    }
   197    decimalListErrors: (_|_){
   198      // [eval]
   199      a: (_|_){
   200        // [eval]
   201        x: (#list){
   202          0: (string){ string }
   203        }
   204        result: (_|_){
   205          // [eval] decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number:
   206          //     ./in.cue:43:11
   207          //     ./in.cue:42:7
   208        }
   209      }
   210      b: (struct){
   211        x: (list){
   212          0: (int){ int }
   213        }
   214        result: (_|_){
   215          // [incomplete] decimalListErrors.b.result: non-concrete value int for element 0 of number list argument 0:
   216          //     ./in.cue:48:11
   217          //     ./in.cue:47:7
   218        }
   219      }
   220    }
   221  }
   222  -- diff/-out/evalalpha<==>+out/eval --
   223  diff old new
   224  --- old
   225  +++ new
   226  @@ -1,22 +1,15 @@
   227   Errors:
   228  -o3.a: 2 errors in empty disjunction:
   229   o3.a: conflicting values "bar" and "foo":
   230  -    ./in.cue:15:12
   231       ./in.cue:17:5
   232  -    ./in.cue:20:5
   233       ./in.cue:20:14
   234   o3.a: conflicting values "baz" and "foo":
   235  -    ./in.cue:15:9
   236  -    ./in.cue:20:5
   237       ./in.cue:20:14
   238       ./in.cue:20:24
   239   a3.a: invalid value "bar" (out of bound =~"oo"):
   240       ./in.cue:8:5
   241  -    ./in.cue:7:5
   242       ./in.cue:12:14
   243   a3.a: invalid value "bar" (out of bound =~"fo"):
   244       ./in.cue:9:5
   245  -    ./in.cue:7:5
   246       ./in.cue:12:14
   247   stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string:
   248       ./in.cue:31:11
   249  @@ -45,11 +38,9 @@
   250       a: (_|_){
   251         // [eval] a3.a: invalid value "bar" (out of bound =~"oo"):
   252         //     ./in.cue:8:5
   253  -      //     ./in.cue:7:5
   254         //     ./in.cue:12:14
   255         // a3.a: invalid value "bar" (out of bound =~"fo"):
   256         //     ./in.cue:9:5
   257  -      //     ./in.cue:7:5
   258         //     ./in.cue:12:14
   259       }
   260       b: (string){ =~"oo" }
   261  @@ -68,15 +59,10 @@
   262     o3: (_|_){
   263       // [eval]
   264       a: (_|_){
   265  -      // [eval] o3.a: 2 errors in empty disjunction:
   266  -      // o3.a: conflicting values "bar" and "foo":
   267  -      //     ./in.cue:15:12
   268  +      // [eval] o3.a: conflicting values "bar" and "foo":
   269         //     ./in.cue:17:5
   270  -      //     ./in.cue:20:5
   271         //     ./in.cue:20:14
   272         // o3.a: conflicting values "baz" and "foo":
   273  -      //     ./in.cue:15:9
   274  -      //     ./in.cue:20:5
   275         //     ./in.cue:20:14
   276         //     ./in.cue:20:24
   277       }
   278  -- diff/todo/p2 --
   279  Missing "empty disjunction" message.
   280  Missing error positions.
   281  -- out/eval --
   282  Errors:
   283  o3.a: 2 errors in empty disjunction:
   284  o3.a: conflicting values "bar" and "foo":
   285      ./in.cue:15:12
   286      ./in.cue:17:5
   287      ./in.cue:20:5
   288      ./in.cue:20:14
   289  o3.a: conflicting values "baz" and "foo":
   290      ./in.cue:15:9
   291      ./in.cue:20:5
   292      ./in.cue:20:14
   293      ./in.cue:20:24
   294  a3.a: invalid value "bar" (out of bound =~"oo"):
   295      ./in.cue:8:5
   296      ./in.cue:7:5
   297      ./in.cue:12:14
   298  a3.a: invalid value "bar" (out of bound =~"fo"):
   299      ./in.cue:9:5
   300      ./in.cue:7:5
   301      ./in.cue:12:14
   302  stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string:
   303      ./in.cue:31:11
   304      ./in.cue:30:7
   305  stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join:
   306      ./in.cue:36:27
   307  decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number:
   308      ./in.cue:43:11
   309      ./in.cue:42:7
   310  
   311  Result:
   312  (_|_){
   313    // [eval]
   314    a1: (struct){
   315      a: (string){ &(=~"oo", =~"fo") }
   316      b: (string){ =~"oo" }
   317      c: (string){ =~"fo" }
   318    }
   319    a2: (struct){
   320      a: (string){ "foo" }
   321      b: (string){ =~"oo" }
   322      c: (string){ =~"fo" }
   323    }
   324    a3: (_|_){
   325      // [eval]
   326      a: (_|_){
   327        // [eval] a3.a: invalid value "bar" (out of bound =~"oo"):
   328        //     ./in.cue:8:5
   329        //     ./in.cue:7:5
   330        //     ./in.cue:12:14
   331        // a3.a: invalid value "bar" (out of bound =~"fo"):
   332        //     ./in.cue:9:5
   333        //     ./in.cue:7:5
   334        //     ./in.cue:12:14
   335      }
   336      b: (string){ =~"oo" }
   337      c: (string){ =~"fo" }
   338    }
   339    o1: (struct){
   340      a: (string){ |((string){ string }, (string){ "bar" }) }
   341      b: (string){ string }
   342      c: (string){ "bar" }
   343    }
   344    o2: (struct){
   345      a: (string){ "foo" }
   346      b: (string){ string }
   347      c: (string){ "bar" }
   348    }
   349    o3: (_|_){
   350      // [eval]
   351      a: (_|_){
   352        // [eval] o3.a: 2 errors in empty disjunction:
   353        // o3.a: conflicting values "bar" and "foo":
   354        //     ./in.cue:15:12
   355        //     ./in.cue:17:5
   356        //     ./in.cue:20:5
   357        //     ./in.cue:20:14
   358        // o3.a: conflicting values "baz" and "foo":
   359        //     ./in.cue:15:9
   360        //     ./in.cue:20:5
   361        //     ./in.cue:20:14
   362        //     ./in.cue:20:24
   363      }
   364      b: (string){ "baz" }
   365      c: (string){ "bar" }
   366    }
   367    stringListErrors: (_|_){
   368      // [eval]
   369      a: (struct){
   370        x: (list){
   371          0: (string){ string }
   372        }
   373        result: (_|_){
   374          // [incomplete] stringListErrors.a.result: non-concrete value string for element 0 of string list argument 0:
   375          //     ./in.cue:26:11
   376          //     ./in.cue:25:7
   377        }
   378      }
   379      b: (_|_){
   380        // [eval]
   381        x: (list){
   382          0: (int){ int }
   383        }
   384        result: (_|_){
   385          // [eval] stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string:
   386          //     ./in.cue:31:11
   387          //     ./in.cue:30:7
   388        }
   389      }
   390      c: (_|_){
   391        // [eval]
   392        x: (#list){
   393        }
   394        result: (_|_){
   395          // [eval] stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join:
   396          //     ./in.cue:36:27
   397        }
   398      }
   399    }
   400    decimalListErrors: (_|_){
   401      // [eval]
   402      a: (_|_){
   403        // [eval]
   404        x: (#list){
   405          0: (string){ string }
   406        }
   407        result: (_|_){
   408          // [eval] decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number:
   409          //     ./in.cue:43:11
   410          //     ./in.cue:42:7
   411        }
   412      }
   413      b: (struct){
   414        x: (list){
   415          0: (int){ int }
   416        }
   417        result: (_|_){
   418          // [incomplete] decimalListErrors.b.result: non-concrete value int for element 0 of number list argument 0:
   419          //     ./in.cue:48:11
   420          //     ./in.cue:47:7
   421        }
   422      }
   423    }
   424  }
   425  -- out/compile --
   426  --- in.cue
   427  {
   428    a1: {
   429      a: and([
   430        〈1;b〉,
   431        〈1;c〉,
   432      ])
   433      b: =~"oo"
   434      c: =~"fo"
   435    }
   436    a2: (〈0;a1〉 & {
   437      a: "foo"
   438    })
   439    a3: (〈0;a1〉 & {
   440      a: "bar"
   441    })
   442    o1: {
   443      a: or([
   444        〈1;b〉,
   445        〈1;c〉,
   446      ])
   447      b: string
   448      c: "bar"
   449    }
   450    o2: (〈0;o1〉 & {
   451      a: "foo"
   452    })
   453    o3: (〈0;o1〉 & {
   454      a: "foo"
   455      b: "baz"
   456    })
   457    stringListErrors: {
   458      a: {
   459        x: [
   460          string,
   461          ...string,
   462        ]
   463        result: 〈import;strings〉.Join(〈0;x〉, " ")
   464      }
   465      b: {
   466        x: [
   467          int,
   468          ...string,
   469        ]
   470        result: 〈import;strings〉.Join(〈0;x〉, " ")
   471      }
   472      c: {
   473        x: []
   474        result: 〈import;strings〉.Join(〈0;x〉, int)
   475      }
   476    }
   477    decimalListErrors: {
   478      a: {
   479        x: [
   480          string,
   481        ]
   482        result: 〈import;list〉.Avg(〈0;x〉)
   483      }
   484      b: {
   485        x: [
   486          int,
   487          ...string,
   488        ]
   489        result: 〈import;list〉.Avg(〈0;x〉)
   490      }
   491    }
   492  }