@Override
    public boolean apply(ValueAttribute attribute) {
      boolean def = attribute.typeKind() == kind
          && !attribute.isGuavaImmutableDeclared();
      if (def) {
        switch (kind) {
          case MAP:
          case LIST:
          case SET:
            return !attribute.isGenerateJdk9();
          default:
            return true;
        }
      }
      return false;
    }
Means object hashcode is cached at some point. Either lazily (on first access)
or eagerly (during construction).
@see #isUseLazyhash()
@see #isUsePrehashed()
value-processor/src/org/immutables/value/processor/meta/ValueType.java