Open mariari opened 2 years ago
Edit:
With the following change
@@ -216,7 +216,8 @@ of the user program is preserved."
(list (ir:var term))))
(ir:make-multiple-bind :var nil :val (ir:value term)))
((and (typep value 'ir:reference)
- (sycamore:tree-set-find set (ir:name value)))
+ (or (alu.spec.term-op:void-reference? value)
+ (sycamore:tree-set-find set (ir:name value))))
(sycamore:tree-set-insertf set (ir:var term))
nil)
in remove-void-bindings
the void
is gone, however the shift to using the typing map should happen here, as more primitives should trigger this issue
With the last commit, explciit voids can be generated from standalone
with-constraint
.This means that the code currently generates out a void with the following code
It would be good if we removed the void as it would be an improper binding.
This task should be simple, since we generate out a typing map, in the past we had
which would scan the syntax manually for applications to remove the bindings.
Thus this should be updated to use the typing map to check if a value is void and do the transformations then.