public ISignaturePattern resolveBindings(IScope scope, Bindings bindings) {
   // Whilst the real SignaturePattern returns 'this' we are safe to return 'this' here rather than
   // build a new
   // AndSignaturePattern
   negatedSp.resolveBindings(scope, bindings);
   return this;
 }
 public String toString() {
   StringBuilder sb = new StringBuilder();
   sb.append("!").append(negatedSp.toString());
   return sb.toString();
 }
 public ISignaturePattern parameterizeWith(
     Map<String, UnresolvedType> typeVariableBindingMap, World world) {
   return new NotSignaturePattern(negatedSp.parameterizeWith(typeVariableBindingMap, world));
 }
 public boolean matches(Member member, World world, boolean b) {
   return !negatedSp.matches(member, world, b);
 }
 public boolean isStarAnnotation() {
   return negatedSp.isStarAnnotation();
 }
 public boolean isMatchOnAnyName() {
   return negatedSp.isMatchOnAnyName();
 }
 public List<ExactTypePattern> getExactDeclaringTypes() {
   return negatedSp.getExactDeclaringTypes();
 }
 public boolean couldEverMatch(ResolvedType type) {
   if (negatedSp.getExactDeclaringTypes().size() == 0) {
     return true;
   }
   return !negatedSp.couldEverMatch(type);
 }