cli/named_args: better handle name conflicts in #to_paths #16069
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.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?Closes #16015
Before we used to evaluate all named arguments as local paths first. This means that the following could be a name conflict.
If there was a local file or directory named src, it would default to that. Otherwise it would search for a formula/cask with the same name and return that.
Now it will only default to the local path if the named argument starts or ends with a slash (
/
) or includes a period (.
). This means that in the event of a name clash with a normal package name it will default to the package instead of the local file.It also fixes an edge case where the following would be interpreted as a tap name if no local directory existed with the same name.
Example:
Note:
CLI::NamedArgs#to_paths
is used in the following commands.brew audit
brew bump-unversioned-casks
brew cat
brew edit
brew log
brew style
As an aside, the following used to work before but now doesn't work for formulae after tap sharding.
It does work for casks though.