}
@Override
public Void visitType(TypeElement x, State state) {
checkedElement = x;
ProxyFor proxyFor = x.getAnnotation(ProxyFor.class);
ProxyForName proxyForName = x.getAnnotation(ProxyForName.class);
JsonRpcProxy jsonRpcProxy = x.getAnnotation(JsonRpcProxy.class);
if (proxyFor != null) {
poisonIfAnnotationPresent(state, x, proxyForName, jsonRpcProxy);
// See javadoc on Element.getAnnotation() for why it works this way
try {
proxyFor.value();
throw new RuntimeException("Should not reach here");
} catch (MirroredTypeException expected) {
TypeMirror type = expected.getTypeMirror();
state.addMapping(x, (TypeElement) state.types.asElement(type));
}