Skip to content

Commit e2061f3

Browse files
authored
Avoid using Ancestors().FirstOrDefault() (#9053)
Small refactoring I noticed to reduce a few unnecessary closure allocations
1 parent 8d6629d commit e2061f3

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/CodeActions/Razor/ComponentAccessibilityCodeActionProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public ComponentAccessibilityCodeActionProvider(TagHelperFactsService tagHelperF
4848

4949
// Find start tag. We allow this code action to work from anywhere in the start tag, which includes
5050
// embedded C#, so we just have to traverse up the tree to find a start tag if there is one.
51-
var startTag = (MarkupStartTagSyntax?)node.Ancestors().FirstOrDefault(n => n is MarkupStartTagSyntax);
51+
var startTag = (MarkupStartTagSyntax?)node.Parent?.FirstAncestorOrSelf<SyntaxNode>(n => n is MarkupStartTagSyntax);
5252
if (startTag is null)
5353
{
5454
return s_emptyResult;

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Definition/DefinitionEndpoint.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ public void ApplyCapabilities(VSInternalServerCapabilities serverCapabilities, V
160160
return (null, null);
161161
}
162162

163-
var node = owner.Ancestors().FirstOrDefault(n =>
163+
var node = owner.Parent?.FirstAncestorOrSelf<SyntaxNode>(n =>
164164
n.Kind == SyntaxKind.MarkupTagHelperStartTag ||
165165
n.Kind == SyntaxKind.MarkupTagHelperEndTag);
166166
if (node is null)

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Formatting/CSharpOnTypeFormattingPass.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ private static void CleanupSourceMappingStart(FormattingContext context, Range s
347347

348348
if (owner is CSharpStatementLiteralSyntax &&
349349
owner.TryGetPreviousSibling(out var prevNode) &&
350-
prevNode.AncestorsAndSelf().FirstOrDefault(a => a is CSharpTemplateBlockSyntax) is { } template &&
350+
prevNode.FirstAncestorOrSelf<SyntaxNode>(a => a is CSharpTemplateBlockSyntax) is { } template &&
351351
owner.SpanStart == template.Span.End &&
352352
IsOnSingleLine(template, text))
353353
{
@@ -502,7 +502,7 @@ private static void CleanupSourceMappingEnd(FormattingContext context, Range sou
502502

503503
if (owner is CSharpStatementLiteralSyntax &&
504504
owner.NextSpan() is { } nextNode &&
505-
nextNode.AncestorsAndSelf().FirstOrDefault(a => a is CSharpTemplateBlockSyntax) is { } template &&
505+
nextNode.FirstAncestorOrSelf<SyntaxNode>(a => a is CSharpTemplateBlockSyntax) is { } template &&
506506
template.SpanStart == owner.Span.End &&
507507
IsOnSingleLine(template, text))
508508
{

src/Razor/src/Microsoft.AspNetCore.Razor.LanguageServer/Refactoring/RenameEndpoint.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ private static bool BindingContainsTagHelper(TagHelperDescriptor tagHelper, TagH
351351
return null;
352352
}
353353

354-
var node = owner.Ancestors().FirstOrDefault(n => n.Kind == SyntaxKind.MarkupTagHelperStartTag);
354+
var node = owner.Parent?.FirstAncestorOrSelf<SyntaxNode>(n => n.Kind == SyntaxKind.MarkupTagHelperStartTag);
355355
if (node is not MarkupTagHelperStartTagSyntax tagHelperStartTag)
356356
{
357357
return null;

0 commit comments

Comments
 (0)