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

     1  -- in.cue --
     2  a: "foo"
     3  "\(a)": b: c: d: e
     4  e: 2
     5  
     6  b: "bar"
     7  X="\(b)": {
     8  	a: 1
     9  }
    10  c: X
    11  
    12  withError: {
    13  	issue799: {key: int32} & {"\(1 & 2)": 123}
    14  }
    15  
    16  parenExprRefParent: {
    17  	a: (x): {}
    18  	x: "foo"
    19  }
    20  parenExprRefEqual: {
    21  	(x): {}
    22  	x: "foo"
    23  }
    24  chainedResolution: {
    25  	p1: {
    26  		(p1.baz): "bar"
    27  		(p1.foo): "baz"
    28  		baz: "foo"
    29  	}
    30  	p2: {
    31  		(p2.baz): "bar"
    32  		baz: "foo"
    33  		(p2.foo): "baz"
    34  	}
    35  	p3: {
    36  		baz: "foo"
    37  		(p3.baz): "bar"
    38  		(p3.foo): "baz"
    39  	}
    40  	p4: {
    41  		(p4.foo): "baz"
    42  		(p4.baz): "bar"
    43  		baz: "foo"
    44  	}
    45  	p5: {
    46  		(p5.foo): "baz"
    47  		baz: "foo"
    48  		(p5.baz): "bar"
    49  	}
    50  	p6: {
    51  		baz: "foo"
    52  		(p6.foo): "baz"
    53  		(p6.baz): "bar"
    54  	}
    55  }
    56  
    57  // Issue #1407
    58  noCycleError: {
    59  	foo: [_]: {
    60  		#ID: "\(string)"
    61  	}
    62  	foo: bar: entries: (foo.baz.#ID): true
    63  	foo: baz: {}
    64  }
    65  
    66  -- constraints.cue --
    67  constraints: {
    68  	t1: "foo"
    69  	t2: "bar"
    70  	(t1)?: (t2)!: 3
    71  }
    72  
    73  -- out/eval/stats --
    74  Leaks:  2
    75  Freed:  59
    76  Reused: 52
    77  Allocs: 9
    78  Retain: 11
    79  
    80  Unifications: 61
    81  Conjuncts:    77
    82  Disjuncts:    66
    83  -- out/evalalpha --
    84  Errors:
    85  invalid interpolation: conflicting values 2 and 1:
    86      ./in.cue:12:28
    87      ./in.cue:12:31
    88      ./in.cue:12:35
    89  
    90  Result:
    91  (_|_){
    92    // [eval]
    93    constraints: (struct){
    94      t1: (string){ "foo" }
    95      t2: (string){ "bar" }
    96      foo?: (struct){
    97        bar!: (int){ 3 }
    98      }
    99    }
   100    a: (string){ "foo" }
   101    e: (int){ 2 }
   102    b: (string){ "bar" }
   103    c: (struct){
   104      a: (int){ 1 }
   105    }
   106    withError: (_|_){
   107      // [eval]
   108      issue799: (_|_){
   109        // [eval] invalid interpolation: conflicting values 2 and 1:
   110        //     ./in.cue:12:28
   111        //     ./in.cue:12:31
   112        //     ./in.cue:12:35
   113        key: (int){ &(>=-2147483648, <=2147483647, int) }
   114      }
   115    }
   116    parenExprRefParent: (struct){
   117      a: (struct){
   118        foo: (struct){
   119        }
   120      }
   121      x: (string){ "foo" }
   122    }
   123    parenExprRefEqual: (struct){
   124      x: (string){ "foo" }
   125      foo: (struct){
   126      }
   127    }
   128    chainedResolution: (struct){
   129      p1: (struct){
   130        baz: (string){ "foo" }
   131        foo: (string){ "bar" }
   132        bar: (string){ "baz" }
   133      }
   134      p2: (struct){
   135        baz: (string){ "foo" }
   136        foo: (string){ "bar" }
   137        bar: (string){ "baz" }
   138      }
   139      p3: (struct){
   140        baz: (string){ "foo" }
   141        foo: (string){ "bar" }
   142        bar: (string){ "baz" }
   143      }
   144      p4: (struct){
   145        baz: (string){ "foo" }
   146        foo: (string){ "bar" }
   147        bar: (string){ "baz" }
   148      }
   149      p5: (struct){
   150        baz: (string){ "foo" }
   151        foo: (string){ "bar" }
   152        bar: (string){ "baz" }
   153      }
   154      p6: (struct){
   155        baz: (string){ "foo" }
   156        foo: (string){ "bar" }
   157        bar: (string){ "baz" }
   158      }
   159    }
   160    noCycleError: (struct){
   161      foo: (struct){
   162        bar: (struct){
   163          entries: (_|_){
   164            // [incomplete] noCycleError.foo.baz.#ID: invalid interpolation: non-concrete value string (type string):
   165            //     ./in.cue:59:8
   166            //     ./in.cue:59:11
   167            // noCycleError.foo.bar.entries: key value of dynamic field must be concrete, found _|_(invalid interpolation: noCycleError.foo.baz.#ID: non-concrete value string (type string)):
   168            //     ./in.cue:61:22
   169          }
   170          #ID: (_|_){
   171            // [incomplete] noCycleError.foo.bar.#ID: invalid interpolation: non-concrete value string (type string):
   172            //     ./in.cue:59:8
   173            //     ./in.cue:59:11
   174          }
   175        }
   176        baz: (struct){
   177          #ID: (_|_){
   178            // [incomplete] noCycleError.foo.baz.#ID: invalid interpolation: non-concrete value string (type string):
   179            //     ./in.cue:59:8
   180            //     ./in.cue:59:11
   181          }
   182        }
   183      }
   184    }
   185    bar: (struct){
   186      a: (int){ 1 }
   187    }
   188    foo: (struct){
   189      b: (struct){
   190        c: (struct){
   191          d: (int){ 2 }
   192        }
   193      }
   194    }
   195  }
   196  -- diff/-out/evalalpha<==>+out/eval --
   197  diff old new
   198  --- old
   199  +++ new
   200  @@ -81,6 +81,8 @@
   201             // [incomplete] noCycleError.foo.baz.#ID: invalid interpolation: non-concrete value string (type string):
   202             //     ./in.cue:59:8
   203             //     ./in.cue:59:11
   204  +          // noCycleError.foo.bar.entries: key value of dynamic field must be concrete, found _|_(invalid interpolation: noCycleError.foo.baz.#ID: non-concrete value string (type string)):
   205  +          //     ./in.cue:61:22
   206           }
   207           #ID: (_|_){
   208             // [incomplete] noCycleError.foo.bar.#ID: invalid interpolation: non-concrete value string (type string):
   209  @@ -97,6 +99,9 @@
   210         }
   211       }
   212     }
   213  +  bar: (struct){
   214  +    a: (int){ 1 }
   215  +  }
   216     foo: (struct){
   217       b: (struct){
   218         c: (struct){
   219  @@ -104,7 +109,4 @@
   220         }
   221       }
   222     }
   223  -  bar: (struct){
   224  -    a: (int){ 1 }
   225  -  }
   226   }
   227  -- diff/todo/p2 --
   228  Added near-duplicate message
   229  -- out/eval --
   230  Errors:
   231  invalid interpolation: conflicting values 2 and 1:
   232      ./in.cue:12:28
   233      ./in.cue:12:31
   234      ./in.cue:12:35
   235  
   236  Result:
   237  (_|_){
   238    // [eval]
   239    constraints: (struct){
   240      t1: (string){ "foo" }
   241      t2: (string){ "bar" }
   242      foo?: (struct){
   243        bar!: (int){ 3 }
   244      }
   245    }
   246    a: (string){ "foo" }
   247    e: (int){ 2 }
   248    b: (string){ "bar" }
   249    c: (struct){
   250      a: (int){ 1 }
   251    }
   252    withError: (_|_){
   253      // [eval]
   254      issue799: (_|_){
   255        // [eval] invalid interpolation: conflicting values 2 and 1:
   256        //     ./in.cue:12:28
   257        //     ./in.cue:12:31
   258        //     ./in.cue:12:35
   259        key: (int){ &(>=-2147483648, <=2147483647, int) }
   260      }
   261    }
   262    parenExprRefParent: (struct){
   263      a: (struct){
   264        foo: (struct){
   265        }
   266      }
   267      x: (string){ "foo" }
   268    }
   269    parenExprRefEqual: (struct){
   270      x: (string){ "foo" }
   271      foo: (struct){
   272      }
   273    }
   274    chainedResolution: (struct){
   275      p1: (struct){
   276        baz: (string){ "foo" }
   277        foo: (string){ "bar" }
   278        bar: (string){ "baz" }
   279      }
   280      p2: (struct){
   281        baz: (string){ "foo" }
   282        foo: (string){ "bar" }
   283        bar: (string){ "baz" }
   284      }
   285      p3: (struct){
   286        baz: (string){ "foo" }
   287        foo: (string){ "bar" }
   288        bar: (string){ "baz" }
   289      }
   290      p4: (struct){
   291        baz: (string){ "foo" }
   292        foo: (string){ "bar" }
   293        bar: (string){ "baz" }
   294      }
   295      p5: (struct){
   296        baz: (string){ "foo" }
   297        foo: (string){ "bar" }
   298        bar: (string){ "baz" }
   299      }
   300      p6: (struct){
   301        baz: (string){ "foo" }
   302        foo: (string){ "bar" }
   303        bar: (string){ "baz" }
   304      }
   305    }
   306    noCycleError: (struct){
   307      foo: (struct){
   308        bar: (struct){
   309          entries: (_|_){
   310            // [incomplete] noCycleError.foo.baz.#ID: invalid interpolation: non-concrete value string (type string):
   311            //     ./in.cue:59:8
   312            //     ./in.cue:59:11
   313          }
   314          #ID: (_|_){
   315            // [incomplete] noCycleError.foo.bar.#ID: invalid interpolation: non-concrete value string (type string):
   316            //     ./in.cue:59:8
   317            //     ./in.cue:59:11
   318          }
   319        }
   320        baz: (struct){
   321          #ID: (_|_){
   322            // [incomplete] noCycleError.foo.baz.#ID: invalid interpolation: non-concrete value string (type string):
   323            //     ./in.cue:59:8
   324            //     ./in.cue:59:11
   325          }
   326        }
   327      }
   328    }
   329    foo: (struct){
   330      b: (struct){
   331        c: (struct){
   332          d: (int){ 2 }
   333        }
   334      }
   335    }
   336    bar: (struct){
   337      a: (int){ 1 }
   338    }
   339  }
   340  -- out/compile --
   341  --- constraints.cue
   342  {
   343    constraints: {
   344      t1: "foo"
   345      t2: "bar"
   346      〈0;t1〉?: {
   347        〈1;t2〉!: 3
   348      }
   349    }
   350  }
   351  --- in.cue
   352  {
   353    a: "foo"
   354    "\(〈0;a〉)": {
   355      b: {
   356        c: {
   357          d: 〈3;e〉
   358        }
   359      }
   360    }
   361    e: 2
   362    b: "bar"
   363    "\(〈0;b〉)": {
   364      a: 1
   365    }
   366    c: 〈0;("\(〈0;b〉)")〉
   367    withError: {
   368      issue799: ({
   369        key: &(int, >=-2147483648, <=2147483647)
   370      } & {
   371        "\((1 & 2))": 123
   372      })
   373    }
   374    parenExprRefParent: {
   375      a: {
   376        〈1;x〉: {}
   377      }
   378      x: "foo"
   379    }
   380    parenExprRefEqual: {
   381      〈0;x〉: {}
   382      x: "foo"
   383    }
   384    chainedResolution: {
   385      p1: {
   386        〈1;p1〉.baz: "bar"
   387        〈1;p1〉.foo: "baz"
   388        baz: "foo"
   389      }
   390      p2: {
   391        〈1;p2〉.baz: "bar"
   392        baz: "foo"
   393        〈1;p2〉.foo: "baz"
   394      }
   395      p3: {
   396        baz: "foo"
   397        〈1;p3〉.baz: "bar"
   398        〈1;p3〉.foo: "baz"
   399      }
   400      p4: {
   401        〈1;p4〉.foo: "baz"
   402        〈1;p4〉.baz: "bar"
   403        baz: "foo"
   404      }
   405      p5: {
   406        〈1;p5〉.foo: "baz"
   407        baz: "foo"
   408        〈1;p5〉.baz: "bar"
   409      }
   410      p6: {
   411        baz: "foo"
   412        〈1;p6〉.foo: "baz"
   413        〈1;p6〉.baz: "bar"
   414      }
   415    }
   416    noCycleError: {
   417      foo: {
   418        [_]: {
   419          #ID: "\(string)"
   420        }
   421      }
   422      foo: {
   423        bar: {
   424          entries: {
   425            〈3;foo〉.baz.#ID: true
   426          }
   427        }
   428      }
   429      foo: {
   430        baz: {}
   431      }
   432    }
   433  }