Skip to content

Commit 4610b4b

Browse files
committed
Add tests
1 parent 013fe08 commit 4610b4b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

test/signatures.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,4 +505,26 @@ end
505505

506506
end
507507

508+
@testset "Support for external method tables" begin
509+
ExternalMT = Module()
510+
Core.eval(ExternalMT, :(Base.Experimental.@MethodTable method_table))
511+
signatures = []
512+
513+
ex = :(Base.sin(::Float64) = "sin")
514+
Core.eval(ExternalMT, ex)
515+
frame = Frame(ExternalMT, ex)
516+
pc = methoddefs!(signatures, frame; define = false)
517+
@test length(signatures) == 1
518+
(mt, sig) = pop!(signatures)
519+
@test (mt, sig) === (nothing, Tuple{typeof(sin), Float64})
520+
521+
ex = :(Base.Experimental.@overlay method_table sin(::Float64) = "sin")
522+
Core.eval(ExternalMT, ex)
523+
frame = Frame(ExternalMT, ex)
524+
pc = methoddefs!(signatures, frame; define = false)
525+
@test length(signatures) == 1
526+
(mt, sig) = pop!(signatures)
527+
@test (mt, sig) === (ExternalMT.method_table, Tuple{typeof(sin), Float64})
528+
end
529+
508530
end # module signatures

0 commit comments

Comments
 (0)