Add and use `no-format-args-capture` flag

This commit is contained in:
Gavrilikhin Daniil 2023-05-14 00:18:56 +08:00
parent 4520d66815
commit 7fb4cb2494
4 changed files with 72 additions and 9 deletions

View File

@ -43,7 +43,11 @@ jobs:
- name: Clippy - name: Clippy
run: cargo clippy --all -- -D warnings run: cargo clippy --all -- -D warnings
- name: Run tests - name: Run tests
if: matrix.rust == 'stable'
run: cargo test --all --verbose --features fancy run: cargo test --all --verbose --features fancy
- name: Run tests
if: matrix.rust == '1.56.0'
run: cargo test --all --verbose --features fancy no-format-args-capture
miri: miri:
name: Miri name: Miri

View File

@ -42,7 +42,16 @@ lazy_static = "1.4"
[features] [features]
default = [] default = []
fancy-no-backtrace = ["owo-colors", "is-terminal", "textwrap", "terminal_size", "supports-hyperlinks", "supports-color", "supports-unicode"] no-format-args-capture = []
fancy-no-backtrace = [
"owo-colors",
"is-terminal",
"textwrap",
"terminal_size",
"supports-hyperlinks",
"supports-color",
"supports-unicode",
]
fancy = ["fancy-no-backtrace", "backtrace", "backtrace-ext"] fancy = ["fancy-no-backtrace", "backtrace", "backtrace-ext"]
[workspace] [workspace]

View File

@ -16,7 +16,14 @@
/// # let resource = 0; /// # let resource = 0;
/// # /// #
/// if !has_permission(user, resource) { /// if !has_permission(user, resource) {
/// bail!("permission denied for accessing {resource}"); #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#" bail!("permission denied for accessing {resource}");"#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#" bail!("permission denied for accessing {}", resource);"#
)]
/// } /// }
/// # Ok(()) /// # Ok(())
/// # } /// # }
@ -56,7 +63,14 @@
/// if y.abs() < 1e-3 { /// if y.abs() < 1e-3 {
/// bail!( /// bail!(
/// severity = Severity::Warning, /// severity = Severity::Warning,
/// "dividing by value ({y}) close to 0" #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#" "dividing by value ({y}) close to 0""#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#" "dividing by value ({}) close to 0", y"#
)]
/// ); /// );
/// } /// }
/// Ok(x / y) /// Ok(x / y)
@ -126,7 +140,14 @@ macro_rules! bail {
/// ensure!( /// ensure!(
/// y.abs() >= 1e-3, /// y.abs() >= 1e-3,
/// severity = Severity::Warning, /// severity = Severity::Warning,
/// "dividing by value ({y}) close to 0" #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#" "dividing by value ({y}) close to 0""#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#" "dividing by value ({}) close to 0", y"#
)]
/// ); /// );
/// Ok(x / y) /// Ok(x / y)
/// } /// }
@ -156,11 +177,26 @@ macro_rules! ensure {
/// # use miette::miette; /// # use miette::miette;
/// let x = 1; /// let x = 1;
/// let y = 2; /// let y = 2;
/// let report = miette!("{x} + {} = {z}", y, z = x + y); #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#"let report = miette!("{x} + {} = {z}", y, z = x + y);"#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#"let report = miette!("{} + {} = {z}", x, y, z = x + y);"#
)]
///
/// assert_eq!(report.to_string().as_str(), "1 + 2 = 3"); /// assert_eq!(report.to_string().as_str(), "1 + 2 = 3");
/// ///
/// let z = x + y; /// let z = x + y;
/// let report = miette!("{x} + {y} = {z}"); #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#"let report = miette!("{x} + {y} = {z}");"#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#"let report = miette!("{} + {} = {}", x, y, z);"#
)]
/// assert_eq!(report.to_string().as_str(), "1 + 2 = 3"); /// assert_eq!(report.to_string().as_str(), "1 + 2 = 3");
/// ``` /// ```
/// ///
@ -225,11 +261,25 @@ macro_rules! miette {
/// let x = 1; /// let x = 1;
/// let y = 2; /// let y = 2;
/// ///
/// let diag = diagnostic!("{x} + {} = {z}", y, z = x + y); #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#" let diag = diagnostic!("{x} + {} = {z}", y, z = x + y);"#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#" let diag = diagnostic!("{} + {} = {z}", x, y, z = x + y);"#
)]
/// assert_eq!(diag.message, "1 + 2 = 3"); /// assert_eq!(diag.message, "1 + 2 = 3");
/// ///
/// let z = x + y; /// let z = x + y;
/// let diag = diagnostic!("{x} + {y} = {z}"); #[cfg_attr(
not(feature = "no-format-args-capture"),
doc = r#"let diag = diagnostic!("{x} + {y} = {z}");"#
)]
#[cfg_attr(
feature = "no-format-args-capture",
doc = r#"let diag = diagnostic!("{} + {} = {}", x, y, z);"#
)]
/// assert_eq!(diag.message, "1 + 2 = 3"); /// assert_eq!(diag.message, "1 + 2 = 3");
/// ``` /// ```
#[macro_export] #[macro_export]

View File

@ -599,7 +599,7 @@
//! then you may want to use [`miette!`], [`diagnostic!`] macros or //! then you may want to use [`miette!`], [`diagnostic!`] macros or
//! [`MietteDiagnostic`] directly to create diagnostic on the fly. //! [`MietteDiagnostic`] directly to create diagnostic on the fly.
//! //!
//! ```rs //! ```rust,ignore
//! # use miette::{miette, LabeledSpan, Report}; //! # use miette::{miette, LabeledSpan, Report};
//! //!
//! let source = "2 + 2 * 2 = 8".to_string(); //! let source = "2 + 2 * 2 = 8".to_string();