cuelang.org/go@v0.10.1/internal/core/export/testdata/main/attrs.txtar (about)

     1  -- a.cue --
     2  @package("foo")
     3  
     4  package bar
     5  
     6  @file("foo")
     7  
     8  a: {
     9  	@decl(1)
    10  	@decl(2)
    11  } @field(2)
    12  
    13  a: {
    14  	@decl(1)
    15  	@decl(3)
    16  } @field(1) @field(4)
    17  
    18  a: {} @field(1) @field(3)
    19  
    20  doNotPropagate: {
    21  	#A: {} @attr1()
    22  	a: #A
    23  
    24  	// Do not accumulated field attributes in embedding.
    25  	#B: {} @attr1()
    26  	b: {#B}
    27  }
    28  
    29  embedScalarField: {
    30  	a: {2} @attr1()
    31  	a: {_} @attr2()
    32  }
    33  
    34  embedScalarDecl: {
    35  	b0: {2, @attr1()}
    36  	b1: b0
    37  	b2: {2, b0, @attr2()}
    38  }
    39  
    40  dontMergeForDef: {
    41  	a: {@decl1()}
    42  	b: a & {x: 1, @decl2()}
    43  	c: a & {@decl2()}
    44  	d: {a, @decl2()}
    45  }
    46  
    47  comprehensions: {
    48  	@step(0)
    49  	c1: {} @step(1)
    50  	if true {
    51  		c2: { @step(2a) } @step(2b)
    52  		@step(2c)
    53  	}
    54  	c3: {} @step(3)
    55  	if false {
    56  		c4: { @step(4a) } @step(4b)
    57  		@step(4c)
    58  	}
    59  }
    60  
    61  dynamicComplex: {
    62  	a: "foo"
    63  
    64  	(a): "foo" @step(1)
    65  
    66  	[string]: "foo" @step(2)
    67  
    68  	a?: "foo" @step(3)
    69  
    70  	b?: "foo" @step(4)
    71  
    72  	if true {} // trigger isComplex
    73  }
    74  
    75  dynamicSimple: {
    76  	a: "foo"
    77  
    78  	a?: "foo" @step(3)
    79  
    80  	b?: "foo" @step(4)
    81  }
    82  -- b.cue --
    83  @package("b")
    84  
    85  package bar
    86  
    87  @file("bar")
    88  
    89  a: {
    90  	@decl(5)
    91  } @field(5)
    92  -- out/definition --
    93  package bar
    94  
    95  @file("foo")
    96  
    97  @file("bar")
    98  a: {
    99  	@decl(1)
   100  	@decl(2)
   101  	@decl(3)
   102  	@decl(5)
   103  } @field(2) @field(1) @field(4) @field(3) @field(5)
   104  doNotPropagate: {
   105  	#A: {} @attr1()
   106  	a: #A
   107  
   108  	// Do not accumulated field attributes in embedding.
   109  	#B: {} @attr1()
   110  	b: #B
   111  }
   112  embedScalarField: {
   113  	a: 2 @attr1() @attr2()
   114  }
   115  embedScalarDecl: {
   116  	b0: {
   117  		@attr1()
   118  		2
   119  	}
   120  	b1: b0
   121  	b2: {
   122  		@attr2()
   123  		b0
   124  		2
   125  	}
   126  }
   127  dontMergeForDef: {
   128  	a: {
   129  		@decl1()
   130  	}
   131  	b: a & {
   132  		@decl2()
   133  		x: 1
   134  	}
   135  	c: a & {
   136  		@decl2()
   137  	}
   138  	d: {
   139  		@decl2()
   140  		a
   141  	}
   142  }
   143  comprehensions: {
   144  	@step(0)
   145  	c1: {} @step(1)
   146  	if true {
   147  		@step(2c)
   148  		c2: {
   149  			@step(2a)
   150  		} @step(2b)
   151  	}
   152  	c3: {} @step(3)
   153  	if false {
   154  		@step(4c)
   155  		c4: {
   156  			@step(4a)
   157  		} @step(4b)
   158  	}
   159  }
   160  dynamicComplex: {
   161  	a:        "foo"
   162  	(a):      "foo" @step(1)
   163  	[string]: "foo" @step(2)
   164  	a?:       "foo" @step(3)
   165  	b?:       "foo" @step(4)
   166  
   167  	if true {}
   168  }
   169  dynamicSimple: {
   170  	a:  "foo" @step(3)
   171  	b?: "foo" @step(4)
   172  }
   173  -- out/doc --
   174  []
   175  [a]
   176  [doNotPropagate]
   177  [doNotPropagate #A]
   178  [doNotPropagate a]
   179  [doNotPropagate #B]
   180  - Do not accumulated field attributes in embedding.
   181  
   182  [doNotPropagate b]
   183  [embedScalarField]
   184  [embedScalarField a]
   185  [embedScalarDecl]
   186  [embedScalarDecl b0]
   187  [embedScalarDecl b1]
   188  [embedScalarDecl b2]
   189  [dontMergeForDef]
   190  [dontMergeForDef a]
   191  [dontMergeForDef b]
   192  [dontMergeForDef b x]
   193  [dontMergeForDef c]
   194  [dontMergeForDef d]
   195  [comprehensions]
   196  [comprehensions c1]
   197  [comprehensions c2]
   198  [comprehensions c3]
   199  [dynamicComplex]
   200  [dynamicComplex a]
   201  [dynamicComplex b]
   202  [dynamicComplex foo]
   203  [dynamicSimple]
   204  [dynamicSimple a]
   205  [dynamicSimple b]
   206  -- out/value-v3 --
   207  == Simplified
   208  {
   209  	a: {}
   210  	doNotPropagate: {
   211  		a: {}
   212  		b: {}
   213  	}
   214  	embedScalarField: {
   215  		a: 2
   216  	}
   217  	embedScalarDecl: {
   218  		b0: 2
   219  		b1: 2
   220  		b2: 2
   221  	}
   222  	dontMergeForDef: {
   223  		a: {}
   224  		b: {
   225  			x: 1
   226  		}
   227  		c: {}
   228  		d: {}
   229  	}
   230  	comprehensions: {
   231  		c1: {}
   232  		c2: {}
   233  		c3: {}
   234  	}
   235  	dynamicComplex: {
   236  		foo: "foo"
   237  		a:   "foo"
   238  	}
   239  	dynamicSimple: {
   240  		a: "foo"
   241  	}
   242  }
   243  == Raw
   244  {
   245  	a: {}
   246  	doNotPropagate: {
   247  		#A: {}
   248  		a: {}
   249  
   250  		// Do not accumulated field attributes in embedding.
   251  		#B: {}
   252  		b: {}
   253  	}
   254  	embedScalarField: {
   255  		a: 2
   256  	}
   257  	embedScalarDecl: {
   258  		b0: 2
   259  		b1: 2
   260  		b2: 2
   261  	}
   262  	dontMergeForDef: {
   263  		a: {}
   264  		b: {
   265  			x: 1
   266  		}
   267  		c: {}
   268  		d: {}
   269  	}
   270  	comprehensions: {
   271  		c1: {}
   272  		c2: {}
   273  		c3: {}
   274  	}
   275  	dynamicComplex: {
   276  		foo: "foo"
   277  		a:   "foo"
   278  		b?:  "foo"
   279  	}
   280  	dynamicSimple: {
   281  		a:  "foo"
   282  		b?: "foo"
   283  	}
   284  }
   285  == Final
   286  {
   287  	a: {}
   288  	doNotPropagate: {
   289  		a: {}
   290  		b: {}
   291  	}
   292  	embedScalarField: {
   293  		a: 2
   294  	}
   295  	embedScalarDecl: {
   296  		b0: 2
   297  		b1: 2
   298  		b2: 2
   299  	}
   300  	dontMergeForDef: {
   301  		a: {}
   302  		b: {
   303  			x: 1
   304  		}
   305  		c: {}
   306  		d: {}
   307  	}
   308  	comprehensions: {
   309  		c1: {}
   310  		c2: {}
   311  		c3: {}
   312  	}
   313  	dynamicComplex: {
   314  		foo: "foo"
   315  		a:   "foo"
   316  	}
   317  	dynamicSimple: {
   318  		a: "foo"
   319  	}
   320  }
   321  == All
   322  {
   323  	@file("foo")
   324  
   325  	@file("bar")
   326  	a: {
   327  		@decl(1)
   328  		@decl(2)
   329  		@decl(3)
   330  		@decl(5)
   331  	} @field(2) @field(1) @field(4) @field(3) @field(5)
   332  	doNotPropagate: {
   333  		#A: {} @attr1()
   334  		a: {}
   335  
   336  		// Do not accumulated field attributes in embedding.
   337  		#B: {} @attr1()
   338  		b: {}
   339  	}
   340  	embedScalarField: {
   341  		a: 2 @attr1() @attr2()
   342  	}
   343  	embedScalarDecl: {
   344  		b0: {
   345  			2, @attr1()
   346  		}
   347  		b1: {
   348  			2, @attr1()
   349  		}
   350  		b2: {
   351  			2, @attr2(), @attr1()
   352  		}
   353  	}
   354  	dontMergeForDef: {
   355  		a: {
   356  			@decl1()
   357  		}
   358  		b: {
   359  			@decl2(), @decl1()
   360  			x: 1
   361  		}
   362  		c: {
   363  			@decl2(), @decl1()
   364  		}
   365  		d: {
   366  			@decl2(), @decl1()
   367  		}
   368  	}
   369  	comprehensions: {
   370  		@step(0)
   371  		@step(2c)
   372  		c1: {} @step(1)
   373  		c2: {
   374  			@step(2a)
   375  		} @step(2b)
   376  		c3: {} @step(3)
   377  	}
   378  	dynamicComplex: {
   379  		foo: "foo" @step(1) @step(2)
   380  		a:   "foo" @step(3) @step(2)
   381  		b?:  "foo" @step(4) @step(2)
   382  	}
   383  	dynamicSimple: {
   384  		a:  "foo" @step(3)
   385  		b?: "foo" @step(4)
   386  	}
   387  }
   388  == Eval
   389  {
   390  	@file("foo")
   391  
   392  	@file("bar")
   393  	a: {
   394  		@decl(1)
   395  		@decl(2)
   396  		@decl(3)
   397  		@decl(5)
   398  	} @field(2) @field(1) @field(4) @field(3) @field(5)
   399  	doNotPropagate: {
   400  		#A: {} @attr1()
   401  		a: {}
   402  		#B: {} @attr1()
   403  		b: {}
   404  	}
   405  	embedScalarField: {
   406  		a: 2 @attr1() @attr2()
   407  	}
   408  	embedScalarDecl: {
   409  		b0: {
   410  			2, @attr1()
   411  		}
   412  		b1: {
   413  			2, @attr1()
   414  		}
   415  		b2: {
   416  			2, @attr2(), @attr1()
   417  		}
   418  	}
   419  	dontMergeForDef: {
   420  		a: {
   421  			@decl1()
   422  		}
   423  		b: {
   424  			@decl2(), @decl1()
   425  			x: 1
   426  		}
   427  		c: {
   428  			@decl2(), @decl1()
   429  		}
   430  		d: {
   431  			@decl2(), @decl1()
   432  		}
   433  	}
   434  	comprehensions: {
   435  		@step(0)
   436  		@step(2c)
   437  		c1: {} @step(1)
   438  		c2: {
   439  			@step(2a)
   440  		} @step(2b)
   441  		c3: {} @step(3)
   442  	}
   443  	dynamicComplex: {
   444  		foo: "foo" @step(1) @step(2)
   445  		a:   "foo" @step(3) @step(2)
   446  		b?:  "foo" @step(4) @step(2)
   447  	}
   448  	dynamicSimple: {
   449  		a:  "foo" @step(3)
   450  		b?: "foo" @step(4)
   451  	}
   452  }
   453  -- diff/-out/value-v3<==>+out/value --
   454  diff old new
   455  --- old
   456  +++ new
   457  @@ -150,11 +150,11 @@
   458   			@decl1()
   459   		}
   460   		b: {
   461  -			@decl1(), @decl2()
   462  -			x: 1
   463  -		}
   464  -		c: {
   465  -			@decl1(), @decl2()
   466  +			@decl2(), @decl1()
   467  +			x: 1
   468  +		}
   469  +		c: {
   470  +			@decl2(), @decl1()
   471   		}
   472   		d: {
   473   			@decl2(), @decl1()
   474  @@ -215,11 +215,11 @@
   475   			@decl1()
   476   		}
   477   		b: {
   478  -			@decl1(), @decl2()
   479  -			x: 1
   480  -		}
   481  -		c: {
   482  -			@decl1(), @decl2()
   483  +			@decl2(), @decl1()
   484  +			x: 1
   485  +		}
   486  +		c: {
   487  +			@decl2(), @decl1()
   488   		}
   489   		d: {
   490   			@decl2(), @decl1()
   491  -- diff/value/todo/p3 --
   492  Reordering of attributes.
   493  -- out/value --
   494  == Simplified
   495  {
   496  	a: {}
   497  	doNotPropagate: {
   498  		a: {}
   499  		b: {}
   500  	}
   501  	embedScalarField: {
   502  		a: 2
   503  	}
   504  	embedScalarDecl: {
   505  		b0: 2
   506  		b1: 2
   507  		b2: 2
   508  	}
   509  	dontMergeForDef: {
   510  		a: {}
   511  		b: {
   512  			x: 1
   513  		}
   514  		c: {}
   515  		d: {}
   516  	}
   517  	comprehensions: {
   518  		c1: {}
   519  		c2: {}
   520  		c3: {}
   521  	}
   522  	dynamicComplex: {
   523  		foo: "foo"
   524  		a:   "foo"
   525  	}
   526  	dynamicSimple: {
   527  		a: "foo"
   528  	}
   529  }
   530  == Raw
   531  {
   532  	a: {}
   533  	doNotPropagate: {
   534  		#A: {}
   535  		a: {}
   536  
   537  		// Do not accumulated field attributes in embedding.
   538  		#B: {}
   539  		b: {}
   540  	}
   541  	embedScalarField: {
   542  		a: 2
   543  	}
   544  	embedScalarDecl: {
   545  		b0: 2
   546  		b1: 2
   547  		b2: 2
   548  	}
   549  	dontMergeForDef: {
   550  		a: {}
   551  		b: {
   552  			x: 1
   553  		}
   554  		c: {}
   555  		d: {}
   556  	}
   557  	comprehensions: {
   558  		c1: {}
   559  		c2: {}
   560  		c3: {}
   561  	}
   562  	dynamicComplex: {
   563  		foo: "foo"
   564  		a:   "foo"
   565  		b?:  "foo"
   566  	}
   567  	dynamicSimple: {
   568  		a:  "foo"
   569  		b?: "foo"
   570  	}
   571  }
   572  == Final
   573  {
   574  	a: {}
   575  	doNotPropagate: {
   576  		a: {}
   577  		b: {}
   578  	}
   579  	embedScalarField: {
   580  		a: 2
   581  	}
   582  	embedScalarDecl: {
   583  		b0: 2
   584  		b1: 2
   585  		b2: 2
   586  	}
   587  	dontMergeForDef: {
   588  		a: {}
   589  		b: {
   590  			x: 1
   591  		}
   592  		c: {}
   593  		d: {}
   594  	}
   595  	comprehensions: {
   596  		c1: {}
   597  		c2: {}
   598  		c3: {}
   599  	}
   600  	dynamicComplex: {
   601  		foo: "foo"
   602  		a:   "foo"
   603  	}
   604  	dynamicSimple: {
   605  		a: "foo"
   606  	}
   607  }
   608  == All
   609  {
   610  	@file("foo")
   611  
   612  	@file("bar")
   613  	a: {
   614  		@decl(1)
   615  		@decl(2)
   616  		@decl(3)
   617  		@decl(5)
   618  	} @field(2) @field(1) @field(4) @field(3) @field(5)
   619  	doNotPropagate: {
   620  		#A: {} @attr1()
   621  		a: {}
   622  
   623  		// Do not accumulated field attributes in embedding.
   624  		#B: {} @attr1()
   625  		b: {}
   626  	}
   627  	embedScalarField: {
   628  		a: 2 @attr1() @attr2()
   629  	}
   630  	embedScalarDecl: {
   631  		b0: {
   632  			2, @attr1()
   633  		}
   634  		b1: {
   635  			2, @attr1()
   636  		}
   637  		b2: {
   638  			2, @attr2(), @attr1()
   639  		}
   640  	}
   641  	dontMergeForDef: {
   642  		a: {
   643  			@decl1()
   644  		}
   645  		b: {
   646  			@decl1(), @decl2()
   647  			x: 1
   648  		}
   649  		c: {
   650  			@decl1(), @decl2()
   651  		}
   652  		d: {
   653  			@decl2(), @decl1()
   654  		}
   655  	}
   656  	comprehensions: {
   657  		@step(0)
   658  		@step(2c)
   659  		c1: {} @step(1)
   660  		c2: {
   661  			@step(2a)
   662  		} @step(2b)
   663  		c3: {} @step(3)
   664  	}
   665  	dynamicComplex: {
   666  		foo: "foo" @step(1) @step(2)
   667  		a:   "foo" @step(3) @step(2)
   668  		b?:  "foo" @step(4) @step(2)
   669  	}
   670  	dynamicSimple: {
   671  		a:  "foo" @step(3)
   672  		b?: "foo" @step(4)
   673  	}
   674  }
   675  == Eval
   676  {
   677  	@file("foo")
   678  
   679  	@file("bar")
   680  	a: {
   681  		@decl(1)
   682  		@decl(2)
   683  		@decl(3)
   684  		@decl(5)
   685  	} @field(2) @field(1) @field(4) @field(3) @field(5)
   686  	doNotPropagate: {
   687  		#A: {} @attr1()
   688  		a: {}
   689  		#B: {} @attr1()
   690  		b: {}
   691  	}
   692  	embedScalarField: {
   693  		a: 2 @attr1() @attr2()
   694  	}
   695  	embedScalarDecl: {
   696  		b0: {
   697  			2, @attr1()
   698  		}
   699  		b1: {
   700  			2, @attr1()
   701  		}
   702  		b2: {
   703  			2, @attr2(), @attr1()
   704  		}
   705  	}
   706  	dontMergeForDef: {
   707  		a: {
   708  			@decl1()
   709  		}
   710  		b: {
   711  			@decl1(), @decl2()
   712  			x: 1
   713  		}
   714  		c: {
   715  			@decl1(), @decl2()
   716  		}
   717  		d: {
   718  			@decl2(), @decl1()
   719  		}
   720  	}
   721  	comprehensions: {
   722  		@step(0)
   723  		@step(2c)
   724  		c1: {} @step(1)
   725  		c2: {
   726  			@step(2a)
   727  		} @step(2b)
   728  		c3: {} @step(3)
   729  	}
   730  	dynamicComplex: {
   731  		foo: "foo" @step(1) @step(2)
   732  		a:   "foo" @step(3) @step(2)
   733  		b?:  "foo" @step(4) @step(2)
   734  	}
   735  	dynamicSimple: {
   736  		a:  "foo" @step(3)
   737  		b?: "foo" @step(4)
   738  	}
   739  }