Skip to content

Commit

Permalink
Minor optimization to [ObservableProperty] syntax receiver
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergio0694 committed Mar 31, 2021
1 parent 32cb06e commit ef8cbb0
Showing 1 changed file with 4 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@ public void OnVisitSyntaxNode(GeneratorSyntaxContext context)
foreach (VariableDeclaratorSyntax variableDeclarator in fieldDeclaration.Declaration.Variables)
{
if (context.SemanticModel.GetDeclaredSymbol(variableDeclarator) is IFieldSymbol fieldSymbol &&
fieldSymbol.GetAttributes().FirstOrDefault(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeSymbol)) is AttributeData attributeData &&
attributeData.ApplicationSyntaxReference is SyntaxReference syntaxReference &&
syntaxReference.GetSyntax() is AttributeSyntax attributeSyntax)
fieldSymbol.GetAttributes().Any(a => SymbolEqualityComparer.Default.Equals(a.AttributeClass, attributeSymbol)))
{
this.gatheredInfo.Add(new Item(leadingTrivia, variableDeclarator, fieldSymbol, attributeSyntax, attributeData));
this.gatheredInfo.Add(new Item(leadingTrivia, fieldSymbol));
}
}
}
Expand All @@ -54,16 +52,8 @@ attributeData.ApplicationSyntaxReference is SyntaxReference syntaxReference &&
/// A model for a group of item representing a discovered type to process.
/// </summary>
/// <param name="LeadingTrivia">The leading trivia for the field declaration.</param>
/// <param name="FieldDeclarator">The <see cref="VariableDeclaratorSyntax"/> instance for the target field variable declaration.</param>
/// <param name="FieldSymbol">The <see cref="IFieldSymbol"/> instance for <paramref name="FieldDeclarator"/>.</param>
/// <param name="AttributeSyntax">The <see cref="AttributeSyntax"/> instance for the target attribute over <paramref name="FieldDeclarator"/>.</param>
/// <param name="AttributeData">The <see cref="AttributeData"/> instance for <paramref name="AttributeSyntax"/>.</param>
public sealed record Item(
SyntaxTriviaList LeadingTrivia,
VariableDeclaratorSyntax FieldDeclarator,
IFieldSymbol FieldSymbol,
AttributeSyntax AttributeSyntax,
AttributeData AttributeData);
/// <param name="FieldSymbol">The <see cref="IFieldSymbol"/> instance for the target field.</param>
public sealed record Item(SyntaxTriviaList LeadingTrivia, IFieldSymbol FieldSymbol);
}
}
}

0 comments on commit ef8cbb0

Please sign in to comment.