module T::Private::Methods

def self.run_sig(hook_mod, method_name, original_method, declaration_block)

to a Signature.
Executes the `sig` block, and converts the resulting Declaration
def self.run_sig(hook_mod, method_name, original_method, declaration_block)
  current_declaration =
    begin
      run_builder(declaration_block)
    rescue DeclBuilder::BuilderError => e
      T::Configuration.sig_builder_error_handler(e, declaration_block.loc)
      nil
    end
  signature =
    if current_declaration
      build_sig(hook_mod, method_name, original_method, current_declaration, declaration_block.loc)
    else
      Signature.new_untyped(method: original_method)
    end
  unwrap_method(signature.method.owner, signature, original_method)
  signature
end