private DeclaredType classForName(String className) {
      TypeElement typeElement = elementUtils.getTypeElement(className);
      checkState(typeElement != null, "Could not find referenced class %s", className);
      return MoreTypes.asDeclared(typeElement.asType());
    }
{@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