@@ -24,17 +24,17 @@ function signature(sigsv::SimpleVector)
2424end
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`.
3030Generally, `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).
3333Alternatively, `pc` can point to the 3-argument `:method` expression,
3434as long as all the relevant SSAValues have been assigned.
3535In 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"""
3939function 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
622622end
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)
633633end
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)
643643end
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)
648648end
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