about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-05-26 19:32:20 +0800
committerGitHub <noreply@github.com>2018-05-26 19:32:20 +0800
commitee18e926841b5104f94a1c3b22ff9016c6b14129 (patch)
treeab3a4d9c4b0c5f8128a45e0a958793c6200e743e /src/libstd
parent103abdb75c39e36457d182e16e4cc81dff42a192 (diff)
parentfe9a19580cd12adc2d0483bb549140fc6566a57e (diff)
downloadrust-ee18e926841b5104f94a1c3b22ff9016c6b14129.tar.gz
rust-ee18e926841b5104f94a1c3b22ff9016c6b14129.zip
Rollup merge of #51014 - GuillaumeGomez:env_docs, r=QuietMisdreavus
Add documentation about env! second argument

Fixes #48044.

r? @QuietMisdreavus
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/macros.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libstd/macros.rs b/src/libstd/macros.rs
index d1274a40900..8da70f5717e 100644
--- a/src/libstd/macros.rs
+++ b/src/libstd/macros.rs
@@ -364,7 +364,6 @@ pub mod builtin {
     ///
     /// let s = fmt::format(format_args!("hello {}", "world"));
     /// assert_eq!(s, format!("hello {}", "world"));
-    ///
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     #[macro_export]
@@ -379,7 +378,7 @@ pub mod builtin {
     /// compile time, yielding an expression of type `&'static str`.
     ///
     /// If the environment variable is not defined, then a compilation error
-    /// will be emitted.  To not emit a compile error, use the [`option_env!`]
+    /// will be emitted. To not emit a compile error, use the [`option_env!`]
     /// macro instead.
     ///
     /// [`option_env!`]: ../std/macro.option_env.html
@@ -390,6 +389,20 @@ pub mod builtin {
     /// let path: &'static str = env!("PATH");
     /// println!("the $PATH variable at the time of compiling was: {}", path);
     /// ```
+    ///
+    /// You can customize the error message by passing a string as the second
+    /// parameter:
+    ///
+    /// ```compile_fail
+    /// let doc: &'static str = env!("documentation", "what's that?!");
+    /// ```
+    ///
+    /// If the `documentation` environment variable is not defined, you'll get
+    /// the following error:
+    ///
+    /// ```text
+    /// error: what's that?!
+    /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     #[macro_export]
     macro_rules! env {