canton7 / PropertyChanged.SourceGenerator

Powerful INotifyPropertyChanged / INotifyPropertyChanging Source Generator, which generates INPC boilerplate for you as part of your build. Supports features such as automatic and manual dependencies between properties, notifications when specific properties change, and more.
MIT License
131 stars 14 forks source link

Overridden methods causes warnings due to missing documentation #41

Open VMelnalksnis opened 1 year ago

VMelnalksnis commented 1 year ago

Description When OnPropertyChanged is overridden in a derived class it does not have XML comments, and so it causes a CS1591 warning.

To Reproduce Set <GenerateDocumentationFile>true</GenerateDocumentationFile> in csproj, example with derived class from README - https://github.com/canton7/PropertyChanged.SourceGenerator#automatic-dependencies.

Version Info

Additional Info In this case just adding /// <inheritdoc /> would be enough, and users of the library would be able to add the documentation if needed. I'm not sure if there are any other places where public/protected members could be generated. Another possibility might be to just add #pragma warning disable CS1591 in all generated files.

VMelnalksnis commented 1 year ago

I checked the source code, and I guess what's missing is an else clause for this if statement https://github.com/canton7/PropertyChanged.SourceGenerator/blob/94690bbaa71d8e7c6c1bc9e7e3b3f63b4b15dbc6/src/PropertyChanged.SourceGenerator/Generator.cs#L130C11-L130C11. Something like

if (interfaceAnalysis.RaiseMethodType != RaisePropertyChangedMethodType.Override)
{
    // existing logic
}
else
{
    this.writer.WriteLine($"/// <inheritdoc />");
}