Skip to content

Lowering of invalid . Expr loops forever #57733

Open
@xal-0

Description

@xal-0

A . Expr with the wrong number of arguments causes lowering to get stuck, looping forever in flisp:

Meta.lower(Main, Expr(:., :a, :b, :c))

This doesn't usually come up in practice, but was revealed while fuzzing new REPL code. It can be produced if one converts the output of JuliaSyntax in ignore_errors mode:

julia> Expr(parsestmt(SyntaxNode, "a .b", ignore_errors=true))
:($(Expr(:., :a, :($(Expr(:error))), :(:b))))

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIndicates an unexpected problem or unintended behaviorcompiler:loweringSyntax lowering (compiler front end, 2nd stage)error messagesBetter, more actionable error messages

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions