Prevent duplicates when overriding or shadowing methods #51
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.
This addresses issue #50.
This is my second attempt at this - the first attempt (#49) involved excluding
IsOverride
methods, but this does not work with method shadowing, which becomes complex, since anew
method can have different accessibility to the method it shadows, and there's no direct link in the syntax tree between a shadowing method and the method it shadows.The approach I've used here is the same as the existing approach for deduplicating property definitions:
net_automatic_interface/AutomaticInterface/AutomaticInterface/Builder.cs
Lines 226 to 239 in 218ba17
The only difference is that it uses
ISymbol.ToDisplayString
to generate the deduplication key.The parameters I've used for the display string generation will create display strings like this, with just the method name and the parameter types and directions:
Hello(ref String, Int32, Double)