cuelang.org/go@v0.13.0/cue/testdata/eval/closedness.txtar (about)

     1  // Issue #852
     2  
     3  -- in.cue --
     4  #E: {
     5  	c: int
     6  }
     7  #A: {
     8  	b: int
     9  	q: {
    10  		#E
    11  		d: int
    12  	}
    13  }
    14  a: #A & {
    15  	b: 3
    16  	q: {
    17  		c: 2
    18  		e: 43
    19  	}
    20  }
    21  
    22  // `a` is evaluated through the comprehension first. Ensure that
    23  // this does not bypass closedness checks.
    24  issue852: {
    25  	#A: {
    26  		[=~"^a-z$"]: string
    27  	}
    28  
    29  	a: #A
    30  
    31  	a: Foo: "foo"
    32  
    33  	for k, v in a {
    34  		b: "\(k)": v
    35  	}
    36  }
    37  
    38  dynamic: {
    39  	#D: {
    40  		key:   "foo"
    41  		(key): int
    42  	}
    43  	d: #D & {foo: 3}
    44  }
    45  -- embed.cue --
    46  issue3325: ok: {
    47  	#Items: [Name=string]: {
    48  		name: Name
    49  	}
    50  
    51  	#Base: {
    52  		name: "base"
    53  		type: string
    54  
    55  		items: #Items
    56  	}
    57  
    58  	#Extended: #Base & {
    59  		type: "extended"
    60  		items: "my-item": {}
    61  	}
    62  
    63  	broken: {
    64  		#Base
    65  		#Extended
    66  	}
    67  
    68  	works: {
    69  		#Extended
    70  		#Base
    71  	}
    72  }
    73  
    74  patterns: shallow: {
    75  	#a: [>="k"]: int
    76  	#b: [<="m"]: int
    77  	#c: [>="w"]: int
    78  	#d: [<="y"]: int
    79  
    80  	single: {
    81  		X: #a // "k" <= x
    82  		err: X
    83  		err: j: 3
    84  
    85  		ok: X
    86  		ok: k: 3
    87  	}
    88  
    89  	and: p1: {
    90  		X: #a & #b // "k" <= x && x <= "m"
    91  
    92  		err: X
    93  		err: j: 3
    94  
    95  		ok: X
    96  		ok: k: 3
    97  	}
    98  
    99  	and: p2: {
   100  		X: #b & #a // "k" <= x && x <= "m"
   101  		err: X
   102  		err: j: 3
   103  
   104  		ok: X
   105  		ok: k: 3
   106  	}
   107  
   108  	andEmbed: p1: {
   109  		X: { #a & #b } // "k" <= x && x <= "m"
   110  
   111  		err: X
   112  		err: j: 3
   113  
   114  		ok: X
   115  		ok: k: 3
   116  	}
   117  
   118  	andEmbed: p2: {
   119  		X: { #b & #a } // "k" <= x && x <= "m"
   120  		err: X
   121  		err: j: 3
   122  
   123  		ok: X
   124  		ok: k: 3
   125  	}
   126  
   127  	orEmbed: p1: {
   128  		X: { #a, #b } // "k" <= x && x <= "m"
   129  
   130  		ok1: X
   131  		ok1: j: 3
   132  
   133  		ok2: X
   134  		ok2: k: 3
   135  	}
   136  
   137  	orEmbed: p2: {
   138  		X: { #b, #a } // "k" <= x && x <= "m"
   139  		ok1: X
   140  		ok1: j: 3
   141  
   142  		ok2: X
   143  		ok2: k: 3
   144  	}
   145  
   146  	andOrEmbed: t1: p1: {
   147  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y")
   148  		X: {
   149  			#a & #b
   150  			#c & #d
   151  		}
   152  		err1: X
   153  		err1: j: 3
   154  
   155  		ok1: X
   156  		ok1: k: 3
   157  	}
   158  
   159  	andOrEmbed: t1: p2: {
   160  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y")
   161  		X: {
   162  			#c & #d
   163  			#a & #b
   164  		}
   165  		err1: X
   166  		err1: j: 3
   167  
   168  		ok1: X
   169  		ok1: k: 3
   170  	}
   171  
   172  	andOrEmbed: t2:{
   173  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y") || x == "p"
   174  		X: {
   175  			#a & #b
   176  			#c & #d
   177  			["p"]: int
   178  		}
   179  		err1: X
   180  		err1: j: 3
   181  
   182  		ok1: X
   183  		ok1: k: 3
   184  
   185  		ok2: X
   186  		ok2: p: 3
   187  	}
   188  
   189  	// The last indirection is not a definition.
   190  	indirect: {
   191  		a: [>="k"]: int
   192  		#a: a
   193  
   194  		p1: { // XXX // link to code
   195  			X: #a
   196  			err1: X
   197  			err1: j: 3
   198  
   199  			err2: X & __no_sharing
   200  			err2: j: 3
   201  
   202  			ok: X
   203  			ok:k: 3
   204  		}
   205  
   206  		p2: {
   207  			#a: a & __no_sharing
   208  			X: #a
   209  
   210  			err1: X
   211  			err1: j: 3
   212  
   213  			err2: X & __no_sharing
   214  			err2: j: 3
   215  
   216  			ok: X
   217  			ok: k: 3
   218  		}
   219  
   220  		p3: {
   221  			X: #a & __no_sharing
   222  
   223  			err1: X
   224  			err1: j: 3
   225  
   226  			err2: X & __no_sharing
   227  			err2: j: 3
   228  
   229  			ok: X
   230  			ok: k: 3
   231  		}
   232  
   233  		p4: {
   234  			#a: a & __no_sharing
   235  			X: #a
   236  			X: #a & __no_sharing
   237  
   238  			err1: X
   239  			err1: j: 3
   240  
   241  			err2: X & __no_sharing
   242  			err2: j: 3
   243  
   244  			ok: X
   245  			ok: k: 3
   246  		}
   247  	}
   248  }
   249  
   250  patterns: nested: {
   251  	#a: x: y: [>="k"]: int
   252  	#b: x: y: [<="m"]: int
   253  	#c: x: y: [>="w"]: int
   254  	#d: x: y: [<="y"]: int
   255  
   256  	single: {
   257  		X: #a // "k" <= x
   258  		err: X
   259  		err: x: y: j: 3
   260  
   261  		ok: X
   262  		ok: x: y: k: 3
   263  	}
   264  
   265  	and: p1: {
   266  		X: #a & #b // "k" <= x && x <= "m"
   267  
   268  		err: X
   269  		err: x: y: j: 3
   270  
   271  		ok: X
   272  		ok: x: y: k: 3
   273  	}
   274  
   275  	and: p2: {
   276  		X: #b & #a // "k" <= x && x <= "m"
   277  		err: X
   278  		err: x: y: j: 3
   279  
   280  		ok: X
   281  		ok: x: y: k: 3
   282  	}
   283  
   284  	andEmbed: p1: {
   285  		X: { #a & #b } // "k" <= x && x <= "m"
   286  
   287  		err: X
   288  		err: x: y: j: 3
   289  
   290  		ok: X
   291  		ok: x: y: k: 3
   292  	}
   293  
   294  	andEmbed: p2: {
   295  		X: { #b & #a } // "k" <= x && x <= "m"
   296  		err: X
   297  		err: x: y: j: 3
   298  
   299  		ok: X
   300  		ok: x: y: k: 3
   301  	}
   302  
   303  	orEmbed: p1: {
   304  		X: { #a, #b } // "k" <= x && x <= "m"
   305  
   306  		ok1: X
   307  		ok1: x: y: j: 3
   308  
   309  		ok2: X
   310  		ok2: x: y: k: 3
   311  	}
   312  
   313  	orEmbed: p2: {
   314  		X: { #b, #a } // "k" <= x && x <= "m"
   315  		ok1: X
   316  		ok1: x: y: j: 3
   317  
   318  		ok2: X
   319  		ok2: x: y: k: 3
   320  	}
   321  
   322  	andOrEmbed: t1: p1: {
   323  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y")
   324  		X: {
   325  			#a & #b
   326  			#c & #d
   327  		}
   328  		err1: X
   329  		err1: x: y: j: 3
   330  
   331  		ok1: X
   332  		ok1: x: y: k: 3
   333  	}
   334  
   335  	andOrEmbed: t1: p2: {
   336  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y")
   337  		X: {
   338  			#c & #d
   339  			#a & #b
   340  		}
   341  		err1: X
   342  		err1: x: y: j: 3
   343  
   344  		ok1: X
   345  		ok1: x: y: k: 3
   346  	}
   347  
   348  	andOrEmbed: t2:{
   349  		// ("k" <= x && x <= "m")  || ("w" <= x && x <= "y") || x == "p"
   350  		X: {
   351  			#a & #b
   352  			#c & #d
   353  			["p"]: int
   354  		}
   355  		err1: X
   356  		err1: x: y: j: 3
   357  
   358  		ok1: X
   359  		ok1: x: y: k: 3
   360  
   361  		ok2: X
   362  		ok2: x: y: p: 3
   363  	}
   364  
   365  	// The last indirection is not a definition.
   366  	indirect: {
   367  		a: x: y: [>="k"]: int
   368  		#a: a
   369  
   370  		p1: {
   371  			X: #a
   372  			err1: X
   373  			err1: x: y: j: 3
   374  
   375  			err2: X & __no_sharing
   376  			err2: x: y: j: 3
   377  
   378  			ok: X
   379  			ok: x: y: k: 3
   380  		}
   381  
   382  		p2: {
   383  			#a: a & __no_sharing
   384  			X: #a
   385  
   386  			err1: X
   387  			err1: x: y: j: 3
   388  
   389  			err2: X & __no_sharing
   390  			err2: x: y: j: 3
   391  
   392  			ok: X
   393  			ok: x: y: k: 3
   394  		}
   395  
   396  		p3: {
   397  			X: #a & __no_sharing
   398  
   399  			err1: X
   400  			err1: x: y: j: 3
   401  
   402  			err2: X & __no_sharing
   403  			err2: x: y: j: 3
   404  
   405  			ok: X
   406  			ok: x: y: k: 3
   407  		}
   408  
   409  		p4: {
   410  			#a: a & __no_sharing
   411  			X: #a
   412  			X: #a & __no_sharing
   413  
   414  			err1: X
   415  			err1: x: y: j: 3
   416  
   417  			err2: X & __no_sharing
   418  			err2: x: y: j: 3
   419  
   420  			ok: X
   421  			ok: x: y: k: 3
   422  		}
   423  	}
   424  }
   425  
   426  issue2241: {
   427  	#close: {}
   428  
   429  	a: {
   430  	    x: q: 2
   431  	    #close
   432  	}
   433  
   434  	b: a
   435  	b: x: r: 4
   436  }
   437  
   438  -- ellipsis.cue --
   439  issue3778: full: {
   440  	#x: a?: string
   441  	#y: #x & { ... }
   442  	z: #y & {
   443  		a: "ok"
   444  		b: "something"
   445  	}
   446  }
   447  issue3778: keepOpen: {
   448  	#x: { a?: string, ... }
   449  	#y: #x & { ... }
   450  	z: #y & {
   451  		a: "ok"
   452  		b: "something"
   453  	}
   454  }
   455  
   456  // All three reproducers below should fail with "field not allowed".
   457  issue1867: one: {
   458  	#T: close({})
   459  	#T: {...}
   460  	x: #T
   461  	x: foo: "foo"
   462  }
   463  issue1867: two: {
   464  	#S: {}
   465  	#T: s: #S
   466  	#T: s: {...}
   467  	x: #T.s
   468  	x: foo: "foo"
   469  }
   470  // This third version used to not fail as expected on evalv2.
   471  issue1867: three: {
   472  	#T: s: close({})
   473  	#T: s: {...}
   474  	x: #T.s
   475  	x: foo: "foo"
   476  }
   477  issue3924: one: {
   478  	#Schema: {
   479  		...
   480  		{[string]: #SchemaInner}
   481  	}
   482  	#SchemaInner: allowed?: string
   483  
   484  	out: #Schema & {foo: disallowed: "foo"} // should fail
   485  }
   486  issue3924: two: {
   487  	#Schema: {
   488  		{[string]: #job}
   489  
   490  		#job: matchN(1, [{
   491  			other?: string
   492  			...
   493  		}]) & close({
   494  			allowed?: string
   495  		})
   496  	}
   497  	out: #Schema & {foo: disallowed: "bar"} // should fail
   498  }
   499  
   500  -- reroot.cue --
   501  import "list"
   502  
   503  issue3330: {
   504  	let: ok: {
   505  		#struct: {
   506  			let empty = {}
   507  
   508  			field: null | { n: int }
   509  			field: empty & { n: 3 }
   510  		}
   511  
   512  		out: list.Concat([[#struct]])
   513  	}
   514  	matthew: ok1: {
   515  		#struct: {
   516  			field: { n: 3 } & g
   517  			g: {}
   518  		}
   519  
   520  		out: #struct & {}
   521  	}
   522  	matthew: ok2: {
   523  		#struct: {
   524  			field: { n: 3 } & g
   525  			g: {}
   526  		}
   527  
   528  		out: #struct
   529  		out2: out & {}
   530  	}
   531  }
   532  issue3331: {
   533  	original: ok: {
   534  		#A: {
   535  			let b = {}
   536  			c: b & {
   537  				d: 1
   538  			}
   539  		}
   540  		list.Concat([[#A]])
   541  	}
   542  	variant1: ok: {
   543  		#A: {
   544  			let b = {}
   545  			c: b & {
   546  				d: 1
   547  			}
   548  		}
   549  		[[#A]]
   550  	}
   551  }
   552  
   553  // indirect tests cases where a reference indirectly crosses a node that
   554  // references a definition, thereby indirectly referencing it.
   555  indirect: {
   556  	embed: err1: {
   557  		#A: {
   558  			x: {#x, #y}
   559  			zx: x.a
   560  		}
   561  
   562  		#x: {a: b: 1}
   563  		#y: {a: c: 2}
   564  
   565  		b: #A
   566  
   567  		b1: b.zx
   568  		b1: d: 1 // This should fail as b.zx crosses a reference to definition.
   569  	}
   570  	closed: err1: {
   571  		X: {
   572  			// refer to a value that will be closed after unification in another struct.
   573  			a: b
   574  			b: {}
   575  			a: e: 1
   576  		}
   577  		Y: X
   578  		Y: {
   579  			b: c
   580  			c: #X
   581  		}
   582  		#X: {}
   583  	}
   584  }
   585  // nested.a
   586  nested: ok1: {
   587  	#A: {
   588  	b: {}
   589  
   590  	#B: {
   591  		c: b & {
   592  			d: 1
   593  			}
   594  		}
   595  	}
   596  	x: #A
   597  }
   598  nested: embed: ok: {
   599  	x: #A
   600  	#A: {
   601  		k
   602  	}
   603  	k: {
   604  		d: b & {e: int}
   605  		b: {}
   606  	}
   607  }
   608  // nested.b tests insertion of a field (b) that has a conjunct rooted within
   609  // the tree it is referred in as well as a conjunct outside of it that refers
   610  // to a definition.
   611  nested: err1: {
   612  	x: #A
   613  	#A: {
   614  		b: f: 1
   615  		v: #V
   616  		#V: {
   617  			c: b & { // Fails as #B is not compatible.
   618  				d: 1
   619  			}
   620  		}
   621  	}
   622  	x: b: #B
   623  	#B: g: 1
   624  }
   625  
   626  nested: err2: {
   627  	#A: {
   628  		b: {} // error only reported here.
   629  		c: b & {
   630  			// error (g not allowed) not reported here, as it would be okay if b
   631  			// were valid. Instead, it is reported at b only. This is conform
   632  			// the spec.
   633  			d: 1
   634  		}
   635  	}
   636  	x: #A
   637  	x: b: g: 1
   638  }
   639  
   640  inline: {
   641  	#x: y: z?: name: string
   642  
   643  	err1: (#x & {y: z: _}).y.z & {
   644  		name: "a"
   645  		age1: 5 // not allowed
   646  	}
   647  	err2: (#x.y & {z: _}).z & {
   648  		name: "a"
   649  		age2: 5 // not allowed
   650  	}
   651  }
   652  
   653  // minInDef defines examples where a definition is mixed into an open struct,
   654  // where then this struct refers to a field that is closed by the definition.
   655  mixInDef: {
   656  	refInside: {
   657  		#x: b: c: {d: {}, e: f: {} }
   658  		a: #x
   659  		a: b: c: d: {}
   660  		a: b: c: e: c.d
   661  	}
   662  	refEdge: {
   663  		#x: c: {d: {}, e: f: {} }
   664  		a: #x
   665  		a: c: d: {}
   666  		a: c: e: c.d
   667  	}
   668  	refOutside: {
   669  		#x: c: {d: {}, e: f: {} }
   670  		a: #x
   671  		a: c: d: {}
   672  		a: c: e: a.c.d // crosses definition
   673  	}
   674  }
   675  
   676  issue3601: original: {
   677  	out: {
   678  		#Transform.output
   679  	}
   680  	#Transform: output: (#Patch & {}).output
   681  	#Patch: {
   682  		target: {}
   683  		output: foo: {
   684  			final: target
   685  			final: version: "v1"
   686  		}
   687  	}
   688  }
   689  issue3601: originalNoShare: {
   690  	// Like the original, but with explicit no sharing.
   691  	out: {
   692  		#Transform.output
   693  	}
   694  	#Transform: output: (#Patch & __no_sharing).output
   695  	#Patch: {
   696  		target: {}
   697  		output: foo: {
   698  			final: target
   699  			final: version: "v1"
   700  		}
   701  	}
   702  }
   703  issue3601: reduced: {
   704  	#X: {
   705  		a: b: c: "v1"
   706  		a: b: empty
   707  		empty: {}
   708  	}
   709  
   710  	original: {
   711  		Y: (#X & __no_sharing).a
   712  		out: Y & __no_sharing
   713  	}
   714  	moreInlining: {
   715  		out: (#X & {}).a & {}
   716  	}
   717  	noInline: {
   718  		Y: #X & __no_sharing
   719  		Z: Y & __no_sharing
   720  		out: Z.a & __no_sharing
   721  	}
   722  	moreNesting: {
   723  		#X: {
   724  			a: b: c: d: "v1"
   725  			a: b: c: empty
   726  			empty: {}
   727  		}
   728  		Y: (#X.a & __no_sharing).b
   729  		Z: Y & __no_sharing
   730  	}
   731  }
   732  
   733  -- validation.cue --
   734  import "list"
   735  
   736  issue3332: {
   737  	#def: field: list.MinItems(1)
   738  	use: #def & {
   739  	  field: ["value"]
   740  	}
   741  }
   742  
   743  -- out/evalalpha/stats --
   744  Leaks:  989
   745  Freed:  0
   746  Reused: 0
   747  Allocs: 989
   748  Retain: 0
   749  
   750  Unifications: 960
   751  Conjuncts:    2064
   752  Disjuncts:    2
   753  
   754  CloseIDElems: 4777
   755  NumCloseIDs: 699
   756  -- diff/-out/evalalpha/stats<==>+out/eval/stats --
   757  diff old new
   758  --- old
   759  +++ new
   760  @@ -1,9 +1,12 @@
   761  -Leaks:  21
   762  -Freed:  828
   763  -Reused: 820
   764  -Allocs: 29
   765  -Retain: 89
   766  -
   767  -Unifications: 843
   768  -Conjuncts:    2097
   769  -Disjuncts:    918
   770  +Leaks:  989
   771  +Freed:  0
   772  +Reused: 0
   773  +Allocs: 989
   774  +Retain: 0
   775  +
   776  +Unifications: 960
   777  +Conjuncts:    2064
   778  +Disjuncts:    2
   779  +
   780  +CloseIDElems: 4777
   781  +NumCloseIDs: 699
   782  -- out/eval/stats --
   783  Leaks:  21
   784  Freed:  828
   785  Reused: 820
   786  Allocs: 29
   787  Retain: 89
   788  
   789  Unifications: 843
   790  Conjuncts:    2097
   791  Disjuncts:    918
   792  -- out/eval --
   793  Errors:
   794  a.q.e: field not allowed:
   795      ./in.cue:1:5
   796      ./in.cue:6:5
   797      ./in.cue:7:3
   798      ./in.cue:11:4
   799      ./in.cue:15:3
   800  indirect.closed.err1.Y.a.e: field not allowed:
   801      ./reroot.cue:73:7
   802      ./reroot.cue:74:7
   803      ./reroot.cue:75:7
   804      ./reroot.cue:77:6
   805      ./reroot.cue:79:7
   806      ./reroot.cue:80:7
   807      ./reroot.cue:82:7
   808  issue1867.one.x.foo: field not allowed:
   809      ./ellipsis.cue:20:12
   810      ./ellipsis.cue:21:7
   811      ./ellipsis.cue:22:5
   812      ./ellipsis.cue:23:5
   813  issue1867.three.x.foo: field not allowed:
   814      ./ellipsis.cue:34:15
   815      ./ellipsis.cue:35:10
   816      ./ellipsis.cue:36:5
   817      ./ellipsis.cue:37:5
   818  issue1867.two.x.foo: field not allowed:
   819      ./ellipsis.cue:26:6
   820      ./ellipsis.cue:27:9
   821      ./ellipsis.cue:28:10
   822      ./ellipsis.cue:29:5
   823      ./ellipsis.cue:30:5
   824  issue3778.full.z.b: field not allowed:
   825      ./ellipsis.cue:2:6
   826      ./ellipsis.cue:3:6
   827      ./ellipsis.cue:3:13
   828      ./ellipsis.cue:4:5
   829      ./ellipsis.cue:6:3
   830  issue3924.one.out.foo.disallowed: field not allowed:
   831      ./ellipsis.cue:42:3
   832      ./ellipsis.cue:42:14
   833      ./ellipsis.cue:44:16
   834      ./ellipsis.cue:46:7
   835      ./ellipsis.cue:46:23
   836  issue852.a.Foo: field not allowed:
   837      ./in.cue:22:6
   838      ./in.cue:26:5
   839      ./in.cue:28:5
   840  nested.err1.x.#V.c.d: field not allowed:
   841      ./reroot.cue:112:5
   842      ./reroot.cue:114:6
   843      ./reroot.cue:117:7
   844      ./reroot.cue:118:5
   845      ./reroot.cue:122:8
   846      ./reroot.cue:123:6
   847  nested.err1.x.#V.c.f: field not allowed:
   848      ./reroot.cue:112:5
   849      ./reroot.cue:114:6
   850      ./reroot.cue:117:7
   851      ./reroot.cue:117:11
   852      ./reroot.cue:122:8
   853      ./reroot.cue:123:6
   854  nested.err1.x.b.f: field not allowed:
   855      ./reroot.cue:112:5
   856      ./reroot.cue:114:6
   857      ./reroot.cue:122:8
   858      ./reroot.cue:123:6
   859  nested.err1.x.b.g: field not allowed:
   860      ./reroot.cue:112:5
   861      ./reroot.cue:114:6
   862      ./reroot.cue:122:8
   863      ./reroot.cue:123:6
   864  nested.err1.x.v.c.d: field not allowed:
   865      ./reroot.cue:112:5
   866      ./reroot.cue:114:6
   867      ./reroot.cue:115:6
   868      ./reroot.cue:117:7
   869      ./reroot.cue:118:5
   870      ./reroot.cue:122:8
   871      ./reroot.cue:123:6
   872  nested.err1.x.v.c.f: field not allowed:
   873      ./reroot.cue:112:5
   874      ./reroot.cue:114:6
   875      ./reroot.cue:115:6
   876      ./reroot.cue:117:7
   877      ./reroot.cue:117:11
   878      ./reroot.cue:122:8
   879      ./reroot.cue:123:6
   880  nested.err2.x.b.g: field not allowed:
   881      ./reroot.cue:128:6
   882      ./reroot.cue:136:5
   883      ./reroot.cue:137:8
   884  patterns.nested.and.p1.err.x.y.j: field not allowed:
   885      ./embed.cue:206:12
   886      ./embed.cue:207:12
   887      ./embed.cue:221:6
   888      ./embed.cue:221:11
   889      ./embed.cue:223:8
   890      ./embed.cue:224:14
   891  patterns.nested.and.p2.err.x.y.j: field not allowed:
   892      ./embed.cue:206:12
   893      ./embed.cue:207:12
   894      ./embed.cue:231:6
   895      ./embed.cue:231:11
   896      ./embed.cue:232:8
   897      ./embed.cue:233:14
   898  patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
   899      ./embed.cue:206:12
   900      ./embed.cue:207:12
   901      ./embed.cue:240:8
   902      ./embed.cue:240:13
   903      ./embed.cue:242:8
   904      ./embed.cue:243:14
   905  patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
   906      ./embed.cue:206:12
   907      ./embed.cue:207:12
   908      ./embed.cue:250:8
   909      ./embed.cue:250:13
   910      ./embed.cue:251:8
   911      ./embed.cue:252:14
   912  patterns.nested.andOrEmbed.t1.p1.err1.x.y.j: field not allowed:
   913      ./embed.cue:206:12
   914      ./embed.cue:207:12
   915      ./embed.cue:208:12
   916      ./embed.cue:209:12
   917      ./embed.cue:280:4
   918      ./embed.cue:280:9
   919      ./embed.cue:281:4
   920      ./embed.cue:281:9
   921      ./embed.cue:283:9
   922      ./embed.cue:284:15
   923  patterns.nested.andOrEmbed.t1.p2.err1.x.y.j: field not allowed:
   924      ./embed.cue:206:12
   925      ./embed.cue:207:12
   926      ./embed.cue:208:12
   927      ./embed.cue:209:12
   928      ./embed.cue:293:4
   929      ./embed.cue:293:9
   930      ./embed.cue:294:4
   931      ./embed.cue:294:9
   932      ./embed.cue:296:9
   933      ./embed.cue:297:15
   934  patterns.nested.andOrEmbed.t2.err1.x.y.j: field not allowed:
   935      ./embed.cue:206:12
   936      ./embed.cue:207:12
   937      ./embed.cue:208:12
   938      ./embed.cue:209:12
   939      ./embed.cue:306:4
   940      ./embed.cue:306:9
   941      ./embed.cue:307:4
   942      ./embed.cue:307:9
   943      ./embed.cue:310:9
   944      ./embed.cue:311:15
   945  patterns.nested.andOrEmbed.t2.ok2.x.y.p: field not allowed:
   946      ./embed.cue:206:12
   947      ./embed.cue:207:12
   948      ./embed.cue:208:12
   949      ./embed.cue:209:12
   950      ./embed.cue:306:4
   951      ./embed.cue:306:9
   952      ./embed.cue:307:4
   953      ./embed.cue:307:9
   954      ./embed.cue:316:8
   955      ./embed.cue:317:14
   956  patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
   957      ./embed.cue:322:12
   958      ./embed.cue:323:7
   959      ./embed.cue:326:7
   960      ./embed.cue:327:10
   961      ./embed.cue:328:16
   962  patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
   963      ./embed.cue:322:12
   964      ./embed.cue:323:7
   965      ./embed.cue:326:7
   966      ./embed.cue:330:10
   967      ./embed.cue:331:16
   968  patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
   969      ./embed.cue:322:12
   970      ./embed.cue:338:8
   971      ./embed.cue:339:7
   972      ./embed.cue:341:10
   973      ./embed.cue:342:16
   974  patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
   975      ./embed.cue:322:12
   976      ./embed.cue:338:8
   977      ./embed.cue:339:7
   978      ./embed.cue:344:10
   979      ./embed.cue:345:16
   980  patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
   981      ./embed.cue:322:12
   982      ./embed.cue:323:7
   983      ./embed.cue:352:7
   984      ./embed.cue:354:10
   985      ./embed.cue:355:16
   986  patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
   987      ./embed.cue:322:12
   988      ./embed.cue:323:7
   989      ./embed.cue:352:7
   990      ./embed.cue:357:10
   991      ./embed.cue:358:16
   992  patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
   993      ./embed.cue:322:12
   994      ./embed.cue:365:8
   995      ./embed.cue:366:7
   996      ./embed.cue:369:10
   997      ./embed.cue:370:16
   998  patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
   999      ./embed.cue:322:12
  1000      ./embed.cue:365:8
  1001      ./embed.cue:366:7
  1002      ./embed.cue:372:10
  1003      ./embed.cue:373:16
  1004  patterns.nested.single.err.x.y.j: field not allowed:
  1005      ./embed.cue:206:12
  1006      ./embed.cue:212:6
  1007      ./embed.cue:213:8
  1008      ./embed.cue:214:14
  1009  patterns.shallow.and.p1.err.j: field not allowed:
  1010      ./embed.cue:30:6
  1011      ./embed.cue:31:6
  1012      ./embed.cue:45:6
  1013      ./embed.cue:45:11
  1014      ./embed.cue:47:8
  1015      ./embed.cue:48:8
  1016  patterns.shallow.and.p2.err.j: field not allowed:
  1017      ./embed.cue:30:6
  1018      ./embed.cue:31:6
  1019      ./embed.cue:55:6
  1020      ./embed.cue:55:11
  1021      ./embed.cue:56:8
  1022      ./embed.cue:57:8
  1023  patterns.shallow.andEmbed.p1.err.j: field not allowed:
  1024      ./embed.cue:30:6
  1025      ./embed.cue:31:6
  1026      ./embed.cue:64:6
  1027      ./embed.cue:64:8
  1028      ./embed.cue:64:13
  1029      ./embed.cue:66:8
  1030      ./embed.cue:67:8
  1031  patterns.shallow.andEmbed.p2.err.j: field not allowed:
  1032      ./embed.cue:30:6
  1033      ./embed.cue:31:6
  1034      ./embed.cue:74:6
  1035      ./embed.cue:74:8
  1036      ./embed.cue:74:13
  1037      ./embed.cue:75:8
  1038      ./embed.cue:76:8
  1039  patterns.shallow.andOrEmbed.t1.p1.err1.j: field not allowed:
  1040      ./embed.cue:30:6
  1041      ./embed.cue:31:6
  1042      ./embed.cue:32:6
  1043      ./embed.cue:33:6
  1044      ./embed.cue:103:6
  1045      ./embed.cue:104:4
  1046      ./embed.cue:104:9
  1047      ./embed.cue:105:4
  1048      ./embed.cue:105:9
  1049      ./embed.cue:107:9
  1050      ./embed.cue:108:9
  1051  patterns.shallow.andOrEmbed.t1.p2.err1.j: field not allowed:
  1052      ./embed.cue:30:6
  1053      ./embed.cue:31:6
  1054      ./embed.cue:32:6
  1055      ./embed.cue:33:6
  1056      ./embed.cue:116:6
  1057      ./embed.cue:117:4
  1058      ./embed.cue:117:9
  1059      ./embed.cue:118:4
  1060      ./embed.cue:118:9
  1061      ./embed.cue:120:9
  1062      ./embed.cue:121:9
  1063  patterns.shallow.andOrEmbed.t2.err1.j: field not allowed:
  1064      ./embed.cue:30:6
  1065      ./embed.cue:31:6
  1066      ./embed.cue:32:6
  1067      ./embed.cue:33:6
  1068      ./embed.cue:129:6
  1069      ./embed.cue:130:4
  1070      ./embed.cue:130:9
  1071      ./embed.cue:131:4
  1072      ./embed.cue:131:9
  1073      ./embed.cue:134:9
  1074      ./embed.cue:135:9
  1075  patterns.shallow.indirect.p1.err1.j: field not allowed:
  1076      ./embed.cue:146:6
  1077      ./embed.cue:147:7
  1078      ./embed.cue:150:7
  1079      ./embed.cue:151:10
  1080      ./embed.cue:152:10
  1081  patterns.shallow.indirect.p1.err2.j: field not allowed:
  1082      ./embed.cue:146:6
  1083      ./embed.cue:147:7
  1084      ./embed.cue:150:7
  1085      ./embed.cue:154:10
  1086      ./embed.cue:155:10
  1087  patterns.shallow.indirect.p2.err1.j: field not allowed:
  1088      ./embed.cue:146:6
  1089      ./embed.cue:162:8
  1090      ./embed.cue:163:7
  1091      ./embed.cue:165:10
  1092      ./embed.cue:166:10
  1093  patterns.shallow.indirect.p2.err2.j: field not allowed:
  1094      ./embed.cue:146:6
  1095      ./embed.cue:162:8
  1096      ./embed.cue:163:7
  1097      ./embed.cue:168:10
  1098      ./embed.cue:169:10
  1099  patterns.shallow.indirect.p3.err1.j: field not allowed:
  1100      ./embed.cue:146:6
  1101      ./embed.cue:147:7
  1102      ./embed.cue:176:7
  1103      ./embed.cue:178:10
  1104      ./embed.cue:179:10
  1105  patterns.shallow.indirect.p3.err2.j: field not allowed:
  1106      ./embed.cue:146:6
  1107      ./embed.cue:147:7
  1108      ./embed.cue:176:7
  1109      ./embed.cue:181:10
  1110      ./embed.cue:182:10
  1111  patterns.shallow.indirect.p4.err1.j: field not allowed:
  1112      ./embed.cue:146:6
  1113      ./embed.cue:189:8
  1114      ./embed.cue:190:7
  1115      ./embed.cue:193:10
  1116      ./embed.cue:194:10
  1117  patterns.shallow.indirect.p4.err2.j: field not allowed:
  1118      ./embed.cue:146:6
  1119      ./embed.cue:189:8
  1120      ./embed.cue:190:7
  1121      ./embed.cue:196:10
  1122      ./embed.cue:197:10
  1123  patterns.shallow.single.err.j: field not allowed:
  1124      ./embed.cue:30:6
  1125      ./embed.cue:36:6
  1126      ./embed.cue:37:8
  1127      ./embed.cue:38:8
  1128  issue3924.two.out.foo: invalid value {disallowed:_|_(issue3924.two.out.foo.disallowed: field not allowed),allowed?:string} (does not satisfy matchN): 0 matched, expected 1:
  1129      ./ellipsis.cue:52:9
  1130      ./ellipsis.cue:50:14
  1131      ./ellipsis.cue:52:16
  1132      ./ellipsis.cue:59:23
  1133  issue3924.two.out.foo.disallowed: field not allowed:
  1134      ./ellipsis.cue:52:9
  1135      ./ellipsis.cue:50:3
  1136      ./ellipsis.cue:50:14
  1137      ./ellipsis.cue:55:15
  1138      ./ellipsis.cue:59:7
  1139      ./ellipsis.cue:59:23
  1140  
  1141  Result:
  1142  (_|_){
  1143    // [eval]
  1144    issue3778: (_|_){
  1145      // [eval]
  1146      full: (_|_){
  1147        // [eval]
  1148        #x: (#struct){
  1149          a?: (string){ string }
  1150        }
  1151        #y: (#struct){
  1152          a?: (string){ string }
  1153        }
  1154        z: (_|_){
  1155          // [eval]
  1156          a: (string){ "ok" }
  1157          b: (_|_){
  1158            // [eval] issue3778.full.z.b: field not allowed:
  1159            //     ./ellipsis.cue:2:6
  1160            //     ./ellipsis.cue:3:6
  1161            //     ./ellipsis.cue:3:13
  1162            //     ./ellipsis.cue:4:5
  1163            //     ./ellipsis.cue:6:3
  1164          }
  1165        }
  1166      }
  1167      keepOpen: (struct){
  1168        #x: (#struct){
  1169          a?: (string){ string }
  1170        }
  1171        #y: (#struct){
  1172          a?: (string){ string }
  1173        }
  1174        z: (#struct){
  1175          a: (string){ "ok" }
  1176          b: (string){ "something" }
  1177        }
  1178      }
  1179    }
  1180    issue1867: (_|_){
  1181      // [eval]
  1182      one: (_|_){
  1183        // [eval]
  1184        #T: (#struct){
  1185        }
  1186        x: (_|_){
  1187          // [eval]
  1188          foo: (_|_){
  1189            // [eval] issue1867.one.x.foo: field not allowed:
  1190            //     ./ellipsis.cue:20:12
  1191            //     ./ellipsis.cue:21:7
  1192            //     ./ellipsis.cue:22:5
  1193            //     ./ellipsis.cue:23:5
  1194          }
  1195        }
  1196      }
  1197      two: (_|_){
  1198        // [eval]
  1199        #S: (#struct){
  1200        }
  1201        #T: (#struct){
  1202          s: (#struct){
  1203          }
  1204        }
  1205        x: (_|_){
  1206          // [eval]
  1207          foo: (_|_){
  1208            // [eval] issue1867.two.x.foo: field not allowed:
  1209            //     ./ellipsis.cue:26:6
  1210            //     ./ellipsis.cue:27:9
  1211            //     ./ellipsis.cue:28:10
  1212            //     ./ellipsis.cue:29:5
  1213            //     ./ellipsis.cue:30:5
  1214          }
  1215        }
  1216      }
  1217      three: (_|_){
  1218        // [eval]
  1219        #T: (#struct){
  1220          s: (#struct){
  1221          }
  1222        }
  1223        x: (_|_){
  1224          // [eval]
  1225          foo: (_|_){
  1226            // [eval] issue1867.three.x.foo: field not allowed:
  1227            //     ./ellipsis.cue:34:15
  1228            //     ./ellipsis.cue:35:10
  1229            //     ./ellipsis.cue:36:5
  1230            //     ./ellipsis.cue:37:5
  1231          }
  1232        }
  1233      }
  1234    }
  1235    issue3924: (_|_){
  1236      // [eval]
  1237      one: (_|_){
  1238        // [eval]
  1239        #Schema: (#struct){
  1240        }
  1241        #SchemaInner: (#struct){
  1242          allowed?: (string){ string }
  1243        }
  1244        out: (_|_){
  1245          // [eval]
  1246          foo: (_|_){
  1247            // [eval]
  1248            disallowed: (_|_){
  1249              // [eval] issue3924.one.out.foo.disallowed: field not allowed:
  1250              //     ./ellipsis.cue:42:3
  1251              //     ./ellipsis.cue:42:14
  1252              //     ./ellipsis.cue:44:16
  1253              //     ./ellipsis.cue:46:7
  1254              //     ./ellipsis.cue:46:23
  1255            }
  1256            allowed?: (string){ string }
  1257          }
  1258        }
  1259      }
  1260      two: (_|_){
  1261        // [eval]
  1262        #Schema: (#struct){
  1263          #job: (#struct){
  1264            allowed?: (string){ string }
  1265          }
  1266        }
  1267        out: (_|_){
  1268          // [eval]
  1269          #job: (#struct){
  1270            allowed?: (string){ string }
  1271          }
  1272          foo: (_|_){
  1273            // [eval] issue3924.two.out.foo: invalid value {disallowed:_|_(issue3924.two.out.foo.disallowed: field not allowed),allowed?:string} (does not satisfy matchN): 0 matched, expected 1:
  1274            //     ./ellipsis.cue:52:9
  1275            //     ./ellipsis.cue:50:14
  1276            //     ./ellipsis.cue:52:16
  1277            //     ./ellipsis.cue:59:23
  1278            // issue3924.two.out.foo.disallowed: field not allowed:
  1279            //     ./ellipsis.cue:52:9
  1280            //     ./ellipsis.cue:50:3
  1281            //     ./ellipsis.cue:50:14
  1282            //     ./ellipsis.cue:55:15
  1283            //     ./ellipsis.cue:59:7
  1284            //     ./ellipsis.cue:59:23
  1285            disallowed: (_|_){
  1286              // [eval] issue3924.two.out.foo.disallowed: field not allowed:
  1287              //     ./ellipsis.cue:52:9
  1288              //     ./ellipsis.cue:50:3
  1289              //     ./ellipsis.cue:50:14
  1290              //     ./ellipsis.cue:55:15
  1291              //     ./ellipsis.cue:59:7
  1292              //     ./ellipsis.cue:59:23
  1293            }
  1294            allowed?: (string){ string }
  1295          }
  1296        }
  1297      }
  1298    }
  1299    issue3325: (struct){
  1300      ok: (struct){
  1301        #Items: (#struct){
  1302        }
  1303        #Base: (#struct){
  1304          name: (string){ "base" }
  1305          type: (string){ string }
  1306          items: (#struct){
  1307          }
  1308        }
  1309        #Extended: (#struct){
  1310          name: (string){ "base" }
  1311          type: (string){ "extended" }
  1312          items: (#struct){
  1313            "my-item": (#struct){
  1314              name: (string){ "my-item" }
  1315            }
  1316          }
  1317        }
  1318        broken: (#struct){
  1319          name: (string){ "base" }
  1320          type: (string){ "extended" }
  1321          items: (#struct){
  1322            "my-item": (#struct){
  1323              name: (string){ "my-item" }
  1324            }
  1325          }
  1326        }
  1327        works: (#struct){
  1328          name: (string){ "base" }
  1329          type: (string){ "extended" }
  1330          items: (#struct){
  1331            "my-item": (#struct){
  1332              name: (string){ "my-item" }
  1333            }
  1334          }
  1335        }
  1336      }
  1337    }
  1338    patterns: (_|_){
  1339      // [eval]
  1340      shallow: (_|_){
  1341        // [eval]
  1342        #a: (#struct){
  1343        }
  1344        #b: (#struct){
  1345        }
  1346        #c: (#struct){
  1347        }
  1348        #d: (#struct){
  1349        }
  1350        single: (_|_){
  1351          // [eval]
  1352          X: (#struct){
  1353          }
  1354          err: (_|_){
  1355            // [eval]
  1356            j: (_|_){
  1357              // [eval] patterns.shallow.single.err.j: field not allowed:
  1358              //     ./embed.cue:30:6
  1359              //     ./embed.cue:36:6
  1360              //     ./embed.cue:37:8
  1361              //     ./embed.cue:38:8
  1362            }
  1363          }
  1364          ok: (#struct){
  1365            k: (int){ 3 }
  1366          }
  1367        }
  1368        and: (_|_){
  1369          // [eval]
  1370          p1: (_|_){
  1371            // [eval]
  1372            X: (#struct){
  1373            }
  1374            err: (_|_){
  1375              // [eval]
  1376              j: (_|_){
  1377                // [eval] patterns.shallow.and.p1.err.j: field not allowed:
  1378                //     ./embed.cue:30:6
  1379                //     ./embed.cue:31:6
  1380                //     ./embed.cue:45:6
  1381                //     ./embed.cue:45:11
  1382                //     ./embed.cue:47:8
  1383                //     ./embed.cue:48:8
  1384              }
  1385            }
  1386            ok: (#struct){
  1387              k: (int){ 3 }
  1388            }
  1389          }
  1390          p2: (_|_){
  1391            // [eval]
  1392            X: (#struct){
  1393            }
  1394            err: (_|_){
  1395              // [eval]
  1396              j: (_|_){
  1397                // [eval] patterns.shallow.and.p2.err.j: field not allowed:
  1398                //     ./embed.cue:30:6
  1399                //     ./embed.cue:31:6
  1400                //     ./embed.cue:55:6
  1401                //     ./embed.cue:55:11
  1402                //     ./embed.cue:56:8
  1403                //     ./embed.cue:57:8
  1404              }
  1405            }
  1406            ok: (#struct){
  1407              k: (int){ 3 }
  1408            }
  1409          }
  1410        }
  1411        andEmbed: (_|_){
  1412          // [eval]
  1413          p1: (_|_){
  1414            // [eval]
  1415            X: (#struct){
  1416            }
  1417            err: (_|_){
  1418              // [eval]
  1419              j: (_|_){
  1420                // [eval] patterns.shallow.andEmbed.p1.err.j: field not allowed:
  1421                //     ./embed.cue:30:6
  1422                //     ./embed.cue:31:6
  1423                //     ./embed.cue:64:6
  1424                //     ./embed.cue:64:8
  1425                //     ./embed.cue:64:13
  1426                //     ./embed.cue:66:8
  1427                //     ./embed.cue:67:8
  1428              }
  1429            }
  1430            ok: (#struct){
  1431              k: (int){ 3 }
  1432            }
  1433          }
  1434          p2: (_|_){
  1435            // [eval]
  1436            X: (#struct){
  1437            }
  1438            err: (_|_){
  1439              // [eval]
  1440              j: (_|_){
  1441                // [eval] patterns.shallow.andEmbed.p2.err.j: field not allowed:
  1442                //     ./embed.cue:30:6
  1443                //     ./embed.cue:31:6
  1444                //     ./embed.cue:74:6
  1445                //     ./embed.cue:74:8
  1446                //     ./embed.cue:74:13
  1447                //     ./embed.cue:75:8
  1448                //     ./embed.cue:76:8
  1449              }
  1450            }
  1451            ok: (#struct){
  1452              k: (int){ 3 }
  1453            }
  1454          }
  1455        }
  1456        orEmbed: (struct){
  1457          p1: (struct){
  1458            X: (#struct){
  1459            }
  1460            ok1: (#struct){
  1461              j: (int){ 3 }
  1462            }
  1463            ok2: (#struct){
  1464              k: (int){ 3 }
  1465            }
  1466          }
  1467          p2: (struct){
  1468            X: (#struct){
  1469            }
  1470            ok1: (#struct){
  1471              j: (int){ 3 }
  1472            }
  1473            ok2: (#struct){
  1474              k: (int){ 3 }
  1475            }
  1476          }
  1477        }
  1478        andOrEmbed: (_|_){
  1479          // [eval]
  1480          t1: (_|_){
  1481            // [eval]
  1482            p1: (_|_){
  1483              // [eval]
  1484              X: (#struct){
  1485              }
  1486              err1: (_|_){
  1487                // [eval]
  1488                j: (_|_){
  1489                  // [eval] patterns.shallow.andOrEmbed.t1.p1.err1.j: field not allowed:
  1490                  //     ./embed.cue:30:6
  1491                  //     ./embed.cue:31:6
  1492                  //     ./embed.cue:32:6
  1493                  //     ./embed.cue:33:6
  1494                  //     ./embed.cue:103:6
  1495                  //     ./embed.cue:104:4
  1496                  //     ./embed.cue:104:9
  1497                  //     ./embed.cue:105:4
  1498                  //     ./embed.cue:105:9
  1499                  //     ./embed.cue:107:9
  1500                  //     ./embed.cue:108:9
  1501                }
  1502              }
  1503              ok1: (#struct){
  1504                k: (int){ 3 }
  1505              }
  1506            }
  1507            p2: (_|_){
  1508              // [eval]
  1509              X: (#struct){
  1510              }
  1511              err1: (_|_){
  1512                // [eval]
  1513                j: (_|_){
  1514                  // [eval] patterns.shallow.andOrEmbed.t1.p2.err1.j: field not allowed:
  1515                  //     ./embed.cue:30:6
  1516                  //     ./embed.cue:31:6
  1517                  //     ./embed.cue:32:6
  1518                  //     ./embed.cue:33:6
  1519                  //     ./embed.cue:116:6
  1520                  //     ./embed.cue:117:4
  1521                  //     ./embed.cue:117:9
  1522                  //     ./embed.cue:118:4
  1523                  //     ./embed.cue:118:9
  1524                  //     ./embed.cue:120:9
  1525                  //     ./embed.cue:121:9
  1526                }
  1527              }
  1528              ok1: (#struct){
  1529                k: (int){ 3 }
  1530              }
  1531            }
  1532          }
  1533          t2: (_|_){
  1534            // [eval]
  1535            X: (#struct){
  1536            }
  1537            err1: (_|_){
  1538              // [eval]
  1539              j: (_|_){
  1540                // [eval] patterns.shallow.andOrEmbed.t2.err1.j: field not allowed:
  1541                //     ./embed.cue:30:6
  1542                //     ./embed.cue:31:6
  1543                //     ./embed.cue:32:6
  1544                //     ./embed.cue:33:6
  1545                //     ./embed.cue:129:6
  1546                //     ./embed.cue:130:4
  1547                //     ./embed.cue:130:9
  1548                //     ./embed.cue:131:4
  1549                //     ./embed.cue:131:9
  1550                //     ./embed.cue:134:9
  1551                //     ./embed.cue:135:9
  1552              }
  1553            }
  1554            ok1: (#struct){
  1555              k: (int){ 3 }
  1556            }
  1557            ok2: (#struct){
  1558              p: (int){ 3 }
  1559            }
  1560          }
  1561        }
  1562        indirect: (_|_){
  1563          // [eval]
  1564          a: (struct){
  1565          }
  1566          #a: (#struct){
  1567          }
  1568          p1: (_|_){
  1569            // [eval]
  1570            X: (#struct){
  1571            }
  1572            err1: (_|_){
  1573              // [eval]
  1574              j: (_|_){
  1575                // [eval] patterns.shallow.indirect.p1.err1.j: field not allowed:
  1576                //     ./embed.cue:146:6
  1577                //     ./embed.cue:147:7
  1578                //     ./embed.cue:150:7
  1579                //     ./embed.cue:151:10
  1580                //     ./embed.cue:152:10
  1581              }
  1582            }
  1583            err2: (_|_){
  1584              // [eval]
  1585              j: (_|_){
  1586                // [eval] patterns.shallow.indirect.p1.err2.j: field not allowed:
  1587                //     ./embed.cue:146:6
  1588                //     ./embed.cue:147:7
  1589                //     ./embed.cue:150:7
  1590                //     ./embed.cue:154:10
  1591                //     ./embed.cue:155:10
  1592              }
  1593            }
  1594            ok: (#struct){
  1595              k: (int){ 3 }
  1596            }
  1597          }
  1598          p2: (_|_){
  1599            // [eval]
  1600            #a: (#struct){
  1601            }
  1602            X: (#struct){
  1603            }
  1604            err1: (_|_){
  1605              // [eval]
  1606              j: (_|_){
  1607                // [eval] patterns.shallow.indirect.p2.err1.j: field not allowed:
  1608                //     ./embed.cue:146:6
  1609                //     ./embed.cue:162:8
  1610                //     ./embed.cue:163:7
  1611                //     ./embed.cue:165:10
  1612                //     ./embed.cue:166:10
  1613              }
  1614            }
  1615            err2: (_|_){
  1616              // [eval]
  1617              j: (_|_){
  1618                // [eval] patterns.shallow.indirect.p2.err2.j: field not allowed:
  1619                //     ./embed.cue:146:6
  1620                //     ./embed.cue:162:8
  1621                //     ./embed.cue:163:7
  1622                //     ./embed.cue:168:10
  1623                //     ./embed.cue:169:10
  1624              }
  1625            }
  1626            ok: (#struct){
  1627              k: (int){ 3 }
  1628            }
  1629          }
  1630          p3: (_|_){
  1631            // [eval]
  1632            X: (#struct){
  1633            }
  1634            err1: (_|_){
  1635              // [eval]
  1636              j: (_|_){
  1637                // [eval] patterns.shallow.indirect.p3.err1.j: field not allowed:
  1638                //     ./embed.cue:146:6
  1639                //     ./embed.cue:147:7
  1640                //     ./embed.cue:176:7
  1641                //     ./embed.cue:178:10
  1642                //     ./embed.cue:179:10
  1643              }
  1644            }
  1645            err2: (_|_){
  1646              // [eval]
  1647              j: (_|_){
  1648                // [eval] patterns.shallow.indirect.p3.err2.j: field not allowed:
  1649                //     ./embed.cue:146:6
  1650                //     ./embed.cue:147:7
  1651                //     ./embed.cue:176:7
  1652                //     ./embed.cue:181:10
  1653                //     ./embed.cue:182:10
  1654              }
  1655            }
  1656            ok: (#struct){
  1657              k: (int){ 3 }
  1658            }
  1659          }
  1660          p4: (_|_){
  1661            // [eval]
  1662            #a: (#struct){
  1663            }
  1664            X: (#struct){
  1665            }
  1666            err1: (_|_){
  1667              // [eval]
  1668              j: (_|_){
  1669                // [eval] patterns.shallow.indirect.p4.err1.j: field not allowed:
  1670                //     ./embed.cue:146:6
  1671                //     ./embed.cue:189:8
  1672                //     ./embed.cue:190:7
  1673                //     ./embed.cue:193:10
  1674                //     ./embed.cue:194:10
  1675              }
  1676            }
  1677            err2: (_|_){
  1678              // [eval]
  1679              j: (_|_){
  1680                // [eval] patterns.shallow.indirect.p4.err2.j: field not allowed:
  1681                //     ./embed.cue:146:6
  1682                //     ./embed.cue:189:8
  1683                //     ./embed.cue:190:7
  1684                //     ./embed.cue:196:10
  1685                //     ./embed.cue:197:10
  1686              }
  1687            }
  1688            ok: (#struct){
  1689              k: (int){ 3 }
  1690            }
  1691          }
  1692        }
  1693      }
  1694      nested: (_|_){
  1695        // [eval]
  1696        #a: (#struct){
  1697          x: (#struct){
  1698            y: (#struct){
  1699            }
  1700          }
  1701        }
  1702        #b: (#struct){
  1703          x: (#struct){
  1704            y: (#struct){
  1705            }
  1706          }
  1707        }
  1708        #c: (#struct){
  1709          x: (#struct){
  1710            y: (#struct){
  1711            }
  1712          }
  1713        }
  1714        #d: (#struct){
  1715          x: (#struct){
  1716            y: (#struct){
  1717            }
  1718          }
  1719        }
  1720        single: (_|_){
  1721          // [eval]
  1722          X: (#struct){
  1723            x: (#struct){
  1724              y: (#struct){
  1725              }
  1726            }
  1727          }
  1728          err: (_|_){
  1729            // [eval]
  1730            x: (_|_){
  1731              // [eval]
  1732              y: (_|_){
  1733                // [eval]
  1734                j: (_|_){
  1735                  // [eval] patterns.nested.single.err.x.y.j: field not allowed:
  1736                  //     ./embed.cue:206:12
  1737                  //     ./embed.cue:212:6
  1738                  //     ./embed.cue:213:8
  1739                  //     ./embed.cue:214:14
  1740                }
  1741              }
  1742            }
  1743          }
  1744          ok: (#struct){
  1745            x: (#struct){
  1746              y: (#struct){
  1747                k: (int){ 3 }
  1748              }
  1749            }
  1750          }
  1751        }
  1752        and: (_|_){
  1753          // [eval]
  1754          p1: (_|_){
  1755            // [eval]
  1756            X: (#struct){
  1757              x: (#struct){
  1758                y: (#struct){
  1759                }
  1760              }
  1761            }
  1762            err: (_|_){
  1763              // [eval]
  1764              x: (_|_){
  1765                // [eval]
  1766                y: (_|_){
  1767                  // [eval]
  1768                  j: (_|_){
  1769                    // [eval] patterns.nested.and.p1.err.x.y.j: field not allowed:
  1770                    //     ./embed.cue:206:12
  1771                    //     ./embed.cue:207:12
  1772                    //     ./embed.cue:221:6
  1773                    //     ./embed.cue:221:11
  1774                    //     ./embed.cue:223:8
  1775                    //     ./embed.cue:224:14
  1776                  }
  1777                }
  1778              }
  1779            }
  1780            ok: (#struct){
  1781              x: (#struct){
  1782                y: (#struct){
  1783                  k: (int){ 3 }
  1784                }
  1785              }
  1786            }
  1787          }
  1788          p2: (_|_){
  1789            // [eval]
  1790            X: (#struct){
  1791              x: (#struct){
  1792                y: (#struct){
  1793                }
  1794              }
  1795            }
  1796            err: (_|_){
  1797              // [eval]
  1798              x: (_|_){
  1799                // [eval]
  1800                y: (_|_){
  1801                  // [eval]
  1802                  j: (_|_){
  1803                    // [eval] patterns.nested.and.p2.err.x.y.j: field not allowed:
  1804                    //     ./embed.cue:206:12
  1805                    //     ./embed.cue:207:12
  1806                    //     ./embed.cue:231:6
  1807                    //     ./embed.cue:231:11
  1808                    //     ./embed.cue:232:8
  1809                    //     ./embed.cue:233:14
  1810                  }
  1811                }
  1812              }
  1813            }
  1814            ok: (#struct){
  1815              x: (#struct){
  1816                y: (#struct){
  1817                  k: (int){ 3 }
  1818                }
  1819              }
  1820            }
  1821          }
  1822        }
  1823        andEmbed: (_|_){
  1824          // [eval]
  1825          p1: (_|_){
  1826            // [eval]
  1827            X: (#struct){
  1828              x: (#struct){
  1829                y: (#struct){
  1830                }
  1831              }
  1832            }
  1833            err: (_|_){
  1834              // [eval]
  1835              x: (_|_){
  1836                // [eval]
  1837                y: (_|_){
  1838                  // [eval]
  1839                  j: (_|_){
  1840                    // [eval] patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
  1841                    //     ./embed.cue:206:12
  1842                    //     ./embed.cue:207:12
  1843                    //     ./embed.cue:240:8
  1844                    //     ./embed.cue:240:13
  1845                    //     ./embed.cue:242:8
  1846                    //     ./embed.cue:243:14
  1847                  }
  1848                }
  1849              }
  1850            }
  1851            ok: (#struct){
  1852              x: (#struct){
  1853                y: (#struct){
  1854                  k: (int){ 3 }
  1855                }
  1856              }
  1857            }
  1858          }
  1859          p2: (_|_){
  1860            // [eval]
  1861            X: (#struct){
  1862              x: (#struct){
  1863                y: (#struct){
  1864                }
  1865              }
  1866            }
  1867            err: (_|_){
  1868              // [eval]
  1869              x: (_|_){
  1870                // [eval]
  1871                y: (_|_){
  1872                  // [eval]
  1873                  j: (_|_){
  1874                    // [eval] patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
  1875                    //     ./embed.cue:206:12
  1876                    //     ./embed.cue:207:12
  1877                    //     ./embed.cue:250:8
  1878                    //     ./embed.cue:250:13
  1879                    //     ./embed.cue:251:8
  1880                    //     ./embed.cue:252:14
  1881                  }
  1882                }
  1883              }
  1884            }
  1885            ok: (#struct){
  1886              x: (#struct){
  1887                y: (#struct){
  1888                  k: (int){ 3 }
  1889                }
  1890              }
  1891            }
  1892          }
  1893        }
  1894        orEmbed: (struct){
  1895          p1: (struct){
  1896            X: (#struct){
  1897              x: (#struct){
  1898                y: (#struct){
  1899                }
  1900              }
  1901            }
  1902            ok1: (#struct){
  1903              x: (#struct){
  1904                y: (#struct){
  1905                  j: (int){ 3 }
  1906                }
  1907              }
  1908            }
  1909            ok2: (#struct){
  1910              x: (#struct){
  1911                y: (#struct){
  1912                  k: (int){ 3 }
  1913                }
  1914              }
  1915            }
  1916          }
  1917          p2: (struct){
  1918            X: (#struct){
  1919              x: (#struct){
  1920                y: (#struct){
  1921                }
  1922              }
  1923            }
  1924            ok1: (#struct){
  1925              x: (#struct){
  1926                y: (#struct){
  1927                  j: (int){ 3 }
  1928                }
  1929              }
  1930            }
  1931            ok2: (#struct){
  1932              x: (#struct){
  1933                y: (#struct){
  1934                  k: (int){ 3 }
  1935                }
  1936              }
  1937            }
  1938          }
  1939        }
  1940        andOrEmbed: (_|_){
  1941          // [eval]
  1942          t1: (_|_){
  1943            // [eval]
  1944            p1: (_|_){
  1945              // [eval]
  1946              X: (#struct){
  1947                x: (#struct){
  1948                  y: (#struct){
  1949                  }
  1950                }
  1951              }
  1952              err1: (_|_){
  1953                // [eval]
  1954                x: (_|_){
  1955                  // [eval]
  1956                  y: (_|_){
  1957                    // [eval]
  1958                    j: (_|_){
  1959                      // [eval] patterns.nested.andOrEmbed.t1.p1.err1.x.y.j: field not allowed:
  1960                      //     ./embed.cue:206:12
  1961                      //     ./embed.cue:207:12
  1962                      //     ./embed.cue:208:12
  1963                      //     ./embed.cue:209:12
  1964                      //     ./embed.cue:280:4
  1965                      //     ./embed.cue:280:9
  1966                      //     ./embed.cue:281:4
  1967                      //     ./embed.cue:281:9
  1968                      //     ./embed.cue:283:9
  1969                      //     ./embed.cue:284:15
  1970                    }
  1971                  }
  1972                }
  1973              }
  1974              ok1: (#struct){
  1975                x: (#struct){
  1976                  y: (#struct){
  1977                    k: (int){ 3 }
  1978                  }
  1979                }
  1980              }
  1981            }
  1982            p2: (_|_){
  1983              // [eval]
  1984              X: (#struct){
  1985                x: (#struct){
  1986                  y: (#struct){
  1987                  }
  1988                }
  1989              }
  1990              err1: (_|_){
  1991                // [eval]
  1992                x: (_|_){
  1993                  // [eval]
  1994                  y: (_|_){
  1995                    // [eval]
  1996                    j: (_|_){
  1997                      // [eval] patterns.nested.andOrEmbed.t1.p2.err1.x.y.j: field not allowed:
  1998                      //     ./embed.cue:206:12
  1999                      //     ./embed.cue:207:12
  2000                      //     ./embed.cue:208:12
  2001                      //     ./embed.cue:209:12
  2002                      //     ./embed.cue:293:4
  2003                      //     ./embed.cue:293:9
  2004                      //     ./embed.cue:294:4
  2005                      //     ./embed.cue:294:9
  2006                      //     ./embed.cue:296:9
  2007                      //     ./embed.cue:297:15
  2008                    }
  2009                  }
  2010                }
  2011              }
  2012              ok1: (#struct){
  2013                x: (#struct){
  2014                  y: (#struct){
  2015                    k: (int){ 3 }
  2016                  }
  2017                }
  2018              }
  2019            }
  2020          }
  2021          t2: (_|_){
  2022            // [eval]
  2023            X: (#struct){
  2024              x: (#struct){
  2025                y: (#struct){
  2026                }
  2027              }
  2028            }
  2029            err1: (_|_){
  2030              // [eval]
  2031              x: (_|_){
  2032                // [eval]
  2033                y: (_|_){
  2034                  // [eval]
  2035                  j: (_|_){
  2036                    // [eval] patterns.nested.andOrEmbed.t2.err1.x.y.j: field not allowed:
  2037                    //     ./embed.cue:206:12
  2038                    //     ./embed.cue:207:12
  2039                    //     ./embed.cue:208:12
  2040                    //     ./embed.cue:209:12
  2041                    //     ./embed.cue:306:4
  2042                    //     ./embed.cue:306:9
  2043                    //     ./embed.cue:307:4
  2044                    //     ./embed.cue:307:9
  2045                    //     ./embed.cue:310:9
  2046                    //     ./embed.cue:311:15
  2047                  }
  2048                }
  2049              }
  2050            }
  2051            ok1: (#struct){
  2052              x: (#struct){
  2053                y: (#struct){
  2054                  k: (int){ 3 }
  2055                }
  2056              }
  2057            }
  2058            ok2: (_|_){
  2059              // [eval]
  2060              x: (_|_){
  2061                // [eval]
  2062                y: (_|_){
  2063                  // [eval]
  2064                  p: (_|_){
  2065                    // [eval] patterns.nested.andOrEmbed.t2.ok2.x.y.p: field not allowed:
  2066                    //     ./embed.cue:206:12
  2067                    //     ./embed.cue:207:12
  2068                    //     ./embed.cue:208:12
  2069                    //     ./embed.cue:209:12
  2070                    //     ./embed.cue:306:4
  2071                    //     ./embed.cue:306:9
  2072                    //     ./embed.cue:307:4
  2073                    //     ./embed.cue:307:9
  2074                    //     ./embed.cue:316:8
  2075                    //     ./embed.cue:317:14
  2076                  }
  2077                }
  2078              }
  2079            }
  2080          }
  2081        }
  2082        indirect: (_|_){
  2083          // [eval]
  2084          a: (struct){
  2085            x: (struct){
  2086              y: (struct){
  2087              }
  2088            }
  2089          }
  2090          #a: (#struct){
  2091            x: (#struct){
  2092              y: (#struct){
  2093              }
  2094            }
  2095          }
  2096          p1: (_|_){
  2097            // [eval]
  2098            X: (#struct){
  2099              x: (#struct){
  2100                y: (#struct){
  2101                }
  2102              }
  2103            }
  2104            err1: (_|_){
  2105              // [eval]
  2106              x: (_|_){
  2107                // [eval]
  2108                y: (_|_){
  2109                  // [eval]
  2110                  j: (_|_){
  2111                    // [eval] patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
  2112                    //     ./embed.cue:322:12
  2113                    //     ./embed.cue:323:7
  2114                    //     ./embed.cue:326:7
  2115                    //     ./embed.cue:327:10
  2116                    //     ./embed.cue:328:16
  2117                  }
  2118                }
  2119              }
  2120            }
  2121            err2: (_|_){
  2122              // [eval]
  2123              x: (_|_){
  2124                // [eval]
  2125                y: (_|_){
  2126                  // [eval]
  2127                  j: (_|_){
  2128                    // [eval] patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
  2129                    //     ./embed.cue:322:12
  2130                    //     ./embed.cue:323:7
  2131                    //     ./embed.cue:326:7
  2132                    //     ./embed.cue:330:10
  2133                    //     ./embed.cue:331:16
  2134                  }
  2135                }
  2136              }
  2137            }
  2138            ok: (#struct){
  2139              x: (#struct){
  2140                y: (#struct){
  2141                  k: (int){ 3 }
  2142                }
  2143              }
  2144            }
  2145          }
  2146          p2: (_|_){
  2147            // [eval]
  2148            #a: (#struct){
  2149              x: (#struct){
  2150                y: (#struct){
  2151                }
  2152              }
  2153            }
  2154            X: (#struct){
  2155              x: (#struct){
  2156                y: (#struct){
  2157                }
  2158              }
  2159            }
  2160            err1: (_|_){
  2161              // [eval]
  2162              x: (_|_){
  2163                // [eval]
  2164                y: (_|_){
  2165                  // [eval]
  2166                  j: (_|_){
  2167                    // [eval] patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
  2168                    //     ./embed.cue:322:12
  2169                    //     ./embed.cue:338:8
  2170                    //     ./embed.cue:339:7
  2171                    //     ./embed.cue:341:10
  2172                    //     ./embed.cue:342:16
  2173                  }
  2174                }
  2175              }
  2176            }
  2177            err2: (_|_){
  2178              // [eval]
  2179              x: (_|_){
  2180                // [eval]
  2181                y: (_|_){
  2182                  // [eval]
  2183                  j: (_|_){
  2184                    // [eval] patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
  2185                    //     ./embed.cue:322:12
  2186                    //     ./embed.cue:338:8
  2187                    //     ./embed.cue:339:7
  2188                    //     ./embed.cue:344:10
  2189                    //     ./embed.cue:345:16
  2190                  }
  2191                }
  2192              }
  2193            }
  2194            ok: (#struct){
  2195              x: (#struct){
  2196                y: (#struct){
  2197                  k: (int){ 3 }
  2198                }
  2199              }
  2200            }
  2201          }
  2202          p3: (_|_){
  2203            // [eval]
  2204            X: (#struct){
  2205              x: (#struct){
  2206                y: (#struct){
  2207                }
  2208              }
  2209            }
  2210            err1: (_|_){
  2211              // [eval]
  2212              x: (_|_){
  2213                // [eval]
  2214                y: (_|_){
  2215                  // [eval]
  2216                  j: (_|_){
  2217                    // [eval] patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
  2218                    //     ./embed.cue:322:12
  2219                    //     ./embed.cue:323:7
  2220                    //     ./embed.cue:352:7
  2221                    //     ./embed.cue:354:10
  2222                    //     ./embed.cue:355:16
  2223                  }
  2224                }
  2225              }
  2226            }
  2227            err2: (_|_){
  2228              // [eval]
  2229              x: (_|_){
  2230                // [eval]
  2231                y: (_|_){
  2232                  // [eval]
  2233                  j: (_|_){
  2234                    // [eval] patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
  2235                    //     ./embed.cue:322:12
  2236                    //     ./embed.cue:323:7
  2237                    //     ./embed.cue:352:7
  2238                    //     ./embed.cue:357:10
  2239                    //     ./embed.cue:358:16
  2240                  }
  2241                }
  2242              }
  2243            }
  2244            ok: (#struct){
  2245              x: (#struct){
  2246                y: (#struct){
  2247                  k: (int){ 3 }
  2248                }
  2249              }
  2250            }
  2251          }
  2252          p4: (_|_){
  2253            // [eval]
  2254            #a: (#struct){
  2255              x: (#struct){
  2256                y: (#struct){
  2257                }
  2258              }
  2259            }
  2260            X: (#struct){
  2261              x: (#struct){
  2262                y: (#struct){
  2263                }
  2264              }
  2265            }
  2266            err1: (_|_){
  2267              // [eval]
  2268              x: (_|_){
  2269                // [eval]
  2270                y: (_|_){
  2271                  // [eval]
  2272                  j: (_|_){
  2273                    // [eval] patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
  2274                    //     ./embed.cue:322:12
  2275                    //     ./embed.cue:365:8
  2276                    //     ./embed.cue:366:7
  2277                    //     ./embed.cue:369:10
  2278                    //     ./embed.cue:370:16
  2279                  }
  2280                }
  2281              }
  2282            }
  2283            err2: (_|_){
  2284              // [eval]
  2285              x: (_|_){
  2286                // [eval]
  2287                y: (_|_){
  2288                  // [eval]
  2289                  j: (_|_){
  2290                    // [eval] patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
  2291                    //     ./embed.cue:322:12
  2292                    //     ./embed.cue:365:8
  2293                    //     ./embed.cue:366:7
  2294                    //     ./embed.cue:372:10
  2295                    //     ./embed.cue:373:16
  2296                  }
  2297                }
  2298              }
  2299            }
  2300            ok: (#struct){
  2301              x: (#struct){
  2302                y: (#struct){
  2303                  k: (int){ 3 }
  2304                }
  2305              }
  2306            }
  2307          }
  2308        }
  2309      }
  2310    }
  2311    issue2241: (struct){
  2312      #close: (#struct){
  2313      }
  2314      a: (#struct){
  2315        x: (struct){
  2316          q: (int){ 2 }
  2317        }
  2318      }
  2319      b: (#struct){
  2320        x: (struct){
  2321          q: (int){ 2 }
  2322          r: (int){ 4 }
  2323        }
  2324      }
  2325    }
  2326    #E: (#struct){
  2327      c: (int){ int }
  2328    }
  2329    #A: (#struct){
  2330      b: (int){ int }
  2331      q: (#struct){
  2332        c: (int){ int }
  2333        d: (int){ int }
  2334      }
  2335    }
  2336    a: (_|_){
  2337      // [eval]
  2338      b: (int){ 3 }
  2339      q: (_|_){
  2340        // [eval]
  2341        c: (int){ 2 }
  2342        d: (int){ int }
  2343        e: (_|_){
  2344          // [eval] a.q.e: field not allowed:
  2345          //     ./in.cue:1:5
  2346          //     ./in.cue:6:5
  2347          //     ./in.cue:7:3
  2348          //     ./in.cue:11:4
  2349          //     ./in.cue:15:3
  2350        }
  2351      }
  2352    }
  2353    issue852: (_|_){
  2354      // [eval] issue852.a.Foo: field not allowed:
  2355      //     ./in.cue:22:6
  2356      //     ./in.cue:26:5
  2357      //     ./in.cue:28:5
  2358      #A: (#struct){
  2359      }
  2360      a: (_|_){
  2361        // [eval]
  2362        Foo: (_|_){
  2363          // [eval] issue852.a.Foo: field not allowed:
  2364          //     ./in.cue:22:6
  2365          //     ./in.cue:26:5
  2366          //     ./in.cue:28:5
  2367        }
  2368      }
  2369    }
  2370    dynamic: (struct){
  2371      #D: (#struct){
  2372        key: (string){ "foo" }
  2373        foo: (int){ int }
  2374      }
  2375      d: (#struct){
  2376        key: (string){ "foo" }
  2377        foo: (int){ 3 }
  2378      }
  2379    }
  2380    issue3330: (struct){
  2381      let: (struct){
  2382        ok: (struct){
  2383          #struct: (#struct){
  2384            let empty#1 = (#struct){
  2385            }
  2386            field: (#struct){
  2387              n: (int){ 3 }
  2388            }
  2389          }
  2390          out: (#list){
  2391            0: (#struct){
  2392              let empty#1 = (#struct){
  2393              }
  2394              field: (#struct){
  2395                n: (int){ 3 }
  2396              }
  2397            }
  2398          }
  2399        }
  2400      }
  2401      matthew: (struct){
  2402        ok1: (struct){
  2403          #struct: (#struct){
  2404            field: (#struct){
  2405              n: (int){ 3 }
  2406            }
  2407            g: (#struct){
  2408            }
  2409          }
  2410          out: (#struct){
  2411            field: (#struct){
  2412              n: (int){ 3 }
  2413            }
  2414            g: (#struct){
  2415            }
  2416          }
  2417        }
  2418        ok2: (struct){
  2419          #struct: (#struct){
  2420            field: (#struct){
  2421              n: (int){ 3 }
  2422            }
  2423            g: (#struct){
  2424            }
  2425          }
  2426          out: (#struct){
  2427            field: (#struct){
  2428              n: (int){ 3 }
  2429            }
  2430            g: (#struct){
  2431            }
  2432          }
  2433          out2: (#struct){
  2434            field: (#struct){
  2435              n: (int){ 3 }
  2436            }
  2437            g: (#struct){
  2438            }
  2439          }
  2440        }
  2441      }
  2442    }
  2443    issue3331: (struct){
  2444      original: (struct){
  2445        ok: (#list){
  2446          #A: (#struct){
  2447            let b#2 = (#struct){
  2448            }
  2449            c: (#struct){
  2450              d: (int){ 1 }
  2451            }
  2452          }
  2453          0: (#struct){
  2454            let b#2 = (#struct){
  2455            }
  2456            c: (#struct){
  2457              d: (int){ 1 }
  2458            }
  2459          }
  2460        }
  2461      }
  2462      variant1: (struct){
  2463        ok: (#list){
  2464          #A: (#struct){
  2465            let b#3 = (#struct){
  2466            }
  2467            c: (#struct){
  2468              d: (int){ 1 }
  2469            }
  2470          }
  2471          0: (#list){
  2472            0: (#struct){
  2473              let b#3 = (#struct){
  2474              }
  2475              c: (#struct){
  2476                d: (int){ 1 }
  2477              }
  2478            }
  2479          }
  2480        }
  2481      }
  2482    }
  2483    indirect: (_|_){
  2484      // [eval]
  2485      embed: (struct){
  2486        err1: (struct){
  2487          #A: (#struct){
  2488            x: (#struct){
  2489              a: (#struct){
  2490                b: (int){ 1 }
  2491                c: (int){ 2 }
  2492              }
  2493            }
  2494            zx: (#struct){
  2495              b: (int){ 1 }
  2496              c: (int){ 2 }
  2497            }
  2498          }
  2499          #x: (#struct){
  2500            a: (#struct){
  2501              b: (int){ 1 }
  2502            }
  2503          }
  2504          #y: (#struct){
  2505            a: (#struct){
  2506              c: (int){ 2 }
  2507            }
  2508          }
  2509          b: (#struct){
  2510            x: (#struct){
  2511              a: (#struct){
  2512                b: (int){ 1 }
  2513                c: (int){ 2 }
  2514              }
  2515            }
  2516            zx: (#struct){
  2517              b: (int){ 1 }
  2518              c: (int){ 2 }
  2519            }
  2520          }
  2521          b1: (struct){
  2522            b: (int){ 1 }
  2523            c: (int){ 2 }
  2524            d: (int){ 1 }
  2525          }
  2526        }
  2527      }
  2528      closed: (_|_){
  2529        // [eval]
  2530        err1: (_|_){
  2531          // [eval]
  2532          X: (struct){
  2533            a: (struct){
  2534              e: (int){ 1 }
  2535            }
  2536            b: (struct){
  2537            }
  2538          }
  2539          Y: (_|_){
  2540            // [eval]
  2541            a: (_|_){
  2542              // [eval]
  2543              e: (_|_){
  2544                // [eval] indirect.closed.err1.Y.a.e: field not allowed:
  2545                //     ./reroot.cue:73:7
  2546                //     ./reroot.cue:74:7
  2547                //     ./reroot.cue:75:7
  2548                //     ./reroot.cue:77:6
  2549                //     ./reroot.cue:79:7
  2550                //     ./reroot.cue:80:7
  2551                //     ./reroot.cue:82:7
  2552              }
  2553            }
  2554            b: (#struct){
  2555            }
  2556            c: (#struct){
  2557            }
  2558          }
  2559          #X: (#struct){
  2560          }
  2561        }
  2562      }
  2563    }
  2564    nested: (_|_){
  2565      // [eval]
  2566      ok1: (struct){
  2567        #A: (#struct){
  2568          b: (#struct){
  2569          }
  2570          #B: (#struct){
  2571            c: (#struct){
  2572              d: (int){ 1 }
  2573            }
  2574          }
  2575        }
  2576        x: (#struct){
  2577          b: (#struct){
  2578          }
  2579          #B: (#struct){
  2580            c: (#struct){
  2581              d: (int){ 1 }
  2582            }
  2583          }
  2584        }
  2585      }
  2586      embed: (struct){
  2587        ok: (struct){
  2588          x: (#struct){
  2589            d: (#struct){
  2590              e: (int){ int }
  2591            }
  2592            b: (#struct){
  2593            }
  2594          }
  2595          #A: (#struct){
  2596            d: (#struct){
  2597              e: (int){ int }
  2598            }
  2599            b: (#struct){
  2600            }
  2601          }
  2602          k: (struct){
  2603            d: (struct){
  2604              e: (int){ int }
  2605            }
  2606            b: (struct){
  2607            }
  2608          }
  2609        }
  2610      }
  2611      err1: (_|_){
  2612        // [eval]
  2613        x: (_|_){
  2614          // [eval]
  2615          b: (_|_){
  2616            // [eval]
  2617            f: (_|_){
  2618              // [eval] nested.err1.x.b.f: field not allowed:
  2619              //     ./reroot.cue:112:5
  2620              //     ./reroot.cue:114:6
  2621              //     ./reroot.cue:122:8
  2622              //     ./reroot.cue:123:6
  2623            }
  2624            g: (_|_){
  2625              // [eval] nested.err1.x.b.g: field not allowed:
  2626              //     ./reroot.cue:112:5
  2627              //     ./reroot.cue:114:6
  2628              //     ./reroot.cue:122:8
  2629              //     ./reroot.cue:123:6
  2630            }
  2631          }
  2632          v: (_|_){
  2633            // [eval]
  2634            c: (_|_){
  2635              // [eval]
  2636              f: (_|_){
  2637                // [eval] nested.err1.x.v.c.f: field not allowed:
  2638                //     ./reroot.cue:112:5
  2639                //     ./reroot.cue:114:6
  2640                //     ./reroot.cue:115:6
  2641                //     ./reroot.cue:117:7
  2642                //     ./reroot.cue:117:11
  2643                //     ./reroot.cue:122:8
  2644                //     ./reroot.cue:123:6
  2645              }
  2646              g: (int){ 1 }
  2647              d: (_|_){
  2648                // [eval] nested.err1.x.v.c.d: field not allowed:
  2649                //     ./reroot.cue:112:5
  2650                //     ./reroot.cue:114:6
  2651                //     ./reroot.cue:115:6
  2652                //     ./reroot.cue:117:7
  2653                //     ./reroot.cue:118:5
  2654                //     ./reroot.cue:122:8
  2655                //     ./reroot.cue:123:6
  2656              }
  2657            }
  2658          }
  2659          #V: (_|_){
  2660            // [eval]
  2661            c: (_|_){
  2662              // [eval]
  2663              f: (_|_){
  2664                // [eval] nested.err1.x.#V.c.f: field not allowed:
  2665                //     ./reroot.cue:112:5
  2666                //     ./reroot.cue:114:6
  2667                //     ./reroot.cue:117:7
  2668                //     ./reroot.cue:117:11
  2669                //     ./reroot.cue:122:8
  2670                //     ./reroot.cue:123:6
  2671              }
  2672              g: (int){ 1 }
  2673              d: (_|_){
  2674                // [eval] nested.err1.x.#V.c.d: field not allowed:
  2675                //     ./reroot.cue:112:5
  2676                //     ./reroot.cue:114:6
  2677                //     ./reroot.cue:117:7
  2678                //     ./reroot.cue:118:5
  2679                //     ./reroot.cue:122:8
  2680                //     ./reroot.cue:123:6
  2681              }
  2682            }
  2683          }
  2684        }
  2685        #A: (#struct){
  2686          b: (#struct){
  2687            f: (int){ 1 }
  2688          }
  2689          v: (#struct){
  2690            c: (#struct){
  2691              f: (int){ 1 }
  2692              d: (int){ 1 }
  2693            }
  2694          }
  2695          #V: (#struct){
  2696            c: (#struct){
  2697              f: (int){ 1 }
  2698              d: (int){ 1 }
  2699            }
  2700          }
  2701        }
  2702        #B: (#struct){
  2703          g: (int){ 1 }
  2704        }
  2705      }
  2706      err2: (_|_){
  2707        // [eval]
  2708        #A: (#struct){
  2709          b: (#struct){
  2710          }
  2711          c: (#struct){
  2712            d: (int){ 1 }
  2713          }
  2714        }
  2715        x: (_|_){
  2716          // [eval]
  2717          b: (_|_){
  2718            // [eval]
  2719            g: (_|_){
  2720              // [eval] nested.err2.x.b.g: field not allowed:
  2721              //     ./reroot.cue:128:6
  2722              //     ./reroot.cue:136:5
  2723              //     ./reroot.cue:137:8
  2724            }
  2725          }
  2726          c: (#struct){
  2727            g: (int){ 1 }
  2728            d: (int){ 1 }
  2729          }
  2730        }
  2731      }
  2732    }
  2733    inline: (struct){
  2734      #x: (#struct){
  2735        y: (#struct){
  2736          z?: (#struct){
  2737            name: (string){ string }
  2738          }
  2739        }
  2740      }
  2741      err1: (struct){
  2742        name: (string){ "a" }
  2743        age1: (int){ 5 }
  2744      }
  2745      err2: (struct){
  2746        name: (string){ "a" }
  2747        age2: (int){ 5 }
  2748      }
  2749    }
  2750    mixInDef: (struct){
  2751      refInside: (struct){
  2752        #x: (#struct){
  2753          b: (#struct){
  2754            c: (#struct){
  2755              d: (#struct){
  2756              }
  2757              e: (#struct){
  2758                f: (#struct){
  2759                }
  2760              }
  2761            }
  2762          }
  2763        }
  2764        a: (#struct){
  2765          b: (#struct){
  2766            c: (#struct){
  2767              d: (#struct){
  2768              }
  2769              e: (#struct){
  2770                f: (#struct){
  2771                }
  2772              }
  2773            }
  2774          }
  2775        }
  2776      }
  2777      refEdge: (struct){
  2778        #x: (#struct){
  2779          c: (#struct){
  2780            d: (#struct){
  2781            }
  2782            e: (#struct){
  2783              f: (#struct){
  2784              }
  2785            }
  2786          }
  2787        }
  2788        a: (#struct){
  2789          c: (#struct){
  2790            d: (#struct){
  2791            }
  2792            e: (#struct){
  2793              f: (#struct){
  2794              }
  2795            }
  2796          }
  2797        }
  2798      }
  2799      refOutside: (struct){
  2800        #x: (#struct){
  2801          c: (#struct){
  2802            d: (#struct){
  2803            }
  2804            e: (#struct){
  2805              f: (#struct){
  2806              }
  2807            }
  2808          }
  2809        }
  2810        a: (#struct){
  2811          c: (#struct){
  2812            d: (#struct){
  2813            }
  2814            e: (#struct){
  2815              f: (#struct){
  2816              }
  2817            }
  2818          }
  2819        }
  2820      }
  2821    }
  2822    issue3601: (struct){
  2823      original: (struct){
  2824        out: (#struct){
  2825          foo: (#struct){
  2826            final: (#struct){
  2827              version: (string){ "v1" }
  2828            }
  2829          }
  2830        }
  2831        #Transform: (#struct){
  2832          output: (#struct){
  2833            foo: (#struct){
  2834              final: (#struct){
  2835                version: (string){ "v1" }
  2836              }
  2837            }
  2838          }
  2839        }
  2840        #Patch: (#struct){
  2841          target: (#struct){
  2842          }
  2843          output: (#struct){
  2844            foo: (#struct){
  2845              final: (#struct){
  2846                version: (string){ "v1" }
  2847              }
  2848            }
  2849          }
  2850        }
  2851      }
  2852      originalNoShare: (struct){
  2853        out: (#struct){
  2854          foo: (#struct){
  2855            final: (#struct){
  2856              version: (string){ "v1" }
  2857            }
  2858          }
  2859        }
  2860        #Transform: (#struct){
  2861          output: (#struct){
  2862            foo: (#struct){
  2863              final: (#struct){
  2864                version: (string){ "v1" }
  2865              }
  2866            }
  2867          }
  2868        }
  2869        #Patch: (#struct){
  2870          target: (#struct){
  2871          }
  2872          output: (#struct){
  2873            foo: (#struct){
  2874              final: (#struct){
  2875                version: (string){ "v1" }
  2876              }
  2877            }
  2878          }
  2879        }
  2880      }
  2881      reduced: (struct){
  2882        #X: (#struct){
  2883          a: (#struct){
  2884            b: (#struct){
  2885              c: (string){ "v1" }
  2886            }
  2887          }
  2888          empty: (#struct){
  2889          }
  2890        }
  2891        original: (struct){
  2892          Y: (struct){
  2893            b: (struct){
  2894              c: (string){ "v1" }
  2895            }
  2896          }
  2897          out: (struct){
  2898            b: (struct){
  2899              c: (string){ "v1" }
  2900            }
  2901          }
  2902        }
  2903        moreInlining: (struct){
  2904          out: (struct){
  2905            b: (struct){
  2906              c: (string){ "v1" }
  2907            }
  2908          }
  2909        }
  2910        noInline: (struct){
  2911          Y: (#struct){
  2912            a: (#struct){
  2913              b: (#struct){
  2914                c: (string){ "v1" }
  2915              }
  2916            }
  2917            empty: (#struct){
  2918            }
  2919          }
  2920          Z: (#struct){
  2921            a: (#struct){
  2922              b: (#struct){
  2923                c: (string){ "v1" }
  2924              }
  2925            }
  2926            empty: (#struct){
  2927            }
  2928          }
  2929          out: (struct){
  2930            b: (struct){
  2931              c: (string){ "v1" }
  2932            }
  2933          }
  2934        }
  2935        moreNesting: (struct){
  2936          #X: (#struct){
  2937            a: (#struct){
  2938              b: (#struct){
  2939                c: (#struct){
  2940                  d: (string){ "v1" }
  2941                }
  2942              }
  2943            }
  2944            empty: (#struct){
  2945            }
  2946          }
  2947          Y: (struct){
  2948            c: (struct){
  2949              d: (string){ "v1" }
  2950            }
  2951          }
  2952          Z: (struct){
  2953            c: (struct){
  2954              d: (string){ "v1" }
  2955            }
  2956          }
  2957        }
  2958      }
  2959    }
  2960    issue3332: (struct){
  2961      #def: (#struct){
  2962        field: (list){ list.MinItems(1) }
  2963      }
  2964      use: (#struct){
  2965        field: (#list){
  2966          0: (string){ "value" }
  2967        }
  2968      }
  2969    }
  2970  }
  2971  -- out/evalalpha --
  2972  Errors:
  2973  a.q.e: field not allowed:
  2974      ./in.cue:15:3
  2975  indirect.closed.err1.Y.a.e: field not allowed:
  2976      ./reroot.cue:75:7
  2977  issue1867.one.x.foo: field not allowed:
  2978      ./ellipsis.cue:23:5
  2979  issue1867.three.x.foo: field not allowed:
  2980      ./ellipsis.cue:37:5
  2981  issue1867.two.x.foo: field not allowed:
  2982      ./ellipsis.cue:30:5
  2983  issue2241.b.x.r: field not allowed:
  2984      ./embed.cue:390:8
  2985  issue3778.full.z.b: field not allowed:
  2986      ./ellipsis.cue:6:3
  2987  issue3924.one.out.foo.disallowed: field not allowed:
  2988      ./ellipsis.cue:46:23
  2989  issue852.a.Foo: field not allowed:
  2990      ./in.cue:28:5
  2991  nested.err1.x.#V.c.d: field not allowed:
  2992      ./reroot.cue:118:5
  2993  nested.err1.x.#V.c.f: field not allowed:
  2994      ./reroot.cue:114:6
  2995  nested.err1.x.b.f: field not allowed:
  2996      ./reroot.cue:114:6
  2997  nested.err1.x.b.g: field not allowed:
  2998      ./reroot.cue:123:6
  2999  nested.err2.x.b.g: field not allowed:
  3000      ./reroot.cue:137:8
  3001  patterns.nested.and.p1.err.x.y.j: field not allowed:
  3002      ./embed.cue:207:12
  3003      ./embed.cue:224:14
  3004  patterns.nested.and.p2.err.x.y.j: field not allowed:
  3005      ./embed.cue:207:12
  3006      ./embed.cue:233:14
  3007  patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
  3008      ./embed.cue:207:12
  3009      ./embed.cue:243:14
  3010  patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
  3011      ./embed.cue:207:12
  3012      ./embed.cue:252:14
  3013  patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
  3014      ./embed.cue:328:16
  3015  patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
  3016      ./embed.cue:331:16
  3017  patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
  3018      ./embed.cue:342:16
  3019  patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
  3020      ./embed.cue:345:16
  3021  patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
  3022      ./embed.cue:355:16
  3023  patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
  3024      ./embed.cue:358:16
  3025  patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
  3026      ./embed.cue:370:16
  3027  patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
  3028      ./embed.cue:373:16
  3029  patterns.nested.single.err.x.y.j: field not allowed:
  3030      ./embed.cue:214:14
  3031  patterns.shallow.and.p1.err.j: field not allowed:
  3032      ./embed.cue:31:6
  3033      ./embed.cue:48:8
  3034  patterns.shallow.and.p2.err.j: field not allowed:
  3035      ./embed.cue:31:6
  3036      ./embed.cue:57:8
  3037  patterns.shallow.andEmbed.p1.err.j: field not allowed:
  3038      ./embed.cue:31:6
  3039      ./embed.cue:67:8
  3040  patterns.shallow.andEmbed.p2.err.j: field not allowed:
  3041      ./embed.cue:31:6
  3042      ./embed.cue:76:8
  3043  patterns.shallow.indirect.p1.err1.j: field not allowed:
  3044      ./embed.cue:152:10
  3045  patterns.shallow.indirect.p1.err2.j: field not allowed:
  3046      ./embed.cue:155:10
  3047  patterns.shallow.indirect.p2.err1.j: field not allowed:
  3048      ./embed.cue:166:10
  3049  patterns.shallow.indirect.p2.err2.j: field not allowed:
  3050      ./embed.cue:169:10
  3051  patterns.shallow.indirect.p3.err1.j: field not allowed:
  3052      ./embed.cue:179:10
  3053  patterns.shallow.indirect.p3.err2.j: field not allowed:
  3054      ./embed.cue:182:10
  3055  patterns.shallow.indirect.p4.err1.j: field not allowed:
  3056      ./embed.cue:194:10
  3057  patterns.shallow.indirect.p4.err2.j: field not allowed:
  3058      ./embed.cue:197:10
  3059  patterns.shallow.single.err.j: field not allowed:
  3060      ./embed.cue:38:8
  3061  issue3924.two.out.foo.disallowed: field not allowed:
  3062      ./ellipsis.cue:52:9
  3063      ./ellipsis.cue:59:23
  3064  
  3065  Result:
  3066  (_|_){
  3067    // [eval]
  3068    issue3778: (_|_){
  3069      // [eval]
  3070      full: (_|_){
  3071        // [eval]
  3072        #x: (#struct){
  3073          a?: (string){ string }
  3074        }
  3075        #y: (#struct){
  3076          a?: (string){ string }
  3077        }
  3078        z: (_|_){
  3079          // [eval]
  3080          a: (string){ "ok" }
  3081          b: (_|_){
  3082            // [eval] issue3778.full.z.b: field not allowed:
  3083            //     ./ellipsis.cue:6:3
  3084          }
  3085        }
  3086      }
  3087      keepOpen: (struct){
  3088        #x: (#struct){
  3089          a?: (string){ string }
  3090        }
  3091        #y: (#struct){
  3092          a?: (string){ string }
  3093        }
  3094        z: (#struct){
  3095          a: (string){ "ok" }
  3096          b: (string){ "something" }
  3097        }
  3098      }
  3099    }
  3100    issue1867: (_|_){
  3101      // [eval]
  3102      one: (_|_){
  3103        // [eval]
  3104        #T: (#struct){
  3105        }
  3106        x: (_|_){
  3107          // [eval]
  3108          foo: (_|_){
  3109            // [eval] issue1867.one.x.foo: field not allowed:
  3110            //     ./ellipsis.cue:23:5
  3111          }
  3112        }
  3113      }
  3114      two: (_|_){
  3115        // [eval]
  3116        #S: (#struct){
  3117        }
  3118        #T: (#struct){
  3119          s: (#struct){
  3120          }
  3121        }
  3122        x: (_|_){
  3123          // [eval]
  3124          foo: (_|_){
  3125            // [eval] issue1867.two.x.foo: field not allowed:
  3126            //     ./ellipsis.cue:30:5
  3127          }
  3128        }
  3129      }
  3130      three: (_|_){
  3131        // [eval]
  3132        #T: (#struct){
  3133          s: (#struct){
  3134          }
  3135        }
  3136        x: (_|_){
  3137          // [eval]
  3138          foo: (_|_){
  3139            // [eval] issue1867.three.x.foo: field not allowed:
  3140            //     ./ellipsis.cue:37:5
  3141          }
  3142        }
  3143      }
  3144    }
  3145    issue3924: (_|_){
  3146      // [eval]
  3147      one: (_|_){
  3148        // [eval]
  3149        #Schema: (#struct){
  3150        }
  3151        #SchemaInner: (#struct){
  3152          allowed?: (string){ string }
  3153        }
  3154        out: (_|_){
  3155          // [eval]
  3156          foo: (_|_){
  3157            // [eval]
  3158            disallowed: (_|_){
  3159              // [eval] issue3924.one.out.foo.disallowed: field not allowed:
  3160              //     ./ellipsis.cue:46:23
  3161            }
  3162            allowed?: (string){ string }
  3163          }
  3164        }
  3165      }
  3166      two: (_|_){
  3167        // [eval]
  3168        #Schema: (#struct){
  3169          #job: (#struct){
  3170            allowed?: (string){ string }
  3171          }
  3172        }
  3173        out: (_|_){
  3174          // [eval]
  3175          foo: (_|_){
  3176            // [eval] issue3924.two.out.foo.disallowed: field not allowed:
  3177            //     ./ellipsis.cue:52:9
  3178            //     ./ellipsis.cue:59:23
  3179            disallowed: (_|_){
  3180              // [eval] issue3924.two.out.foo.disallowed: field not allowed:
  3181              //     ./ellipsis.cue:52:9
  3182              //     ./ellipsis.cue:59:23
  3183            }
  3184            allowed?: (string){ string }
  3185          }
  3186          #job: (#struct){
  3187            allowed?: (string){ string }
  3188          }
  3189        }
  3190      }
  3191    }
  3192    issue3325: (struct){
  3193      ok: (struct){
  3194        #Items: (#struct){
  3195        }
  3196        #Base: (#struct){
  3197          name: (string){ "base" }
  3198          type: (string){ string }
  3199          items: (#struct){
  3200          }
  3201        }
  3202        #Extended: (#struct){
  3203          type: (string){ "extended" }
  3204          items: (#struct){
  3205            "my-item": (#struct){
  3206              name: (string){ "my-item" }
  3207            }
  3208          }
  3209          name: (string){ "base" }
  3210        }
  3211        broken: (#struct){
  3212          name: (string){ "base" }
  3213          type: (string){ "extended" }
  3214          items: (#struct){
  3215            "my-item": (#struct){
  3216              name: (string){ "my-item" }
  3217            }
  3218          }
  3219        }
  3220        works: (#struct){
  3221          type: (string){ "extended" }
  3222          items: (#struct){
  3223            "my-item": (#struct){
  3224              name: (string){ "my-item" }
  3225            }
  3226          }
  3227          name: (string){ "base" }
  3228        }
  3229      }
  3230    }
  3231    patterns: (_|_){
  3232      // [eval]
  3233      shallow: (_|_){
  3234        // [eval]
  3235        #a: (#struct){
  3236        }
  3237        #b: (#struct){
  3238        }
  3239        #c: (#struct){
  3240        }
  3241        #d: (#struct){
  3242        }
  3243        single: (_|_){
  3244          // [eval]
  3245          X: (#struct){
  3246          }
  3247          err: (_|_){
  3248            // [eval]
  3249            j: (_|_){
  3250              // [eval] patterns.shallow.single.err.j: field not allowed:
  3251              //     ./embed.cue:38:8
  3252            }
  3253          }
  3254          ok: (#struct){
  3255            k: (int){ 3 }
  3256          }
  3257        }
  3258        and: (_|_){
  3259          // [eval]
  3260          p1: (_|_){
  3261            // [eval]
  3262            X: (#struct){
  3263            }
  3264            err: (_|_){
  3265              // [eval]
  3266              j: (_|_){
  3267                // [eval] patterns.shallow.and.p1.err.j: field not allowed:
  3268                //     ./embed.cue:31:6
  3269                //     ./embed.cue:48:8
  3270              }
  3271            }
  3272            ok: (#struct){
  3273              k: (int){ 3 }
  3274            }
  3275          }
  3276          p2: (_|_){
  3277            // [eval]
  3278            X: (#struct){
  3279            }
  3280            err: (_|_){
  3281              // [eval]
  3282              j: (_|_){
  3283                // [eval] patterns.shallow.and.p2.err.j: field not allowed:
  3284                //     ./embed.cue:31:6
  3285                //     ./embed.cue:57:8
  3286              }
  3287            }
  3288            ok: (#struct){
  3289              k: (int){ 3 }
  3290            }
  3291          }
  3292        }
  3293        andEmbed: (_|_){
  3294          // [eval]
  3295          p1: (_|_){
  3296            // [eval]
  3297            X: (#struct){
  3298            }
  3299            err: (_|_){
  3300              // [eval]
  3301              j: (_|_){
  3302                // [eval] patterns.shallow.andEmbed.p1.err.j: field not allowed:
  3303                //     ./embed.cue:31:6
  3304                //     ./embed.cue:67:8
  3305              }
  3306            }
  3307            ok: (#struct){
  3308              k: (int){ 3 }
  3309            }
  3310          }
  3311          p2: (_|_){
  3312            // [eval]
  3313            X: (#struct){
  3314            }
  3315            err: (_|_){
  3316              // [eval]
  3317              j: (_|_){
  3318                // [eval] patterns.shallow.andEmbed.p2.err.j: field not allowed:
  3319                //     ./embed.cue:31:6
  3320                //     ./embed.cue:76:8
  3321              }
  3322            }
  3323            ok: (#struct){
  3324              k: (int){ 3 }
  3325            }
  3326          }
  3327        }
  3328        orEmbed: (struct){
  3329          p1: (struct){
  3330            X: (#struct){
  3331            }
  3332            ok1: (#struct){
  3333              j: (int){ 3 }
  3334            }
  3335            ok2: (#struct){
  3336              k: (int){ 3 }
  3337            }
  3338          }
  3339          p2: (struct){
  3340            X: (#struct){
  3341            }
  3342            ok1: (#struct){
  3343              j: (int){ 3 }
  3344            }
  3345            ok2: (#struct){
  3346              k: (int){ 3 }
  3347            }
  3348          }
  3349        }
  3350        andOrEmbed: (struct){
  3351          t1: (struct){
  3352            p1: (struct){
  3353              X: (#struct){
  3354              }
  3355              err1: (#struct){
  3356                j: (int){ 3 }
  3357              }
  3358              ok1: (#struct){
  3359                k: (int){ 3 }
  3360              }
  3361            }
  3362            p2: (struct){
  3363              X: (#struct){
  3364              }
  3365              err1: (#struct){
  3366                j: (int){ 3 }
  3367              }
  3368              ok1: (#struct){
  3369                k: (int){ 3 }
  3370              }
  3371            }
  3372          }
  3373          t2: (struct){
  3374            X: (#struct){
  3375            }
  3376            err1: (#struct){
  3377              j: (int){ 3 }
  3378            }
  3379            ok1: (#struct){
  3380              k: (int){ 3 }
  3381            }
  3382            ok2: (#struct){
  3383              p: (int){ 3 }
  3384            }
  3385          }
  3386        }
  3387        indirect: (_|_){
  3388          // [eval]
  3389          a: (struct){
  3390          }
  3391          #a: (#struct){
  3392          }
  3393          p1: (_|_){
  3394            // [eval]
  3395            X: (#struct){
  3396            }
  3397            err1: (_|_){
  3398              // [eval]
  3399              j: (_|_){
  3400                // [eval] patterns.shallow.indirect.p1.err1.j: field not allowed:
  3401                //     ./embed.cue:152:10
  3402              }
  3403            }
  3404            err2: (_|_){
  3405              // [eval]
  3406              j: (_|_){
  3407                // [eval] patterns.shallow.indirect.p1.err2.j: field not allowed:
  3408                //     ./embed.cue:155:10
  3409              }
  3410            }
  3411            ok: (#struct){
  3412              k: (int){ 3 }
  3413            }
  3414          }
  3415          p2: (_|_){
  3416            // [eval]
  3417            #a: (#struct){
  3418            }
  3419            X: (#struct){
  3420            }
  3421            err1: (_|_){
  3422              // [eval]
  3423              j: (_|_){
  3424                // [eval] patterns.shallow.indirect.p2.err1.j: field not allowed:
  3425                //     ./embed.cue:166:10
  3426              }
  3427            }
  3428            err2: (_|_){
  3429              // [eval]
  3430              j: (_|_){
  3431                // [eval] patterns.shallow.indirect.p2.err2.j: field not allowed:
  3432                //     ./embed.cue:169:10
  3433              }
  3434            }
  3435            ok: (#struct){
  3436              k: (int){ 3 }
  3437            }
  3438          }
  3439          p3: (_|_){
  3440            // [eval]
  3441            X: (#struct){
  3442            }
  3443            err1: (_|_){
  3444              // [eval]
  3445              j: (_|_){
  3446                // [eval] patterns.shallow.indirect.p3.err1.j: field not allowed:
  3447                //     ./embed.cue:179:10
  3448              }
  3449            }
  3450            err2: (_|_){
  3451              // [eval]
  3452              j: (_|_){
  3453                // [eval] patterns.shallow.indirect.p3.err2.j: field not allowed:
  3454                //     ./embed.cue:182:10
  3455              }
  3456            }
  3457            ok: (#struct){
  3458              k: (int){ 3 }
  3459            }
  3460          }
  3461          p4: (_|_){
  3462            // [eval]
  3463            #a: (#struct){
  3464            }
  3465            X: (#struct){
  3466            }
  3467            err1: (_|_){
  3468              // [eval]
  3469              j: (_|_){
  3470                // [eval] patterns.shallow.indirect.p4.err1.j: field not allowed:
  3471                //     ./embed.cue:194:10
  3472              }
  3473            }
  3474            err2: (_|_){
  3475              // [eval]
  3476              j: (_|_){
  3477                // [eval] patterns.shallow.indirect.p4.err2.j: field not allowed:
  3478                //     ./embed.cue:197:10
  3479              }
  3480            }
  3481            ok: (#struct){
  3482              k: (int){ 3 }
  3483            }
  3484          }
  3485        }
  3486      }
  3487      nested: (_|_){
  3488        // [eval]
  3489        #a: (#struct){
  3490          x: (#struct){
  3491            y: (#struct){
  3492            }
  3493          }
  3494        }
  3495        #b: (#struct){
  3496          x: (#struct){
  3497            y: (#struct){
  3498            }
  3499          }
  3500        }
  3501        #c: (#struct){
  3502          x: (#struct){
  3503            y: (#struct){
  3504            }
  3505          }
  3506        }
  3507        #d: (#struct){
  3508          x: (#struct){
  3509            y: (#struct){
  3510            }
  3511          }
  3512        }
  3513        single: (_|_){
  3514          // [eval]
  3515          X: ~(patterns.nested.#a)
  3516          err: (_|_){
  3517            // [eval]
  3518            x: (_|_){
  3519              // [eval]
  3520              y: (_|_){
  3521                // [eval]
  3522                j: (_|_){
  3523                  // [eval] patterns.nested.single.err.x.y.j: field not allowed:
  3524                  //     ./embed.cue:214:14
  3525                }
  3526              }
  3527            }
  3528          }
  3529          ok: (#struct){
  3530            x: (#struct){
  3531              y: (#struct){
  3532                k: (int){ 3 }
  3533              }
  3534            }
  3535          }
  3536        }
  3537        and: (_|_){
  3538          // [eval]
  3539          p1: (_|_){
  3540            // [eval]
  3541            X: (#struct){
  3542              x: (#struct){
  3543                y: (#struct){
  3544                }
  3545              }
  3546            }
  3547            err: (_|_){
  3548              // [eval]
  3549              x: (_|_){
  3550                // [eval]
  3551                y: (_|_){
  3552                  // [eval]
  3553                  j: (_|_){
  3554                    // [eval] patterns.nested.and.p1.err.x.y.j: field not allowed:
  3555                    //     ./embed.cue:207:12
  3556                    //     ./embed.cue:224:14
  3557                  }
  3558                }
  3559              }
  3560            }
  3561            ok: (#struct){
  3562              x: (#struct){
  3563                y: (#struct){
  3564                  k: (int){ 3 }
  3565                }
  3566              }
  3567            }
  3568          }
  3569          p2: (_|_){
  3570            // [eval]
  3571            X: (#struct){
  3572              x: (#struct){
  3573                y: (#struct){
  3574                }
  3575              }
  3576            }
  3577            err: (_|_){
  3578              // [eval]
  3579              x: (_|_){
  3580                // [eval]
  3581                y: (_|_){
  3582                  // [eval]
  3583                  j: (_|_){
  3584                    // [eval] patterns.nested.and.p2.err.x.y.j: field not allowed:
  3585                    //     ./embed.cue:207:12
  3586                    //     ./embed.cue:233:14
  3587                  }
  3588                }
  3589              }
  3590            }
  3591            ok: (#struct){
  3592              x: (#struct){
  3593                y: (#struct){
  3594                  k: (int){ 3 }
  3595                }
  3596              }
  3597            }
  3598          }
  3599        }
  3600        andEmbed: (_|_){
  3601          // [eval]
  3602          p1: (_|_){
  3603            // [eval]
  3604            X: (#struct){
  3605              x: (#struct){
  3606                y: (#struct){
  3607                }
  3608              }
  3609            }
  3610            err: (_|_){
  3611              // [eval]
  3612              x: (_|_){
  3613                // [eval]
  3614                y: (_|_){
  3615                  // [eval]
  3616                  j: (_|_){
  3617                    // [eval] patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
  3618                    //     ./embed.cue:207:12
  3619                    //     ./embed.cue:243:14
  3620                  }
  3621                }
  3622              }
  3623            }
  3624            ok: (#struct){
  3625              x: (#struct){
  3626                y: (#struct){
  3627                  k: (int){ 3 }
  3628                }
  3629              }
  3630            }
  3631          }
  3632          p2: (_|_){
  3633            // [eval]
  3634            X: (#struct){
  3635              x: (#struct){
  3636                y: (#struct){
  3637                }
  3638              }
  3639            }
  3640            err: (_|_){
  3641              // [eval]
  3642              x: (_|_){
  3643                // [eval]
  3644                y: (_|_){
  3645                  // [eval]
  3646                  j: (_|_){
  3647                    // [eval] patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
  3648                    //     ./embed.cue:207:12
  3649                    //     ./embed.cue:252:14
  3650                  }
  3651                }
  3652              }
  3653            }
  3654            ok: (#struct){
  3655              x: (#struct){
  3656                y: (#struct){
  3657                  k: (int){ 3 }
  3658                }
  3659              }
  3660            }
  3661          }
  3662        }
  3663        orEmbed: (struct){
  3664          p1: (struct){
  3665            X: (#struct){
  3666              x: (#struct){
  3667                y: (#struct){
  3668                }
  3669              }
  3670            }
  3671            ok1: (#struct){
  3672              x: (#struct){
  3673                y: (#struct){
  3674                  j: (int){ 3 }
  3675                }
  3676              }
  3677            }
  3678            ok2: (#struct){
  3679              x: (#struct){
  3680                y: (#struct){
  3681                  k: (int){ 3 }
  3682                }
  3683              }
  3684            }
  3685          }
  3686          p2: (struct){
  3687            X: (#struct){
  3688              x: (#struct){
  3689                y: (#struct){
  3690                }
  3691              }
  3692            }
  3693            ok1: (#struct){
  3694              x: (#struct){
  3695                y: (#struct){
  3696                  j: (int){ 3 }
  3697                }
  3698              }
  3699            }
  3700            ok2: (#struct){
  3701              x: (#struct){
  3702                y: (#struct){
  3703                  k: (int){ 3 }
  3704                }
  3705              }
  3706            }
  3707          }
  3708        }
  3709        andOrEmbed: (struct){
  3710          t1: (struct){
  3711            p1: (struct){
  3712              X: (#struct){
  3713                x: (#struct){
  3714                  y: (#struct){
  3715                  }
  3716                }
  3717              }
  3718              err1: (#struct){
  3719                x: (#struct){
  3720                  y: (#struct){
  3721                    j: (int){ 3 }
  3722                  }
  3723                }
  3724              }
  3725              ok1: (#struct){
  3726                x: (#struct){
  3727                  y: (#struct){
  3728                    k: (int){ 3 }
  3729                  }
  3730                }
  3731              }
  3732            }
  3733            p2: (struct){
  3734              X: (#struct){
  3735                x: (#struct){
  3736                  y: (#struct){
  3737                  }
  3738                }
  3739              }
  3740              err1: (#struct){
  3741                x: (#struct){
  3742                  y: (#struct){
  3743                    j: (int){ 3 }
  3744                  }
  3745                }
  3746              }
  3747              ok1: (#struct){
  3748                x: (#struct){
  3749                  y: (#struct){
  3750                    k: (int){ 3 }
  3751                  }
  3752                }
  3753              }
  3754            }
  3755          }
  3756          t2: (struct){
  3757            X: (#struct){
  3758              x: (#struct){
  3759                y: (#struct){
  3760                }
  3761              }
  3762            }
  3763            err1: (#struct){
  3764              x: (#struct){
  3765                y: (#struct){
  3766                  j: (int){ 3 }
  3767                }
  3768              }
  3769            }
  3770            ok1: (#struct){
  3771              x: (#struct){
  3772                y: (#struct){
  3773                  k: (int){ 3 }
  3774                }
  3775              }
  3776            }
  3777            ok2: (#struct){
  3778              x: (#struct){
  3779                y: (#struct){
  3780                  p: (int){ 3 }
  3781                }
  3782              }
  3783            }
  3784          }
  3785        }
  3786        indirect: (_|_){
  3787          // [eval]
  3788          a: (struct){
  3789            x: (struct){
  3790              y: (struct){
  3791              }
  3792            }
  3793          }
  3794          #a: (#struct){
  3795            x: (#struct){
  3796              y: (#struct){
  3797              }
  3798            }
  3799          }
  3800          p1: (_|_){
  3801            // [eval]
  3802            X: ~(patterns.nested.indirect.#a)
  3803            err1: (_|_){
  3804              // [eval]
  3805              x: (_|_){
  3806                // [eval]
  3807                y: (_|_){
  3808                  // [eval]
  3809                  j: (_|_){
  3810                    // [eval] patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
  3811                    //     ./embed.cue:328:16
  3812                  }
  3813                }
  3814              }
  3815            }
  3816            err2: (_|_){
  3817              // [eval]
  3818              x: (_|_){
  3819                // [eval]
  3820                y: (_|_){
  3821                  // [eval]
  3822                  j: (_|_){
  3823                    // [eval] patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
  3824                    //     ./embed.cue:331:16
  3825                  }
  3826                }
  3827              }
  3828            }
  3829            ok: (#struct){
  3830              x: (#struct){
  3831                y: (#struct){
  3832                  k: (int){ 3 }
  3833                }
  3834              }
  3835            }
  3836          }
  3837          p2: (_|_){
  3838            // [eval]
  3839            #a: (#struct){
  3840              x: (#struct){
  3841                y: (#struct){
  3842                }
  3843              }
  3844            }
  3845            X: ~(patterns.nested.indirect.p2.#a)
  3846            err1: (_|_){
  3847              // [eval]
  3848              x: (_|_){
  3849                // [eval]
  3850                y: (_|_){
  3851                  // [eval]
  3852                  j: (_|_){
  3853                    // [eval] patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
  3854                    //     ./embed.cue:342:16
  3855                  }
  3856                }
  3857              }
  3858            }
  3859            err2: (_|_){
  3860              // [eval]
  3861              x: (_|_){
  3862                // [eval]
  3863                y: (_|_){
  3864                  // [eval]
  3865                  j: (_|_){
  3866                    // [eval] patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
  3867                    //     ./embed.cue:345:16
  3868                  }
  3869                }
  3870              }
  3871            }
  3872            ok: (#struct){
  3873              x: (#struct){
  3874                y: (#struct){
  3875                  k: (int){ 3 }
  3876                }
  3877              }
  3878            }
  3879          }
  3880          p3: (_|_){
  3881            // [eval]
  3882            X: (#struct){
  3883              x: (#struct){
  3884                y: (#struct){
  3885                }
  3886              }
  3887            }
  3888            err1: (_|_){
  3889              // [eval]
  3890              x: (_|_){
  3891                // [eval]
  3892                y: (_|_){
  3893                  // [eval]
  3894                  j: (_|_){
  3895                    // [eval] patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
  3896                    //     ./embed.cue:355:16
  3897                  }
  3898                }
  3899              }
  3900            }
  3901            err2: (_|_){
  3902              // [eval]
  3903              x: (_|_){
  3904                // [eval]
  3905                y: (_|_){
  3906                  // [eval]
  3907                  j: (_|_){
  3908                    // [eval] patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
  3909                    //     ./embed.cue:358:16
  3910                  }
  3911                }
  3912              }
  3913            }
  3914            ok: (#struct){
  3915              x: (#struct){
  3916                y: (#struct){
  3917                  k: (int){ 3 }
  3918                }
  3919              }
  3920            }
  3921          }
  3922          p4: (_|_){
  3923            // [eval]
  3924            #a: (#struct){
  3925              x: (#struct){
  3926                y: (#struct){
  3927                }
  3928              }
  3929            }
  3930            X: (#struct){
  3931              x: (#struct){
  3932                y: (#struct){
  3933                }
  3934              }
  3935            }
  3936            err1: (_|_){
  3937              // [eval]
  3938              x: (_|_){
  3939                // [eval]
  3940                y: (_|_){
  3941                  // [eval]
  3942                  j: (_|_){
  3943                    // [eval] patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
  3944                    //     ./embed.cue:370:16
  3945                  }
  3946                }
  3947              }
  3948            }
  3949            err2: (_|_){
  3950              // [eval]
  3951              x: (_|_){
  3952                // [eval]
  3953                y: (_|_){
  3954                  // [eval]
  3955                  j: (_|_){
  3956                    // [eval] patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
  3957                    //     ./embed.cue:373:16
  3958                  }
  3959                }
  3960              }
  3961            }
  3962            ok: (#struct){
  3963              x: (#struct){
  3964                y: (#struct){
  3965                  k: (int){ 3 }
  3966                }
  3967              }
  3968            }
  3969          }
  3970        }
  3971      }
  3972    }
  3973    issue2241: (_|_){
  3974      // [eval]
  3975      #close: (#struct){
  3976      }
  3977      a: (#struct){
  3978        x: (struct){
  3979          q: (int){ 2 }
  3980        }
  3981      }
  3982      b: (_|_){
  3983        // [eval]
  3984        x: (_|_){
  3985          // [eval]
  3986          r: (_|_){
  3987            // [eval] issue2241.b.x.r: field not allowed:
  3988            //     ./embed.cue:390:8
  3989          }
  3990          q: (int){ 2 }
  3991        }
  3992      }
  3993    }
  3994    #E: (#struct){
  3995      c: (int){ int }
  3996    }
  3997    #A: (#struct){
  3998      b: (int){ int }
  3999      q: (#struct){
  4000        d: (int){ int }
  4001        c: (int){ int }
  4002      }
  4003    }
  4004    a: (_|_){
  4005      // [eval]
  4006      b: (int){ 3 }
  4007      q: (_|_){
  4008        // [eval]
  4009        c: (int){ 2 }
  4010        e: (_|_){
  4011          // [eval] a.q.e: field not allowed:
  4012          //     ./in.cue:15:3
  4013        }
  4014        d: (int){ int }
  4015      }
  4016    }
  4017    issue852: (_|_){
  4018      // [eval] issue852.a.Foo: field not allowed:
  4019      //     ./in.cue:28:5
  4020      #A: (#struct){
  4021      }
  4022      a: (_|_){
  4023        // [eval]
  4024        Foo: (_|_){
  4025          // [eval] issue852.a.Foo: field not allowed:
  4026          //     ./in.cue:28:5
  4027        }
  4028      }
  4029    }
  4030    dynamic: (struct){
  4031      #D: (#struct){
  4032        key: (string){ "foo" }
  4033        foo: (int){ int }
  4034      }
  4035      d: (#struct){
  4036        foo: (int){ 3 }
  4037        key: (string){ "foo" }
  4038      }
  4039    }
  4040    issue3330: (struct){
  4041      let: (struct){
  4042        ok: (struct){
  4043          #struct: (#struct){
  4044            let empty#1 = (#struct){
  4045            }
  4046            field: (#struct){
  4047              n: (int){ 3 }
  4048            }
  4049          }
  4050          out: (#list){
  4051            0: ~(issue3330.let.ok.#struct)
  4052          }
  4053        }
  4054      }
  4055      matthew: (struct){
  4056        ok1: (struct){
  4057          #struct: (#struct){
  4058            field: (#struct){
  4059              n: (int){ 3 }
  4060            }
  4061            g: (#struct){
  4062            }
  4063          }
  4064          out: (#struct){
  4065            field: (#struct){
  4066              n: (int){ 3 }
  4067            }
  4068            g: (#struct){
  4069            }
  4070          }
  4071        }
  4072        ok2: (struct){
  4073          #struct: (#struct){
  4074            field: (#struct){
  4075              n: (int){ 3 }
  4076            }
  4077            g: (#struct){
  4078            }
  4079          }
  4080          out: ~(issue3330.matthew.ok2.#struct)
  4081          out2: (#struct){
  4082            field: (#struct){
  4083              n: (int){ 3 }
  4084            }
  4085            g: (#struct){
  4086            }
  4087          }
  4088        }
  4089      }
  4090    }
  4091    issue3331: (struct){
  4092      original: (struct){
  4093        ok: (#list){
  4094          #A: (#struct){
  4095            let b#2 = (#struct){
  4096            }
  4097            c: (#struct){
  4098              d: (int){ 1 }
  4099            }
  4100          }
  4101          0: ~(issue3331.original.ok.#A)
  4102        }
  4103      }
  4104      variant1: (struct){
  4105        ok: (#list){
  4106          #A: (#struct){
  4107            let b#3 = (#struct){
  4108            }
  4109            c: (#struct){
  4110              d: (int){ 1 }
  4111            }
  4112          }
  4113          0: (#list){
  4114            0: ~(issue3331.variant1.ok.#A)
  4115          }
  4116        }
  4117      }
  4118    }
  4119    indirect: (_|_){
  4120      // [eval]
  4121      embed: (struct){
  4122        err1: (struct){
  4123          #A: (#struct){
  4124            x: (#struct){
  4125              a: (#struct){
  4126                b: (int){ 1 }
  4127                c: (int){ 2 }
  4128              }
  4129            }
  4130            zx: ~(indirect.embed.err1.#A.x.a)
  4131          }
  4132          #x: (#struct){
  4133            a: (#struct){
  4134              b: (int){ 1 }
  4135            }
  4136          }
  4137          #y: (#struct){
  4138            a: (#struct){
  4139              c: (int){ 2 }
  4140            }
  4141          }
  4142          b: ~(indirect.embed.err1.#A)
  4143          b1: (#struct){
  4144            d: (int){ 1 }
  4145            b: (int){ 1 }
  4146            c: (int){ 2 }
  4147          }
  4148        }
  4149      }
  4150      closed: (_|_){
  4151        // [eval]
  4152        err1: (_|_){
  4153          // [eval]
  4154          X: (struct){
  4155            a: (struct){
  4156              e: (int){ 1 }
  4157            }
  4158            b: (struct){
  4159            }
  4160          }
  4161          Y: (_|_){
  4162            // [eval]
  4163            b: (#struct){
  4164            }
  4165            c: (#struct){
  4166            }
  4167            a: (_|_){
  4168              // [eval]
  4169              e: (_|_){
  4170                // [eval] indirect.closed.err1.Y.a.e: field not allowed:
  4171                //     ./reroot.cue:75:7
  4172              }
  4173            }
  4174          }
  4175          #X: (#struct){
  4176          }
  4177        }
  4178      }
  4179    }
  4180    nested: (_|_){
  4181      // [eval]
  4182      ok1: (struct){
  4183        #A: (#struct){
  4184          b: (#struct){
  4185          }
  4186          #B: (#struct){
  4187            c: (#struct){
  4188              d: (int){ 1 }
  4189            }
  4190          }
  4191        }
  4192        x: ~(nested.ok1.#A)
  4193      }
  4194      embed: (struct){
  4195        ok: (struct){
  4196          x: ~(nested.embed.ok.#A)
  4197          #A: (#struct){
  4198            d: (#struct){
  4199              e: (int){ int }
  4200            }
  4201            b: (#struct){
  4202            }
  4203          }
  4204          k: (struct){
  4205            d: (struct){
  4206              e: (int){ int }
  4207            }
  4208            b: (struct){
  4209            }
  4210          }
  4211        }
  4212      }
  4213      err1: (_|_){
  4214        // [eval]
  4215        x: (_|_){
  4216          // [eval]
  4217          b: (_|_){
  4218            // [eval]
  4219            f: (_|_){
  4220              // [eval] nested.err1.x.b.f: field not allowed:
  4221              //     ./reroot.cue:114:6
  4222            }
  4223            g: (_|_){
  4224              // [eval] nested.err1.x.b.g: field not allowed:
  4225              //     ./reroot.cue:123:6
  4226            }
  4227          }
  4228          v: ~(nested.err1.x.#V)
  4229          #V: (_|_){
  4230            // [eval]
  4231            c: (_|_){
  4232              // [eval]
  4233              d: (_|_){
  4234                // [eval] nested.err1.x.#V.c.d: field not allowed:
  4235                //     ./reroot.cue:118:5
  4236              }
  4237              f: (_|_){
  4238                // [eval] nested.err1.x.#V.c.f: field not allowed:
  4239                //     ./reroot.cue:114:6
  4240              }
  4241              g: (int){ 1 }
  4242            }
  4243          }
  4244        }
  4245        #A: (#struct){
  4246          b: (#struct){
  4247            f: (int){ 1 }
  4248          }
  4249          v: ~(nested.err1.#A.#V)
  4250          #V: (#struct){
  4251            c: (#struct){
  4252              d: (int){ 1 }
  4253              f: (int){ 1 }
  4254            }
  4255          }
  4256        }
  4257        #B: (#struct){
  4258          g: (int){ 1 }
  4259        }
  4260      }
  4261      err2: (_|_){
  4262        // [eval]
  4263        #A: (#struct){
  4264          b: (#struct){
  4265          }
  4266          c: (#struct){
  4267            d: (int){ 1 }
  4268          }
  4269        }
  4270        x: (_|_){
  4271          // [eval]
  4272          b: (_|_){
  4273            // [eval]
  4274            g: (_|_){
  4275              // [eval] nested.err2.x.b.g: field not allowed:
  4276              //     ./reroot.cue:137:8
  4277            }
  4278          }
  4279          c: (#struct){
  4280            d: (int){ 1 }
  4281            g: (int){ 1 }
  4282          }
  4283        }
  4284      }
  4285    }
  4286    inline: (struct){
  4287      #x: (#struct){
  4288        y: (#struct){
  4289          z?: (#struct){
  4290            name: (string){ string }
  4291          }
  4292        }
  4293      }
  4294      err1: (#struct){
  4295        name: (string){ "a" }
  4296        age1: (int){ 5 }
  4297      }
  4298      err2: (#struct){
  4299        name: (string){ "a" }
  4300        age2: (int){ 5 }
  4301      }
  4302    }
  4303    mixInDef: (struct){
  4304      refInside: (struct){
  4305        #x: (#struct){
  4306          b: (#struct){
  4307            c: (#struct){
  4308              d: (#struct){
  4309              }
  4310              e: (#struct){
  4311                f: (#struct){
  4312                }
  4313              }
  4314            }
  4315          }
  4316        }
  4317        a: (#struct){
  4318          b: (#struct){
  4319            c: (#struct){
  4320              d: (#struct){
  4321              }
  4322              e: (#struct){
  4323                f: (#struct){
  4324                }
  4325              }
  4326            }
  4327          }
  4328        }
  4329      }
  4330      refEdge: (struct){
  4331        #x: (#struct){
  4332          c: (#struct){
  4333            d: (#struct){
  4334            }
  4335            e: (#struct){
  4336              f: (#struct){
  4337              }
  4338            }
  4339          }
  4340        }
  4341        a: (#struct){
  4342          c: (#struct){
  4343            d: (#struct){
  4344            }
  4345            e: (#struct){
  4346              f: (#struct){
  4347              }
  4348            }
  4349          }
  4350        }
  4351      }
  4352      refOutside: (struct){
  4353        #x: (#struct){
  4354          c: (#struct){
  4355            d: (#struct){
  4356            }
  4357            e: (#struct){
  4358              f: (#struct){
  4359              }
  4360            }
  4361          }
  4362        }
  4363        a: (#struct){
  4364          c: (#struct){
  4365            d: (#struct){
  4366            }
  4367            e: (#struct){
  4368              f: (#struct){
  4369              }
  4370            }
  4371          }
  4372        }
  4373      }
  4374    }
  4375    issue3601: (struct){
  4376      original: (struct){
  4377        out: (#struct){
  4378          foo: (#struct){
  4379            final: (#struct){
  4380              version: (string){ "v1" }
  4381            }
  4382          }
  4383        }
  4384        #Transform: (#struct){
  4385          output: (#struct){
  4386            foo: (#struct){
  4387              final: (#struct){
  4388                version: (string){ "v1" }
  4389              }
  4390            }
  4391          }
  4392        }
  4393        #Patch: (#struct){
  4394          target: (#struct){
  4395          }
  4396          output: (#struct){
  4397            foo: (#struct){
  4398              final: (#struct){
  4399                version: (string){ "v1" }
  4400              }
  4401            }
  4402          }
  4403        }
  4404      }
  4405      originalNoShare: (struct){
  4406        out: (#struct){
  4407          foo: (#struct){
  4408            final: (#struct){
  4409              version: (string){ "v1" }
  4410            }
  4411          }
  4412        }
  4413        #Transform: (#struct){
  4414          output: (#struct){
  4415            foo: (#struct){
  4416              final: (#struct){
  4417                version: (string){ "v1" }
  4418              }
  4419            }
  4420          }
  4421        }
  4422        #Patch: (#struct){
  4423          target: (#struct){
  4424          }
  4425          output: (#struct){
  4426            foo: (#struct){
  4427              final: (#struct){
  4428                version: (string){ "v1" }
  4429              }
  4430            }
  4431          }
  4432        }
  4433      }
  4434      reduced: (struct){
  4435        #X: (#struct){
  4436          a: (#struct){
  4437            b: (#struct){
  4438              c: (string){ "v1" }
  4439            }
  4440          }
  4441          empty: (#struct){
  4442          }
  4443        }
  4444        original: (struct){
  4445          Y: (#struct){
  4446            b: (#struct){
  4447              c: (string){ "v1" }
  4448            }
  4449          }
  4450          out: (#struct){
  4451            b: (#struct){
  4452              c: (string){ "v1" }
  4453            }
  4454          }
  4455        }
  4456        moreInlining: (struct){
  4457          out: (#struct){
  4458            b: (#struct){
  4459              c: (string){ "v1" }
  4460            }
  4461          }
  4462        }
  4463        noInline: (struct){
  4464          Y: (#struct){
  4465            a: (#struct){
  4466              b: (#struct){
  4467                c: (string){ "v1" }
  4468              }
  4469            }
  4470            empty: (#struct){
  4471            }
  4472          }
  4473          Z: (#struct){
  4474            a: (#struct){
  4475              b: (#struct){
  4476                c: (string){ "v1" }
  4477              }
  4478            }
  4479            empty: (#struct){
  4480            }
  4481          }
  4482          out: (#struct){
  4483            b: (#struct){
  4484              c: (string){ "v1" }
  4485            }
  4486          }
  4487        }
  4488        moreNesting: (struct){
  4489          #X: (#struct){
  4490            a: (#struct){
  4491              b: (#struct){
  4492                c: (#struct){
  4493                  d: (string){ "v1" }
  4494                }
  4495              }
  4496            }
  4497            empty: (#struct){
  4498            }
  4499          }
  4500          Y: (#struct){
  4501            c: (#struct){
  4502              d: (string){ "v1" }
  4503            }
  4504          }
  4505          Z: (#struct){
  4506            c: (#struct){
  4507              d: (string){ "v1" }
  4508            }
  4509          }
  4510        }
  4511      }
  4512    }
  4513    issue3332: (struct){
  4514      #def: (#struct){
  4515        field: (list){ list.MinItems(1) }
  4516      }
  4517      use: (#struct){
  4518        field: (#list){
  4519          0: (string){ "value" }
  4520        }
  4521      }
  4522    }
  4523  }
  4524  -- diff/-out/evalalpha<==>+out/eval --
  4525  diff old new
  4526  --- old
  4527  +++ new
  4528  @@ -1,349 +1,94 @@
  4529   Errors:
  4530   a.q.e: field not allowed:
  4531  -    ./in.cue:1:5
  4532  -    ./in.cue:6:5
  4533  -    ./in.cue:7:3
  4534  -    ./in.cue:11:4
  4535       ./in.cue:15:3
  4536   indirect.closed.err1.Y.a.e: field not allowed:
  4537  -    ./reroot.cue:73:7
  4538  -    ./reroot.cue:74:7
  4539       ./reroot.cue:75:7
  4540  -    ./reroot.cue:77:6
  4541  -    ./reroot.cue:79:7
  4542  -    ./reroot.cue:80:7
  4543  -    ./reroot.cue:82:7
  4544   issue1867.one.x.foo: field not allowed:
  4545  -    ./ellipsis.cue:20:12
  4546  -    ./ellipsis.cue:21:7
  4547  -    ./ellipsis.cue:22:5
  4548       ./ellipsis.cue:23:5
  4549   issue1867.three.x.foo: field not allowed:
  4550  -    ./ellipsis.cue:34:15
  4551  -    ./ellipsis.cue:35:10
  4552  -    ./ellipsis.cue:36:5
  4553       ./ellipsis.cue:37:5
  4554   issue1867.two.x.foo: field not allowed:
  4555  -    ./ellipsis.cue:26:6
  4556  -    ./ellipsis.cue:27:9
  4557  -    ./ellipsis.cue:28:10
  4558  -    ./ellipsis.cue:29:5
  4559       ./ellipsis.cue:30:5
  4560  +issue2241.b.x.r: field not allowed:
  4561  +    ./embed.cue:390:8
  4562   issue3778.full.z.b: field not allowed:
  4563  -    ./ellipsis.cue:2:6
  4564  -    ./ellipsis.cue:3:6
  4565  -    ./ellipsis.cue:3:13
  4566  -    ./ellipsis.cue:4:5
  4567       ./ellipsis.cue:6:3
  4568   issue3924.one.out.foo.disallowed: field not allowed:
  4569  -    ./ellipsis.cue:42:3
  4570  -    ./ellipsis.cue:42:14
  4571  -    ./ellipsis.cue:44:16
  4572  -    ./ellipsis.cue:46:7
  4573       ./ellipsis.cue:46:23
  4574   issue852.a.Foo: field not allowed:
  4575  -    ./in.cue:22:6
  4576  -    ./in.cue:26:5
  4577       ./in.cue:28:5
  4578   nested.err1.x.#V.c.d: field not allowed:
  4579  -    ./reroot.cue:112:5
  4580  -    ./reroot.cue:114:6
  4581  -    ./reroot.cue:117:7
  4582  -    ./reroot.cue:118:5
  4583  -    ./reroot.cue:122:8
  4584  -    ./reroot.cue:123:6
  4585  +    ./reroot.cue:118:5
  4586   nested.err1.x.#V.c.f: field not allowed:
  4587  -    ./reroot.cue:112:5
  4588  -    ./reroot.cue:114:6
  4589  -    ./reroot.cue:117:7
  4590  -    ./reroot.cue:117:11
  4591  -    ./reroot.cue:122:8
  4592  -    ./reroot.cue:123:6
  4593  +    ./reroot.cue:114:6
  4594   nested.err1.x.b.f: field not allowed:
  4595  -    ./reroot.cue:112:5
  4596  -    ./reroot.cue:114:6
  4597  -    ./reroot.cue:122:8
  4598  -    ./reroot.cue:123:6
  4599  +    ./reroot.cue:114:6
  4600   nested.err1.x.b.g: field not allowed:
  4601  -    ./reroot.cue:112:5
  4602  -    ./reroot.cue:114:6
  4603  -    ./reroot.cue:122:8
  4604  -    ./reroot.cue:123:6
  4605  -nested.err1.x.v.c.d: field not allowed:
  4606  -    ./reroot.cue:112:5
  4607  -    ./reroot.cue:114:6
  4608  -    ./reroot.cue:115:6
  4609  -    ./reroot.cue:117:7
  4610  -    ./reroot.cue:118:5
  4611  -    ./reroot.cue:122:8
  4612  -    ./reroot.cue:123:6
  4613  -nested.err1.x.v.c.f: field not allowed:
  4614  -    ./reroot.cue:112:5
  4615  -    ./reroot.cue:114:6
  4616  -    ./reroot.cue:115:6
  4617  -    ./reroot.cue:117:7
  4618  -    ./reroot.cue:117:11
  4619  -    ./reroot.cue:122:8
  4620       ./reroot.cue:123:6
  4621   nested.err2.x.b.g: field not allowed:
  4622  -    ./reroot.cue:128:6
  4623  -    ./reroot.cue:136:5
  4624       ./reroot.cue:137:8
  4625   patterns.nested.and.p1.err.x.y.j: field not allowed:
  4626  -    ./embed.cue:206:12
  4627  -    ./embed.cue:207:12
  4628  -    ./embed.cue:221:6
  4629  -    ./embed.cue:221:11
  4630  -    ./embed.cue:223:8
  4631  +    ./embed.cue:207:12
  4632       ./embed.cue:224:14
  4633   patterns.nested.and.p2.err.x.y.j: field not allowed:
  4634  -    ./embed.cue:206:12
  4635  -    ./embed.cue:207:12
  4636  -    ./embed.cue:231:6
  4637  -    ./embed.cue:231:11
  4638  -    ./embed.cue:232:8
  4639  +    ./embed.cue:207:12
  4640       ./embed.cue:233:14
  4641   patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
  4642  -    ./embed.cue:206:12
  4643  -    ./embed.cue:207:12
  4644  -    ./embed.cue:240:8
  4645  -    ./embed.cue:240:13
  4646  -    ./embed.cue:242:8
  4647  +    ./embed.cue:207:12
  4648       ./embed.cue:243:14
  4649   patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
  4650  -    ./embed.cue:206:12
  4651  -    ./embed.cue:207:12
  4652  -    ./embed.cue:250:8
  4653  -    ./embed.cue:250:13
  4654  -    ./embed.cue:251:8
  4655  +    ./embed.cue:207:12
  4656       ./embed.cue:252:14
  4657  -patterns.nested.andOrEmbed.t1.p1.err1.x.y.j: field not allowed:
  4658  -    ./embed.cue:206:12
  4659  -    ./embed.cue:207:12
  4660  -    ./embed.cue:208:12
  4661  -    ./embed.cue:209:12
  4662  -    ./embed.cue:280:4
  4663  -    ./embed.cue:280:9
  4664  -    ./embed.cue:281:4
  4665  -    ./embed.cue:281:9
  4666  -    ./embed.cue:283:9
  4667  -    ./embed.cue:284:15
  4668  -patterns.nested.andOrEmbed.t1.p2.err1.x.y.j: field not allowed:
  4669  -    ./embed.cue:206:12
  4670  -    ./embed.cue:207:12
  4671  -    ./embed.cue:208:12
  4672  -    ./embed.cue:209:12
  4673  -    ./embed.cue:293:4
  4674  -    ./embed.cue:293:9
  4675  -    ./embed.cue:294:4
  4676  -    ./embed.cue:294:9
  4677  -    ./embed.cue:296:9
  4678  -    ./embed.cue:297:15
  4679  -patterns.nested.andOrEmbed.t2.err1.x.y.j: field not allowed:
  4680  -    ./embed.cue:206:12
  4681  -    ./embed.cue:207:12
  4682  -    ./embed.cue:208:12
  4683  -    ./embed.cue:209:12
  4684  -    ./embed.cue:306:4
  4685  -    ./embed.cue:306:9
  4686  -    ./embed.cue:307:4
  4687  -    ./embed.cue:307:9
  4688  -    ./embed.cue:310:9
  4689  -    ./embed.cue:311:15
  4690  -patterns.nested.andOrEmbed.t2.ok2.x.y.p: field not allowed:
  4691  -    ./embed.cue:206:12
  4692  -    ./embed.cue:207:12
  4693  -    ./embed.cue:208:12
  4694  -    ./embed.cue:209:12
  4695  -    ./embed.cue:306:4
  4696  -    ./embed.cue:306:9
  4697  -    ./embed.cue:307:4
  4698  -    ./embed.cue:307:9
  4699  -    ./embed.cue:316:8
  4700  -    ./embed.cue:317:14
  4701   patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
  4702  -    ./embed.cue:322:12
  4703  -    ./embed.cue:323:7
  4704  -    ./embed.cue:326:7
  4705  -    ./embed.cue:327:10
  4706       ./embed.cue:328:16
  4707   patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
  4708  -    ./embed.cue:322:12
  4709  -    ./embed.cue:323:7
  4710  -    ./embed.cue:326:7
  4711  -    ./embed.cue:330:10
  4712       ./embed.cue:331:16
  4713   patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
  4714  -    ./embed.cue:322:12
  4715  -    ./embed.cue:338:8
  4716  -    ./embed.cue:339:7
  4717  -    ./embed.cue:341:10
  4718       ./embed.cue:342:16
  4719   patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
  4720  -    ./embed.cue:322:12
  4721  -    ./embed.cue:338:8
  4722  -    ./embed.cue:339:7
  4723  -    ./embed.cue:344:10
  4724       ./embed.cue:345:16
  4725   patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
  4726  -    ./embed.cue:322:12
  4727  -    ./embed.cue:323:7
  4728  -    ./embed.cue:352:7
  4729  -    ./embed.cue:354:10
  4730       ./embed.cue:355:16
  4731   patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
  4732  -    ./embed.cue:322:12
  4733  -    ./embed.cue:323:7
  4734  -    ./embed.cue:352:7
  4735  -    ./embed.cue:357:10
  4736       ./embed.cue:358:16
  4737   patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
  4738  -    ./embed.cue:322:12
  4739  -    ./embed.cue:365:8
  4740  -    ./embed.cue:366:7
  4741  -    ./embed.cue:369:10
  4742       ./embed.cue:370:16
  4743   patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
  4744  -    ./embed.cue:322:12
  4745  -    ./embed.cue:365:8
  4746  -    ./embed.cue:366:7
  4747  -    ./embed.cue:372:10
  4748       ./embed.cue:373:16
  4749   patterns.nested.single.err.x.y.j: field not allowed:
  4750  -    ./embed.cue:206:12
  4751  -    ./embed.cue:212:6
  4752  -    ./embed.cue:213:8
  4753       ./embed.cue:214:14
  4754   patterns.shallow.and.p1.err.j: field not allowed:
  4755  -    ./embed.cue:30:6
  4756  -    ./embed.cue:31:6
  4757  -    ./embed.cue:45:6
  4758  -    ./embed.cue:45:11
  4759  -    ./embed.cue:47:8
  4760  +    ./embed.cue:31:6
  4761       ./embed.cue:48:8
  4762   patterns.shallow.and.p2.err.j: field not allowed:
  4763  -    ./embed.cue:30:6
  4764  -    ./embed.cue:31:6
  4765  -    ./embed.cue:55:6
  4766  -    ./embed.cue:55:11
  4767  -    ./embed.cue:56:8
  4768  +    ./embed.cue:31:6
  4769       ./embed.cue:57:8
  4770   patterns.shallow.andEmbed.p1.err.j: field not allowed:
  4771  -    ./embed.cue:30:6
  4772  -    ./embed.cue:31:6
  4773  -    ./embed.cue:64:6
  4774  -    ./embed.cue:64:8
  4775  -    ./embed.cue:64:13
  4776  -    ./embed.cue:66:8
  4777  +    ./embed.cue:31:6
  4778       ./embed.cue:67:8
  4779   patterns.shallow.andEmbed.p2.err.j: field not allowed:
  4780  -    ./embed.cue:30:6
  4781  -    ./embed.cue:31:6
  4782  -    ./embed.cue:74:6
  4783  -    ./embed.cue:74:8
  4784  -    ./embed.cue:74:13
  4785  -    ./embed.cue:75:8
  4786  +    ./embed.cue:31:6
  4787       ./embed.cue:76:8
  4788  -patterns.shallow.andOrEmbed.t1.p1.err1.j: field not allowed:
  4789  -    ./embed.cue:30:6
  4790  -    ./embed.cue:31:6
  4791  -    ./embed.cue:32:6
  4792  -    ./embed.cue:33:6
  4793  -    ./embed.cue:103:6
  4794  -    ./embed.cue:104:4
  4795  -    ./embed.cue:104:9
  4796  -    ./embed.cue:105:4
  4797  -    ./embed.cue:105:9
  4798  -    ./embed.cue:107:9
  4799  -    ./embed.cue:108:9
  4800  -patterns.shallow.andOrEmbed.t1.p2.err1.j: field not allowed:
  4801  -    ./embed.cue:30:6
  4802  -    ./embed.cue:31:6
  4803  -    ./embed.cue:32:6
  4804  -    ./embed.cue:33:6
  4805  -    ./embed.cue:116:6
  4806  -    ./embed.cue:117:4
  4807  -    ./embed.cue:117:9
  4808  -    ./embed.cue:118:4
  4809  -    ./embed.cue:118:9
  4810  -    ./embed.cue:120:9
  4811  -    ./embed.cue:121:9
  4812  -patterns.shallow.andOrEmbed.t2.err1.j: field not allowed:
  4813  -    ./embed.cue:30:6
  4814  -    ./embed.cue:31:6
  4815  -    ./embed.cue:32:6
  4816  -    ./embed.cue:33:6
  4817  -    ./embed.cue:129:6
  4818  -    ./embed.cue:130:4
  4819  -    ./embed.cue:130:9
  4820  -    ./embed.cue:131:4
  4821  -    ./embed.cue:131:9
  4822  -    ./embed.cue:134:9
  4823  -    ./embed.cue:135:9
  4824   patterns.shallow.indirect.p1.err1.j: field not allowed:
  4825  -    ./embed.cue:146:6
  4826  -    ./embed.cue:147:7
  4827  -    ./embed.cue:150:7
  4828  -    ./embed.cue:151:10
  4829       ./embed.cue:152:10
  4830   patterns.shallow.indirect.p1.err2.j: field not allowed:
  4831  -    ./embed.cue:146:6
  4832  -    ./embed.cue:147:7
  4833  -    ./embed.cue:150:7
  4834  -    ./embed.cue:154:10
  4835       ./embed.cue:155:10
  4836   patterns.shallow.indirect.p2.err1.j: field not allowed:
  4837  -    ./embed.cue:146:6
  4838  -    ./embed.cue:162:8
  4839  -    ./embed.cue:163:7
  4840  -    ./embed.cue:165:10
  4841       ./embed.cue:166:10
  4842   patterns.shallow.indirect.p2.err2.j: field not allowed:
  4843  -    ./embed.cue:146:6
  4844  -    ./embed.cue:162:8
  4845  -    ./embed.cue:163:7
  4846  -    ./embed.cue:168:10
  4847       ./embed.cue:169:10
  4848   patterns.shallow.indirect.p3.err1.j: field not allowed:
  4849  -    ./embed.cue:146:6
  4850  -    ./embed.cue:147:7
  4851  -    ./embed.cue:176:7
  4852  -    ./embed.cue:178:10
  4853       ./embed.cue:179:10
  4854   patterns.shallow.indirect.p3.err2.j: field not allowed:
  4855  -    ./embed.cue:146:6
  4856  -    ./embed.cue:147:7
  4857  -    ./embed.cue:176:7
  4858  -    ./embed.cue:181:10
  4859       ./embed.cue:182:10
  4860   patterns.shallow.indirect.p4.err1.j: field not allowed:
  4861  -    ./embed.cue:146:6
  4862  -    ./embed.cue:189:8
  4863  -    ./embed.cue:190:7
  4864  -    ./embed.cue:193:10
  4865       ./embed.cue:194:10
  4866   patterns.shallow.indirect.p4.err2.j: field not allowed:
  4867  -    ./embed.cue:146:6
  4868  -    ./embed.cue:189:8
  4869  -    ./embed.cue:190:7
  4870  -    ./embed.cue:196:10
  4871       ./embed.cue:197:10
  4872   patterns.shallow.single.err.j: field not allowed:
  4873  -    ./embed.cue:30:6
  4874  -    ./embed.cue:36:6
  4875  -    ./embed.cue:37:8
  4876       ./embed.cue:38:8
  4877  -issue3924.two.out.foo: invalid value {disallowed:_|_(issue3924.two.out.foo.disallowed: field not allowed),allowed?:string} (does not satisfy matchN): 0 matched, expected 1:
  4878  -    ./ellipsis.cue:52:9
  4879  -    ./ellipsis.cue:50:14
  4880  -    ./ellipsis.cue:52:16
  4881  -    ./ellipsis.cue:59:23
  4882   issue3924.two.out.foo.disallowed: field not allowed:
  4883       ./ellipsis.cue:52:9
  4884  -    ./ellipsis.cue:50:3
  4885  -    ./ellipsis.cue:50:14
  4886  -    ./ellipsis.cue:55:15
  4887  -    ./ellipsis.cue:59:7
  4888       ./ellipsis.cue:59:23
  4889   
  4890   Result:
  4891  @@ -364,10 +109,6 @@
  4892           a: (string){ "ok" }
  4893           b: (_|_){
  4894             // [eval] issue3778.full.z.b: field not allowed:
  4895  -          //     ./ellipsis.cue:2:6
  4896  -          //     ./ellipsis.cue:3:6
  4897  -          //     ./ellipsis.cue:3:13
  4898  -          //     ./ellipsis.cue:4:5
  4899             //     ./ellipsis.cue:6:3
  4900           }
  4901         }
  4902  @@ -395,9 +136,6 @@
  4903           // [eval]
  4904           foo: (_|_){
  4905             // [eval] issue1867.one.x.foo: field not allowed:
  4906  -          //     ./ellipsis.cue:20:12
  4907  -          //     ./ellipsis.cue:21:7
  4908  -          //     ./ellipsis.cue:22:5
  4909             //     ./ellipsis.cue:23:5
  4910           }
  4911         }
  4912  @@ -414,10 +152,6 @@
  4913           // [eval]
  4914           foo: (_|_){
  4915             // [eval] issue1867.two.x.foo: field not allowed:
  4916  -          //     ./ellipsis.cue:26:6
  4917  -          //     ./ellipsis.cue:27:9
  4918  -          //     ./ellipsis.cue:28:10
  4919  -          //     ./ellipsis.cue:29:5
  4920             //     ./ellipsis.cue:30:5
  4921           }
  4922         }
  4923  @@ -432,9 +166,6 @@
  4924           // [eval]
  4925           foo: (_|_){
  4926             // [eval] issue1867.three.x.foo: field not allowed:
  4927  -          //     ./ellipsis.cue:34:15
  4928  -          //     ./ellipsis.cue:35:10
  4929  -          //     ./ellipsis.cue:36:5
  4930             //     ./ellipsis.cue:37:5
  4931           }
  4932         }
  4933  @@ -455,10 +186,6 @@
  4934             // [eval]
  4935             disallowed: (_|_){
  4936               // [eval] issue3924.one.out.foo.disallowed: field not allowed:
  4937  -            //     ./ellipsis.cue:42:3
  4938  -            //     ./ellipsis.cue:42:14
  4939  -            //     ./ellipsis.cue:44:16
  4940  -            //     ./ellipsis.cue:46:7
  4941               //     ./ellipsis.cue:46:23
  4942             }
  4943             allowed?: (string){ string }
  4944  @@ -474,33 +201,20 @@
  4945         }
  4946         out: (_|_){
  4947           // [eval]
  4948  -        #job: (#struct){
  4949  -          allowed?: (string){ string }
  4950  -        }
  4951  -        foo: (_|_){
  4952  -          // [eval] issue3924.two.out.foo: invalid value {disallowed:_|_(issue3924.two.out.foo.disallowed: field not allowed),allowed?:string} (does not satisfy matchN): 0 matched, expected 1:
  4953  -          //     ./ellipsis.cue:52:9
  4954  -          //     ./ellipsis.cue:50:14
  4955  -          //     ./ellipsis.cue:52:16
  4956  -          //     ./ellipsis.cue:59:23
  4957  -          // issue3924.two.out.foo.disallowed: field not allowed:
  4958  -          //     ./ellipsis.cue:52:9
  4959  -          //     ./ellipsis.cue:50:3
  4960  -          //     ./ellipsis.cue:50:14
  4961  -          //     ./ellipsis.cue:55:15
  4962  -          //     ./ellipsis.cue:59:7
  4963  +        foo: (_|_){
  4964  +          // [eval] issue3924.two.out.foo.disallowed: field not allowed:
  4965  +          //     ./ellipsis.cue:52:9
  4966             //     ./ellipsis.cue:59:23
  4967             disallowed: (_|_){
  4968               // [eval] issue3924.two.out.foo.disallowed: field not allowed:
  4969               //     ./ellipsis.cue:52:9
  4970  -            //     ./ellipsis.cue:50:3
  4971  -            //     ./ellipsis.cue:50:14
  4972  -            //     ./ellipsis.cue:55:15
  4973  -            //     ./ellipsis.cue:59:7
  4974               //     ./ellipsis.cue:59:23
  4975             }
  4976             allowed?: (string){ string }
  4977           }
  4978  +        #job: (#struct){
  4979  +          allowed?: (string){ string }
  4980  +        }
  4981         }
  4982       }
  4983     }
  4984  @@ -515,13 +229,13 @@
  4985           }
  4986         }
  4987         #Extended: (#struct){
  4988  -        name: (string){ "base" }
  4989  -        type: (string){ "extended" }
  4990  -        items: (#struct){
  4991  -          "my-item": (#struct){
  4992  -            name: (string){ "my-item" }
  4993  -          }
  4994  -        }
  4995  +        type: (string){ "extended" }
  4996  +        items: (#struct){
  4997  +          "my-item": (#struct){
  4998  +            name: (string){ "my-item" }
  4999  +          }
  5000  +        }
  5001  +        name: (string){ "base" }
  5002         }
  5003         broken: (#struct){
  5004           name: (string){ "base" }
  5005  @@ -533,13 +247,13 @@
  5006           }
  5007         }
  5008         works: (#struct){
  5009  -        name: (string){ "base" }
  5010  -        type: (string){ "extended" }
  5011  -        items: (#struct){
  5012  -          "my-item": (#struct){
  5013  -            name: (string){ "my-item" }
  5014  -          }
  5015  -        }
  5016  +        type: (string){ "extended" }
  5017  +        items: (#struct){
  5018  +          "my-item": (#struct){
  5019  +            name: (string){ "my-item" }
  5020  +          }
  5021  +        }
  5022  +        name: (string){ "base" }
  5023         }
  5024       }
  5025     }
  5026  @@ -563,9 +277,6 @@
  5027             // [eval]
  5028             j: (_|_){
  5029               // [eval] patterns.shallow.single.err.j: field not allowed:
  5030  -            //     ./embed.cue:30:6
  5031  -            //     ./embed.cue:36:6
  5032  -            //     ./embed.cue:37:8
  5033               //     ./embed.cue:38:8
  5034             }
  5035           }
  5036  @@ -583,11 +294,7 @@
  5037               // [eval]
  5038               j: (_|_){
  5039                 // [eval] patterns.shallow.and.p1.err.j: field not allowed:
  5040  -              //     ./embed.cue:30:6
  5041  -              //     ./embed.cue:31:6
  5042  -              //     ./embed.cue:45:6
  5043  -              //     ./embed.cue:45:11
  5044  -              //     ./embed.cue:47:8
  5045  +              //     ./embed.cue:31:6
  5046                 //     ./embed.cue:48:8
  5047               }
  5048             }
  5049  @@ -603,11 +310,7 @@
  5050               // [eval]
  5051               j: (_|_){
  5052                 // [eval] patterns.shallow.and.p2.err.j: field not allowed:
  5053  -              //     ./embed.cue:30:6
  5054  -              //     ./embed.cue:31:6
  5055  -              //     ./embed.cue:55:6
  5056  -              //     ./embed.cue:55:11
  5057  -              //     ./embed.cue:56:8
  5058  +              //     ./embed.cue:31:6
  5059                 //     ./embed.cue:57:8
  5060               }
  5061             }
  5062  @@ -626,12 +329,7 @@
  5063               // [eval]
  5064               j: (_|_){
  5065                 // [eval] patterns.shallow.andEmbed.p1.err.j: field not allowed:
  5066  -              //     ./embed.cue:30:6
  5067  -              //     ./embed.cue:31:6
  5068  -              //     ./embed.cue:64:6
  5069  -              //     ./embed.cue:64:8
  5070  -              //     ./embed.cue:64:13
  5071  -              //     ./embed.cue:66:8
  5072  +              //     ./embed.cue:31:6
  5073                 //     ./embed.cue:67:8
  5074               }
  5075             }
  5076  @@ -647,12 +345,7 @@
  5077               // [eval]
  5078               j: (_|_){
  5079                 // [eval] patterns.shallow.andEmbed.p2.err.j: field not allowed:
  5080  -              //     ./embed.cue:30:6
  5081  -              //     ./embed.cue:31:6
  5082  -              //     ./embed.cue:74:6
  5083  -              //     ./embed.cue:74:8
  5084  -              //     ./embed.cue:74:13
  5085  -              //     ./embed.cue:75:8
  5086  +              //     ./embed.cue:31:6
  5087                 //     ./embed.cue:76:8
  5088               }
  5089             }
  5090  @@ -683,81 +376,34 @@
  5091             }
  5092           }
  5093         }
  5094  -      andOrEmbed: (_|_){
  5095  -        // [eval]
  5096  -        t1: (_|_){
  5097  -          // [eval]
  5098  -          p1: (_|_){
  5099  -            // [eval]
  5100  -            X: (#struct){
  5101  -            }
  5102  -            err1: (_|_){
  5103  -              // [eval]
  5104  -              j: (_|_){
  5105  -                // [eval] patterns.shallow.andOrEmbed.t1.p1.err1.j: field not allowed:
  5106  -                //     ./embed.cue:30:6
  5107  -                //     ./embed.cue:31:6
  5108  -                //     ./embed.cue:32:6
  5109  -                //     ./embed.cue:33:6
  5110  -                //     ./embed.cue:103:6
  5111  -                //     ./embed.cue:104:4
  5112  -                //     ./embed.cue:104:9
  5113  -                //     ./embed.cue:105:4
  5114  -                //     ./embed.cue:105:9
  5115  -                //     ./embed.cue:107:9
  5116  -                //     ./embed.cue:108:9
  5117  -              }
  5118  -            }
  5119  -            ok1: (#struct){
  5120  -              k: (int){ 3 }
  5121  -            }
  5122  -          }
  5123  -          p2: (_|_){
  5124  -            // [eval]
  5125  -            X: (#struct){
  5126  -            }
  5127  -            err1: (_|_){
  5128  -              // [eval]
  5129  -              j: (_|_){
  5130  -                // [eval] patterns.shallow.andOrEmbed.t1.p2.err1.j: field not allowed:
  5131  -                //     ./embed.cue:30:6
  5132  -                //     ./embed.cue:31:6
  5133  -                //     ./embed.cue:32:6
  5134  -                //     ./embed.cue:33:6
  5135  -                //     ./embed.cue:116:6
  5136  -                //     ./embed.cue:117:4
  5137  -                //     ./embed.cue:117:9
  5138  -                //     ./embed.cue:118:4
  5139  -                //     ./embed.cue:118:9
  5140  -                //     ./embed.cue:120:9
  5141  -                //     ./embed.cue:121:9
  5142  -              }
  5143  -            }
  5144  -            ok1: (#struct){
  5145  -              k: (int){ 3 }
  5146  -            }
  5147  -          }
  5148  -        }
  5149  -        t2: (_|_){
  5150  -          // [eval]
  5151  -          X: (#struct){
  5152  -          }
  5153  -          err1: (_|_){
  5154  -            // [eval]
  5155  -            j: (_|_){
  5156  -              // [eval] patterns.shallow.andOrEmbed.t2.err1.j: field not allowed:
  5157  -              //     ./embed.cue:30:6
  5158  -              //     ./embed.cue:31:6
  5159  -              //     ./embed.cue:32:6
  5160  -              //     ./embed.cue:33:6
  5161  -              //     ./embed.cue:129:6
  5162  -              //     ./embed.cue:130:4
  5163  -              //     ./embed.cue:130:9
  5164  -              //     ./embed.cue:131:4
  5165  -              //     ./embed.cue:131:9
  5166  -              //     ./embed.cue:134:9
  5167  -              //     ./embed.cue:135:9
  5168  -            }
  5169  +      andOrEmbed: (struct){
  5170  +        t1: (struct){
  5171  +          p1: (struct){
  5172  +            X: (#struct){
  5173  +            }
  5174  +            err1: (#struct){
  5175  +              j: (int){ 3 }
  5176  +            }
  5177  +            ok1: (#struct){
  5178  +              k: (int){ 3 }
  5179  +            }
  5180  +          }
  5181  +          p2: (struct){
  5182  +            X: (#struct){
  5183  +            }
  5184  +            err1: (#struct){
  5185  +              j: (int){ 3 }
  5186  +            }
  5187  +            ok1: (#struct){
  5188  +              k: (int){ 3 }
  5189  +            }
  5190  +          }
  5191  +        }
  5192  +        t2: (struct){
  5193  +          X: (#struct){
  5194  +          }
  5195  +          err1: (#struct){
  5196  +            j: (int){ 3 }
  5197             }
  5198             ok1: (#struct){
  5199               k: (int){ 3 }
  5200  @@ -781,10 +427,6 @@
  5201               // [eval]
  5202               j: (_|_){
  5203                 // [eval] patterns.shallow.indirect.p1.err1.j: field not allowed:
  5204  -              //     ./embed.cue:146:6
  5205  -              //     ./embed.cue:147:7
  5206  -              //     ./embed.cue:150:7
  5207  -              //     ./embed.cue:151:10
  5208                 //     ./embed.cue:152:10
  5209               }
  5210             }
  5211  @@ -792,10 +434,6 @@
  5212               // [eval]
  5213               j: (_|_){
  5214                 // [eval] patterns.shallow.indirect.p1.err2.j: field not allowed:
  5215  -              //     ./embed.cue:146:6
  5216  -              //     ./embed.cue:147:7
  5217  -              //     ./embed.cue:150:7
  5218  -              //     ./embed.cue:154:10
  5219                 //     ./embed.cue:155:10
  5220               }
  5221             }
  5222  @@ -813,10 +451,6 @@
  5223               // [eval]
  5224               j: (_|_){
  5225                 // [eval] patterns.shallow.indirect.p2.err1.j: field not allowed:
  5226  -              //     ./embed.cue:146:6
  5227  -              //     ./embed.cue:162:8
  5228  -              //     ./embed.cue:163:7
  5229  -              //     ./embed.cue:165:10
  5230                 //     ./embed.cue:166:10
  5231               }
  5232             }
  5233  @@ -824,10 +458,6 @@
  5234               // [eval]
  5235               j: (_|_){
  5236                 // [eval] patterns.shallow.indirect.p2.err2.j: field not allowed:
  5237  -              //     ./embed.cue:146:6
  5238  -              //     ./embed.cue:162:8
  5239  -              //     ./embed.cue:163:7
  5240  -              //     ./embed.cue:168:10
  5241                 //     ./embed.cue:169:10
  5242               }
  5243             }
  5244  @@ -843,10 +473,6 @@
  5245               // [eval]
  5246               j: (_|_){
  5247                 // [eval] patterns.shallow.indirect.p3.err1.j: field not allowed:
  5248  -              //     ./embed.cue:146:6
  5249  -              //     ./embed.cue:147:7
  5250  -              //     ./embed.cue:176:7
  5251  -              //     ./embed.cue:178:10
  5252                 //     ./embed.cue:179:10
  5253               }
  5254             }
  5255  @@ -854,10 +480,6 @@
  5256               // [eval]
  5257               j: (_|_){
  5258                 // [eval] patterns.shallow.indirect.p3.err2.j: field not allowed:
  5259  -              //     ./embed.cue:146:6
  5260  -              //     ./embed.cue:147:7
  5261  -              //     ./embed.cue:176:7
  5262  -              //     ./embed.cue:181:10
  5263                 //     ./embed.cue:182:10
  5264               }
  5265             }
  5266  @@ -875,10 +497,6 @@
  5267               // [eval]
  5268               j: (_|_){
  5269                 // [eval] patterns.shallow.indirect.p4.err1.j: field not allowed:
  5270  -              //     ./embed.cue:146:6
  5271  -              //     ./embed.cue:189:8
  5272  -              //     ./embed.cue:190:7
  5273  -              //     ./embed.cue:193:10
  5274                 //     ./embed.cue:194:10
  5275               }
  5276             }
  5277  @@ -886,10 +504,6 @@
  5278               // [eval]
  5279               j: (_|_){
  5280                 // [eval] patterns.shallow.indirect.p4.err2.j: field not allowed:
  5281  -              //     ./embed.cue:146:6
  5282  -              //     ./embed.cue:189:8
  5283  -              //     ./embed.cue:190:7
  5284  -              //     ./embed.cue:196:10
  5285                 //     ./embed.cue:197:10
  5286               }
  5287             }
  5288  @@ -927,12 +541,7 @@
  5289         }
  5290         single: (_|_){
  5291           // [eval]
  5292  -        X: (#struct){
  5293  -          x: (#struct){
  5294  -            y: (#struct){
  5295  -            }
  5296  -          }
  5297  -        }
  5298  +        X: ~(patterns.nested.#a)
  5299           err: (_|_){
  5300             // [eval]
  5301             x: (_|_){
  5302  @@ -941,9 +550,6 @@
  5303                 // [eval]
  5304                 j: (_|_){
  5305                   // [eval] patterns.nested.single.err.x.y.j: field not allowed:
  5306  -                //     ./embed.cue:206:12
  5307  -                //     ./embed.cue:212:6
  5308  -                //     ./embed.cue:213:8
  5309                   //     ./embed.cue:214:14
  5310                 }
  5311               }
  5312  @@ -975,11 +581,7 @@
  5313                   // [eval]
  5314                   j: (_|_){
  5315                     // [eval] patterns.nested.and.p1.err.x.y.j: field not allowed:
  5316  -                  //     ./embed.cue:206:12
  5317  -                  //     ./embed.cue:207:12
  5318  -                  //     ./embed.cue:221:6
  5319  -                  //     ./embed.cue:221:11
  5320  -                  //     ./embed.cue:223:8
  5321  +                  //     ./embed.cue:207:12
  5322                     //     ./embed.cue:224:14
  5323                   }
  5324                 }
  5325  @@ -1009,11 +611,7 @@
  5326                   // [eval]
  5327                   j: (_|_){
  5328                     // [eval] patterns.nested.and.p2.err.x.y.j: field not allowed:
  5329  -                  //     ./embed.cue:206:12
  5330  -                  //     ./embed.cue:207:12
  5331  -                  //     ./embed.cue:231:6
  5332  -                  //     ./embed.cue:231:11
  5333  -                  //     ./embed.cue:232:8
  5334  +                  //     ./embed.cue:207:12
  5335                     //     ./embed.cue:233:14
  5336                   }
  5337                 }
  5338  @@ -1046,11 +644,7 @@
  5339                   // [eval]
  5340                   j: (_|_){
  5341                     // [eval] patterns.nested.andEmbed.p1.err.x.y.j: field not allowed:
  5342  -                  //     ./embed.cue:206:12
  5343  -                  //     ./embed.cue:207:12
  5344  -                  //     ./embed.cue:240:8
  5345  -                  //     ./embed.cue:240:13
  5346  -                  //     ./embed.cue:242:8
  5347  +                  //     ./embed.cue:207:12
  5348                     //     ./embed.cue:243:14
  5349                   }
  5350                 }
  5351  @@ -1080,11 +674,7 @@
  5352                   // [eval]
  5353                   j: (_|_){
  5354                     // [eval] patterns.nested.andEmbed.p2.err.x.y.j: field not allowed:
  5355  -                  //     ./embed.cue:206:12
  5356  -                  //     ./embed.cue:207:12
  5357  -                  //     ./embed.cue:250:8
  5358  -                  //     ./embed.cue:250:13
  5359  -                  //     ./embed.cue:251:8
  5360  +                  //     ./embed.cue:207:12
  5361                     //     ./embed.cue:252:14
  5362                   }
  5363                 }
  5364  @@ -1145,143 +735,78 @@
  5365             }
  5366           }
  5367         }
  5368  -      andOrEmbed: (_|_){
  5369  -        // [eval]
  5370  -        t1: (_|_){
  5371  -          // [eval]
  5372  -          p1: (_|_){
  5373  -            // [eval]
  5374  -            X: (#struct){
  5375  -              x: (#struct){
  5376  -                y: (#struct){
  5377  -                }
  5378  -              }
  5379  -            }
  5380  -            err1: (_|_){
  5381  -              // [eval]
  5382  -              x: (_|_){
  5383  -                // [eval]
  5384  -                y: (_|_){
  5385  -                  // [eval]
  5386  -                  j: (_|_){
  5387  -                    // [eval] patterns.nested.andOrEmbed.t1.p1.err1.x.y.j: field not allowed:
  5388  -                    //     ./embed.cue:206:12
  5389  -                    //     ./embed.cue:207:12
  5390  -                    //     ./embed.cue:208:12
  5391  -                    //     ./embed.cue:209:12
  5392  -                    //     ./embed.cue:280:4
  5393  -                    //     ./embed.cue:280:9
  5394  -                    //     ./embed.cue:281:4
  5395  -                    //     ./embed.cue:281:9
  5396  -                    //     ./embed.cue:283:9
  5397  -                    //     ./embed.cue:284:15
  5398  -                  }
  5399  -                }
  5400  -              }
  5401  -            }
  5402  -            ok1: (#struct){
  5403  -              x: (#struct){
  5404  -                y: (#struct){
  5405  -                  k: (int){ 3 }
  5406  -                }
  5407  -              }
  5408  -            }
  5409  -          }
  5410  -          p2: (_|_){
  5411  -            // [eval]
  5412  -            X: (#struct){
  5413  -              x: (#struct){
  5414  -                y: (#struct){
  5415  -                }
  5416  -              }
  5417  -            }
  5418  -            err1: (_|_){
  5419  -              // [eval]
  5420  -              x: (_|_){
  5421  -                // [eval]
  5422  -                y: (_|_){
  5423  -                  // [eval]
  5424  -                  j: (_|_){
  5425  -                    // [eval] patterns.nested.andOrEmbed.t1.p2.err1.x.y.j: field not allowed:
  5426  -                    //     ./embed.cue:206:12
  5427  -                    //     ./embed.cue:207:12
  5428  -                    //     ./embed.cue:208:12
  5429  -                    //     ./embed.cue:209:12
  5430  -                    //     ./embed.cue:293:4
  5431  -                    //     ./embed.cue:293:9
  5432  -                    //     ./embed.cue:294:4
  5433  -                    //     ./embed.cue:294:9
  5434  -                    //     ./embed.cue:296:9
  5435  -                    //     ./embed.cue:297:15
  5436  -                  }
  5437  -                }
  5438  -              }
  5439  -            }
  5440  -            ok1: (#struct){
  5441  -              x: (#struct){
  5442  -                y: (#struct){
  5443  -                  k: (int){ 3 }
  5444  -                }
  5445  -              }
  5446  -            }
  5447  -          }
  5448  -        }
  5449  -        t2: (_|_){
  5450  -          // [eval]
  5451  -          X: (#struct){
  5452  -            x: (#struct){
  5453  -              y: (#struct){
  5454  -              }
  5455  -            }
  5456  -          }
  5457  -          err1: (_|_){
  5458  -            // [eval]
  5459  -            x: (_|_){
  5460  -              // [eval]
  5461  -              y: (_|_){
  5462  -                // [eval]
  5463  -                j: (_|_){
  5464  -                  // [eval] patterns.nested.andOrEmbed.t2.err1.x.y.j: field not allowed:
  5465  -                  //     ./embed.cue:206:12
  5466  -                  //     ./embed.cue:207:12
  5467  -                  //     ./embed.cue:208:12
  5468  -                  //     ./embed.cue:209:12
  5469  -                  //     ./embed.cue:306:4
  5470  -                  //     ./embed.cue:306:9
  5471  -                  //     ./embed.cue:307:4
  5472  -                  //     ./embed.cue:307:9
  5473  -                  //     ./embed.cue:310:9
  5474  -                  //     ./embed.cue:311:15
  5475  -                }
  5476  -              }
  5477  -            }
  5478  -          }
  5479  -          ok1: (#struct){
  5480  -            x: (#struct){
  5481  -              y: (#struct){
  5482  -                k: (int){ 3 }
  5483  -              }
  5484  -            }
  5485  -          }
  5486  -          ok2: (_|_){
  5487  -            // [eval]
  5488  -            x: (_|_){
  5489  -              // [eval]
  5490  -              y: (_|_){
  5491  -                // [eval]
  5492  -                p: (_|_){
  5493  -                  // [eval] patterns.nested.andOrEmbed.t2.ok2.x.y.p: field not allowed:
  5494  -                  //     ./embed.cue:206:12
  5495  -                  //     ./embed.cue:207:12
  5496  -                  //     ./embed.cue:208:12
  5497  -                  //     ./embed.cue:209:12
  5498  -                  //     ./embed.cue:306:4
  5499  -                  //     ./embed.cue:306:9
  5500  -                  //     ./embed.cue:307:4
  5501  -                  //     ./embed.cue:307:9
  5502  -                  //     ./embed.cue:316:8
  5503  -                  //     ./embed.cue:317:14
  5504  -                }
  5505  +      andOrEmbed: (struct){
  5506  +        t1: (struct){
  5507  +          p1: (struct){
  5508  +            X: (#struct){
  5509  +              x: (#struct){
  5510  +                y: (#struct){
  5511  +                }
  5512  +              }
  5513  +            }
  5514  +            err1: (#struct){
  5515  +              x: (#struct){
  5516  +                y: (#struct){
  5517  +                  j: (int){ 3 }
  5518  +                }
  5519  +              }
  5520  +            }
  5521  +            ok1: (#struct){
  5522  +              x: (#struct){
  5523  +                y: (#struct){
  5524  +                  k: (int){ 3 }
  5525  +                }
  5526  +              }
  5527  +            }
  5528  +          }
  5529  +          p2: (struct){
  5530  +            X: (#struct){
  5531  +              x: (#struct){
  5532  +                y: (#struct){
  5533  +                }
  5534  +              }
  5535  +            }
  5536  +            err1: (#struct){
  5537  +              x: (#struct){
  5538  +                y: (#struct){
  5539  +                  j: (int){ 3 }
  5540  +                }
  5541  +              }
  5542  +            }
  5543  +            ok1: (#struct){
  5544  +              x: (#struct){
  5545  +                y: (#struct){
  5546  +                  k: (int){ 3 }
  5547  +                }
  5548  +              }
  5549  +            }
  5550  +          }
  5551  +        }
  5552  +        t2: (struct){
  5553  +          X: (#struct){
  5554  +            x: (#struct){
  5555  +              y: (#struct){
  5556  +              }
  5557  +            }
  5558  +          }
  5559  +          err1: (#struct){
  5560  +            x: (#struct){
  5561  +              y: (#struct){
  5562  +                j: (int){ 3 }
  5563  +              }
  5564  +            }
  5565  +          }
  5566  +          ok1: (#struct){
  5567  +            x: (#struct){
  5568  +              y: (#struct){
  5569  +                k: (int){ 3 }
  5570  +              }
  5571  +            }
  5572  +          }
  5573  +          ok2: (#struct){
  5574  +            x: (#struct){
  5575  +              y: (#struct){
  5576  +                p: (int){ 3 }
  5577                 }
  5578               }
  5579             }
  5580  @@ -1303,12 +828,7 @@
  5581           }
  5582           p1: (_|_){
  5583             // [eval]
  5584  -          X: (#struct){
  5585  -            x: (#struct){
  5586  -              y: (#struct){
  5587  -              }
  5588  -            }
  5589  -          }
  5590  +          X: ~(patterns.nested.indirect.#a)
  5591             err1: (_|_){
  5592               // [eval]
  5593               x: (_|_){
  5594  @@ -1317,10 +837,6 @@
  5595                   // [eval]
  5596                   j: (_|_){
  5597                     // [eval] patterns.nested.indirect.p1.err1.x.y.j: field not allowed:
  5598  -                  //     ./embed.cue:322:12
  5599  -                  //     ./embed.cue:323:7
  5600  -                  //     ./embed.cue:326:7
  5601  -                  //     ./embed.cue:327:10
  5602                     //     ./embed.cue:328:16
  5603                   }
  5604                 }
  5605  @@ -1334,10 +850,6 @@
  5606                   // [eval]
  5607                   j: (_|_){
  5608                     // [eval] patterns.nested.indirect.p1.err2.x.y.j: field not allowed:
  5609  -                  //     ./embed.cue:322:12
  5610  -                  //     ./embed.cue:323:7
  5611  -                  //     ./embed.cue:326:7
  5612  -                  //     ./embed.cue:330:10
  5613                     //     ./embed.cue:331:16
  5614                   }
  5615                 }
  5616  @@ -1359,12 +871,7 @@
  5617                 }
  5618               }
  5619             }
  5620  -          X: (#struct){
  5621  -            x: (#struct){
  5622  -              y: (#struct){
  5623  -              }
  5624  -            }
  5625  -          }
  5626  +          X: ~(patterns.nested.indirect.p2.#a)
  5627             err1: (_|_){
  5628               // [eval]
  5629               x: (_|_){
  5630  @@ -1373,10 +880,6 @@
  5631                   // [eval]
  5632                   j: (_|_){
  5633                     // [eval] patterns.nested.indirect.p2.err1.x.y.j: field not allowed:
  5634  -                  //     ./embed.cue:322:12
  5635  -                  //     ./embed.cue:338:8
  5636  -                  //     ./embed.cue:339:7
  5637  -                  //     ./embed.cue:341:10
  5638                     //     ./embed.cue:342:16
  5639                   }
  5640                 }
  5641  @@ -1390,10 +893,6 @@
  5642                   // [eval]
  5643                   j: (_|_){
  5644                     // [eval] patterns.nested.indirect.p2.err2.x.y.j: field not allowed:
  5645  -                  //     ./embed.cue:322:12
  5646  -                  //     ./embed.cue:338:8
  5647  -                  //     ./embed.cue:339:7
  5648  -                  //     ./embed.cue:344:10
  5649                     //     ./embed.cue:345:16
  5650                   }
  5651                 }
  5652  @@ -1423,10 +922,6 @@
  5653                   // [eval]
  5654                   j: (_|_){
  5655                     // [eval] patterns.nested.indirect.p3.err1.x.y.j: field not allowed:
  5656  -                  //     ./embed.cue:322:12
  5657  -                  //     ./embed.cue:323:7
  5658  -                  //     ./embed.cue:352:7
  5659  -                  //     ./embed.cue:354:10
  5660                     //     ./embed.cue:355:16
  5661                   }
  5662                 }
  5663  @@ -1440,10 +935,6 @@
  5664                   // [eval]
  5665                   j: (_|_){
  5666                     // [eval] patterns.nested.indirect.p3.err2.x.y.j: field not allowed:
  5667  -                  //     ./embed.cue:322:12
  5668  -                  //     ./embed.cue:323:7
  5669  -                  //     ./embed.cue:352:7
  5670  -                  //     ./embed.cue:357:10
  5671                     //     ./embed.cue:358:16
  5672                   }
  5673                 }
  5674  @@ -1479,10 +970,6 @@
  5675                   // [eval]
  5676                   j: (_|_){
  5677                     // [eval] patterns.nested.indirect.p4.err1.x.y.j: field not allowed:
  5678  -                  //     ./embed.cue:322:12
  5679  -                  //     ./embed.cue:365:8
  5680  -                  //     ./embed.cue:366:7
  5681  -                  //     ./embed.cue:369:10
  5682                     //     ./embed.cue:370:16
  5683                   }
  5684                 }
  5685  @@ -1496,10 +983,6 @@
  5686                   // [eval]
  5687                   j: (_|_){
  5688                     // [eval] patterns.nested.indirect.p4.err2.x.y.j: field not allowed:
  5689  -                  //     ./embed.cue:322:12
  5690  -                  //     ./embed.cue:365:8
  5691  -                  //     ./embed.cue:366:7
  5692  -                  //     ./embed.cue:372:10
  5693                     //     ./embed.cue:373:16
  5694                   }
  5695                 }
  5696  @@ -1516,7 +999,8 @@
  5697         }
  5698       }
  5699     }
  5700  -  issue2241: (struct){
  5701  +  issue2241: (_|_){
  5702  +    // [eval]
  5703       #close: (#struct){
  5704       }
  5705       a: (#struct){
  5706  @@ -1524,10 +1008,15 @@
  5707           q: (int){ 2 }
  5708         }
  5709       }
  5710  -    b: (#struct){
  5711  -      x: (struct){
  5712  -        q: (int){ 2 }
  5713  -        r: (int){ 4 }
  5714  +    b: (_|_){
  5715  +      // [eval]
  5716  +      x: (_|_){
  5717  +        // [eval]
  5718  +        r: (_|_){
  5719  +          // [eval] issue2241.b.x.r: field not allowed:
  5720  +          //     ./embed.cue:390:8
  5721  +        }
  5722  +        q: (int){ 2 }
  5723         }
  5724       }
  5725     }
  5726  @@ -1537,8 +1026,8 @@
  5727     #A: (#struct){
  5728       b: (int){ int }
  5729       q: (#struct){
  5730  +      d: (int){ int }
  5731         c: (int){ int }
  5732  -      d: (int){ int }
  5733       }
  5734     }
  5735     a: (_|_){
  5736  @@ -1547,21 +1036,15 @@
  5737       q: (_|_){
  5738         // [eval]
  5739         c: (int){ 2 }
  5740  -      d: (int){ int }
  5741         e: (_|_){
  5742           // [eval] a.q.e: field not allowed:
  5743  -        //     ./in.cue:1:5
  5744  -        //     ./in.cue:6:5
  5745  -        //     ./in.cue:7:3
  5746  -        //     ./in.cue:11:4
  5747           //     ./in.cue:15:3
  5748         }
  5749  +      d: (int){ int }
  5750       }
  5751     }
  5752     issue852: (_|_){
  5753       // [eval] issue852.a.Foo: field not allowed:
  5754  -    //     ./in.cue:22:6
  5755  -    //     ./in.cue:26:5
  5756       //     ./in.cue:28:5
  5757       #A: (#struct){
  5758       }
  5759  @@ -1569,8 +1052,6 @@
  5760         // [eval]
  5761         Foo: (_|_){
  5762           // [eval] issue852.a.Foo: field not allowed:
  5763  -        //     ./in.cue:22:6
  5764  -        //     ./in.cue:26:5
  5765           //     ./in.cue:28:5
  5766         }
  5767       }
  5768  @@ -1581,8 +1062,8 @@
  5769         foo: (int){ int }
  5770       }
  5771       d: (#struct){
  5772  -      key: (string){ "foo" }
  5773         foo: (int){ 3 }
  5774  +      key: (string){ "foo" }
  5775       }
  5776     }
  5777     issue3330: (struct){
  5778  @@ -1596,13 +1077,7 @@
  5779             }
  5780           }
  5781           out: (#list){
  5782  -          0: (#struct){
  5783  -            let empty#1 = (#struct){
  5784  -            }
  5785  -            field: (#struct){
  5786  -              n: (int){ 3 }
  5787  -            }
  5788  -          }
  5789  +          0: ~(issue3330.let.ok.#struct)
  5790           }
  5791         }
  5792       }
  5793  @@ -1631,13 +1106,7 @@
  5794             g: (#struct){
  5795             }
  5796           }
  5797  -        out: (#struct){
  5798  -          field: (#struct){
  5799  -            n: (int){ 3 }
  5800  -          }
  5801  -          g: (#struct){
  5802  -          }
  5803  -        }
  5804  +        out: ~(issue3330.matthew.ok2.#struct)
  5805           out2: (#struct){
  5806             field: (#struct){
  5807               n: (int){ 3 }
  5808  @@ -1658,13 +1127,7 @@
  5809               d: (int){ 1 }
  5810             }
  5811           }
  5812  -        0: (#struct){
  5813  -          let b#2 = (#struct){
  5814  -          }
  5815  -          c: (#struct){
  5816  -            d: (int){ 1 }
  5817  -          }
  5818  -        }
  5819  +        0: ~(issue3331.original.ok.#A)
  5820         }
  5821       }
  5822       variant1: (struct){
  5823  @@ -1677,13 +1140,7 @@
  5824             }
  5825           }
  5826           0: (#list){
  5827  -          0: (#struct){
  5828  -            let b#3 = (#struct){
  5829  -            }
  5830  -            c: (#struct){
  5831  -              d: (int){ 1 }
  5832  -            }
  5833  -          }
  5834  +          0: ~(issue3331.variant1.ok.#A)
  5835           }
  5836         }
  5837       }
  5838  @@ -1699,10 +1156,7 @@
  5839                 c: (int){ 2 }
  5840               }
  5841             }
  5842  -          zx: (#struct){
  5843  -            b: (int){ 1 }
  5844  -            c: (int){ 2 }
  5845  -          }
  5846  +          zx: ~(indirect.embed.err1.#A.x.a)
  5847           }
  5848           #x: (#struct){
  5849             a: (#struct){
  5850  @@ -1714,22 +1168,11 @@
  5851               c: (int){ 2 }
  5852             }
  5853           }
  5854  -        b: (#struct){
  5855  -          x: (#struct){
  5856  -            a: (#struct){
  5857  -              b: (int){ 1 }
  5858  -              c: (int){ 2 }
  5859  -            }
  5860  -          }
  5861  -          zx: (#struct){
  5862  -            b: (int){ 1 }
  5863  -            c: (int){ 2 }
  5864  -          }
  5865  -        }
  5866  -        b1: (struct){
  5867  +        b: ~(indirect.embed.err1.#A)
  5868  +        b1: (#struct){
  5869  +          d: (int){ 1 }
  5870             b: (int){ 1 }
  5871             c: (int){ 2 }
  5872  -          d: (int){ 1 }
  5873           }
  5874         }
  5875       }
  5876  @@ -1746,22 +1189,16 @@
  5877           }
  5878           Y: (_|_){
  5879             // [eval]
  5880  +          b: (#struct){
  5881  +          }
  5882  +          c: (#struct){
  5883  +          }
  5884             a: (_|_){
  5885               // [eval]
  5886               e: (_|_){
  5887                 // [eval] indirect.closed.err1.Y.a.e: field not allowed:
  5888  -              //     ./reroot.cue:73:7
  5889  -              //     ./reroot.cue:74:7
  5890                 //     ./reroot.cue:75:7
  5891  -              //     ./reroot.cue:77:6
  5892  -              //     ./reroot.cue:79:7
  5893  -              //     ./reroot.cue:80:7
  5894  -              //     ./reroot.cue:82:7
  5895  -            }
  5896  -          }
  5897  -          b: (#struct){
  5898  -          }
  5899  -          c: (#struct){
  5900  +            }
  5901             }
  5902           }
  5903           #X: (#struct){
  5904  @@ -1781,25 +1218,11 @@
  5905             }
  5906           }
  5907         }
  5908  -      x: (#struct){
  5909  -        b: (#struct){
  5910  -        }
  5911  -        #B: (#struct){
  5912  -          c: (#struct){
  5913  -            d: (int){ 1 }
  5914  -          }
  5915  -        }
  5916  -      }
  5917  -    }
  5918  -    embed: (struct){
  5919  -      ok: (struct){
  5920  -        x: (#struct){
  5921  -          d: (#struct){
  5922  -            e: (int){ int }
  5923  -          }
  5924  -          b: (#struct){
  5925  -          }
  5926  -        }
  5927  +      x: ~(nested.ok1.#A)
  5928  +    }
  5929  +    embed: (struct){
  5930  +      ok: (struct){
  5931  +        x: ~(nested.embed.ok.#A)
  5932           #A: (#struct){
  5933             d: (#struct){
  5934               e: (int){ int }
  5935  @@ -1824,69 +1247,27 @@
  5936             // [eval]
  5937             f: (_|_){
  5938               // [eval] nested.err1.x.b.f: field not allowed:
  5939  -            //     ./reroot.cue:112:5
  5940  -            //     ./reroot.cue:114:6
  5941  -            //     ./reroot.cue:122:8
  5942  -            //     ./reroot.cue:123:6
  5943  +            //     ./reroot.cue:114:6
  5944             }
  5945             g: (_|_){
  5946               // [eval] nested.err1.x.b.g: field not allowed:
  5947  -            //     ./reroot.cue:112:5
  5948  -            //     ./reroot.cue:114:6
  5949  -            //     ./reroot.cue:122:8
  5950  -            //     ./reroot.cue:123:6
  5951  -          }
  5952  -        }
  5953  -        v: (_|_){
  5954  -          // [eval]
  5955  -          c: (_|_){
  5956  -            // [eval]
  5957  -            f: (_|_){
  5958  -              // [eval] nested.err1.x.v.c.f: field not allowed:
  5959  -              //     ./reroot.cue:112:5
  5960  -              //     ./reroot.cue:114:6
  5961  -              //     ./reroot.cue:115:6
  5962  -              //     ./reroot.cue:117:7
  5963  -              //     ./reroot.cue:117:11
  5964  -              //     ./reroot.cue:122:8
  5965  -              //     ./reroot.cue:123:6
  5966  -            }
  5967  -            g: (int){ 1 }
  5968  -            d: (_|_){
  5969  -              // [eval] nested.err1.x.v.c.d: field not allowed:
  5970  -              //     ./reroot.cue:112:5
  5971  -              //     ./reroot.cue:114:6
  5972  -              //     ./reroot.cue:115:6
  5973  -              //     ./reroot.cue:117:7
  5974  -              //     ./reroot.cue:118:5
  5975  -              //     ./reroot.cue:122:8
  5976  -              //     ./reroot.cue:123:6
  5977  -            }
  5978  -          }
  5979  -        }
  5980  +            //     ./reroot.cue:123:6
  5981  +          }
  5982  +        }
  5983  +        v: ~(nested.err1.x.#V)
  5984           #V: (_|_){
  5985             // [eval]
  5986             c: (_|_){
  5987               // [eval]
  5988  -            f: (_|_){
  5989  -              // [eval] nested.err1.x.#V.c.f: field not allowed:
  5990  -              //     ./reroot.cue:112:5
  5991  -              //     ./reroot.cue:114:6
  5992  -              //     ./reroot.cue:117:7
  5993  -              //     ./reroot.cue:117:11
  5994  -              //     ./reroot.cue:122:8
  5995  -              //     ./reroot.cue:123:6
  5996  -            }
  5997  -            g: (int){ 1 }
  5998               d: (_|_){
  5999                 // [eval] nested.err1.x.#V.c.d: field not allowed:
  6000  -              //     ./reroot.cue:112:5
  6001  -              //     ./reroot.cue:114:6
  6002  -              //     ./reroot.cue:117:7
  6003  -              //     ./reroot.cue:118:5
  6004  -              //     ./reroot.cue:122:8
  6005  -              //     ./reroot.cue:123:6
  6006  -            }
  6007  +              //     ./reroot.cue:118:5
  6008  +            }
  6009  +            f: (_|_){
  6010  +              // [eval] nested.err1.x.#V.c.f: field not allowed:
  6011  +              //     ./reroot.cue:114:6
  6012  +            }
  6013  +            g: (int){ 1 }
  6014             }
  6015           }
  6016         }
  6017  @@ -1894,16 +1275,11 @@
  6018           b: (#struct){
  6019             f: (int){ 1 }
  6020           }
  6021  -        v: (#struct){
  6022  -          c: (#struct){
  6023  -            f: (int){ 1 }
  6024  -            d: (int){ 1 }
  6025  -          }
  6026  -        }
  6027  +        v: ~(nested.err1.#A.#V)
  6028           #V: (#struct){
  6029             c: (#struct){
  6030  -            f: (int){ 1 }
  6031  -            d: (int){ 1 }
  6032  +            d: (int){ 1 }
  6033  +            f: (int){ 1 }
  6034             }
  6035           }
  6036         }
  6037  @@ -1926,14 +1302,12 @@
  6038             // [eval]
  6039             g: (_|_){
  6040               // [eval] nested.err2.x.b.g: field not allowed:
  6041  -            //     ./reroot.cue:128:6
  6042  -            //     ./reroot.cue:136:5
  6043               //     ./reroot.cue:137:8
  6044             }
  6045           }
  6046           c: (#struct){
  6047  +          d: (int){ 1 }
  6048             g: (int){ 1 }
  6049  -          d: (int){ 1 }
  6050           }
  6051         }
  6052       }
  6053  @@ -1946,11 +1320,11 @@
  6054           }
  6055         }
  6056       }
  6057  -    err1: (struct){
  6058  +    err1: (#struct){
  6059         name: (string){ "a" }
  6060         age1: (int){ 5 }
  6061       }
  6062  -    err2: (struct){
  6063  +    err2: (#struct){
  6064         name: (string){ "a" }
  6065         age2: (int){ 5 }
  6066       }
  6067  @@ -2097,20 +1471,20 @@
  6068           }
  6069         }
  6070         original: (struct){
  6071  -        Y: (struct){
  6072  -          b: (struct){
  6073  -            c: (string){ "v1" }
  6074  -          }
  6075  -        }
  6076  -        out: (struct){
  6077  -          b: (struct){
  6078  +        Y: (#struct){
  6079  +          b: (#struct){
  6080  +            c: (string){ "v1" }
  6081  +          }
  6082  +        }
  6083  +        out: (#struct){
  6084  +          b: (#struct){
  6085               c: (string){ "v1" }
  6086             }
  6087           }
  6088         }
  6089         moreInlining: (struct){
  6090  -        out: (struct){
  6091  -          b: (struct){
  6092  +        out: (#struct){
  6093  +          b: (#struct){
  6094               c: (string){ "v1" }
  6095             }
  6096           }
  6097  @@ -2134,8 +1508,8 @@
  6098             empty: (#struct){
  6099             }
  6100           }
  6101  -        out: (struct){
  6102  -          b: (struct){
  6103  +        out: (#struct){
  6104  +          b: (#struct){
  6105               c: (string){ "v1" }
  6106             }
  6107           }
  6108  @@ -2152,13 +1526,13 @@
  6109             empty: (#struct){
  6110             }
  6111           }
  6112  -        Y: (struct){
  6113  -          c: (struct){
  6114  -            d: (string){ "v1" }
  6115  -          }
  6116  -        }
  6117  -        Z: (struct){
  6118  -          c: (struct){
  6119  +        Y: (#struct){
  6120  +          c: (#struct){
  6121  +            d: (string){ "v1" }
  6122  +          }
  6123  +        }
  6124  +        Z: (#struct){
  6125  +          c: (#struct){
  6126               d: (string){ "v1" }
  6127             }
  6128           }
  6129  -- diff/todo/p2 --
  6130  Positions / reordering
  6131  -- diff/explanation --
  6132  inline.err*.age*: fields are now correctly not allowed.
  6133  patterns.*.andOrEmbed.t2.ok2: erroneous in V2
  6134  mixInDef: arguably should all be erroneous, but definitely refOutside.
  6135  indirect.embed: now correctly fails for V3.
  6136  issue2241: now correctly fails for V3.
  6137  -- out/compile --
  6138  --- ellipsis.cue
  6139  {
  6140    issue3778: {
  6141      full: {
  6142        #x: {
  6143          a?: string
  6144        }
  6145        #y: (〈0;#x〉 & {
  6146          ...
  6147        })
  6148        z: (〈0;#y〉 & {
  6149          a: "ok"
  6150          b: "something"
  6151        })
  6152      }
  6153    }
  6154    issue3778: {
  6155      keepOpen: {
  6156        #x: {
  6157          a?: string
  6158          ...
  6159        }
  6160        #y: (〈0;#x〉 & {
  6161          ...
  6162        })
  6163        z: (〈0;#y〉 & {
  6164          a: "ok"
  6165          b: "something"
  6166        })
  6167      }
  6168    }
  6169    issue1867: {
  6170      one: {
  6171        #T: close({})
  6172        #T: {
  6173          ...
  6174        }
  6175        x: 〈0;#T〉
  6176        x: {
  6177          foo: "foo"
  6178        }
  6179      }
  6180    }
  6181    issue1867: {
  6182      two: {
  6183        #S: {}
  6184        #T: {
  6185          s: 〈1;#S〉
  6186        }
  6187        #T: {
  6188          s: {
  6189            ...
  6190          }
  6191        }
  6192        x: 〈0;#T〉.s
  6193        x: {
  6194          foo: "foo"
  6195        }
  6196      }
  6197    }
  6198    issue1867: {
  6199      three: {
  6200        #T: {
  6201          s: close({})
  6202        }
  6203        #T: {
  6204          s: {
  6205            ...
  6206          }
  6207        }
  6208        x: 〈0;#T〉.s
  6209        x: {
  6210          foo: "foo"
  6211        }
  6212      }
  6213    }
  6214    issue3924: {
  6215      one: {
  6216        #Schema: {
  6217          ...
  6218          {
  6219            [string]: 〈2;#SchemaInner〉
  6220          }
  6221        }
  6222        #SchemaInner: {
  6223          allowed?: string
  6224        }
  6225        out: (〈0;#Schema〉 & {
  6226          foo: {
  6227            disallowed: "foo"
  6228          }
  6229        })
  6230      }
  6231    }
  6232    issue3924: {
  6233      two: {
  6234        #Schema: {
  6235          {
  6236            [string]: 〈1;#job〉
  6237          }
  6238          #job: (matchN(1, [
  6239            {
  6240              other?: string
  6241              ...
  6242            },
  6243          ]) & close({
  6244            allowed?: string
  6245          }))
  6246        }
  6247        out: (〈0;#Schema〉 & {
  6248          foo: {
  6249            disallowed: "bar"
  6250          }
  6251        })
  6252      }
  6253    }
  6254  }
  6255  --- embed.cue
  6256  {
  6257    issue3325: {
  6258      ok: {
  6259        #Items: {
  6260          [string]: {
  6261            name: 〈1;-〉
  6262          }
  6263        }
  6264        #Base: {
  6265          name: "base"
  6266          type: string
  6267          items: 〈1;#Items〉
  6268        }
  6269        #Extended: (〈0;#Base〉 & {
  6270          type: "extended"
  6271          items: {
  6272            "my-item": {}
  6273          }
  6274        })
  6275        broken: {
  6276          〈1;#Base〉
  6277          〈1;#Extended〉
  6278        }
  6279        works: {
  6280          〈1;#Extended〉
  6281          〈1;#Base〉
  6282        }
  6283      }
  6284    }
  6285    patterns: {
  6286      shallow: {
  6287        #a: {
  6288          [>="k"]: int
  6289        }
  6290        #b: {
  6291          [<="m"]: int
  6292        }
  6293        #c: {
  6294          [>="w"]: int
  6295        }
  6296        #d: {
  6297          [<="y"]: int
  6298        }
  6299        single: {
  6300          X: 〈1;#a〉
  6301          err: 〈0;X〉
  6302          err: {
  6303            j: 3
  6304          }
  6305          ok: 〈0;X〉
  6306          ok: {
  6307            k: 3
  6308          }
  6309        }
  6310        and: {
  6311          p1: {
  6312            X: (〈2;#a〉 & 〈2;#b〉)
  6313            err: 〈0;X〉
  6314            err: {
  6315              j: 3
  6316            }
  6317            ok: 〈0;X〉
  6318            ok: {
  6319              k: 3
  6320            }
  6321          }
  6322        }
  6323        and: {
  6324          p2: {
  6325            X: (〈2;#b〉 & 〈2;#a〉)
  6326            err: 〈0;X〉
  6327            err: {
  6328              j: 3
  6329            }
  6330            ok: 〈0;X〉
  6331            ok: {
  6332              k: 3
  6333            }
  6334          }
  6335        }
  6336        andEmbed: {
  6337          p1: {
  6338            X: {
  6339              (〈3;#a〉 & 〈3;#b〉)
  6340            }
  6341            err: 〈0;X〉
  6342            err: {
  6343              j: 3
  6344            }
  6345            ok: 〈0;X〉
  6346            ok: {
  6347              k: 3
  6348            }
  6349          }
  6350        }
  6351        andEmbed: {
  6352          p2: {
  6353            X: {
  6354              (〈3;#b〉 & 〈3;#a〉)
  6355            }
  6356            err: 〈0;X〉
  6357            err: {
  6358              j: 3
  6359            }
  6360            ok: 〈0;X〉
  6361            ok: {
  6362              k: 3
  6363            }
  6364          }
  6365        }
  6366        orEmbed: {
  6367          p1: {
  6368            X: {
  6369              〈3;#a〉
  6370              〈3;#b〉
  6371            }
  6372            ok1: 〈0;X〉
  6373            ok1: {
  6374              j: 3
  6375            }
  6376            ok2: 〈0;X〉
  6377            ok2: {
  6378              k: 3
  6379            }
  6380          }
  6381        }
  6382        orEmbed: {
  6383          p2: {
  6384            X: {
  6385              〈3;#b〉
  6386              〈3;#a〉
  6387            }
  6388            ok1: 〈0;X〉
  6389            ok1: {
  6390              j: 3
  6391            }
  6392            ok2: 〈0;X〉
  6393            ok2: {
  6394              k: 3
  6395            }
  6396          }
  6397        }
  6398        andOrEmbed: {
  6399          t1: {
  6400            p1: {
  6401              X: {
  6402                (〈4;#a〉 & 〈4;#b〉)
  6403                (〈4;#c〉 & 〈4;#d〉)
  6404              }
  6405              err1: 〈0;X〉
  6406              err1: {
  6407                j: 3
  6408              }
  6409              ok1: 〈0;X〉
  6410              ok1: {
  6411                k: 3
  6412              }
  6413            }
  6414          }
  6415        }
  6416        andOrEmbed: {
  6417          t1: {
  6418            p2: {
  6419              X: {
  6420                (〈4;#c〉 & 〈4;#d〉)
  6421                (〈4;#a〉 & 〈4;#b〉)
  6422              }
  6423              err1: 〈0;X〉
  6424              err1: {
  6425                j: 3
  6426              }
  6427              ok1: 〈0;X〉
  6428              ok1: {
  6429                k: 3
  6430              }
  6431            }
  6432          }
  6433        }
  6434        andOrEmbed: {
  6435          t2: {
  6436            X: {
  6437              (〈3;#a〉 & 〈3;#b〉)
  6438              (〈3;#c〉 & 〈3;#d〉)
  6439              ["p"]: int
  6440            }
  6441            err1: 〈0;X〉
  6442            err1: {
  6443              j: 3
  6444            }
  6445            ok1: 〈0;X〉
  6446            ok1: {
  6447              k: 3
  6448            }
  6449            ok2: 〈0;X〉
  6450            ok2: {
  6451              p: 3
  6452            }
  6453          }
  6454        }
  6455        indirect: {
  6456          a: {
  6457            [>="k"]: int
  6458          }
  6459          #a: 〈0;a〉
  6460          p1: {
  6461            X: 〈1;#a〉
  6462            err1: 〈0;X〉
  6463            err1: {
  6464              j: 3
  6465            }
  6466            err2: (〈0;X〉 & _|_(no sharing))
  6467            err2: {
  6468              j: 3
  6469            }
  6470            ok: 〈0;X〉
  6471            ok: {
  6472              k: 3
  6473            }
  6474          }
  6475          p2: {
  6476            #a: (〈1;a〉 & _|_(no sharing))
  6477            X: 〈0;#a〉
  6478            err1: 〈0;X〉
  6479            err1: {
  6480              j: 3
  6481            }
  6482            err2: (〈0;X〉 & _|_(no sharing))
  6483            err2: {
  6484              j: 3
  6485            }
  6486            ok: 〈0;X〉
  6487            ok: {
  6488              k: 3
  6489            }
  6490          }
  6491          p3: {
  6492            X: (〈1;#a〉 & _|_(no sharing))
  6493            err1: 〈0;X〉
  6494            err1: {
  6495              j: 3
  6496            }
  6497            err2: (〈0;X〉 & _|_(no sharing))
  6498            err2: {
  6499              j: 3
  6500            }
  6501            ok: 〈0;X〉
  6502            ok: {
  6503              k: 3
  6504            }
  6505          }
  6506          p4: {
  6507            #a: (〈1;a〉 & _|_(no sharing))
  6508            X: 〈0;#a〉
  6509            X: (〈0;#a〉 & _|_(no sharing))
  6510            err1: 〈0;X〉
  6511            err1: {
  6512              j: 3
  6513            }
  6514            err2: (〈0;X〉 & _|_(no sharing))
  6515            err2: {
  6516              j: 3
  6517            }
  6518            ok: 〈0;X〉
  6519            ok: {
  6520              k: 3
  6521            }
  6522          }
  6523        }
  6524      }
  6525    }
  6526    patterns: {
  6527      nested: {
  6528        #a: {
  6529          x: {
  6530            y: {
  6531              [>="k"]: int
  6532            }
  6533          }
  6534        }
  6535        #b: {
  6536          x: {
  6537            y: {
  6538              [<="m"]: int
  6539            }
  6540          }
  6541        }
  6542        #c: {
  6543          x: {
  6544            y: {
  6545              [>="w"]: int
  6546            }
  6547          }
  6548        }
  6549        #d: {
  6550          x: {
  6551            y: {
  6552              [<="y"]: int
  6553            }
  6554          }
  6555        }
  6556        single: {
  6557          X: 〈1;#a〉
  6558          err: 〈0;X〉
  6559          err: {
  6560            x: {
  6561              y: {
  6562                j: 3
  6563              }
  6564            }
  6565          }
  6566          ok: 〈0;X〉
  6567          ok: {
  6568            x: {
  6569              y: {
  6570                k: 3
  6571              }
  6572            }
  6573          }
  6574        }
  6575        and: {
  6576          p1: {
  6577            X: (〈2;#a〉 & 〈2;#b〉)
  6578            err: 〈0;X〉
  6579            err: {
  6580              x: {
  6581                y: {
  6582                  j: 3
  6583                }
  6584              }
  6585            }
  6586            ok: 〈0;X〉
  6587            ok: {
  6588              x: {
  6589                y: {
  6590                  k: 3
  6591                }
  6592              }
  6593            }
  6594          }
  6595        }
  6596        and: {
  6597          p2: {
  6598            X: (〈2;#b〉 & 〈2;#a〉)
  6599            err: 〈0;X〉
  6600            err: {
  6601              x: {
  6602                y: {
  6603                  j: 3
  6604                }
  6605              }
  6606            }
  6607            ok: 〈0;X〉
  6608            ok: {
  6609              x: {
  6610                y: {
  6611                  k: 3
  6612                }
  6613              }
  6614            }
  6615          }
  6616        }
  6617        andEmbed: {
  6618          p1: {
  6619            X: {
  6620              (〈3;#a〉 & 〈3;#b〉)
  6621            }
  6622            err: 〈0;X〉
  6623            err: {
  6624              x: {
  6625                y: {
  6626                  j: 3
  6627                }
  6628              }
  6629            }
  6630            ok: 〈0;X〉
  6631            ok: {
  6632              x: {
  6633                y: {
  6634                  k: 3
  6635                }
  6636              }
  6637            }
  6638          }
  6639        }
  6640        andEmbed: {
  6641          p2: {
  6642            X: {
  6643              (〈3;#b〉 & 〈3;#a〉)
  6644            }
  6645            err: 〈0;X〉
  6646            err: {
  6647              x: {
  6648                y: {
  6649                  j: 3
  6650                }
  6651              }
  6652            }
  6653            ok: 〈0;X〉
  6654            ok: {
  6655              x: {
  6656                y: {
  6657                  k: 3
  6658                }
  6659              }
  6660            }
  6661          }
  6662        }
  6663        orEmbed: {
  6664          p1: {
  6665            X: {
  6666              〈3;#a〉
  6667              〈3;#b〉
  6668            }
  6669            ok1: 〈0;X〉
  6670            ok1: {
  6671              x: {
  6672                y: {
  6673                  j: 3
  6674                }
  6675              }
  6676            }
  6677            ok2: 〈0;X〉
  6678            ok2: {
  6679              x: {
  6680                y: {
  6681                  k: 3
  6682                }
  6683              }
  6684            }
  6685          }
  6686        }
  6687        orEmbed: {
  6688          p2: {
  6689            X: {
  6690              〈3;#b〉
  6691              〈3;#a〉
  6692            }
  6693            ok1: 〈0;X〉
  6694            ok1: {
  6695              x: {
  6696                y: {
  6697                  j: 3
  6698                }
  6699              }
  6700            }
  6701            ok2: 〈0;X〉
  6702            ok2: {
  6703              x: {
  6704                y: {
  6705                  k: 3
  6706                }
  6707              }
  6708            }
  6709          }
  6710        }
  6711        andOrEmbed: {
  6712          t1: {
  6713            p1: {
  6714              X: {
  6715                (〈4;#a〉 & 〈4;#b〉)
  6716                (〈4;#c〉 & 〈4;#d〉)
  6717              }
  6718              err1: 〈0;X〉
  6719              err1: {
  6720                x: {
  6721                  y: {
  6722                    j: 3
  6723                  }
  6724                }
  6725              }
  6726              ok1: 〈0;X〉
  6727              ok1: {
  6728                x: {
  6729                  y: {
  6730                    k: 3
  6731                  }
  6732                }
  6733              }
  6734            }
  6735          }
  6736        }
  6737        andOrEmbed: {
  6738          t1: {
  6739            p2: {
  6740              X: {
  6741                (〈4;#c〉 & 〈4;#d〉)
  6742                (〈4;#a〉 & 〈4;#b〉)
  6743              }
  6744              err1: 〈0;X〉
  6745              err1: {
  6746                x: {
  6747                  y: {
  6748                    j: 3
  6749                  }
  6750                }
  6751              }
  6752              ok1: 〈0;X〉
  6753              ok1: {
  6754                x: {
  6755                  y: {
  6756                    k: 3
  6757                  }
  6758                }
  6759              }
  6760            }
  6761          }
  6762        }
  6763        andOrEmbed: {
  6764          t2: {
  6765            X: {
  6766              (〈3;#a〉 & 〈3;#b〉)
  6767              (〈3;#c〉 & 〈3;#d〉)
  6768              ["p"]: int
  6769            }
  6770            err1: 〈0;X〉
  6771            err1: {
  6772              x: {
  6773                y: {
  6774                  j: 3
  6775                }
  6776              }
  6777            }
  6778            ok1: 〈0;X〉
  6779            ok1: {
  6780              x: {
  6781                y: {
  6782                  k: 3
  6783                }
  6784              }
  6785            }
  6786            ok2: 〈0;X〉
  6787            ok2: {
  6788              x: {
  6789                y: {
  6790                  p: 3
  6791                }
  6792              }
  6793            }
  6794          }
  6795        }
  6796        indirect: {
  6797          a: {
  6798            x: {
  6799              y: {
  6800                [>="k"]: int
  6801              }
  6802            }
  6803          }
  6804          #a: 〈0;a〉
  6805          p1: {
  6806            X: 〈1;#a〉
  6807            err1: 〈0;X〉
  6808            err1: {
  6809              x: {
  6810                y: {
  6811                  j: 3
  6812                }
  6813              }
  6814            }
  6815            err2: (〈0;X〉 & _|_(no sharing))
  6816            err2: {
  6817              x: {
  6818                y: {
  6819                  j: 3
  6820                }
  6821              }
  6822            }
  6823            ok: 〈0;X〉
  6824            ok: {
  6825              x: {
  6826                y: {
  6827                  k: 3
  6828                }
  6829              }
  6830            }
  6831          }
  6832          p2: {
  6833            #a: (〈1;a〉 & _|_(no sharing))
  6834            X: 〈0;#a〉
  6835            err1: 〈0;X〉
  6836            err1: {
  6837              x: {
  6838                y: {
  6839                  j: 3
  6840                }
  6841              }
  6842            }
  6843            err2: (〈0;X〉 & _|_(no sharing))
  6844            err2: {
  6845              x: {
  6846                y: {
  6847                  j: 3
  6848                }
  6849              }
  6850            }
  6851            ok: 〈0;X〉
  6852            ok: {
  6853              x: {
  6854                y: {
  6855                  k: 3
  6856                }
  6857              }
  6858            }
  6859          }
  6860          p3: {
  6861            X: (〈1;#a〉 & _|_(no sharing))
  6862            err1: 〈0;X〉
  6863            err1: {
  6864              x: {
  6865                y: {
  6866                  j: 3
  6867                }
  6868              }
  6869            }
  6870            err2: (〈0;X〉 & _|_(no sharing))
  6871            err2: {
  6872              x: {
  6873                y: {
  6874                  j: 3
  6875                }
  6876              }
  6877            }
  6878            ok: 〈0;X〉
  6879            ok: {
  6880              x: {
  6881                y: {
  6882                  k: 3
  6883                }
  6884              }
  6885            }
  6886          }
  6887          p4: {
  6888            #a: (〈1;a〉 & _|_(no sharing))
  6889            X: 〈0;#a〉
  6890            X: (〈0;#a〉 & _|_(no sharing))
  6891            err1: 〈0;X〉
  6892            err1: {
  6893              x: {
  6894                y: {
  6895                  j: 3
  6896                }
  6897              }
  6898            }
  6899            err2: (〈0;X〉 & _|_(no sharing))
  6900            err2: {
  6901              x: {
  6902                y: {
  6903                  j: 3
  6904                }
  6905              }
  6906            }
  6907            ok: 〈0;X〉
  6908            ok: {
  6909              x: {
  6910                y: {
  6911                  k: 3
  6912                }
  6913              }
  6914            }
  6915          }
  6916        }
  6917      }
  6918    }
  6919    issue2241: {
  6920      #close: {}
  6921      a: {
  6922        x: {
  6923          q: 2
  6924        }
  6925        〈1;#close〉
  6926      }
  6927      b: 〈0;a〉
  6928      b: {
  6929        x: {
  6930          r: 4
  6931        }
  6932      }
  6933    }
  6934  }
  6935  --- in.cue
  6936  {
  6937    #E: {
  6938      c: int
  6939    }
  6940    #A: {
  6941      b: int
  6942      q: {
  6943        〈2;#E〉
  6944        d: int
  6945      }
  6946    }
  6947    a: (〈0;#A〉 & {
  6948      b: 3
  6949      q: {
  6950        c: 2
  6951        e: 43
  6952      }
  6953    })
  6954    issue852: {
  6955      #A: {
  6956        [=~"^a-z$"]: string
  6957      }
  6958      a: 〈0;#A〉
  6959      a: {
  6960        Foo: "foo"
  6961      }
  6962      for k, v in 〈0;a〉 {
  6963        b: {
  6964          "\(〈2;k〉)": 〈2;v〉
  6965        }
  6966      }
  6967    }
  6968    dynamic: {
  6969      #D: {
  6970        key: "foo"
  6971        〈0;key〉: int
  6972      }
  6973      d: (〈0;#D〉 & {
  6974        foo: 3
  6975      })
  6976    }
  6977  }
  6978  --- reroot.cue
  6979  {
  6980    issue3330: {
  6981      let: {
  6982        ok: {
  6983          #struct: {
  6984            let empty#1 = {}
  6985            field: (null|{
  6986              n: int
  6987            })
  6988            field: (〈0;let empty#1〉 & {
  6989              n: 3
  6990            })
  6991          }
  6992          out: 〈import;list〉.Concat([
  6993            [
  6994              〈2;#struct〉,
  6995            ],
  6996          ])
  6997        }
  6998      }
  6999      matthew: {
  7000        ok1: {
  7001          #struct: {
  7002            field: ({
  7003              n: 3
  7004            } & 〈0;g〉)
  7005            g: {}
  7006          }
  7007          out: (〈0;#struct〉 & {})
  7008        }
  7009      }
  7010      matthew: {
  7011        ok2: {
  7012          #struct: {
  7013            field: ({
  7014              n: 3
  7015            } & 〈0;g〉)
  7016            g: {}
  7017          }
  7018          out: 〈0;#struct〉
  7019          out2: (〈0;out〉 & {})
  7020        }
  7021      }
  7022    }
  7023    issue3331: {
  7024      original: {
  7025        ok: {
  7026          #A: {
  7027            let b#2 = {}
  7028            c: (〈0;let b#2〉 & {
  7029              d: 1
  7030            })
  7031          }
  7032          〈import;list〉.Concat([
  7033            [
  7034              〈2;#A〉,
  7035            ],
  7036          ])
  7037        }
  7038      }
  7039      variant1: {
  7040        ok: {
  7041          #A: {
  7042            let b#3 = {}
  7043            c: (〈0;let b#3〉 & {
  7044              d: 1
  7045            })
  7046          }
  7047          [
  7048            [
  7049              〈2;#A〉,
  7050            ],
  7051          ]
  7052        }
  7053      }
  7054    }
  7055    indirect: {
  7056      embed: {
  7057        err1: {
  7058          #A: {
  7059            x: {
  7060              〈2;#x〉
  7061              〈2;#y〉
  7062            }
  7063            zx: 〈0;x〉.a
  7064          }
  7065          #x: {
  7066            a: {
  7067              b: 1
  7068            }
  7069          }
  7070          #y: {
  7071            a: {
  7072              c: 2
  7073            }
  7074          }
  7075          b: 〈0;#A〉
  7076          b1: 〈0;b〉.zx
  7077          b1: {
  7078            d: 1
  7079          }
  7080        }
  7081      }
  7082      closed: {
  7083        err1: {
  7084          X: {
  7085            a: 〈0;b〉
  7086            b: {}
  7087            a: {
  7088              e: 1
  7089            }
  7090          }
  7091          Y: 〈0;X〉
  7092          Y: {
  7093            b: 〈0;c〉
  7094            c: 〈1;#X〉
  7095          }
  7096          #X: {}
  7097        }
  7098      }
  7099    }
  7100    nested: {
  7101      ok1: {
  7102        #A: {
  7103          b: {}
  7104          #B: {
  7105            c: (〈1;b〉 & {
  7106              d: 1
  7107            })
  7108          }
  7109        }
  7110        x: 〈0;#A〉
  7111      }
  7112    }
  7113    nested: {
  7114      embed: {
  7115        ok: {
  7116          x: 〈0;#A〉
  7117          #A: {
  7118            〈1;k〉
  7119          }
  7120          k: {
  7121            d: (〈0;b〉 & {
  7122              e: int
  7123            })
  7124            b: {}
  7125          }
  7126        }
  7127      }
  7128    }
  7129    nested: {
  7130      err1: {
  7131        x: 〈0;#A〉
  7132        #A: {
  7133          b: {
  7134            f: 1
  7135          }
  7136          v: 〈0;#V〉
  7137          #V: {
  7138            c: (〈1;b〉 & {
  7139              d: 1
  7140            })
  7141          }
  7142        }
  7143        x: {
  7144          b: 〈1;#B〉
  7145        }
  7146        #B: {
  7147          g: 1
  7148        }
  7149      }
  7150    }
  7151    nested: {
  7152      err2: {
  7153        #A: {
  7154          b: {}
  7155          c: (〈0;b〉 & {
  7156            d: 1
  7157          })
  7158        }
  7159        x: 〈0;#A〉
  7160        x: {
  7161          b: {
  7162            g: 1
  7163          }
  7164        }
  7165      }
  7166    }
  7167    inline: {
  7168      #x: {
  7169        y: {
  7170          z?: {
  7171            name: string
  7172          }
  7173        }
  7174      }
  7175      err1: ((〈0;#x〉 & {
  7176        y: {
  7177          z: _
  7178        }
  7179      }).y.z & {
  7180        name: "a"
  7181        age1: 5
  7182      })
  7183      err2: ((〈0;#x〉.y & {
  7184        z: _
  7185      }).z & {
  7186        name: "a"
  7187        age2: 5
  7188      })
  7189    }
  7190    mixInDef: {
  7191      refInside: {
  7192        #x: {
  7193          b: {
  7194            c: {
  7195              d: {}
  7196              e: {
  7197                f: {}
  7198              }
  7199            }
  7200          }
  7201        }
  7202        a: 〈0;#x〉
  7203        a: {
  7204          b: {
  7205            c: {
  7206              d: {}
  7207            }
  7208          }
  7209        }
  7210        a: {
  7211          b: {
  7212            c: {
  7213              e: 〈1;c〉.d
  7214            }
  7215          }
  7216        }
  7217      }
  7218      refEdge: {
  7219        #x: {
  7220          c: {
  7221            d: {}
  7222            e: {
  7223              f: {}
  7224            }
  7225          }
  7226        }
  7227        a: 〈0;#x〉
  7228        a: {
  7229          c: {
  7230            d: {}
  7231          }
  7232        }
  7233        a: {
  7234          c: {
  7235            e: 〈1;c〉.d
  7236          }
  7237        }
  7238      }
  7239      refOutside: {
  7240        #x: {
  7241          c: {
  7242            d: {}
  7243            e: {
  7244              f: {}
  7245            }
  7246          }
  7247        }
  7248        a: 〈0;#x〉
  7249        a: {
  7250          c: {
  7251            d: {}
  7252          }
  7253        }
  7254        a: {
  7255          c: {
  7256            e: 〈2;a〉.c.d
  7257          }
  7258        }
  7259      }
  7260    }
  7261    issue3601: {
  7262      original: {
  7263        out: {
  7264          〈1;#Transform〉.output
  7265        }
  7266        #Transform: {
  7267          output: (〈1;#Patch〉 & {}).output
  7268        }
  7269        #Patch: {
  7270          target: {}
  7271          output: {
  7272            foo: {
  7273              final: 〈2;target〉
  7274              final: {
  7275                version: "v1"
  7276              }
  7277            }
  7278          }
  7279        }
  7280      }
  7281    }
  7282    issue3601: {
  7283      originalNoShare: {
  7284        out: {
  7285          〈1;#Transform〉.output
  7286        }
  7287        #Transform: {
  7288          output: (〈1;#Patch〉 & _|_(no sharing)).output
  7289        }
  7290        #Patch: {
  7291          target: {}
  7292          output: {
  7293            foo: {
  7294              final: 〈2;target〉
  7295              final: {
  7296                version: "v1"
  7297              }
  7298            }
  7299          }
  7300        }
  7301      }
  7302    }
  7303    issue3601: {
  7304      reduced: {
  7305        #X: {
  7306          a: {
  7307            b: {
  7308              c: "v1"
  7309            }
  7310          }
  7311          a: {
  7312            b: 〈1;empty〉
  7313          }
  7314          empty: {}
  7315        }
  7316        original: {
  7317          Y: (〈1;#X〉 & _|_(no sharing)).a
  7318          out: (〈0;Y〉 & _|_(no sharing))
  7319        }
  7320        moreInlining: {
  7321          out: ((〈1;#X〉 & {}).a & {})
  7322        }
  7323        noInline: {
  7324          Y: (〈1;#X〉 & _|_(no sharing))
  7325          Z: (〈0;Y〉 & _|_(no sharing))
  7326          out: (〈0;Z〉.a & _|_(no sharing))
  7327        }
  7328        moreNesting: {
  7329          #X: {
  7330            a: {
  7331              b: {
  7332                c: {
  7333                  d: "v1"
  7334                }
  7335              }
  7336            }
  7337            a: {
  7338              b: {
  7339                c: 〈2;empty〉
  7340              }
  7341            }
  7342            empty: {}
  7343          }
  7344          Y: (〈0;#X〉.a & _|_(no sharing)).b
  7345          Z: (〈0;Y〉 & _|_(no sharing))
  7346        }
  7347      }
  7348    }
  7349  }
  7350  --- validation.cue
  7351  {
  7352    issue3332: {
  7353      #def: {
  7354        field: 〈import;list〉.MinItems(1)
  7355      }
  7356      use: (〈0;#def〉 & {
  7357        field: [
  7358          "value",
  7359        ]
  7360      })
  7361    }
  7362  }