From: Mattias EngdegÄrd Date: Tue, 7 May 2024 10:17:39 +0000 (+0200) Subject: * etc/NEWS: Elaborate `type` declare entry and regroup. X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1c04fde1ba24657817d114b94ae2f1cf184e1a55;p=emacs.git * etc/NEWS: Elaborate `type` declare entry and regroup. (cherry picked from commit c2bca6fe0f1c191444d2dc632190706b2a5b663d) --- diff --git a/etc/NEWS b/etc/NEWS index bcb6ea5b46f..7c58d01444e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -2097,11 +2097,6 @@ the region and never want to restrict 'undo' to that region, it is preferable to use the existing 'undo-inhibit-region' symbol property instead of this variable. -+++ -** Function type declaration. -It is now possible to declare the expected type of a function's -arguments and its return type using the 'declare' macro. - ** New types 'closure' and 'interpreted-function'. 'interpreted-function' is the new type used for interpreted functions, and 'closure' is the common parent type of 'interpreted-function' @@ -2601,8 +2596,25 @@ were used to customizing 'native-comp-async-report-warnings-errors' to nil or 'silent', we suggest that you now leave it at its default value, and see if you get only warnings that matter. +** Function 'declare' forms + ++++ +*** New 'type' function declaration. +The declaration '(type TYPE)' specifies the type of a function. +Example: + + (defun hello (x y) + (declare (type (function (integer boolean) string))) + ...) + +specifies that the function takes two arguments, an integer and a +boolean, and returns a string. This information can be used by the +native compiler to produce better code, but specifying an incorrect type +may lead to Emacs crashing. See the Info node "(elisp) Declare Form" +for further information. + +++ -** New function declaration and property 'important-return-value'. +*** New 'important-return-value' function declaration and property. The declaration '(important-return-value t)' sets the 'important-return-value' property which indicates that the function return value should probably not be thrown away implicitly.