public static ISourceElement LocateElement(SourceElementRequest request, AbstractNode node) { return(request.Syntax switch { InternalMethodSyntax method => LocateMethodMember(method, node), _ => throw new ArgumentException() });
public ISourceElement FindElement(Parser.Model.SourceElementRequest request) { return(request.Syntax switch { InternalTypeSyntax type => new TypeNodeLocator(_rootNode, type.Type).Locate(), InternalMethodSyntax method => new MethodMemberLocator(_rootNode, method).Locate(), InternalFieldSyntax field => new FieldMemberLocator(_rootNode, field).Locate(), InternalPropertySyntax field => new PropertyMemberLocator(_rootNode, field).Locate(), InternalEventSyntax eventField => new EventMemberLocator(_rootNode, eventField).Locate(), _ => throw new ArgumentException() });
public MethodMemberLocator(AbstractNode root, InternalMethodSyntax method) : base(root) { _syntax = method; }