diff options
| -rw-r--r-- | library/std/src/keyword_docs.rs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/library/std/src/keyword_docs.rs b/library/std/src/keyword_docs.rs index 93776328290..ff343625a19 100644 --- a/library/std/src/keyword_docs.rs +++ b/library/std/src/keyword_docs.rs @@ -945,11 +945,6 @@ mod mod_keyword {} /// `move` converts any variables captured by reference or mutable reference /// to owned by value variables. /// -/// Note: `move` closures may still implement [`Fn`] or [`FnMut`], even though -/// they capture variables by `move`. This is because the traits implemented by -/// a closure type are determined by *what* the closure does with captured -/// values, not *how* it captures them. -/// /// ```rust /// let capture = "hello"; /// let closure = move || { @@ -957,6 +952,23 @@ mod mod_keyword {} /// }; /// ``` /// +/// Note: `move` closures may still implement [`Fn`] or [`FnMut`], even though +/// they capture variables by `move`. This is because the traits implemented by +/// a closure type are determined by *what* the closure does with captured +/// values, not *how* it captures them: +/// +/// ```rust +/// fn create_fn() -> impl Fn() { +/// let text = "Fn".to_owned(); +/// +/// move || println!("This is a: {}", text) +/// } +/// +/// let fn_plain = create_fn(); +/// +/// fn_plain(); +/// ``` +/// /// `move` is often used when [threads] are involved. /// /// ```rust |
