Ensure :name is given in Registry.start_link/1 #8850
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Currently when omitting a
:name
when startingRegistry
it will be namednil
.Small example:
This seems to be because this line defaults
name
tonil
:elixir/lib/elixir/lib/registry.ex
Line 319 in 3680e85
Solution
I added
Keyword.has_key?(options, :name)
to the check below the mentioned line to ensure that a name actually was given.elixir/lib/elixir/lib/registry.ex
Line 321 in 3680e85
Small example
It would also be possible to default it to a non-atom value, but that would probably make the error message even more misleading.
Notes
expected :name to be given and to be an atom, got: nil
then.But
nil
is a valid name! It just was not explicitly given.Would another
unless/2
with a more explicit error message be appropriate?As there are none for the other options this might not be necessary, or misplaced.