about summary refs log tree commit diff
diff options
context:
space:
mode:
authorxFrednet <xFrednet@gmail.com>2022-11-25 21:50:38 +0100
committerxFrednet <xFrednet@gmail.com>2022-11-26 11:55:25 +0100
commit459621d31be6f9b177372feae3a37a872a630f58 (patch)
tree1450a38065b28aa5ca35b8276aab38bb45870631
parent6d0b4e3a0933efd924981a2e86bc9f9cbef54158 (diff)
downloadrust-459621d31be6f9b177372feae3a37a872a630f58.tar.gz
rust-459621d31be6f9b177372feae3a37a872a630f58.zip
Improve `EXIT` lint docs
-rw-r--r--clippy_lints/src/exit.rs23
1 files changed, 18 insertions, 5 deletions
diff --git a/clippy_lints/src/exit.rs b/clippy_lints/src/exit.rs
index 407dd1b3957..9c8b0d076df 100644
--- a/clippy_lints/src/exit.rs
+++ b/clippy_lints/src/exit.rs
@@ -7,21 +7,34 @@ use rustc_session::{declare_lint_pass, declare_tool_lint};
 
 declare_clippy_lint! {
     /// ### What it does
-    /// `exit()`  terminates the program and doesn't provide a
-    /// stack trace.
+    /// Detects calls to the `exit()` function which terminates the program.
     ///
     /// ### Why is this bad?
-    /// Ideally a program is terminated by finishing
+    /// Exit terminates the program at the location it is called. For unrecoverable
+    /// errors `panics` should be used to provide a stacktrace and potentualy other
+    /// information. A normal termination or one with an error code should happen in
     /// the main function.
     ///
     /// ### Example
-    /// ```ignore
+    /// ```
     /// std::process::exit(0)
     /// ```
+    ///
+    /// Use instead:
+    ///
+    /// ```ignore
+    /// // To provide a stacktrace and additional information
+    /// panic!("message");
+    ///
+    /// // or a main method with a return
+    /// fn main() -> Result<(), i32> {
+    ///     Ok(())
+    /// }
+    /// ```
     #[clippy::version = "1.41.0"]
     pub EXIT,
     restriction,
-    "`std::process::exit` is called, terminating the program"
+    "detects `std::process::exit` calls"
 }
 
 declare_lint_pass!(Exit => [EXIT]);