public virtual bool VisitAttribute(ICSharpCode.NRefactory.Ast.Attribute attribute, object d) { if ((attribute == null)) { return SetFailure(); } if ((d == null)) { return SetFailure(); } if ((attribute.PositionalArguments == null)) { return SetFailure(); } if ((attribute.NamedArguments == null)) { return SetFailure(); } if(attribute.GetType() != d.GetType()) {return SetFailure();} var data = (ICSharpCode.NRefactory.Ast.Attribute)d; if (!IsMatch(attribute, data)) { return SetFailure(); } if (attribute.PositionalArguments.Count == data.PositionalArguments.Count) { for (int i=0; i<attribute.PositionalArguments.Count;i++) { Expression o = attribute.PositionalArguments[i]; if(o == null){return SetFailure();} if((bool)o.AcceptVisitor(this, data.PositionalArguments[i]) == false) return SetFailure(); } } else { return SetFailure(); } if (attribute.NamedArguments.Count == data.NamedArguments.Count) { for (int i=0; i<attribute.NamedArguments.Count;i++) { NamedArgumentExpression o = attribute.NamedArguments[i]; if(o == null){return SetFailure();} if((bool)o.AcceptVisitor(this, data.NamedArguments[i]) == false) return SetFailure(); } } else { return SetFailure(); } return true; }