public void visitBaseType(final char descriptor) {
        if (type != TYPE_SIGNATURE || state != EMPTY) {
            throw new IllegalStateException();
        }
        if (descriptor == 'V') {
            if (!canBeVoid) {
                throw new IllegalArgumentException();
            }
        } else {
            if ("ZCBSIFJD".indexOf(descriptor) == -1) {
                throw new IllegalArgumentException();
            }
        }
        state = SIMPLE_TYPE;
        if (sv != null) {
            sv.visitBaseType(descriptor);
        }
    }