private void validateThrowsClause() {
    if (element.getKind() != ElementKind.METHOD) {
      return;
    }
    ImmutableSet<String> checkedExceptions = collectThrownCheckedExceptions();
    if (!checkedExceptions.isEmpty()) {
      if (isGenerateLazy) {
        this.thrownCheckedExceptions = checkedExceptions;
      } else {
        report().warning(About.INCOMPAT,
            "Checked exceptions in 'throws' clause are not supported for regular abstract,"
                + " @Value.Derived, and @Value.Default attributes due to implementation difficulties"
                + " and unclear semantics. This message reported as a warning to preserve compatibility,"
                + " but there are high chances you'll see compile error in generated classed caused by this."
                + " NOTE: for @Value.Lazy attributes, checked exceptions are supported by simple propagation:"
                + " neither runtime nor checked exceptions will not be memoised for lazy attributes,"
                + " leading to lazy computation to be re-evaluated again and again until regular value"
                + " returned and memoised.");
      }
    }
  }
Initialized Validates things that were not validated otherwise
@param instantiationCreator can instantiate encodings
value-processor/src/org/immutables/value/processor/meta/ValueAttribute.java