JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.54k stars 5.47k forks source link

Potential lowering bug on 1.12 #55888

Open Drvi opened 1 week ago

Drvi commented 1 week ago

As spotted by @NHDaly on RelationalAI slack; I'm making this issue so it doesn't get lost.

function assign_node_ids(node, starting_id::Int)

    ii = starting_id

    function _traverse(φ::BackIRType)
        new_φ = _copy_and_assign_id(φ, ii)
        if new_φ !== φ
            ii += 1
        end
        return new_φ
    end

    _traverse(n) = n

    return (bottomup(_traverse)(node), ii)
end

Which gave

        UndefVarError: `ii` not defined in local scope
        Suggestion: check for an assignment to a local variable that shadows a global of the same name.

pointing to the first line in the closure:

        new_φ = _copy_and_assign_id(φ, ii)

CC: @gbaraldi

NHDaly commented 1 day ago

Thanks Tomas. @gbaraldi you have access to our codebase and this should be easy to reproduce if you want to! We can even walk you through it again on zoom if you want