public String noValueToGet(Property p) {
    return (requiredProperties.contains(p) || p.hasDefault()) ? propertyNotSet(p) : null;
  }
Returns an expression that is true if the given property has not been given a value. That's
only different from {@link #missingRequiredProperty} if the property has a Kotlin default. If
so, we don't require it to be set at build time (because Kotlin will supply the default), but
we do require it to be set if it is accessed with a getter on the builder. We don't have access
to Kotlin parameter defaults so we can't arrange for the builder field to have the same default
value. Rather than returning a bogus zero value we say the value is unset.
value/src/main/java/com/google/auto/value/processor/BuilderRequiredProperties.java