dotnet icon indicating copy to clipboard operation
dotnet copied to clipboard

Generating of `[ObservableObject]` fails if interface is declared but not implemented

Open ShortDevelopment opened this issue 1 year ago • 2 comments

Describe the bug

If a class implements an interface that itself inherits INotifyPropertyChanged or INotifyPropertyChanging but does not implement the interface methods, code-generation aborts.

Current tests only test diagnostics for an implementation of INotifyPropertyChanged / INotifyPropertyChanging: https://github.com/CommunityToolkit/dotnet/blob/7b53ae23dfc6a7fb12d0fc058b89b6e948f48448/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs#L33-L37

Regression

No response

Steps to reproduce

interface IStuff : INotifyPropertyChanged {
   // ...
}

[ObservableObject]
class B : BaseClass, IStuff {
   // No implementation of INotifyPropertyChanged 
   // source generation
}

Expected behavior

The implementation of INotifyPropertyChanged should be generated.

Screenshots

No response

IDE and version

VS 2022

IDE version

No response

Nuget packages

  • [X] CommunityToolkit.Mvvm (aka MVVM Toolkit)

Nuget package version(s)

8.2.2

Additional context

Similar to #620 but slightly different scenario

Help us help you

Yes, I'd like to be assigned to work on this item

ShortDevelopment avatar Nov 30 '23 11:11 ShortDevelopment