@Override
    public Ordering<Element> enclosedBy(Element element) {
      if (element instanceof ElementImpl
          && Iterables.all(element.getEnclosedElements(), Predicates.instanceOf(ElementImpl.class))) {

        ElementImpl implementation = (ElementImpl) element;
        if (implementation._binding instanceof SourceTypeBinding) {
          SourceTypeBinding sourceBinding = (SourceTypeBinding) implementation._binding;

          return Ordering.natural().onResultOf(
              Functions.compose(bindingsToSourceOrder(sourceBinding), this));
        }
      }

      return DEFAULT_PROVIDER.enclosedBy(element);
    }
This inner static class will fail to load if Eclipse compliler classes will not be in
classpath.
If annotation processor is executed by Javac compiler in presence of ECJ classes, then
instanceof checks will fail with fallback to defaults (Javac).
generator/src/org/immutables/generator/SourceOrdering.java