cuelang.org/go@v0.10.1/cue/testdata/definitions/visibility.txtar (about) 1 -- in.cue -- 2 #foo: { 3 name: string 4 } 5 foo: #foo & { 6 // These should all be allowed. 7 _name: "foo" 8 _#name: "bar" 9 10 #name: "baz" 11 } 12 -- out/eval/stats -- 13 Leaks: 0 14 Freed: 8 15 Reused: 5 16 Allocs: 3 17 Retain: 0 18 19 Unifications: 8 20 Conjuncts: 10 21 Disjuncts: 8 22 -- out/evalalpha -- 23 (struct){ 24 #foo: (#struct){ 25 name: (string){ string } 26 } 27 foo: (#struct){ 28 _name: (string){ "foo" } 29 _#name: (string){ "bar" } 30 #name: (string){ "baz" } 31 name: (string){ string } 32 } 33 } 34 -- diff/-out/evalalpha<==>+out/eval -- 35 diff old new 36 --- old 37 +++ new 38 @@ -3,9 +3,9 @@ 39 name: (string){ string } 40 } 41 foo: (#struct){ 42 - name: (string){ string } 43 _name: (string){ "foo" } 44 _#name: (string){ "bar" } 45 #name: (string){ "baz" } 46 + name: (string){ string } 47 } 48 } 49 -- diff/todo/p3 -- 50 Reordering. 51 -- diff/explanation -- 52 New evaluator should ultimately disallow new definitions in closed structs. 53 -- out/eval -- 54 (struct){ 55 #foo: (#struct){ 56 name: (string){ string } 57 } 58 foo: (#struct){ 59 name: (string){ string } 60 _name: (string){ "foo" } 61 _#name: (string){ "bar" } 62 #name: (string){ "baz" } 63 } 64 } 65 -- out/compile -- 66 --- in.cue 67 { 68 #foo: { 69 name: string 70 } 71 foo: (〈0;#foo〉 & { 72 _name: "foo" 73 _#name: "bar" 74 #name: "baz" 75 }) 76 }