cuelang.org/go@v0.10.1/cue/testdata/basicrewrite/012_selecting.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: selecting
     4  #evalPartial
     5  -- in.cue --
     6  obj: {a: 1, b: 2}
     7  index:  {a: 1, b:     2}["b"]
     8  mulidx: {a: 1, b: {a: 1, b: 3}}["b"]["b"]
     9  e:      {a: 1}[4]
    10  f:      {a: 1}.b
    11  g:      {a: 1}["b"]
    12  h:      [3].b
    13  -- out/def --
    14  obj: {
    15  	a: 1
    16  	b: 2
    17  }
    18  index:  2
    19  mulidx: 3
    20  e:      _|_ // invalid struct index 4 (type int)
    21  f:      {
    22  	a: 1
    23  }.b
    24  g: {
    25  	a: 1
    26  }["b"]
    27  h: _|_ // invalid operation: [3].b (type list does not support selection)
    28  -- out/legacy-debug --
    29  <0>{obj: <1>{a: 1, b: 2}, index: 2, mulidx: 3, e: _|_(4:invalid struct index 4 (type int)), f: <2>{a: 1}.b, g: <3>{a: 1}["b"], h: _|_([3]:invalid operation: [3].b (type list does not support selection))}
    30  -- out/compile --
    31  --- in.cue
    32  {
    33    obj: {
    34      a: 1
    35      b: 2
    36    }
    37    index: {
    38      a: 1
    39      b: 2
    40    }["b"]
    41    mulidx: {
    42      a: 1
    43      b: {
    44        a: 1
    45        b: 3
    46      }
    47    }["b"]["b"]
    48    e: {
    49      a: 1
    50    }[4]
    51    f: {
    52      a: 1
    53    }.b
    54    g: {
    55      a: 1
    56    }["b"]
    57    h: [
    58      3,
    59    ].b
    60  }
    61  -- out/eval/stats --
    62  Leaks:  9
    63  Freed:  10
    64  Reused: 8
    65  Allocs: 11
    66  Retain: 9
    67  
    68  Unifications: 19
    69  Conjuncts:    19
    70  Disjuncts:    17
    71  -- out/eval --
    72  Errors:
    73  e: invalid struct selector 4 (type int):
    74      ./in.cue:4:16
    75  h: invalid list index b (type string):
    76      ./in.cue:7:13
    77  
    78  Result:
    79  (_|_){
    80    // [eval]
    81    obj: (struct){
    82      a: (int){ 1 }
    83      b: (int){ 2 }
    84    }
    85    index: (int){ 2 }
    86    mulidx: (int){ 3 }
    87    e: (_|_){
    88      // [eval] e: invalid struct selector 4 (type int):
    89      //     ./in.cue:4:16
    90    }
    91    f: (_|_){
    92      // [incomplete] f: undefined field: b:
    93      //     ./in.cue:5:16
    94    }
    95    g: (_|_){
    96      // [incomplete] g: undefined field: b:
    97      //     ./in.cue:6:16
    98    }
    99    h: (_|_){
   100      // [eval] h: invalid list index b (type string):
   101      //     ./in.cue:7:13
   102    }
   103  }
   104  -- out/evalalpha --
   105  Errors:
   106  e: index out of range [4] with length 0:
   107      ./in.cue:4:16
   108  h: undefined field: b:
   109      ./in.cue:7:13
   110  
   111  Result:
   112  (_|_){
   113    // [eval]
   114    obj: (struct){
   115      a: (int){ 1 }
   116      b: (int){ 2 }
   117    }
   118    index: (int){ 2 }
   119    mulidx: (int){ 3 }
   120    e: (_|_){
   121      // [eval] e: index out of range [4] with length 0:
   122      //     ./in.cue:4:16
   123    }
   124    f: (_|_){
   125      // [incomplete] f: undefined field: b:
   126      //     ./in.cue:5:16
   127    }
   128    g: (_|_){
   129      // [incomplete] g: undefined field: b:
   130      //     ./in.cue:6:16
   131    }
   132    h: (_|_){
   133      // [eval] h: undefined field: b:
   134      //     ./in.cue:7:13
   135    }
   136  }
   137  -- diff/-out/evalalpha<==>+out/eval --
   138  diff old new
   139  --- old
   140  +++ new
   141  @@ -1,7 +1,7 @@
   142   Errors:
   143  -e: invalid struct selector 4 (type int):
   144  +e: index out of range [4] with length 0:
   145       ./in.cue:4:16
   146  -h: invalid list index b (type string):
   147  +h: undefined field: b:
   148       ./in.cue:7:13
   149   
   150   Result:
   151  @@ -14,7 +14,7 @@
   152     index: (int){ 2 }
   153     mulidx: (int){ 3 }
   154     e: (_|_){
   155  -    // [eval] e: invalid struct selector 4 (type int):
   156  +    // [eval] e: index out of range [4] with length 0:
   157       //     ./in.cue:4:16
   158     }
   159     f: (_|_){
   160  @@ -26,7 +26,7 @@
   161       //     ./in.cue:6:16
   162     }
   163     h: (_|_){
   164  -    // [eval] h: invalid list index b (type string):
   165  +    // [eval] h: undefined field: b:
   166       //     ./in.cue:7:13
   167     }
   168   }
   169  -- diff/explanation --
   170  Better error message for undefined field in new.
   171  Other error got worse, but this is covered elsewhere.