private boolean checkNotAbstract(
      TypeElement providerImplementer, AnnotationMirror annotationMirror) {
    if (providerImplementer.getModifiers().contains(Modifier.ABSTRACT)) {
      error(
          "@AutoService can only be applied to a concrete class",
          providerImplementer,
          annotationMirror);
      return false;
    }
    return true;
  }
Verifies {@link ServiceProvider} constraints on the concrete provider class. Note that these
constraints are enforced at runtime via the ServiceLoader, we're just checking them at compile
time to be extra nice to our users.
service/processor/src/main/java/com/google/auto/service/processor/AutoServiceProcessor.java