public virtual bool VisitUsingDeclaration(UsingDeclaration usingDeclaration, object d)
 {
     if ((usingDeclaration == null)) {
         return SetFailure();
     }
     if ((d == null)) {
         return SetFailure();
     }
     if ((usingDeclaration.Usings == null)) {
         return SetFailure();
     }
     if(usingDeclaration.GetType() != d.GetType()) {return SetFailure();}
     var data = (UsingDeclaration)d;
     if (!IsMatch(usingDeclaration, data)) {
         return SetFailure();
     }
     if (usingDeclaration.Usings.Count == data.Usings.Count) {
     for (int i=0; i<usingDeclaration.Usings.Count;i++) {
         Using o = usingDeclaration.Usings[i];
         if(o == null){return SetFailure();}
         if((bool)o.AcceptVisitor(this, data.Usings[i]) == false) return SetFailure();
     }			}			else { return SetFailure(); }
     return true;
 }