@Override
    public int hashCode() {
      return delegate.hashCode();
    }
Some annotation processors have {@code javax.lang.model} being implemented using relatively
expensive conversions from internal model. When some properties are being queried again and
again, annotation mirrors or enclosed elements are worth to store. Implementations wrappers cache
some properties eagerly and some lazily.
value-processor/src/org/immutables/value/processor/meta/CachingElements.java