Skip to content

Commit 2ba66f6

Browse files
authored
Fix definition for return-type annotations (#85)
Fixes #81
1 parent 86afc96 commit 2ba66f6

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

src/utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# (or change the test)
33
function checkname(fdef::Expr, name)
44
fproto = fdef.args[1]
5-
fdef.head === :where && return checkname(fproto, name)
5+
(fdef.head === :where || fdef.head == :(::)) && return checkname(fproto, name)
66
fdef.head === :call || return false
77
if fproto isa Expr
88
# A metaprogramming-generated function

test/runtests.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ isdefined(Main, :Revise) ? Main.Revise.includet("script.jl") : include("script.j
5959
@test occursin("100x", src)
6060
@test line == 22
6161

62+
# Issue #81
63+
m = which(hasrettype, (Int,))
64+
src, line = definition(String, m)
65+
@test occursin("Float32", src)
66+
@test line == 43
67+
6268
info = CodeTracking.PkgFiles(Base.PkgId(CodeTracking))
6369
@test Base.PkgId(info) === info.id
6470
@test CodeTracking.basedir(info) == dirname(@__DIR__)

test/script.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@ function Foo.Bar.fit(m)
3838
end
3939

4040
Foo.Bar.fit(a, b) = a + b
41+
42+
# Issue #81
43+
function hasrettype(x::Real)::Float32
44+
return x*x + x
45+
end

0 commit comments

Comments
 (0)