Skip to content

Commit 0b58387

Browse files
committed
Adjust docs, add type annotations
1 parent 36961bf commit 0b58387

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/signatures.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ function signature(sigsv::SimpleVector)
2424
end
2525

2626
"""
27-
sigt, lastpc = signature([interp::Interpreter=RecursiveInterpreter()], frame::Frame, pc::Int)
27+
(mt, sigt), lastpc = signature([interp::Interpreter=RecursiveInterpreter()], frame::Frame, pc::Int)
2828
29-
Compute the signature-type `sigt` of a method whose definition in `frame` starts at `pc`.
29+
Compute the method table `mt` and signature-type `sigt` of a method whose definition in `frame` starts at `pc`.
3030
Generally, `pc` should point to the `Expr(:method, methname)` statement, in which case
3131
`lastpc` is the final statement number in `frame` that is part of the signature
3232
(i.e, the line above the 3-argument `:method` expression).
3333
Alternatively, `pc` can point to the 3-argument `:method` expression,
3434
as long as all the relevant SSAValues have been assigned.
3535
In this case, `lastpc == pc`.
3636
37-
If no 3-argument `:method` expression is found, `sigt` will be `nothing`.
37+
If no 3-argument `:method` expression is found, `nothing` will be returned in place of `(mt, sigt)`.
3838
"""
3939
function signature(interp::Interpreter, frame::Frame, @nospecialize(stmt), pc::Int)
4040
mod = moduleof(frame)
@@ -620,9 +620,9 @@ function methoddef!(interp::Interpreter, signatures::Vector{MethodInfoKey}, fram
620620
stmt = pc_expr(frame, pc) # there *should* be more statements in this frame
621621
end
622622
end
623-
methoddef!(interp::Interpreter, signatures, frame::Frame, pc::Int; define::Bool=true) =
623+
methoddef!(interp::Interpreter, signatures::Vector{MethodInfoKey}, frame::Frame, pc::Int; define::Bool=true) =
624624
methoddef!(interp, signatures, frame, pc_expr(frame, pc), pc; define)
625-
function methoddef!(interp::Interpreter, signatures, frame::Frame; define::Bool=true)
625+
function methoddef!(interp::Interpreter, signatures::Vector{MethodInfoKey}, frame::Frame; define::Bool=true)
626626
pc = frame.pc
627627
stmt = pc_expr(frame, pc)
628628
if !ismethod(stmt)
@@ -631,27 +631,27 @@ function methoddef!(interp::Interpreter, signatures, frame::Frame; define::Bool=
631631
pc === nothing && error("pc at end of frame without finding a method")
632632
methoddef!(interp, signatures, frame, pc; define)
633633
end
634-
methoddef!(signatures, frame::Frame, pc::Int; define::Bool=true) =
634+
methoddef!(signatures::Vector{MethodInfoKey}, frame::Frame, pc::Int; define::Bool=true) =
635635
methoddef!(RecursiveInterpreter(), signatures, frame, pc_expr(frame, pc), pc; define)
636-
methoddef!(signatures, frame::Frame; define::Bool=true) =
636+
methoddef!(signatures::Vector{MethodInfoKey}, frame::Frame; define::Bool=true) =
637637
methoddef!(RecursiveInterpreter(), signatures, frame; define)
638638

639-
function methoddefs!(interp::Interpreter, signatures, frame::Frame, pc::Int; define::Bool=true)
639+
function methoddefs!(interp::Interpreter, signatures::Vector{MethodInfoKey}, frame::Frame, pc::Int; define::Bool=true)
640640
ret = methoddef!(interp, signatures, frame, pc; define)
641641
pc = ret === nothing ? ret : ret[1]
642642
return _methoddefs!(interp, signatures, frame, pc; define)
643643
end
644-
function methoddefs!(interp::Interpreter, signatures, frame::Frame; define::Bool=true)
644+
function methoddefs!(interp::Interpreter, signatures::Vector{MethodInfoKey}, frame::Frame; define::Bool=true)
645645
ret = methoddef!(interp, signatures, frame; define)
646646
pc = ret === nothing ? ret : ret[1]
647647
return _methoddefs!(interp, signatures, frame, pc; define)
648648
end
649-
methoddefs!(signatures, frame::Frame, pc::Int; define::Bool=true) =
649+
methoddefs!(signatures::Vector{MethodInfoKey}, frame::Frame, pc::Int; define::Bool=true) =
650650
methoddefs!(RecursiveInterpreter(), signatures, frame, pc; define)
651-
methoddefs!(signatures, frame::Frame; define::Bool=true) =
651+
methoddefs!(signatures::Vector{MethodInfoKey}, frame::Frame; define::Bool=true) =
652652
methoddefs!(RecursiveInterpreter(), signatures, frame; define)
653653

654-
function _methoddefs!(interp::Interpreter, signatures, frame::Frame, pc::Int; define::Bool=define)
654+
function _methoddefs!(interp::Interpreter, signatures::Vector{MethodInfoKey}, frame::Frame, pc::Int; define::Bool=define)
655655
while pc !== nothing
656656
stmt = pc_expr(frame, pc)
657657
if !ismethod(stmt)

0 commit comments

Comments
 (0)