You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ns some_ns;use sf calculations(generate_value, generate_data, calculate, check_if_to_run);fnmain() -> i32{let x = generate_value();let y = generate_data();let z = check_if_to_run();let f = fn(d){calculate(d, x)};if(z){f(y)}else{
y
}}
ohuac (v0.2.0) yields the following error:
ohuac: FatalError {fatalErrorMessage = "Undefined Binding: DFVar Binding \"y_0\"
defined vars: fromList [(Binding \"__2\",Target {operator = FnId 7, index = 1}),
(Binding \"z_0\",Target {operator = FnId 2, index = -1}),
(Binding \"a\",Target {operator = FnId 5, index = -1}),
(Binding \"x_0\",Target {operator = FnId 1, index = -1}),
(Binding \"b\",Target {operator = FnId 10, index = -1}),
(Binding \"x_0_0\",Target {operator = FnId 8, index = 0}),
(Binding \"c\",Target {operator = FnId 6, index = -1}),
(Binding \"d_0\",Target {operator = FnId 4, index = -1}),
(Binding \"y_0_0\",Target {operator = FnId 9, index = 0}),
(Binding \"__1\",Target {operator = FnId 7, index = 0})]"}
When writing y instead of f(y), the algorithm compiles.
I guess this is a bug?
The text was updated successfully, but these errors were encountered:
Funky. Would it surprise you to hear, that the lambda is actually not the problem?
It seems y gets inlined, but only into the first if branch, not the second one.
This is the code it actually produces
let x_0 = calculations/generate_value ()
in let z_0 = calculations/check_if_to_run ()
in let b =
ohua.lang/if z_0
(λ __1 ->
let d_0 = calculations/generate_data () in let a = calculations/calculate d_0 x_0 in a)
(λ __2 -> let c = ohua.lang/id y_0 in c)
in b
This is because inlining an expression also removes its original binding site. I will have to do some investigating into how that can be changed to actually work correctly. I had a similar issue recently actually so I think this is a bit bigger than just this bug
When trying to compile the following snippet
ohuac
(v0.2.0) yields the following error:When writing
y
instead off(y)
, the algorithm compiles.I guess this is a bug?
The text was updated successfully, but these errors were encountered: