@Override
    public Set<? extends Element> process(
        ImmutableSetMultimap<String, Element> elementsByAnnotation) {
      return processingStep.process(toClassKeyedMultimap(elementsByAnnotation));
    }
The implementation of processing logic for the step. It is guaranteed that the keys in {@code
elementsByAnnotation} will be a subset of the set returned by {@link #annotations()}.

@return the elements (a subset of the values of {@code elementsByAnnotation}) that this step
    is unable to process, possibly until a later processing round. These elements will be
    passed back to this step at the next round of processing.
common/src/main/java/com/google/auto/common/BasicAnnotationProcessor.java