about summary refs log tree commit diff
path: root/library/std/src
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2020-10-12 00:10:37 +0200
committerRalf Jung <post@ralfj.de>2020-10-12 00:12:45 +0200
commit0ec3ea9e697ea9c2ce225ba0b9f3715434fc773e (patch)
tree106fd35c96cb0a186739cf807abeade3e1fbb75d /library/std/src
parent06a079c43efb062e335e6e6c9dabd3c750619980 (diff)
downloadrust-0ec3ea9e697ea9c2ce225ba0b9f3715434fc773e.tar.gz
rust-0ec3ea9e697ea9c2ce225ba0b9f3715434fc773e.zip
const keyword: brief paragraph on 'const fn'
Diffstat (limited to 'library/std/src')
-rw-r--r--library/std/src/keyword_docs.rs21
1 files changed, 18 insertions, 3 deletions
diff --git a/library/std/src/keyword_docs.rs b/library/std/src/keyword_docs.rs
index 54ce0e7b831..c76f9b923cd 100644
--- a/library/std/src/keyword_docs.rs
+++ b/library/std/src/keyword_docs.rs
@@ -102,7 +102,9 @@ mod break_keyword {}
 
 #[doc(keyword = "const")]
 //
-/// Compile-time constants and deterministic functions.
+/// Compile-time constants and compile-time evaluable functions.
+///
+/// ## Compile-time constants
 ///
 /// Sometimes a certain value is used many times throughout a program, and it can become
 /// inconvenient to copy it over and over. What's more, it's not always possible or desirable to
@@ -145,15 +147,28 @@ mod break_keyword {}
 ///
 /// Constants, like statics, should always be in `SCREAMING_SNAKE_CASE`.
 ///
+/// For more detail on `const`, see the [Rust Book] or the [Reference].
+///
+/// ## Compile-time evaluable functions
+///
+/// The other main use of the `const` keyword is in `const fn`. This marks a function as being
+/// callable in the body of a `const` or `static` item and in array initializers (commonly called
+/// "const contexts"). `const fn` are restricted in the set of operations they can perform, to
+/// ensure that they can be evaluated at compile-time. See the [Reference][const-eval] for more
+/// detail.
+///
+/// Turning a `fn` into a `const fn` has no effect on run-time uses of that function.
+///
+/// ## Other uses of `const`
+///
 /// The `const` keyword is also used in raw pointers in combination with `mut`, as seen in `*const
 /// T` and `*mut T`. More about `const` as used in raw pointers can be read at the Rust docs for the [pointer primitive].
 ///
-/// For more detail on `const`, see the [Rust Book] or the [Reference].
-///
 /// [pointer primitive]: primitive.pointer.html
 /// [Rust Book]:
 /// ../book/ch03-01-variables-and-mutability.html#differences-between-variables-and-constants
 /// [Reference]: ../reference/items/constant-items.html
+/// [cosnt-eval]: ./reference/const_eval.html
 mod const_keyword {}
 
 #[doc(keyword = "continue")]