private Set<TypeMirror> findReferencedClasses() {
      Set<TypeMirror> classes = new TypeMirrorSet();
      for (int token = 0; token < textLength; token = scanner.tokenEnd(token)) {
        if (text.charAt(token) == '`' && !text.startsWith("`import`", token)) {
          String className = classNameAt(token);
          classes.add(classForName(className));
        }
      }
      return classes;
    }
{@inheritDoc} The result respects the Java syntax, whereby {@code Foo @Bar []} is an
annotation on the array type itself, while {@code @Bar Foo[]} would be an annotation on the
component type.
value/src/main/java/com/google/auto/value/processor/TypeEncoder.java