예제 #1
0
        protected internal override bool DoMatch(AstNode other, ICSharpCode.NRefactory.PatternMatching.Match match)
        {
            DocumentationReference o = other as DocumentationReference;

            if (!(o != null && this.EntityType == o.EntityType && this.HasParameterList == o.HasParameterList))
            {
                return(false);
            }
            if (this.EntityType == EntityType.Operator)
            {
                if (this.OperatorType != o.OperatorType)
                {
                    return(false);
                }
                if (this.OperatorType == OperatorType.Implicit || this.OperatorType == OperatorType.Explicit)
                {
                    if (!this.ConversionOperatorReturnType.DoMatch(o.ConversionOperatorReturnType, match))
                    {
                        return(false);
                    }
                }
            }
            else if (this.EntityType == EntityType.None)
            {
                if (!MatchString(this.MemberName, o.MemberName))
                {
                    return(false);
                }
                if (!this.TypeArguments.DoMatch(o.TypeArguments, match))
                {
                    return(false);
                }
            }
            return(this.Parameters.DoMatch(o.Parameters, match));
        }
예제 #2
0
        S IAstVisitor <T, S> .VisitDocumentationReference(DocumentationReference documentationReference, T data)
        {
            var handler = DocumentationReferenceVisited;

            if (handler != null)
            {
                handler(documentationReference, data);
            }
            return(VisitChildren(documentationReference, data));
        }
예제 #3
0
 void IAstVisitor.VisitDocumentationReference(DocumentationReference documentationReference)
 {
     Visit(EnterDocumentationReference, LeaveDocumentationReference, documentationReference);
 }