cuelang.org/go@v0.10.1/cue/testdata/resolve/025_definitions.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: definitions
     4  #evalPartial
     5  -- in.cue --
     6  #Foo: {
     7  	field: int
     8  	recursive: {
     9  		field: string
    10  	}
    11  }
    12  
    13  // Allowed
    14  #Foo1: {field: int}
    15  #Foo1: {field2: string}
    16  
    17  foo: #Foo
    18  foo: {feild: 2}
    19  
    20  foo1: #Foo
    21  foo1: {
    22  	field: 2
    23  	recursive: {
    24  		feild: 2 // Not caught as per spec. TODO: change?
    25  	}
    26  }
    27  
    28  #Bar: {
    29  	field: int
    30  	{[A=_]: int}
    31  }
    32  bar: #Bar
    33  bar: {feild: 2}
    34  
    35  #Mixed: string
    36  Mixed:  string
    37  
    38  mixedRec: {#Mixed: string}
    39  mixedRec: {Mixed: string}
    40  -- out/def --
    41  #Foo: {
    42  	field: int
    43  	recursive: {
    44  		field: string
    45  	}
    46  }
    47  
    48  // Allowed
    49  #Foo1: {
    50  	field:  int
    51  	field2: string
    52  }
    53  foo:  _|_ // field "feild" not allowed in closed struct
    54  foo1: #Foo & {
    55  	field: 2
    56  	recursive: {
    57  		feild: 2
    58  	}
    59  }
    60  #Bar: {
    61  	{[A=string]: int}
    62  	field: int
    63  }
    64  bar: #Bar & {
    65  	feild: 2
    66  }
    67  #Mixed: string
    68  Mixed:  string
    69  mixedRec: {
    70  	#Mixed: string
    71  	Mixed:  string
    72  }
    73  -- out/legacy-debug --
    74  <0>{#Foo: <1>C{field: int, recursive: <2>C{field: string}}, #Foo1: <3>C{field: int, field2: string}, foo: _|_(2:field "feild" not allowed in closed struct), foo1: <4>C{field: 2, recursive: _|_(2:field "feild" not allowed in closed struct)}, #Bar: <5>{[]: <6>(A: string)->int, field: int}, bar: <7>{[]: <8>(A: string)->int, field: int, feild: 2}, #Mixed: string, Mixed: string, mixedRec: <9>{#Mixed: string, Mixed: string}}
    75  -- out/compile --
    76  --- in.cue
    77  {
    78    #Foo: {
    79      field: int
    80      recursive: {
    81        field: string
    82      }
    83    }
    84    #Foo1: {
    85      field: int
    86    }
    87    #Foo1: {
    88      field2: string
    89    }
    90    foo: 〈0;#Foo〉
    91    foo: {
    92      feild: 2
    93    }
    94    foo1: 〈0;#Foo〉
    95    foo1: {
    96      field: 2
    97      recursive: {
    98        feild: 2
    99      }
   100    }
   101    #Bar: {
   102      field: int
   103      {
   104        [_]: int
   105      }
   106    }
   107    bar: 〈0;#Bar〉
   108    bar: {
   109      feild: 2
   110    }
   111    #Mixed: string
   112    Mixed: string
   113    mixedRec: {
   114      #Mixed: string
   115    }
   116    mixedRec: {
   117      Mixed: string
   118    }
   119  }
   120  -- out/eval/stats --
   121  Leaks:  0
   122  Freed:  28
   123  Reused: 24
   124  Allocs: 4
   125  Retain: 0
   126  
   127  Unifications: 28
   128  Conjuncts:    43
   129  Disjuncts:    28
   130  -- out/evalalpha --
   131  Errors:
   132  foo1.recursive.feild: field not allowed:
   133      ./in.cue:19:3
   134  foo.feild: field not allowed:
   135      ./in.cue:12:6
   136      ./in.cue:13:7
   137  
   138  Result:
   139  (_|_){
   140    // [eval]
   141    #Foo: (#struct){
   142      field: (int){ int }
   143      recursive: (#struct){
   144        field: (string){ string }
   145      }
   146    }
   147    #Foo1: (#struct){
   148      field: (int){ int }
   149      field2: (string){ string }
   150    }
   151    foo: (_|_){
   152      // [eval]
   153      feild: (_|_){
   154        // [eval] foo.feild: field not allowed:
   155        //     ./in.cue:12:6
   156        //     ./in.cue:13:7
   157      }
   158      field: (int){ int }
   159      recursive: (#struct){
   160        field: (string){ string }
   161      }
   162    }
   163    foo1: (_|_){
   164      // [eval]
   165      field: (int){ 2 }
   166      recursive: (_|_){
   167        // [eval]
   168        feild: (_|_){
   169          // [eval] foo1.recursive.feild: field not allowed:
   170          //     ./in.cue:19:3
   171        }
   172        field: (string){ string }
   173      }
   174    }
   175    #Bar: (#struct){
   176      field: (int){ int }
   177    }
   178    bar: (#struct){
   179      feild: (int){ 2 }
   180      field: (int){ int }
   181    }
   182    #Mixed: (string){ string }
   183    Mixed: (string){ string }
   184    mixedRec: (struct){
   185      #Mixed: (string){ string }
   186      Mixed: (string){ string }
   187    }
   188  }
   189  -- diff/-out/evalalpha<==>+out/eval --
   190  diff old new
   191  --- old
   192  +++ new
   193  @@ -1,12 +1,9 @@
   194   Errors:
   195  +foo1.recursive.feild: field not allowed:
   196  +    ./in.cue:19:3
   197   foo.feild: field not allowed:
   198  -    ./in.cue:1:7
   199       ./in.cue:12:6
   200       ./in.cue:13:7
   201  -foo1.recursive.feild: field not allowed:
   202  -    ./in.cue:3:13
   203  -    ./in.cue:15:7
   204  -    ./in.cue:19:3
   205   
   206   Result:
   207   (_|_){
   208  @@ -23,16 +20,15 @@
   209     }
   210     foo: (_|_){
   211       // [eval]
   212  -    field: (int){ int }
   213  -    recursive: (#struct){
   214  -      field: (string){ string }
   215  -    }
   216       feild: (_|_){
   217         // [eval] foo.feild: field not allowed:
   218  -      //     ./in.cue:1:7
   219         //     ./in.cue:12:6
   220         //     ./in.cue:13:7
   221       }
   222  +    field: (int){ int }
   223  +    recursive: (#struct){
   224  +      field: (string){ string }
   225  +    }
   226     }
   227     foo1: (_|_){
   228       // [eval]
   229  @@ -39,13 +35,11 @@
   230       field: (int){ 2 }
   231       recursive: (_|_){
   232         // [eval]
   233  -      field: (string){ string }
   234         feild: (_|_){
   235           // [eval] foo1.recursive.feild: field not allowed:
   236  -        //     ./in.cue:3:13
   237  -        //     ./in.cue:15:7
   238           //     ./in.cue:19:3
   239         }
   240  +      field: (string){ string }
   241       }
   242     }
   243     #Bar: (#struct){
   244  @@ -52,8 +46,8 @@
   245       field: (int){ int }
   246     }
   247     bar: (#struct){
   248  -    field: (int){ int }
   249       feild: (int){ 2 }
   250  +    field: (int){ int }
   251     }
   252     #Mixed: (string){ string }
   253     Mixed: (string){ string }
   254  -- diff/todo/p2 --
   255  Positions / reordering.
   256  -- out/eval --
   257  Errors:
   258  foo.feild: field not allowed:
   259      ./in.cue:1:7
   260      ./in.cue:12:6
   261      ./in.cue:13:7
   262  foo1.recursive.feild: field not allowed:
   263      ./in.cue:3:13
   264      ./in.cue:15:7
   265      ./in.cue:19:3
   266  
   267  Result:
   268  (_|_){
   269    // [eval]
   270    #Foo: (#struct){
   271      field: (int){ int }
   272      recursive: (#struct){
   273        field: (string){ string }
   274      }
   275    }
   276    #Foo1: (#struct){
   277      field: (int){ int }
   278      field2: (string){ string }
   279    }
   280    foo: (_|_){
   281      // [eval]
   282      field: (int){ int }
   283      recursive: (#struct){
   284        field: (string){ string }
   285      }
   286      feild: (_|_){
   287        // [eval] foo.feild: field not allowed:
   288        //     ./in.cue:1:7
   289        //     ./in.cue:12:6
   290        //     ./in.cue:13:7
   291      }
   292    }
   293    foo1: (_|_){
   294      // [eval]
   295      field: (int){ 2 }
   296      recursive: (_|_){
   297        // [eval]
   298        field: (string){ string }
   299        feild: (_|_){
   300          // [eval] foo1.recursive.feild: field not allowed:
   301          //     ./in.cue:3:13
   302          //     ./in.cue:15:7
   303          //     ./in.cue:19:3
   304        }
   305      }
   306    }
   307    #Bar: (#struct){
   308      field: (int){ int }
   309    }
   310    bar: (#struct){
   311      field: (int){ int }
   312      feild: (int){ 2 }
   313    }
   314    #Mixed: (string){ string }
   315    Mixed: (string){ string }
   316    mixedRec: (struct){
   317      #Mixed: (string){ string }
   318      Mixed: (string){ string }
   319    }
   320  }