@Test
  public void properlyDefersProcessing_stepAndIllFormedRejectingExecutableElements() {
    JavaFileObject testFileObject =
        JavaFileObjects.forSourceLines(
            "test.ClassA",
            "package test;",
            "import java.util.Set;",
            "import java.util.SortedSet;",
            "",
            "public class ClassA {",
            "  @" + OneMethodAtATime.class.getCanonicalName(),
            "  <C extends Set<String>> void overloadedMethod(C x) {}",
            "  @" + OneMethodAtATime.class.getCanonicalName(),
            "  <C extends SortedSet<String>> void overloadedMethod(C c) {}",
            "  @" + OneMethodAtATime.class.getCanonicalName(),
            "  void overloadedMethod(SomeGeneratedClass c) {}",
            "  @" + OneMethodAtATime.class.getCanonicalName(),
            "  void method0(SomeGeneratedClass c) {}",
            "}");

    JavaFileObject generatesCodeFileObject =
        JavaFileObjects.forSourceLines(
            "test.ClassB",
            "package test;",
            "",
            "@" + GeneratesCode.class.getCanonicalName(),
            "public class ClassB {}");

    OneOverloadedMethodAtATimeProcessor oneOverloadedMethodAtATimeProcessor =
        new OneOverloadedMethodAtATimeProcessor();
    Compilation compilation =
        javac()
            .withProcessors(oneOverloadedMethodAtATimeProcessor, new GeneratesCodeProcessor())
            .compile(testFileObject, generatesCodeFileObject);

    assertThat(compilation).succeeded();
    assertThat(oneOverloadedMethodAtATimeProcessor.rejectedRounds).isEqualTo(3);

    assertThat(oneOverloadedMethodAtATimeProcessor.processArguments())
        .comparingElementsUsing(setMultimapValuesByString())
        .containsExactly(
            ImmutableSetMultimap.of(
                OneMethodAtATime.class.getCanonicalName(), "<C>overloadedMethod(C)",
                OneMethodAtATime.class.getCanonicalName(), "<C>overloadedMethod(C)",
                OneMethodAtATime.class.getCanonicalName(),
                    "overloadedMethod(test.SomeGeneratedClass)",
                OneMethodAtATime.class.getCanonicalName(), "method0(test.SomeGeneratedClass)"),
            ImmutableSetMultimap.of(
                OneMethodAtATime.class.getCanonicalName(), "<C>overloadedMethod(C)",
                OneMethodAtATime.class.getCanonicalName(),
                    "overloadedMethod(test.SomeGeneratedClass)",
                OneMethodAtATime.class.getCanonicalName(), "method0(test.SomeGeneratedClass)"),
            ImmutableSetMultimap.of(
                OneMethodAtATime.class.getCanonicalName(), "<C>overloadedMethod(C)",
                OneMethodAtATime.class.getCanonicalName(), "method0(test.SomeGeneratedClass)"),
            ImmutableSetMultimap.of(
                OneMethodAtATime.class.getCanonicalName(), "method0(test.SomeGeneratedClass)"))
        .inOrder();
  }
Report an error for any class annotated.
common/src/test/java/com/google/auto/common/BasicAnnotationProcessorTest.java