Evaluating functional IR throws `unsupported or misplaced expression lambda`
- Dominant language
- Julia
- Stars
- 113
- Forks
- 37
- PR merge metrics
- No merged PRs in 30d
Description
Functional IRs sometimes throw `unsupported or misplaced expression lambda` or `ERROR: MethodError: objects of type IRTools.Inner.Self are not callable` when evaluated (similar to https://github.com/FluxML/IRTools.jl/issues/54)
_Environment: IRTools v0.4.7, Julia Version 1.81, macOS Monterey, Apple M1 Pro_
```jl
using IRTools: IR, @dynamo, functional, evalir, @code_ir
@dynamo function functional_dyna(a...)
ir = IR(a...)
ir === nothing && return
functional(ir)
end
foo() = false
bar() = if true false else false end
# Works: foo run normally
functional_dyna(foo) # false
# Works: foo run in two steps
ir = @code_ir functional_dyna foo()
evalir(ir, foo) # false
# Works: bar run normally
functional_dyna(bar) # false
# Errors: bar run in two steps
ir = @code_ir functional_dyna bar()
evalir(ir, bar) # ERROR: unsupported or misplaced expression lambda
```
The error trace was:
```ERROR: unsupported or misplaced expression lambda
Stacktrace:
[1] var"##344"(arg1::typeof(bar))
@ IRTools.Inner ~/.julia/packages/IRTools/FeBr2/src/eval.jl:18
[2] #invokelatest#2
@ ./essentials.jl:729 [inlined]
[3] invokelatest
@ ./essentials.jl:726 [inlined]
[4] evalir
@ ~/.julia/packages/IRTools/FeBr2/src/eval.jl:25 [inlined]
[5] evalir(ir::IRTools.Inner.IR, args::Any)
@ IRTools.Inner ~/.julia/packages/IRTools/FeBr2/src/eval.jl:26
[6] top-level scope
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.