diff options
author | José Valim <jose.valim@dashbit.co> | 2021-12-05 20:20:37 +0100 |
---|---|---|
committer | José Valim <jose.valim@dashbit.co> | 2021-12-05 20:20:37 +0100 |
commit | 822837e18889c0212049cb381f8621e2c2ef6da1 (patch) | |
tree | 7c724aa4adffe723558dbf6ecaeb9ad19ae6f5b9 | |
parent | c329e711067d9f60ed881d9a8a554485ebec9324 (diff) | |
download | elixir-822837e18889c0212049cb381f8621e2c2ef6da1.tar.gz |
Add clarifications to Access error message
-rw-r--r-- | lib/elixir/lib/access.ex | 6 | ||||
-rw-r--r-- | lib/elixir/test/elixir/access_test.exs | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/elixir/lib/access.ex b/lib/elixir/lib/access.ex index a9e241ef8..4bc8e067d 100644 --- a/lib/elixir/lib/access.ex +++ b/lib/elixir/lib/access.ex @@ -174,7 +174,11 @@ defmodule Access do exception = case __STACKTRACE__ do [unquote(top) | _] -> - reason = "#{inspect(unquote(module))} does not implement the Access behaviour" + reason = + "#{inspect(unquote(module))} does not implement the Access behaviour. " <> + "If you are using get_in/put_in/update_in, you can specify the field " <> + "to be accessed using Access.key!/1" + %{unquote(exception) | reason: reason} _ -> diff --git a/lib/elixir/test/elixir/access_test.exs b/lib/elixir/test/elixir/access_test.exs index 31cf0f43a..04b7ade83 100644 --- a/lib/elixir/test/elixir/access_test.exs +++ b/lib/elixir/test/elixir/access_test.exs @@ -78,21 +78,21 @@ defmodule AccessTest do end message = - "function AccessTest.Sample.fetch/2 is undefined (AccessTest.Sample does not implement the Access behaviour)" + ~r"function AccessTest.Sample.fetch/2 is undefined \(AccessTest.Sample does not implement the Access behaviour" assert_raise UndefinedFunctionError, message, fn -> Access.fetch(struct(Sample, []), :name) end message = - "function AccessTest.Sample.get_and_update/3 is undefined (AccessTest.Sample does not implement the Access behaviour)" + ~r"function AccessTest.Sample.get_and_update/3 is undefined \(AccessTest.Sample does not implement the Access behaviour" assert_raise UndefinedFunctionError, message, fn -> Access.get_and_update(struct(Sample, []), :name, fn nil -> {:ok, :baz} end) end message = - "function AccessTest.Sample.pop/2 is undefined (AccessTest.Sample does not implement the Access behaviour)" + ~r"function AccessTest.Sample.pop/2 is undefined \(AccessTest.Sample does not implement the Access behaviour" assert_raise UndefinedFunctionError, message, fn -> Access.pop(struct(Sample, []), :name) |