Detect and don't report non-breaking renaming re-exports. #330
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.
Only use importable paths to match items across versions.
Declared names (e.g.
Foo
inpub struct Foo;
) are subject to change in renamingpub use
andpub type
statements (e.g.pub use Foo as Bar
), so relying on them to match items across versions means we miss renames. The importable paths provided bytrustfall_rustdoc v0.8.2+
account for this, and list all valid paths under which the item can be imported. These paths are the only way we can match items across versions.The above logic change needed to be applied to all currently-written lints, and will need to also apply to all future lints as well. Heads-up for @SmolSir @tonowak @staniewzki @mgr0dzicki.
The new logic is also somewhat more expensive, since it increases the search space and eliminates some of the pruning that filtering on the name could get us. This is unfortunate, but unavoidable at the moment — we don't want to sacrifice correctness for speed. I'll focus on perf improvements next and I'm confident we can win back all the lost performance and then some.
Fixes #288, #215, #202.
Fixes #42.