dotnet/roslyn
diagnostic for override in Interface should suggest using explicit interface implementation instead
Ouverte
#39 940 ouverte le 21 nov. 2019
Area-CompilersConcept-Diagnostic ClarityFeature - Default Interface ImplFeature Requesthelp wanted
Métriques du dépôt
- Stars
- (20 414 étoiles)
- Métriques de merge PR
- (Merge moyen 6j 17h) (256 PRs mergées en 30 j)
Description
Version Used: VS 16.4 preview 4
Steps to Reproduce:
The following code fails to compile:
public interface I {
abstract void M();
}
public interface I1 : I {
override void M() {}
}
public class C : I1 {}
The correct code should be:
public interface I {
abstract void M();
}
public interface I1 : I {
void I.M() {}
}
public class C : I1 {}
However it's not immediately obvious that's the case, and there's nothing pointing you to use explicit interface implementation instead.
Expected Behavior:
DIagnostic should be:
error CS0106: The modifier 'override' is not valid for this item. Use explicit interface implementation
void I.Minstead.
Ideally there should also be a code fix for this.
Actual Behavior:
error CS0106: The modifier 'override' is not valid for this item