private static bool HasExecuteSynchronously(SyntaxNode node) { if (!SyntaxNodeUtils.TryGetInvocationExpression(node, out SyntaxNode invocationExpression)) { return(false); } var argumentList = invocationExpression.ChildNodes().Where(x => x.IsKind(SyntaxKind.ArgumentList)).FirstOrDefault(); if (argumentList != null) { foreach (SyntaxNode argument in argumentList.ChildNodes()) { var simpleMemberAccessExpression = argument.ChildNodes().Where(x => x.IsKind(SyntaxKind.SimpleMemberAccessExpression)).FirstOrDefault(); if (simpleMemberAccessExpression != null) { var identifierNames = simpleMemberAccessExpression.ChildNodes().Where(x => x.IsKind(SyntaxKind.IdentifierName)); foreach (SyntaxNode identifier in identifierNames) { if (identifier.ToString().Equals("ExecuteSynchronously")) { return(true); } } } } } return(false); }