Skip to content

Commit 9b2c6b2

Browse files
authored
fix showing methods with unicode gensymed variable names (#36396)
1 parent b594172 commit 9b2c6b2

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

base/methodshow.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function argtype_decl(env, n, sig::DataType, i::Int, nargs, isva::Bool) # -> (ar
1313
s = string(n)
1414
i = findfirst(isequal('#'), s)
1515
if i !== nothing
16-
s = s[1:i-1]
16+
s = s[1:prevind(s, i)]
1717
end
1818
if t === Any && !isempty(s)
1919
return s, ""

test/show.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1985,3 +1985,12 @@ end
19851985
@test sprint(show, skipmissing([1,2,missing])) == "skipmissing(Union{Missing, $Int}[1, 2, missing])"
19861986
@test sprint(show, skipmissing((missing,1.0,'a'))) == "skipmissing((missing, 1.0, 'a'))"
19871987
end
1988+
1989+
@testset "unicode in method table" begin
1990+
αsym = gensym()
1991+
ℓsym = gensym(:ℓ)
1992+
eval(:(foo($αsym) = $αsym))
1993+
eval(:(bar($ℓsym) = $ℓsym))
1994+
@test contains(string(methods(foo)), "foo(α)")
1995+
@test contains(string(methods(bar)), "bar(ℓ)")
1996+
end

0 commit comments

Comments
 (0)