Skip to content

Commit 408ac01

Browse files
committed
Disable IMessenger and ObservableValidator when not on C# 8
1 parent 0a331c1 commit 408ac01

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

CommunityToolkit.Mvvm.SourceGenerators/ComponentModel/ObservableValidatorValidateAllPropertiesGenerator.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
2828
context.SyntaxProvider
2929
.CreateSyntaxProvider(
3030
static (node, _) => node is ClassDeclarationSyntax,
31-
static (context, _) => (context.Node, Symbol: (INamedTypeSymbol)context.SemanticModel.GetDeclaredSymbol(context.Node)!))
31+
static (context, _) =>
32+
{
33+
if (!context.SemanticModel.Compilation.HasLanguageVersionAtLeastEqualTo(LanguageVersion.CSharp8))
34+
{
35+
return default;
36+
}
37+
38+
return (context.Node, Symbol: (INamedTypeSymbol)context.SemanticModel.GetDeclaredSymbol(context.Node)!);
39+
})
3240
.Where(static item => item.Symbol is { IsAbstract: false, IsGenericType: false } && item.Node.IsFirstSyntaxDeclarationForSymbol(item.Symbol))
3341
.Select(static (item, _) => item.Symbol);
3442

CommunityToolkit.Mvvm.SourceGenerators/Messaging/IMessengerRegisterAllGenerator.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,15 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
3131
context.SyntaxProvider
3232
.CreateSyntaxProvider(
3333
static (node, _) => node is ClassDeclarationSyntax,
34-
static (context, _) => (context.Node, Symbol: (INamedTypeSymbol)context.SemanticModel.GetDeclaredSymbol(context.Node)!))
34+
static (context, _) =>
35+
{
36+
if (!context.SemanticModel.Compilation.HasLanguageVersionAtLeastEqualTo(LanguageVersion.CSharp8))
37+
{
38+
return default;
39+
}
40+
41+
return (context.Node, Symbol: (INamedTypeSymbol)context.SemanticModel.GetDeclaredSymbol(context.Node)!);
42+
})
3543
.Where(static item => item.Symbol is { IsAbstract: false, IsGenericType: false } && item.Node.IsFirstSyntaxDeclarationForSymbol(item.Symbol))
3644
.Select(static (item, _) => item.Symbol);
3745

0 commit comments

Comments
 (0)