diff --git a/src/EscapeAnalysis.jl b/src/EscapeAnalysis.jl index ab6f526..636653f 100644 --- a/src/EscapeAnalysis.jl +++ b/src/EscapeAnalysis.jl @@ -531,7 +531,8 @@ function propagate_changes!(state::EscapeState, changes::Changes) state.arguments[x.n] = new anychanged |= true end - elseif isa(x, SSAValue) + else + x = x::SSAValue old = state.ssavalues[x.id] new = old ⊔ info if old ≠ new @@ -576,7 +577,8 @@ function escape_invoke!(args::Vector{Any}, pc::Int, else (linfostate, _ #=ir::IRCode=#) = cache retinfo = state.ssavalues[pc] # escape information imposed on the call statement - nargs = Int((linfo.def::Method).nargs) + method = linfo.def::Method + nargs = Int(method.nargs) for i in 1:length(args) arg = args[i] if i ≤ nargs