Also check duplicated mixins in shims and TODO files #1077
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.
Motivation
While we check scopes and methods duplicated between generated RBIs and shims, we do not check anything about mixins.
Consider this:
The shim file is actually useless and could be deleted without impacting type checking since the include is already known.
Implementation
We can reuse the indexing mechanism already in place for other properties to check for duplicates. We just need to look for
RBI::Mixin
nodes andRBI::RequiresAncestor
nodes.One limitation of the static approach is that we do not resolve constants when checking for duplicates so something like this would not be considered a duplicate:
Because we can't really ensure that
C
is the same thing as::C
at this level.Tests
See automated tests.
Using this feature I tried this in core and found one file that can be safely removed.