class CheckSignatureAdapter extends SignatureVisitor {

  @Override
  public SignatureVisitor visitReturnType() {
    if (type != METHOD_SIGNATURE || !VISIT_RETURN_TYPE_STATES.contains(state)) {
      throw new IllegalStateException();
    }
    state = State.RETURN;
    CheckSignatureAdapter checkSignatureAdapter =
        new CheckSignatureAdapter(
            TYPE_SIGNATURE, signatureVisitor == null ? null : signatureVisitor.visitReturnType());
    checkSignatureAdapter.canBeVoid = true;
    return checkSignatureAdapter;
  }

  public  CheckSignatureAdapter(final int type, final SignatureVisitor signatureVisitor);
  protected  CheckSignatureAdapter(
      final int api, final int type, final SignatureVisitor signatureVisitor);

}