Skip to content

Match failure when combining Unions and expression types #36

Open
@rdeits

Description

@rdeits

It appears that attempting to create an @match that uses unions and expression types results in no matches being found. A few examples:

This works:

julia> @match :(x[1]) begin
           (v_ref) => (v)
       end
:(x[1])

But adding a union gives no match:

julia> @match :(x[1]) begin
           (v_ref |
           (v_ref <= ub_)) => (v)
       end

Removing the _ref tag fixes it:

julia> @match :(x[1]) begin
           (v_ |
           (v_ <= ub_)) => (v)
       end
:(x[1])

Similarly, with a _Symbol tag, this works:

julia> @match :(x) begin
           (v_Symbol) => (v)
       end
:x

and this doesn't:

@match :(x) begin
    (v_Symbol |
    (v_Symbol <= ub_)) => (v)
end

Do unions just not support type restrictions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions