Skip to content

Commit

Permalink
Perf optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
raffaeler committed Oct 27, 2021
1 parent e5b8386 commit 128ad98
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions src/SpeedyGenerators/PropertyChangedGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ public void OnVisitSyntaxNode(SyntaxNode syntaxNode)
{
if (syntaxNode is FieldDeclarationSyntax fieldDeclaration)
{
if (fieldDeclaration == null) return;

var attribute = fieldDeclaration.AttributeLists
.SelectMany(a => a.Attributes)
.Select(a => (attribute: a, attribName: a.Name.ToString()))
.Where(a => a.attribName == "MakeProperty" ||
a.attribName == "MakePropertyAttribute")
.FirstOrDefault();

if (attribute.attribute == null) return;

var fieldInfo = new FieldInfo();
fieldInfo.SyntaxTree = syntaxNode.SyntaxTree;

Expand All @@ -141,27 +152,15 @@ public void OnVisitSyntaxNode(SyntaxNode syntaxNode)

fieldInfos.Add(fieldInfo);

fieldInfo.FieldName = fieldDeclaration?.Declaration
fieldInfo.FieldName = fieldDeclaration.Declaration
?.Variables.FirstOrDefault()
?.Identifier.ToString();
if (fieldInfo.FieldName == null) return;

fieldInfo.FieldType = fieldDeclaration?.Declaration?.Type;

if (fieldDeclaration == null) return;

var attribute = fieldDeclaration.AttributeLists
.SelectMany(a => a.Attributes)
.Where(a => a.Name.ToString() == "MakeProperty")
.FirstOrDefault();

if(attribute != null)
{
fieldInfo.AttributeArguments = Extractor.ExtractAttributeArguments(attribute);
fieldInfo.Comments = Extractor.ExtractComments(fieldDeclaration);
}
fieldInfo.FieldType = fieldDeclaration.Declaration?.Type;


fieldInfo.AttributeArguments = Extractor.ExtractAttributeArguments(attribute.attribute);
fieldInfo.Comments = Extractor.ExtractComments(fieldDeclaration);
}
}
}
Expand Down

0 comments on commit 128ad98

Please sign in to comment.