| # DO NOT EDIT; generated by go run testdata/gen.go |
| # |
| #name: reentrance |
| #evalFull |
| -- in.cue -- |
| // This indirection is needed to avoid binding references to fib |
| // within fib to the instantiated version. |
| fibRec: {nn: int, out: (fib & {n: nn}).out} |
| fib: { |
| n: int |
| |
| if n >= 2 { |
| out: (fibRec & {nn: n - 2}).out + (fibRec & {nn: n - 1}).out |
| } |
| if n < 2 { |
| out: n |
| } |
| } |
| fib2: (fib & {n: 2}).out |
| fib7: (fib & {n: 7}).out |
| fib12: (fib & {n: 12}).out |
| -- out/def -- |
| // This indirection is needed to avoid binding references to fib |
| // within fib to the instantiated version. |
| fibRec: { |
| nn: int |
| out: (fib & { |
| n: nn |
| }).out |
| } |
| fib: { |
| n: int |
| if n >= 2 { |
| out: (fibRec & { |
| nn: n - 2 |
| }).out + (fibRec & { |
| nn: n - 1 |
| }).out |
| } |
| if n < 2 { |
| out: n |
| } |
| } |
| fib2: 1 |
| fib7: 13 |
| fib12: 144 |
| -- out/legacy-debug -- |
| <0>{fibRec: <1>{nn: int, out: (<2>.fib & <3>{n: <4>.nn}).out}, fib: <5>{n: int if (<6>.n >= 2) yield <7>{out: ((<2>.fibRec & <8>{nn: (<6>.n - 2)}).out + (<2>.fibRec & <9>{nn: (<6>.n - 1)}).out)}, if (<6>.n < 2) yield <10>{out: <6>.n}}, fib2: 1, fib7: 13, fib12: 144} |