private <C extends Collection<VariableElement>> C collectFields(@Nullable Element element, C collection) {
      if (element == null || !element.getKind().isClass() || element.getKind() == ElementKind.ENUM) {
        return collection;
      }

      collection.addAll(ElementFilter.fieldsIn(element.getEnclosedElements()));
      TypeMirror parent = MoreElements.asType(element).getSuperclass();
      if (parent.getKind() != TypeKind.NONE) {
        collectFields(MoreTypes.asDeclared(parent).asElement(), collection);
      }
      return collection;
    }
For some reason {@link Elements#getAllMembers(TypeElement)} does not
return fields from parent class. Collecting them manually in this method.
value-processor/src/org/immutables/value/processor/meta/JavaBeanAttributesCollector.java