in src/Microsoft.VisualStudio.SDK.Analyzers/VSSDK007ThreadHelperJTFRunAsync.cs [161:174]
private static bool IsSynchronouslyJoined(SyntaxNodeAnalysisContext context, InvocationExpressionSyntax invocationExpr)
{
if (invocationExpr.Parent == null ||
invocationExpr.Parent is not MemberAccessExpressionSyntax ||
context.SemanticModel.GetSymbolInfo(invocationExpr.Parent, context.CancellationToken).Symbol is not IMethodSymbol methodSymbol ||
methodSymbol.Name != Types.JoinableTask.Join)
{
return false;
}
return
methodSymbol.ContainingType.Name == Types.JoinableTask.TypeName &&
methodSymbol.ContainingType.BelongsToNamespace(Types.JoinableTaskFactory.Namespace);
}