@@ -103,11 +103,23 @@ end
103103@test @interpret (10.0 ^ 4 ) == 10.0 ^ 4
104104# issue #6
105105@test @interpret (Array. body. body. name) === Array. body. body. name
106- @test @interpret (Vararg. body. body. name) === Vararg. body. body. name
106+ if Vararg isa UnionAll
107+ @test @interpret (Vararg. body. body. name) === Vararg. body. body. name
108+ else
109+ @test @interpret (Vararg{Int}. T) === Vararg{Int}. T
110+ @test @interpret (Vararg{Any,3 }. N) === Vararg{Any,3 }. N
111+ end
107112@test ! JuliaInterpreter. is_vararg_type (Union{})
108- frame = Frame (Main, :(Vararg. body. body. name))
109- @test JuliaInterpreter. finish_and_return! (frame, true ) === Vararg. body. body. name
110- frame = Frame (Base, :(Union{AbstractChar,Tuple{Vararg{<: AbstractChar }},AbstractVector{<: AbstractChar },Set{<: AbstractChar }}))
113+ if Vararg isa UnionAll
114+ frame = Frame (Main, :(Vararg. body. body. name))
115+ @test JuliaInterpreter. finish_and_return! (frame, true ) === Vararg. body. body. name
116+ else
117+ frame = Frame (Main, :(Vararg{Int}. T))
118+ @test JuliaInterpreter. finish_and_return! (frame, true ) === Vararg{Int}. T
119+ frame = Frame (Main, :(Vararg{Any,3 }. N))
120+ @test JuliaInterpreter. finish_and_return! (frame, true ) === Vararg{Any,3 }. N
121+ end
122+ frame = Frame (Base, :(Union{AbstractChar,Tuple{Vararg{AbstractChar}},AbstractVector{<: AbstractChar },Set{<: AbstractChar }}))
111123@test JuliaInterpreter. finish_and_return! (frame, true ) isa Union
112124
113125# issue #8
@@ -485,7 +497,7 @@ g_3(x) = error("foo")
485497line_g = @__LINE__
486498try
487499 break_on (:error )
488- frame, bp = @interpret g_1 (2.0 )
500+ local frame, bp = @interpret g_1 (2.0 )
489501 stacktrace_lines = split (sprint (Base. display_error, bp. err, leaf (frame)), ' \n ' )
490502 @test occursin (string (" ERROR: " , sprint (showerror, ErrorException (" foo" ))), stacktrace_lines[1 ])
491503 if isdefined (Base, :print_stackframe )
513525 g_1 (2.0 )
514526 end ))
515527 line2_g = @__LINE__
516- frame = Frame (exs[1 ]. .. )
528+ local frame = Frame (exs[1 ]. .. )
517529 frame, bp = JuliaInterpreter. debug_command (frame, :c , true )
518530 stacktrace_lines = split (sprint (Base. display_error, bp. err, leaf (frame)), ' \n ' )
519531 @test occursin (string (" ERROR: " , sprint (showerror, ErrorException (" foo" ))), stacktrace_lines[1 ])
0 commit comments