Skip to content

Commit 5525694

Browse files
committed
Don't use type-printing from inside a generated function
Base's type printing code uses the REPL's currently active module to determine how to print types. Unfortunately, this means it is illegal to use this in generated functions. Switch to grabbing the symbol directly from the typename, since this now errors on julia master: ``` Got exception outside of a @test LoadError: MethodError: no method matching active_module() You may have intended to import Base.active_module The applicable method may be too new: running in world age 26446, while current world is 26576. Closest candidates are: active_module(::REPL.LineEditREPL) (method too new to be called from this world context.) @ REPL ~/julia/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:590 active_module() (method too new to be called from this world context.) @ REPL ~/julia/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:586 active_module(::REPL.REPLDisplay) (method too new to be called from this world context.) @ REPL ~/julia/usr/share/julia/stdlib/v1.11/REPL/src/REPL.jl:592 ... Stacktrace: [1] #invokelatest#2 @ ./essentials.jl:1025 [inlined] [2] invokelatest @ ./essentials.jl:1022 [inlined] [3] active_module @ ./show.jl:512 [inlined] [4] show_type_name(io::IOBuffer, tn::Core.TypeName) @ Base ./show.jl:1051 [5] _show_type(io::IOBuffer, x::Type) @ Base ./show.jl:966 [6] show(io::IOBuffer, x::Type) @ Base ./show.jl:963 [7] print(io::IOBuffer, x::Type) @ Base ./strings/io.jl:35 [8] print_to_string(xs::Type) @ Base ./strings/io.jl:148 [9] string @ ./strings/io.jl:189 [inlined] [10] defaultalg_symbol(::Type{LinearSolve.LUFactorization{LinearAlgebra.RowMaximum}}) @ LinearSolve ~/.julia/packages/LinearSolve/4aydZ/src/default.jl:323 ```
1 parent 49183f7 commit 5525694

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/default.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ cache.cacheval = NamedTuple(LUFactorization = cache of LUFactorization, ...)
320320
end
321321

322322
function defaultalg_symbol(::Type{T}) where {T}
323-
Symbol(split(string(SciMLBase.parameterless_type(T)), ".")[end])
323+
Base.typename(SciMLBase.parameterless_type(T)).name
324324
end
325325
defaultalg_symbol(::Type{<:GenericFactorization{typeof(ldlt!)}}) = :LDLtFactorization
326326

0 commit comments

Comments
 (0)