@@ -45,7 +45,10 @@ function eval_message(display_properties, messageid, messagebody)
4545 expr = preprocess_expression! (messagebody, io)
4646 result = Main. eval (expr)
4747 if messageid === :eval && ! isnothing (result)
48- show (io, MIME " text/plain" (), result)
48+ # We require invokelatest here in case the user
49+ # modifies any method tables after starting the session,
50+ # which change methods of `show`
51+ Base. invokelatest (show, io, MIME " text/plain" (), result)
4952 end
5053 end
5154 end
@@ -55,7 +58,7 @@ function eval_message(display_properties, messageid, messagebody)
5558 elseif messageid === :help
5659 resultstr = sprint_ctx (display_properties[]) do io
5760 md = Main. eval (REPL. helpmode (io, messagebody))
58- show ( io, MIME " text/plain" (), md)
61+ Base . invokelatest (show, io, MIME " text/plain" (), md)
5962 end
6063 return (:help_result , resultstr)
6164 elseif messageid === :display_properties
@@ -73,7 +76,7 @@ function eval_message(display_properties, messageid, messagebody)
7376 end
7477 catch _
7578 resultstr = sprint_ctx (display_properties[]) do io
76- Base. display_error ( io, Base. catch_stack ())
79+ Base. invokelatest (Base . display_error, io, Base. catch_stack ())
7780 end
7881 return (:error , resultstr)
7982 end
0 commit comments