@Override
        public Boolean visitEnumConstant(VariableElement enumConstant, TypeMirror expectedType) {
          return MoreTypes.equivalence().equivalent(enumConstant.asType(), expectedType)
              && validateElement(enumConstant);
        }
Returns true if the given type is fully defined. This means that the type itself is defined, as
are any types it references, such as any type arguments or type bounds. For an {@link
ExecutableType}, the parameter and return types must be fully defined, as must types declared
in a {@code throws} clause or in the bounds of any type parameters.
common/src/main/java/com/google/auto/common/SuperficialValidation.java