@SuppressWarnings("MissingFail") // error message gets converted into assertion failure
    private void testErrorType(TypeMirror typeWithError) {
      try {
        TypeEncoder.encode(typeWithError);
        processingEnv
            .getMessager()
            .printMessage(Diagnostic.Kind.ERROR, "Expected exception for type: " + typeWithError);
      } catch (MissingTypeException expected) {
      }
    }
Returns a "base type" for TypeSimplifier that does not contain any nested types. The point
being that every {@code TypeSimplifier} has a base type that the class being generated is going
to extend, and if that class has nested types they will be in scope, and therefore a possible
source of ambiguity.
value/src/test/java/com/google/auto/value/processor/TypeEncoderTest.java