static String equalsParameterType(
      Map<ObjectMethod, ExecutableElement> methodsToGenerate, Nullables nullables) {
    ExecutableElement equals = methodsToGenerate.get(ObjectMethod.EQUALS);
    if (equals == null) {
      return ""; // this will not be referenced because no equals method will be generated
    }
    TypeMirror parameterType = equals.getParameters().get(0).asType();
    // Add @Nullable if we know one and the parameter doesn't already have one.
    // The @Nullable we add will be a type annotation, but if the parameter already has @Nullable
    // then that might be a type annotation or an annotation on the parameter.
    ImmutableList<AnnotationMirror> extraAnnotations =
        nullableAnnotationFor(equals, parameterType).isPresent()
            ? ImmutableList.of()
            : nullables.nullableTypeAnnotations();
    return TypeEncoder.encodeWithAnnotations(parameterType, extraAnnotations);
  }
Returns the encoded parameter type of the {@code equals(Object)} method that is to be
generated, or an empty string if the method is not being generated. The parameter type includes
any type annotations, for example {@code @Nullable}.

@param methodsToGenerate the Object methods that are being generated
@param nullable the type of a {@code @Nullable} type annotation that we have found, if any
value/src/main/java/com/google/auto/value/processor/AutoValueishProcessor.java