Open HectorPeeters opened 3 months ago
When creating a rule with a fully qualified function call in the ale/3.0 branch, Metatheory fails to compile the pattern.
ale/3.0
A rule defined like so:
@rule Main.identity(~a) --> ~a
Results in the following error:
ERROR: LoadError: MethodError: no method matching match_term_op(::PatExpr, ::Symbol, ::PatExpr) The function `match_term_op` exists, but no method is defined for this combination of argument types. Closest candidates are: match_term_op(::AbstractPat, ::Any, ::PatVar) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:208 match_term_op(::Any, ::Any, ::Union{Expr, Symbol}) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:205 match_term_op(::Any, ::Any, ::Union{DataType, Function}) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:200 Stacktrace: [1] match_term_expr(pattern::PatExpr, coordinate::Vector{Int64}, segments_so_far::Vector{Symbol}) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:217 [2] match_compile!(pattern::PatExpr, state::Metatheory.MatchCompilerState, coordinate::Vector{Int64}, parent_segments::Vector{Symbol}) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:137 [3] match_compile(p::PatExpr, pvars::Vector{Symbol}) @ Metatheory ~/.julia/packages/Metatheory/Wu6kK/src/match_compiler.jl:34
Added support for it in #185 - the function must be defined though
When creating a rule with a fully qualified function call in the
ale/3.0
branch, Metatheory fails to compile the pattern.A rule defined like so:
Results in the following error: