public virtual bool VisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object d)
 {
     if ((localVariableDeclaration == null)) {
         return SetFailure();
     }
     if ((d == null)) {
         return SetFailure();
     }
     if ((localVariableDeclaration.TypeReference == null)) {
         return SetFailure();
     }
     if ((localVariableDeclaration.Variables == null)) {
         return SetFailure();
     }
     if(localVariableDeclaration.GetType() != d.GetType()) {return SetFailure();}
     var data = (LocalVariableDeclaration)d;
     if (!IsMatch(localVariableDeclaration, data)) {
         return SetFailure();
     }
     localVariableDeclaration.TypeReference.AcceptVisitor(this, data.TypeReference);
     if (localVariableDeclaration.Variables.Count == data.Variables.Count) {
     for (int i=0; i<localVariableDeclaration.Variables.Count;i++) {
         VariableDeclaration o = localVariableDeclaration.Variables[i];
         if(o == null){return SetFailure();}
         if((bool)o.AcceptVisitor(this, data.Variables[i]) == false) return SetFailure();
     }			}			else { return SetFailure(); }
     return true;
 }