From 40f497b554e0578ec874186f44d08c939bb1f798 Mon Sep 17 00:00:00 2001 From: Frank Steffahn Date: Sun, 28 Jan 2024 09:14:42 +0000 Subject: [PATCH] Remove confusing usage of terminology "block of a function" It's usually referred to as the "body" of the function, and I'm making it consistent here. In order to emphasize the nature of the body of a block, occasionally "body block" is used. (One instance of "body block" was already present.) This particularly improves the sentence that used to explain "The block of a function is conceptually wrapped in a block that binds ..." which was just plain confusing. --- src/items/functions.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/items/functions.md b/src/items/functions.md index 5b4ac7af6..47059ad3a 100644 --- a/src/items/functions.md +++ b/src/items/functions.md @@ -42,7 +42,8 @@ > [^fn-param-2015]: Function parameters with only a type are only allowed > in an associated function of a [trait item] in the 2015 edition. -A _function_ consists of a [block], along with a name, a set of parameters, and an output type. +A _function_ consists of a [block] (that's the _body_ of the function), +along with a name, a set of parameters, and an output type. Other than a name, all these are optional. Functions are declared with the keyword `fn`. Functions may declare a set of *input* [*variables*][variables] as parameters, through which the caller passes arguments into the function, and the *output* [*type*][type] of the value the function will return to its caller on completion. @@ -76,8 +77,8 @@ parameter may have an optional identifier, such as `args: ...`. ## Function body -The block of a function is conceptually wrapped in a block that binds the -argument patterns and then `return`s the value of the function's block. This +The body block of a function is conceptually wrapped in another block that first binds the +argument patterns and then `return`s the value of the function's body. This means that the tail expression of the block, if evaluated, ends up being returned to the caller. As usual, an explicit return expression within the body of the function will short-cut that implicit return, if reached. @@ -321,7 +322,7 @@ responsibility to ensure that. ## Attributes on functions [Outer attributes][attributes] are allowed on functions. [Inner -attributes][attributes] are allowed directly after the `{` inside its [block]. +attributes][attributes] are allowed directly after the `{` inside its body [block]. This example shows an inner attribute on a function. The function is documented with just the word "Example".