; Improve documentation of function-type display

* etc/NEWS: Document 'help-display-function-type'.

* doc/lispref/functions.texi (Declare Form):
* doc/lispref/objects.texi (Type Specifiers):
* doc/emacs/help.texi (Name Help): Better indexing of function
types.  (Bug#65288)
This commit is contained in:
Eli Zaretskii 2025-01-07 17:20:22 +02:00
parent 1c49edc408
commit ee1034422b
4 changed files with 10 additions and 3 deletions

View file

@ -323,7 +323,8 @@ yet further information is often reachable by clicking or typing
@key{RET} on emphasized parts of the text. @key{RET} on emphasized parts of the text.
@cindex function type specifier @cindex function type specifier
@cindex declared type of a function
@cindex inferred type of a function
The function type, if known, is expressed with a @dfn{function type The function type, if known, is expressed with a @dfn{function type
specifier} (@pxref{Type Specifiers,,,elisp, The Emacs Lisp Reference specifier} (@pxref{Type Specifiers,,,elisp, The Emacs Lisp Reference
Manual}), it will be specified if the type was manually declared by a Manual}), it will be specified if the type was manually declared by a

View file

@ -2726,6 +2726,7 @@ function. This allows function-level control of the safety level used
for the code emitted for the function (@pxref{Native-Compilation for the code emitted for the function (@pxref{Native-Compilation
Variables}). Variables}).
@cindex function type declaration
@item (ftype @var{type} &optional @var{function}) @item (ftype @var{type} &optional @var{function})
Declare @var{type} to be the type of this function. This is used for Declare @var{type} to be the type of this function. This is used for
documentation by @code{describe-function}. Also it can be used by the documentation by @code{describe-function}. Also it can be used by the

View file

@ -1545,6 +1545,7 @@ The @code{not} type specifier defines any type except the specified one.
The @code{member} type specifier allows to specify a type that includes The @code{member} type specifier allows to specify a type that includes
only the explicitly listed values. only the explicitly listed values.
@cindex declared type of a function
@item (function (@var{arg-1-type} @dots{} @var{arg-n-type}) @var{return-type}) @item (function (@var{arg-1-type} @dots{} @var{arg-n-type}) @var{return-type})
The @code{function} type specifier is used to describe the argument The @code{function} type specifier is used to describe the argument
types and the return type of a function. Argument types can be interleaved types and the return type of a function. Argument types can be interleaved

View file

@ -481,9 +481,13 @@ This user option controls outline visibility in the output buffer of
'describe-bindings' when 'describe-bindings-outline' is non-nil. 'describe-bindings' when 'describe-bindings-outline' is non-nil.
--- ---
*** 'describe-function' shows the function inferred type when available. *** 'describe-function' shows the function's inferred type when available.
For native compiled Lisp functions, 'describe-function' prints (after For native compiled Lisp functions, 'describe-function' prints (after
the signature) the automatically inferred function type as well. the signature) the automatically inferred function type as well. If the
function's type was explicitly declared (via the 'declare' form's
'ftype' property), 'describe-function' shows the declared type. This is
controlled by the new user option 'help-display-function-type', which is
by default t; customize to nil to disable function type display.
--- ---
*** 'describe-function' now shows the type of the function object. *** 'describe-function' now shows the type of the function object.