fix self_named_module_files
: track module with relative path
#15469
+65
−25
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.
Previous approach roughly works as follows:
For each file, it marks every directory segment of its relative path to crate's working directory as a potential module. If segment
foo
exists,foo.rs
exists andfoo/mod.rs
does not exist, the lint will trigger. The main issue with that is it ignores all the prefixes. #14697 also explained a bit how it works.This PR fixes that by tracking each module with its entire relative path to crate's working directory.
If
path/to/foo
exists,path/to/foo.rs
exists andpath/to/foo/mod.rs
does not exist, the lint will trigger.Fixes #14697
Fixes #10271
Fixes #11916
changelog: none