@Override void traverse(@Nullable TypeElement element, Set<TypeElement> linearizedTypes) {
      if (element == null || isJavaLangObject(element)) {
        return;
      }
      traverseInterfaces(element, linearizedTypes);
      traverseSuperclass(element, linearizedTypes);
      // we add this after so we start with the deepest
      linearizedTypes.add(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