private static boolean suppresses(Element element, String warning) {
    for (; element != null; element = element.getEnclosingElement()) {
      SuppressWarnings suppress = element.getAnnotation(SuppressWarnings.class);
      if (suppress != null && Arrays.asList(suppress.value()).contains(warning)) {
        return true;
      }
    }
    return false;
  }
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