From 1c04fde1ba24657817d114b94ae2f1cf184e1a55 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Tue, 7 May 2024 12:17:39 +0200 Subject: [PATCH] * etc/NEWS: Elaborate `type` declare entry and regroup. (cherry picked from commit c2bca6fe0f1c191444d2dc632190706b2a5b663d) --- etc/NEWS | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) 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. -- 2.39.5