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  }