@Override
  TypeMirror originalPropertyType(VariableElement propertyElement) {
    return propertyElement.asType();
  }
Classifies the given methods from a builder type and its ancestors.

@param methods the abstract methods in {@code builderType} and its ancestors.
@param errorReporter where to report errors.
@param processingEnv the ProcessingEnvironment for annotation processing.
@param executable the constructor or static method that AutoBuilder will call.
@param builtType the type to be built.
@param builderType the builder class or interface within {@code ofClass}.
@param propertiesWithDefaults properties that have a default value, so it is not an error for
    them not to have a setter.
@return an {@code Optional} that contains the results of the classification if it was
    successful or nothing if it was not.
value/src/main/java/com/google/auto/value/processor/BuilderMethodClassifierForAutoBuilder.java