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.