github.com/joomcode/cue@v0.4.4-0.20221111115225-539fe3512047/internal/core/export/testdata/attrs.txtar (about) 1 -- a.cue -- 2 @package("foo") 3 4 package bar 5 6 @file("foo") 7 8 a: { 9 @decl(1) 10 @decl(2) 11 } @field(2) 12 13 a: { 14 @decl(1) 15 @decl(3) 16 } @field(1) @field(4) 17 18 a: {} @field(1) @field(3) 19 20 doNotPropagate: { 21 #A: {} @attr1() 22 a: #A 23 24 // Do not accumulated field attributes in embedding. 25 #B: {} @attr1() 26 b: {#B} 27 } 28 29 embedScalarField: { 30 a: {2} @attr1() 31 a: {_} @attr2() 32 } 33 34 embedScalarDecl: { 35 b0: {2, @attr1()} 36 b1: b0 37 b2: {2, b0, @attr2()} 38 } 39 40 dontMergeForDef: { 41 a: {@decl1()} 42 b: a & {x: 1, @decl2()} 43 c: a & {@decl2()} 44 d: {a, @decl2()} 45 } 46 -- b.cue -- 47 @package("b") 48 49 package bar 50 51 @file("bar") 52 53 a: { 54 @decl(5) 55 } @field(5) 56 -- out/definition -- 57 package bar 58 59 @file("foo") 60 61 @file("bar") 62 a: { 63 @decl(1) 64 @decl(2) 65 @decl(3) 66 @decl(5) 67 } @field(2) @field(1) @field(4) @field(3) @field(5) 68 doNotPropagate: { 69 #A: {} @attr1() 70 a: #A 71 72 // Do not accumulated field attributes in embedding. 73 #B: {} @attr1() 74 b: #B 75 } 76 embedScalarField: { 77 a: 2 @attr1() @attr2() 78 } 79 embedScalarDecl: { 80 b0: { 81 @attr1() 82 2 83 } 84 b1: b0 85 b2: { 86 @attr2() 87 b0 88 2 89 } 90 } 91 dontMergeForDef: { 92 a: { 93 @decl1() 94 } 95 b: a & { 96 @decl2() 97 x: 1 98 } 99 c: a & { 100 @decl2() 101 } 102 d: { 103 @decl2() 104 a 105 } 106 } 107 -- out/doc -- 108 [] 109 [a] 110 [doNotPropagate] 111 [doNotPropagate #A] 112 [doNotPropagate a] 113 [doNotPropagate #B] 114 - Do not accumulated field attributes in embedding. 115 116 [doNotPropagate b] 117 [embedScalarField] 118 [embedScalarField a] 119 [embedScalarDecl] 120 [embedScalarDecl b0] 121 [embedScalarDecl b1] 122 [embedScalarDecl b2] 123 [dontMergeForDef] 124 [dontMergeForDef a] 125 [dontMergeForDef b] 126 [dontMergeForDef b x] 127 [dontMergeForDef c] 128 [dontMergeForDef d] 129 -- out/value -- 130 == Simplified 131 { 132 a: {} 133 doNotPropagate: { 134 a: {} 135 b: {} 136 } 137 embedScalarField: { 138 a: 2 139 } 140 embedScalarDecl: { 141 b0: 2 142 b1: 2 143 b2: 2 144 } 145 dontMergeForDef: { 146 a: {} 147 b: { 148 x: 1 149 } 150 c: {} 151 d: {} 152 } 153 } 154 == Raw 155 { 156 a: {} 157 doNotPropagate: { 158 #A: {} 159 a: {} 160 161 // Do not accumulated field attributes in embedding. 162 #B: {} 163 b: {} 164 } 165 embedScalarField: { 166 a: 2 167 } 168 embedScalarDecl: { 169 b0: 2 170 b1: 2 171 b2: 2 172 } 173 dontMergeForDef: { 174 a: {} 175 b: { 176 x: 1 177 } 178 c: {} 179 d: {} 180 } 181 } 182 == Final 183 { 184 a: {} 185 doNotPropagate: { 186 a: {} 187 b: {} 188 } 189 embedScalarField: { 190 a: 2 191 } 192 embedScalarDecl: { 193 b0: 2 194 b1: 2 195 b2: 2 196 } 197 dontMergeForDef: { 198 a: {} 199 b: { 200 x: 1 201 } 202 c: {} 203 d: {} 204 } 205 } 206 == All 207 { 208 @file("foo") 209 210 @file("bar") 211 a: { 212 @decl(1) 213 @decl(2) 214 @decl(3) 215 @decl(5) 216 } @field(2) @field(1) @field(4) @field(3) @field(5) 217 doNotPropagate: { 218 #A: {} @attr1() 219 a: {} 220 221 // Do not accumulated field attributes in embedding. 222 #B: {} @attr1() 223 b: {} 224 } 225 embedScalarField: { 226 a: 2 @attr1() @attr2() 227 } 228 embedScalarDecl: { 229 b0: { 230 2, @attr1() 231 } 232 b1: { 233 2, @attr1() 234 } 235 b2: { 236 2, @attr2(), @attr1() 237 } 238 } 239 dontMergeForDef: { 240 a: { 241 @decl1() 242 } 243 b: { 244 @decl1(), @decl2() 245 x: 1 246 } 247 c: { 248 @decl1(), @decl2() 249 } 250 d: { 251 @decl2(), @decl1() 252 } 253 } 254 } 255 == Eval 256 { 257 @file("foo") 258 259 @file("bar") 260 a: { 261 @decl(1) 262 @decl(2) 263 @decl(3) 264 @decl(5) 265 } @field(2) @field(1) @field(4) @field(3) @field(5) 266 doNotPropagate: { 267 #A: {} @attr1() 268 a: {} 269 #B: {} @attr1() 270 b: {} 271 } 272 embedScalarField: { 273 a: 2 @attr1() @attr2() 274 } 275 embedScalarDecl: { 276 b0: { 277 2, @attr1() 278 } 279 b1: { 280 2, @attr1() 281 } 282 b2: { 283 2, @attr2(), @attr1() 284 } 285 } 286 dontMergeForDef: { 287 a: { 288 @decl1() 289 } 290 b: { 291 @decl1(), @decl2() 292 x: 1 293 } 294 c: { 295 @decl1(), @decl2() 296 } 297 d: { 298 @decl2(), @decl1() 299 } 300 } 301 }