protected MethodDeclarationSyntax FindMethod(TypeSyntax type) { type = type.GetThisAndParents() .TakeWhile(t => t is TypeSyntax) .Cast <TypeSyntax>() .LastOrDefault(); return(type.Parent.As <MethodDeclarationSyntax>() ?? type.FindUp <ParameterSyntax>()?.Parent?.Parent.As <MethodDeclarationSyntax>()); }
private static ExpressionSyntax GetExpression(TypeSyntax type) { var cast = type.FindUp <InvocationExpressionSyntax>(); return(cast.GetChildExpression()); }
private static InvocationExpressionSyntax GetSelectExpression(TypeSyntax type) { return(type.FindUp <InvocationExpressionSyntax>(skipThis: true)); }