cuelang.org/go@v0.10.1/cue/testdata/comprehensions/fields.txtar (about) 1 Issue #560 2 3 -- cue.mod/module.cue -- 4 module: "mod.test" 5 language: version: "v0.9.0" 6 -- in.cue -- 7 import "strings" 8 9 dynamic: { 10 for _, s in ["foo"] { 11 (s): 1 12 "\(s)bar": 2 13 } 14 } 15 16 ignoreOptional: { 17 #x: { 18 a?: string 19 b?: string 20 c: string 21 } 22 23 y: { 24 for k,v in #x { 25 (k): "exists" 26 } 27 } 28 } 29 30 missingRequiredError: { 31 // Issue #2369 32 #x: { 33 a!: string 34 b?: string 35 c: string 36 } 37 38 y: { 39 for k,v in #x { 40 (k): "exists" 41 } 42 } 43 } 44 45 issue560: { 46 #User: { 47 tags_str: string 48 tags_map: { 49 for k, v in strings.Split(tags_str, " ") { 50 "\(v)": string 51 } 52 "{a}": string 53 } 54 } 55 56 user: { 57 #User 58 tags_str: "b {c}" 59 } 60 } 61 -- out/eval/stats -- 62 Leaks: 1 63 Freed: 32 64 Reused: 26 65 Allocs: 7 66 Retain: 1 67 68 Unifications: 33 69 Conjuncts: 41 70 Disjuncts: 33 71 -- out/evalalpha -- 72 (struct){ 73 dynamic: (struct){ 74 foo: (int){ 1 } 75 foobar: (int){ 2 } 76 } 77 ignoreOptional: (struct){ 78 #x: (#struct){ 79 a?: (string){ string } 80 b?: (string){ string } 81 c: (string){ string } 82 } 83 y: (struct){ 84 c: (string){ "exists" } 85 } 86 } 87 missingRequiredError: (struct){ 88 #x: (#struct){ 89 a!: (string){ string } 90 b?: (string){ string } 91 c: (string){ string } 92 } 93 y: (_|_){ 94 // [incomplete] missingRequiredError.y: missing required field in for comprehension: a: 95 // ./in.cue:33:3 96 // ./in.cue:27:3 97 // ./in.cue:33:14 98 // missingRequiredError.y: key value of dynamic field must be concrete, found _|_(missingRequiredError.y: missing required field in for comprehension: a): 99 // ./in.cue:34:5 100 } 101 } 102 issue560: (struct){ 103 #User: (#struct){ 104 tags_str: (string){ string } 105 tags_map: (_|_){ 106 // [incomplete] issue560.#User.tags_map: error in call to strings.Split: non-concrete value string: 107 // ./in.cue:43:16 108 // ./in.cue:41:13 109 "{a}": (string){ string } 110 } 111 } 112 user: (#struct){ 113 tags_str: (string){ "b {c}" } 114 tags_map: (#struct){ 115 "{a}": (string){ string } 116 b: (string){ string } 117 "{c}": (string){ string } 118 } 119 } 120 } 121 } 122 -- diff/-out/evalalpha<==>+out/eval -- 123 diff old new 124 --- old 125 +++ new 126 @@ -24,6 +24,8 @@ 127 // ./in.cue:33:3 128 // ./in.cue:27:3 129 // ./in.cue:33:14 130 + // missingRequiredError.y: key value of dynamic field must be concrete, found _|_(missingRequiredError.y: missing required field in for comprehension: a): 131 + // ./in.cue:34:5 132 } 133 } 134 issue560: (struct){ 135 -- diff/todo/p2 -- 136 Near-duplicate message 137 -- out/eval -- 138 (struct){ 139 dynamic: (struct){ 140 foo: (int){ 1 } 141 foobar: (int){ 2 } 142 } 143 ignoreOptional: (struct){ 144 #x: (#struct){ 145 a?: (string){ string } 146 b?: (string){ string } 147 c: (string){ string } 148 } 149 y: (struct){ 150 c: (string){ "exists" } 151 } 152 } 153 missingRequiredError: (struct){ 154 #x: (#struct){ 155 a!: (string){ string } 156 b?: (string){ string } 157 c: (string){ string } 158 } 159 y: (_|_){ 160 // [incomplete] missingRequiredError.y: missing required field in for comprehension: a: 161 // ./in.cue:33:3 162 // ./in.cue:27:3 163 // ./in.cue:33:14 164 } 165 } 166 issue560: (struct){ 167 #User: (#struct){ 168 tags_str: (string){ string } 169 tags_map: (_|_){ 170 // [incomplete] issue560.#User.tags_map: error in call to strings.Split: non-concrete value string: 171 // ./in.cue:43:16 172 // ./in.cue:41:13 173 "{a}": (string){ string } 174 } 175 } 176 user: (#struct){ 177 tags_str: (string){ "b {c}" } 178 tags_map: (#struct){ 179 "{a}": (string){ string } 180 b: (string){ string } 181 "{c}": (string){ string } 182 } 183 } 184 } 185 } 186 -- out/compile -- 187 --- in.cue 188 { 189 dynamic: { 190 for _, s in [ 191 "foo", 192 ] { 193 〈1;s〉: 1 194 "\(〈1;s〉)bar": 2 195 } 196 } 197 ignoreOptional: { 198 #x: { 199 a?: string 200 b?: string 201 c: string 202 } 203 y: { 204 for k, v in 〈1;#x〉 { 205 〈1;k〉: "exists" 206 } 207 } 208 } 209 missingRequiredError: { 210 #x: { 211 a!: string 212 b?: string 213 c: string 214 } 215 y: { 216 for k, v in 〈1;#x〉 { 217 〈1;k〉: "exists" 218 } 219 } 220 } 221 issue560: { 222 #User: { 223 tags_str: string 224 tags_map: { 225 for k, v in 〈import;strings〉.Split(〈1;tags_str〉, " ") { 226 "\(〈1;v〉)": string 227 } 228 "{a}": string 229 } 230 } 231 user: { 232 〈1;#User〉 233 tags_str: "b {c}" 234 } 235 } 236 }