cuelang.org/go@v0.13.0/cue/testdata/cycle/issue3527.txtar (about)

     1  // Issue #3527
     2  // This code caused a panic before.
     3  -- in.cue --
     4  package p
     5  
     6  _taxPayer: self: {}
     7  
     8  let sam = {taxPayer: _taxPayer}
     9  assert: {
    10  	invoke: sam
    11  	invoke: _
    12  	res: subject & {in: invoke}
    13  }
    14  
    15  subject: {
    16  	in: #ReturnData
    17  	_computed: (#computeF1040 & {"in": in})
    18  }
    19  #computeF1040: in:      #ReturnData
    20  #ReturnData: taxPayer?: #TaxPayer
    21  #TaxPayer: self?:       _
    22  -- out/eval/stats --
    23  Leaks:  0
    24  Freed:  35
    25  Reused: 26
    26  Allocs: 9
    27  Retain: 4
    28  
    29  Unifications: 35
    30  Conjuncts:    82
    31  Disjuncts:    39
    32  -- out/evalalpha --
    33  (struct){
    34    _taxPayer(:p): (struct){
    35      self: (struct){
    36      }
    37    }
    38    let sam#1 = (struct){
    39      taxPayer: ~(_taxPayer(:p))
    40    }
    41    assert: (struct){
    42      invoke: (struct){
    43        taxPayer: ~(_taxPayer(:p))
    44      }
    45      res: (struct){
    46        in: (#struct){
    47          taxPayer: (#struct){
    48            self: (#struct){
    49            }
    50          }
    51        }
    52        _computed(:p): (#struct){
    53          in: (#struct){
    54            taxPayer: (#struct){
    55              self: (#struct){
    56              }
    57            }
    58          }
    59        }
    60      }
    61    }
    62    subject: (struct){
    63      in: ~(#ReturnData)
    64      _computed(:p): (#struct){
    65        in: ~(#ReturnData)
    66      }
    67    }
    68    #computeF1040: (#struct){
    69      in: ~(#ReturnData)
    70    }
    71    #ReturnData: (#struct){
    72      taxPayer?: ~(#TaxPayer)
    73    }
    74    #TaxPayer: (#struct){
    75      self?: (_){ _ }
    76    }
    77  }
    78  -- diff/-out/evalalpha<==>+out/eval --
    79  diff old new
    80  --- old
    81  +++ new
    82  @@ -4,22 +4,16 @@
    83       }
    84     }
    85     let sam#1 = (struct){
    86  -    taxPayer: (struct){
    87  -      self: (struct){
    88  -      }
    89  -    }
    90  +    taxPayer: ~(_taxPayer(:p))
    91     }
    92     assert: (struct){
    93       invoke: (struct){
    94  -      taxPayer: (struct){
    95  -        self: (struct){
    96  -        }
    97  -      }
    98  +      taxPayer: ~(_taxPayer(:p))
    99       }
   100       res: (struct){
   101         in: (#struct){
   102           taxPayer: (#struct){
   103  -          self: (struct){
   104  +          self: (#struct){
   105             }
   106           }
   107         }
   108  @@ -26,7 +20,7 @@
   109         _computed(:p): (#struct){
   110           in: (#struct){
   111             taxPayer: (#struct){
   112  -            self: (struct){
   113  +            self: (#struct){
   114               }
   115             }
   116           }
   117  @@ -34,30 +28,16 @@
   118       }
   119     }
   120     subject: (struct){
   121  -    in: (#struct){
   122  -      taxPayer?: (#struct){
   123  -        self?: (_){ _ }
   124  -      }
   125  -    }
   126  +    in: ~(#ReturnData)
   127       _computed(:p): (#struct){
   128  -      in: (#struct){
   129  -        taxPayer?: (#struct){
   130  -          self?: (_){ _ }
   131  -        }
   132  -      }
   133  +      in: ~(#ReturnData)
   134       }
   135     }
   136     #computeF1040: (#struct){
   137  -    in: (#struct){
   138  -      taxPayer?: (#struct){
   139  -        self?: (_){ _ }
   140  -      }
   141  -    }
   142  +    in: ~(#ReturnData)
   143     }
   144     #ReturnData: (#struct){
   145  -    taxPayer?: (#struct){
   146  -      self?: (_){ _ }
   147  -    }
   148  +    taxPayer?: ~(#TaxPayer)
   149     }
   150     #TaxPayer: (#struct){
   151       self?: (_){ _ }
   152  -- out/eval --
   153  (struct){
   154    _taxPayer(:p): (struct){
   155      self: (struct){
   156      }
   157    }
   158    let sam#1 = (struct){
   159      taxPayer: (struct){
   160        self: (struct){
   161        }
   162      }
   163    }
   164    assert: (struct){
   165      invoke: (struct){
   166        taxPayer: (struct){
   167          self: (struct){
   168          }
   169        }
   170      }
   171      res: (struct){
   172        in: (#struct){
   173          taxPayer: (#struct){
   174            self: (struct){
   175            }
   176          }
   177        }
   178        _computed(:p): (#struct){
   179          in: (#struct){
   180            taxPayer: (#struct){
   181              self: (struct){
   182              }
   183            }
   184          }
   185        }
   186      }
   187    }
   188    subject: (struct){
   189      in: (#struct){
   190        taxPayer?: (#struct){
   191          self?: (_){ _ }
   192        }
   193      }
   194      _computed(:p): (#struct){
   195        in: (#struct){
   196          taxPayer?: (#struct){
   197            self?: (_){ _ }
   198          }
   199        }
   200      }
   201    }
   202    #computeF1040: (#struct){
   203      in: (#struct){
   204        taxPayer?: (#struct){
   205          self?: (_){ _ }
   206        }
   207      }
   208    }
   209    #ReturnData: (#struct){
   210      taxPayer?: (#struct){
   211        self?: (_){ _ }
   212      }
   213    }
   214    #TaxPayer: (#struct){
   215      self?: (_){ _ }
   216    }
   217  }
   218  -- out/compile --
   219  --- in.cue
   220  {
   221    _taxPayer: {
   222      self: {}
   223    }
   224    let sam#1 = {
   225      taxPayer: 〈1;_taxPayer〉
   226    }
   227    assert: {
   228      invoke: 〈1;let sam#1〉
   229      invoke: _
   230      res: (〈1;subject〉 & {
   231        in: 〈1;invoke〉
   232      })
   233    }
   234    subject: {
   235      in: 〈1;#ReturnData〉
   236      _computed: (〈1;#computeF1040〉 & {
   237        in: 〈1;in〉
   238      })
   239    }
   240    #computeF1040: {
   241      in: 〈1;#ReturnData〉
   242    }
   243    #ReturnData: {
   244      taxPayer?: 〈1;#TaxPayer〉
   245    }
   246    #TaxPayer: {
   247      self?: _
   248    }
   249  }