From ca909c836fb509bcda5471cdeef0dd9ccd00c54d Mon Sep 17 00:00:00 2001 From: Havvy Date: Mon, 22 May 2017 15:15:04 -0700 Subject: [PATCH] Add example of variable declaration drop order to Drop trait. --- src/libcore/ops.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libcore/ops.rs b/src/libcore/ops.rs index 4c2d05accf3..a2cdd646bd4 100644 --- a/src/libcore/ops.rs +++ b/src/libcore/ops.rs @@ -199,6 +199,18 @@ use marker::Unsize; /// let _x = Outer(Inner); /// } /// ``` +/// +/// Because variables are dropped in the reverse order they are declared, +/// `main` will print `Declared second!` and then `Declared first!`. +/// +/// ``` +/// struct PrintOnDrop(&'static str); +/// +/// fn main() { +/// let _first = PrintOnDrop("Declared first!"); +/// let _second = PrintOnDrop("Declared second!"); +/// } +/// ``` #[lang = "drop"] #[stable(feature = "rust1", since = "1.0.0")] pub trait Drop {