...

Text file src/cuelang.org/go/cue/testdata/definitions/visibility.txtar

Documentation: cuelang.org/go/cue/testdata/definitions

     1-- in.cue --
     2#foo: {
     3	name: string
     4}
     5foo: #foo & {
     6	// These should all be allowed.
     7	_name:  "foo"
     8	_#name: "bar"
     9
    10	#name: "baz"
    11}
    12-- out/eval/stats --
    13Leaks:  0
    14Freed:  8
    15Reused: 5
    16Allocs: 3
    17Retain: 0
    18
    19Unifications: 8
    20Conjuncts:    10
    21Disjuncts:    8
    22-- out/evalalpha --
    23Errors:
    24foo.#name: field not allowed:
    25    ./in.cue:4:6
    26    ./in.cue:9:2
    27
    28Result:
    29(_|_){
    30  // [eval]
    31  #foo: (#struct){
    32    name: (string){ string }
    33  }
    34  foo: (_|_){
    35    // [eval]
    36    _name: (string){ "foo" }
    37    _#name: (string){ "bar" }
    38    #name: (_|_){
    39      // [eval] foo.#name: field not allowed:
    40      //     ./in.cue:4:6
    41      //     ./in.cue:9:2
    42    }
    43    name: (string){ string }
    44  }
    45}
    46-- diff/-out/evalalpha<==>+out/eval --
    47diff old new
    48--- old
    49+++ new
    50@@ -1,11 +1,23 @@
    51-(struct){
    52+Errors:
    53+foo.#name: field not allowed:
    54+    ./in.cue:4:6
    55+    ./in.cue:9:2
    56+
    57+Result:
    58+(_|_){
    59+  // [eval]
    60   #foo: (#struct){
    61     name: (string){ string }
    62   }
    63-  foo: (#struct){
    64-    name: (string){ string }
    65+  foo: (_|_){
    66+    // [eval]
    67     _name: (string){ "foo" }
    68     _#name: (string){ "bar" }
    69-    #name: (string){ "baz" }
    70+    #name: (_|_){
    71+      // [eval] foo.#name: field not allowed:
    72+      //     ./in.cue:4:6
    73+      //     ./in.cue:9:2
    74+    }
    75+    name: (string){ string }
    76   }
    77 }
    78-- diff/explanation --
    79New evaluator now disallows new definitions in closed structs.
    80-- out/eval --
    81(struct){
    82  #foo: (#struct){
    83    name: (string){ string }
    84  }
    85  foo: (#struct){
    86    name: (string){ string }
    87    _name: (string){ "foo" }
    88    _#name: (string){ "bar" }
    89    #name: (string){ "baz" }
    90  }
    91}
    92-- out/compile --
    93--- in.cue
    94{
    95  #foo: {
    96    name: string
    97  }
    98  foo: (〈0;#foo〉 & {
    99    _name: "foo"
   100    _#name: "bar"
   101    #name: "baz"
   102  })
   103}

View as plain text