...

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

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

     1# DO NOT EDIT; generated by go run testdata/gen.go
     2#
     3#name: definitions with embedding
     4#evalPartial
     5-- in.cue --
     6#E: {
     7	a: {b: int}
     8}
     9
    10#S: {
    11	#E
    12	a: {c: int}
    13	b: 3
    14}
    15
    16// adding a field to a nested struct that is closed.
    17#e1: #S & {a: d: 4}
    18
    19// literal struct not closed until after unification.
    20#v1: #S & {a: c: 4}
    21-- out/def --
    22#E: {
    23	a: {
    24		b: int
    25	}
    26}
    27#S: {
    28	a: {
    29		c: int
    30	}
    31	b: 3
    32	#E
    33}
    34
    35// adding a field to a nested struct that is closed.
    36#e1: #S & {
    37	a: {
    38		d: 4
    39	}
    40}
    41
    42// literal struct not closed until after unification.
    43#v1: #S & {
    44	a: {
    45		c: 4
    46	}
    47}
    48-- out/export --
    49
    50-- out/yaml --
    51{}
    52-- out/json --
    53{}
    54-- out/legacy-debug --
    55<0>{#E: <1>C{a: <2>C{b: int}}, #S: <3>C{a: <4>C{b: int, c: int}, b: 3}, #e1: <5>C{a: _|_(4:field "d" not allowed in closed struct), b: 3}, #v1: <6>C{a: <7>C{b: int, c: 4}, b: 3}}
    56-- out/compile --
    57--- in.cue
    58{
    59  #E: {
    60    a: {
    61      b: int
    62    }
    63  }
    64  #S: {
    65    〈1;#E〉
    66    a: {
    67      c: int
    68    }
    69    b: 3
    70  }
    71  #e1: (〈0;#S〉 & {
    72    a: {
    73      d: 4
    74    }
    75  })
    76  #v1: (〈0;#S〉 & {
    77    a: {
    78      c: 4
    79    }
    80  })
    81}
    82-- out/eval/stats --
    83Leaks:  0
    84Freed:  20
    85Reused: 16
    86Allocs: 4
    87Retain: 0
    88
    89Unifications: 20
    90Conjuncts:    36
    91Disjuncts:    20
    92-- out/evalalpha --
    93Errors:
    94#e1.a.d: field not allowed:
    95    ./in.cue:12:15
    96
    97Result:
    98(_|_){
    99  // [eval]
   100  #E: (#struct){
   101    a: (#struct){
   102      b: (int){ int }
   103    }
   104  }
   105  #S: (#struct){
   106    a: (#struct){
   107      c: (int){ int }
   108      b: (int){ int }
   109    }
   110    b: (int){ 3 }
   111  }
   112  #e1: (_|_){
   113    // [eval]
   114    a: (_|_){
   115      // [eval]
   116      d: (_|_){
   117        // [eval] #e1.a.d: field not allowed:
   118        //     ./in.cue:12:15
   119      }
   120      c: (int){ int }
   121      b: (int){ int }
   122    }
   123    b: (int){ 3 }
   124  }
   125  #v1: (#struct){
   126    a: (#struct){
   127      c: (int){ 4 }
   128      b: (int){ int }
   129    }
   130    b: (int){ 3 }
   131  }
   132}
   133-- diff/-out/evalalpha<==>+out/eval --
   134diff old new
   135--- old
   136+++ new
   137@@ -1,9 +1,5 @@
   138 Errors:
   139 #e1.a.d: field not allowed:
   140-    ./in.cue:2:5
   141-    ./in.cue:6:2
   142-    ./in.cue:7:5
   143-    ./in.cue:12:6
   144     ./in.cue:12:15
   145 
   146 Result:
   147@@ -16,8 +12,8 @@
   148   }
   149   #S: (#struct){
   150     a: (#struct){
   151-      b: (int){ int }
   152-      c: (int){ int }
   153+      c: (int){ int }
   154+      b: (int){ int }
   155     }
   156     b: (int){ 3 }
   157   }
   158@@ -25,23 +21,19 @@
   159     // [eval]
   160     a: (_|_){
   161       // [eval]
   162-      b: (int){ int }
   163-      c: (int){ int }
   164       d: (_|_){
   165         // [eval] #e1.a.d: field not allowed:
   166-        //     ./in.cue:2:5
   167-        //     ./in.cue:6:2
   168-        //     ./in.cue:7:5
   169-        //     ./in.cue:12:6
   170         //     ./in.cue:12:15
   171       }
   172+      c: (int){ int }
   173+      b: (int){ int }
   174     }
   175     b: (int){ 3 }
   176   }
   177   #v1: (#struct){
   178     a: (#struct){
   179-      b: (int){ int }
   180       c: (int){ 4 }
   181+      b: (int){ int }
   182     }
   183     b: (int){ 3 }
   184   }
   185-- diff/todo/p2 --
   186Reordering / missing positions.
   187-- out/eval --
   188Errors:
   189#e1.a.d: field not allowed:
   190    ./in.cue:2:5
   191    ./in.cue:6:2
   192    ./in.cue:7:5
   193    ./in.cue:12:6
   194    ./in.cue:12:15
   195
   196Result:
   197(_|_){
   198  // [eval]
   199  #E: (#struct){
   200    a: (#struct){
   201      b: (int){ int }
   202    }
   203  }
   204  #S: (#struct){
   205    a: (#struct){
   206      b: (int){ int }
   207      c: (int){ int }
   208    }
   209    b: (int){ 3 }
   210  }
   211  #e1: (_|_){
   212    // [eval]
   213    a: (_|_){
   214      // [eval]
   215      b: (int){ int }
   216      c: (int){ int }
   217      d: (_|_){
   218        // [eval] #e1.a.d: field not allowed:
   219        //     ./in.cue:2:5
   220        //     ./in.cue:6:2
   221        //     ./in.cue:7:5
   222        //     ./in.cue:12:6
   223        //     ./in.cue:12:15
   224      }
   225    }
   226    b: (int){ 3 }
   227  }
   228  #v1: (#struct){
   229    a: (#struct){
   230      b: (int){ int }
   231      c: (int){ 4 }
   232    }
   233    b: (int){ 3 }
   234  }
   235}

View as plain text