|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#nullable disable warnings
using System.Threading;
using Microsoft.CodeAnalysis;
namespace Analyzer.Utilities.Extensions
{
internal static class SemanticModelExtensions
{
public static IOperation? GetOperationWalkingUpParentChain(this SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken)
{
// Walk up the parent chain to fetch the first non-null operation.
do
{
var operation = semanticModel.GetOperation(node, cancellationToken);
if (operation != null)
{
return operation;
}
node = node.Parent;
}
while (node != null);
return null;
}
}
}
|