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

     1  -- a1.cue --
     2  package bug
     3  
     4  y: fact2.uc
     5  x: fact1.uc
     6  -- a2.cue --
     7  package bug
     8  
     9  x: fact1.uc
    10  y: fact2.uc
    11  -- x.cue --
    12  package bug
    13  
    14  fact1: #MCS & {
    15  	lc: fact2.lc
    16  }
    17  fact2: #MCS & {
    18  	lc: "foo"
    19  }
    20  
    21  #MCS: #MultiCaseString
    22  #MultiCaseString: {
    23  	lc: string
    24  	uc: lc
    25  }
    26  -- out/compile --
    27  --- a1.cue
    28  {
    29    y: 〈0;fact2〉.uc
    30    x: 〈0;fact1〉.uc
    31  }
    32  --- a2.cue
    33  {
    34    x: 〈0;fact1〉.uc
    35    y: 〈0;fact2〉.uc
    36  }
    37  --- x.cue
    38  {
    39    fact1: (〈0;#MCS〉 & {
    40      lc: 〈1;fact2〉.lc
    41    })
    42    fact2: (〈0;#MCS〉 & {
    43      lc: "foo"
    44    })
    45    #MCS: 〈0;#MultiCaseString〉
    46    #MultiCaseString: {
    47      lc: string
    48      uc: 〈0;lc〉
    49    }
    50  }
    51  -- out/eval/stats --
    52  Leaks:  0
    53  Freed:  15
    54  Reused: 8
    55  Allocs: 7
    56  Retain: 21
    57  
    58  Unifications: 15
    59  Conjuncts:    45
    60  Disjuncts:    31
    61  -- out/evalalpha --
    62  (struct){
    63    y: (string){ "foo" }
    64    x: (string){ "foo" }
    65    fact1: (#struct){
    66      lc: (string){ "foo" }
    67      uc: (string){ "foo" }
    68    }
    69    fact2: (#struct){
    70      lc: (string){ "foo" }
    71      uc: (string){ "foo" }
    72    }
    73    #MCS: ~(#MultiCaseString)
    74    #MultiCaseString: (#struct){
    75      lc: (string){ string }
    76      uc: (string){ string }
    77    }
    78  }
    79  -- diff/-out/evalalpha<==>+out/eval --
    80  diff old new
    81  --- old
    82  +++ new
    83  @@ -9,10 +9,7 @@
    84       lc: (string){ "foo" }
    85       uc: (string){ "foo" }
    86     }
    87  -  #MCS: (#struct){
    88  -    lc: (string){ string }
    89  -    uc: (string){ string }
    90  -  }
    91  +  #MCS: ~(#MultiCaseString)
    92     #MultiCaseString: (#struct){
    93       lc: (string){ string }
    94       uc: (string){ string }
    95  -- out/eval --
    96  (struct){
    97    y: (string){ "foo" }
    98    x: (string){ "foo" }
    99    fact1: (#struct){
   100      lc: (string){ "foo" }
   101      uc: (string){ "foo" }
   102    }
   103    fact2: (#struct){
   104      lc: (string){ "foo" }
   105      uc: (string){ "foo" }
   106    }
   107    #MCS: (#struct){
   108      lc: (string){ string }
   109      uc: (string){ string }
   110    }
   111    #MultiCaseString: (#struct){
   112      lc: (string){ string }
   113      uc: (string){ string }
   114    }
   115  }