From ebf3dc334a0d671abd3a41d9e931350abf2fb17a Mon Sep 17 00:00:00 2001 From: Stephane Raux Date: Sun, 28 Jan 2018 18:59:55 -0800 Subject: [PATCH] Fixed doc regarding Drop and static Types implementing `Drop` are allowed in `static` and `const` definitions since rust 1.22.0. --- first-edition/src/const-and-static.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/first-edition/src/const-and-static.md b/first-edition/src/const-and-static.md index 66a48566b..b7f3a49d7 100644 --- a/first-edition/src/const-and-static.md +++ b/first-edition/src/const-and-static.md @@ -64,10 +64,7 @@ unsafe { [unsafe]: unsafe.html -Furthermore, any type stored in a `static` must be `Sync`, and must not have -a [`Drop`][drop] implementation. - -[drop]: drop.html +Furthermore, any type stored in a `static` must be `Sync`. # Initializing @@ -75,6 +72,14 @@ Both `const` and `static` have requirements for giving them a value. They must be given a value that’s a constant expression. In other words, you cannot use the result of a function call or anything similarly complex or at runtime. +# Dropping + +Types implementing [`Drop`][drop] are allowed in `const` and `static` +definitions. Constants are inlined where they are used and are dropped +accordingly. `static` values are not dropped. + +[drop]: drop.html + # Which construct should I use? Almost always, if you can choose between the two, choose `const`. It’s pretty