File tree Expand file tree Collapse file tree 2 files changed +12
-5
lines changed Expand file tree Collapse file tree 2 files changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -615,10 +615,15 @@ end
615
615
defmodule UndefinedFunctionError do
616
616
defexception [ module: nil , function: nil , arity: nil ]
617
617
618
- def message ( exception ) do
619
- if exception . function do
620
- formatted = Exception . format_mfa exception . module , exception . function , exception . arity
621
- "undefined function: #{ formatted } "
618
+ def message ( % { function: function , module: module , arity: arity } ) do
619
+ if function do
620
+ formatted = Exception . format_mfa module , function , arity
621
+ suffix = if nil? ( module ) || :code . is_loaded ( module ) do
622
+ ""
623
+ else
624
+ " (module #{ inspect module } is not available)"
625
+ end
626
+ "undefined function: #{ formatted } " <> suffix
622
627
else
623
628
"undefined function"
624
629
end
Original file line number Diff line number Diff line change @@ -308,8 +308,10 @@ defmodule Kernel.ExceptionTest do
308
308
309
309
test "undefined function message" do
310
310
assert % UndefinedFunctionError { } |> message == "undefined function"
311
+ assert % UndefinedFunctionError { module: Kernel , function: :bar , arity: 1 } |> message ==
312
+ "undefined function: Kernel.bar/1"
311
313
assert % UndefinedFunctionError { module: Foo , function: :bar , arity: 1 } |> message ==
312
- "undefined function: Foo.bar/1"
314
+ "undefined function: Foo.bar/1 (module Foo is not available) "
313
315
assert % UndefinedFunctionError { module: nil , function: :bar , arity: 0 } |> message ==
314
316
"undefined function: nil.bar/0"
315
317
end
You can’t perform that action at this time.
0 commit comments