Skip to content

Commit ef8cbb0

Browse files
committed
Minor optimization to [ObservableProperty] syntax receiver
1 parent 32cb06e commit ef8cbb0

File tree

1 file changed

+4
-14
lines changed

1 file changed

+4
-14
lines changed

Microsoft.Toolkit.Mvvm.SourceGenerators/ComponentModel/ObservablePropertyGenerator.SyntaxReceiver.cs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,9 @@ public void OnVisitSyntaxNode(GeneratorSyntaxContext context)
4040
foreach (VariableDeclaratorSyntax variableDeclarator in fieldDeclaration.Declaration.Variables)
4141
{
4242
if (context.SemanticModel.GetDeclaredSymbol(variableDeclarator) is IFieldSymbol fieldSymbol &&
43-
fieldSymbol.GetAttributes().FirstOrDefault(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeSymbol)) is AttributeData attributeData &&
44-
attributeData.ApplicationSyntaxReference is SyntaxReference syntaxReference &&
45-
syntaxReference.GetSyntax() is AttributeSyntax attributeSyntax)
43+
fieldSymbol.GetAttributes().Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeSymbol)))
4644
{
47-
this.gatheredInfo.Add(new Item(leadingTrivia, variableDeclarator, fieldSymbol, attributeSyntax, attributeData));
45+
this.gatheredInfo.Add(new Item(leadingTrivia, fieldSymbol));
4846
}
4947
}
5048
}
@@ -54,16 +52,8 @@ attributeData.ApplicationSyntaxReference is SyntaxReference syntaxReference &&
5452
/// A model for a group of item representing a discovered type to process.
5553
/// </summary>
5654
/// <param name="LeadingTrivia">The leading trivia for the field declaration.</param>
57-
/// <param name="FieldDeclarator">The <see cref="VariableDeclaratorSyntax"/> instance for the target field variable declaration.</param>
58-
/// <param name="FieldSymbol">The <see cref="IFieldSymbol"/> instance for <paramref name="FieldDeclarator"/>.</param>
59-
/// <param name="AttributeSyntax">The <see cref="AttributeSyntax"/> instance for the target attribute over <paramref name="FieldDeclarator"/>.</param>
60-
/// <param name="AttributeData">The <see cref="AttributeData"/> instance for <paramref name="AttributeSyntax"/>.</param>
61-
public sealed record Item(
62-
SyntaxTriviaList LeadingTrivia,
63-
VariableDeclaratorSyntax FieldDeclarator,
64-
IFieldSymbol FieldSymbol,
65-
AttributeSyntax AttributeSyntax,
66-
AttributeData AttributeData);
55+
/// <param name="FieldSymbol">The <see cref="IFieldSymbol"/> instance for the target field.</param>
56+
public sealed record Item(SyntaxTriviaList LeadingTrivia, IFieldSymbol FieldSymbol);
6757
}
6858
}
6959
}

0 commit comments

Comments
 (0)