Skip to content

@infiltrate stops working when Revise encounters parse errors #45

@ExpandingMan

Description

@ExpandingMan

Consider including the following script with includet

using Infiltrator

function test()
    ϕ = "what"
    @infiltrate
    sin(ϕ)
end

At first, this works as expected. Then, I cause a parsing error by changing "what" to "what'. Revise the throws the following error as expected

┌ Error: Failed to revise /home/expandingman/src/scrap.jl
│   exception =
│    LoadError: "incomplete: invalid string syntax"
│    Stacktrace:
│     [1] parse_source!(mod_exprs_sigs::OrderedCollections.OrderedDict{Module, OrderedCollections.OrderedDict{Revise.Relocat
bleExpr, Union{Nothing, Vector{Any}}}}, src::String, filename::String, mod::Module; mode::Symbol)
│       @ Revise ~/.julia/packages/Revise/OgnOk/src/parsing.jl:45
│    in expression starting at /home/expandingman/src/scrap.jl:7
└ @ Revise ~/.julia/packages/Revise/OgnOk/src/packagedef.jl:709
┌ Warning: The running code does not match the saved version for the following files:
│
│   /home/expandingman/src/scrap.jl
│
│ If the error was due to evaluation order, it can sometimes be resolved by calling `Revise.retry()`.
│ Use Revise.errors() to report errors again. Only the first error in each file is shown.
│ Your prompt color may be yellow until the errors are resolved.
└ @ Revise ~/.julia/packages/Revise/OgnOk/src/packagedef.jl:817

After fixing the string and recovering Revise with Revise.revise(), Revise is again working as expected. Infiltrator, however, does not and no longer breaks at @infiltrate even if I move it. I can confirm that Revise is working properly with print statements or whatever else, so this looks like purely an Infiltrator issue, though I can't rule out that something funky is happening in Revise that is stopping it from expanding the macro properly.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions