@@ -188,6 +188,27 @@ public partial class SampleViewModel : ObservableObject
188188 await VerifyAnalyzerDiagnosticsAndSuccessfulGeneration < UseObservablePropertyOnPartialPropertyAnalyzer > ( source , LanguageVersion . Preview ) ;
189189 }
190190
191+ #if ROSLYN_5_0_0_OR_GREATER
192+ [ TestMethod ]
193+ public async Task UseObservablePropertyOnPartialPropertyAnalyzer_LanguageVersionIsCSharp14_Warns ( )
194+ {
195+ const string source = """
196+ using CommunityToolkit.Mvvm.ComponentModel;
197+
198+ namespace MyApp
199+ {
200+ public partial class SampleViewModel : ObservableObject
201+ {
202+ [ObservableProperty]
203+ private string {|MVVMTK0042:name|};
204+ }
205+ }
206+ """ ;
207+
208+ await VerifyAnalyzerDiagnosticsAndSuccessfulGeneration < UseObservablePropertyOnPartialPropertyAnalyzer > ( source , LanguageVersion . CSharp14 ) ;
209+ }
210+ #endif
211+
191212 [ TestMethod ]
192213 public async Task UseObservablePropertyOnPartialPropertyAnalyzer_LanguageVersionIsPreview_OnPartialProperty_DoesNotWarn ( )
193214 {
@@ -503,6 +524,30 @@ await CSharpAnalyzerWithLanguageVersionTest<WinRTObservablePropertyOnFieldsIsNot
503524 editorconfig : [ ( "_MvvmToolkitIsUsingWindowsRuntimePack" , true ) , ( "CsWinRTAotOptimizerEnabled" , "auto" ) ] ) ;
504525 }
505526
527+ #if ROSLYN_5_0_0_OR_GREATER
528+ [ TestMethod ]
529+ public async Task WinRTObservablePropertyOnFieldsIsNotAotCompatibleAnalyzer_TargetingWindows_CsWinRTAotOptimizerEnabled_Auto_LanguageVersionIsCSharp14_Warns ( )
530+ {
531+ const string source = """
532+ using CommunityToolkit.Mvvm.ComponentModel;
533+
534+ namespace MyApp
535+ {
536+ public partial class SampleViewModel : ObservableObject
537+ {
538+ [ObservableProperty]
539+ private string {|MVVMTK0045:name|};
540+ }
541+ }
542+ """ ;
543+
544+ await CSharpAnalyzerWithLanguageVersionTest < WinRTObservablePropertyOnFieldsIsNotAotCompatibleAnalyzer > . VerifyAnalyzerAsync (
545+ source ,
546+ LanguageVersion . CSharp14 ,
547+ editorconfig : [ ( "_MvvmToolkitIsUsingWindowsRuntimePack" , true ) , ( "CsWinRTAotOptimizerEnabled" , "auto" ) ] ) ;
548+ }
549+ #endif
550+
506551 [ TestMethod ]
507552 public async Task WinRTObservablePropertyOnFieldsIsNotAotCompatibleAnalyzer_TargetingWindows_CsWinRTAotOptimizerEnabled_Auto_NotCSharpPreview_Warns_WithCompilationWarning ( )
508553 {
@@ -1471,6 +1516,29 @@ public partial class SampleViewModel : ObservableObject
14711516 await CSharpAnalyzerWithLanguageVersionTest < UseObservablePropertyOnSemiAutoPropertyAnalyzer > . VerifyAnalyzerAsync ( source , LanguageVersion . Preview ) ;
14721517 }
14731518
1519+ #if ROSLYN_5_0_0_OR_GREATER
1520+ [ TestMethod ]
1521+ public async Task UseObservablePropertyOnSemiAutoPropertyAnalyzer_ValidProperty_LanguageVersionIsCSharp14_Warns ( )
1522+ {
1523+ const string source = """
1524+ using CommunityToolkit.Mvvm.ComponentModel;
1525+
1526+ namespace MyApp;
1527+
1528+ public partial class SampleViewModel : ObservableObject
1529+ {
1530+ public string {|MVVMTK0056:Name|}
1531+ {
1532+ get => field;
1533+ set => SetProperty(ref field, value);
1534+ }
1535+ }
1536+ """ ;
1537+
1538+ await CSharpAnalyzerWithLanguageVersionTest < UseObservablePropertyOnSemiAutoPropertyAnalyzer > . VerifyAnalyzerAsync ( source , LanguageVersion . CSharp14 ) ;
1539+ }
1540+ #endif
1541+
14741542 [ TestMethod ]
14751543 public async Task UseObservablePropertyOnSemiAutoPropertyAnalyzer_ValidProperty_WithModifiers_Warns ( )
14761544 {
0 commit comments