cuelang.org/go@v0.13.0/cue/testdata/definitions/issue3834.txtar (about)

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