Skip to content

Commit

Permalink
tracing: fix broken match arms in event macros (#1239)
Browse files Browse the repository at this point in the history
This PR fixes the event macros to accept syntax like
`info!(target: "test", ?value)`. While this works without the explicit
`target`, it did not worked with the `target` up to now. Besides that
the macros also used from wrong levels in certain branches.
  • Loading branch information
bkchr authored Feb 17, 2021
1 parent f81426b commit 1b800fa
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 32 deletions.
64 changes: 32 additions & 32 deletions tracing/src/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -914,14 +914,14 @@ macro_rules! trace {
(target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { $($field)* }, $($arg)*)
);
(target: $target:expr, $($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { $($k).+ $($field)+ })
(target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { $($k).+ $($field)* })
);
(target: $target:expr, ?$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { $($k).+ $($field)+ })
(target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { ?$($k).+ $($field)* })
);
(target: $target:expr, %$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { $($k).+ $($field)+ })
(target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::TRACE, { %$($k).+ $($field)* })
);
(target: $target:expr, $($arg:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::TRACE, {}, $($arg)+)
Expand Down Expand Up @@ -1101,14 +1101,14 @@ macro_rules! debug {
(target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { $($field)* }, $($arg)*)
);
(target: $target:expr, $($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { $($k).+ $($field)+ })
(target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { $($k).+ $($field)* })
);
(target: $target:expr, ?$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { $($k).+ $($field)+ })
(target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { ?$($k).+ $($field)* })
);
(target: $target:expr, %$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { $($k).+ $($field)+ })
(target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, { %$($k).+ $($field)* })
);
(target: $target:expr, $($arg:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::DEBUG, {}, $($arg)+)
Expand Down Expand Up @@ -1313,14 +1313,14 @@ macro_rules! info {
(target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($field)* }, $($arg)*)
);
(target: $target:expr, $($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)+ })
(target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)* })
);
(target: $target:expr, ?$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)+ })
(target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::INFO, { ?$($k).+ $($field)* })
);
(target: $target:expr, %$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)+ })
(target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::INFO, { $($k).+ $($field)* })
);
(target: $target:expr, $($arg:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::INFO, {}, $($arg)+)
Expand Down Expand Up @@ -1350,7 +1350,7 @@ macro_rules! info {
(%$($k:ident).+ = $($field:tt)*) => (
$crate::event!(
target: module_path!(),
$crate::Level::TRACE,
$crate::Level::INFO,
{ %$($k).+ = $($field)*}
)
);
Expand Down Expand Up @@ -1518,14 +1518,14 @@ macro_rules! warn {
(target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
$crate::event!(target: $target, $crate::Level::WARN, { $($field)* }, $($arg)*)
);
(target: $target:expr, $($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::WARN, { $($k).+ $($field)+ })
(target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::WARN, { $($k).+ $($field)* })
);
(target: $target:expr, ?$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::WARN, { $($k).+ $($field)+ })
(target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::WARN, { ?$($k).+ $($field)* })
);
(target: $target:expr, %$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::WARN, { $($k).+ $($field)+ })
(target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::WARN, { %$($k).+ $($field)* })
);
(target: $target:expr, $($arg:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::WARN, {}, $($arg)+)
Expand Down Expand Up @@ -1719,14 +1719,14 @@ macro_rules! error {
(target: $target:expr, { $($field:tt)* }, $($arg:tt)* ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { $($field)* }, $($arg)*)
);
(target: $target:expr, $($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { $($k).+ $($field)+ })
(target: $target:expr, $($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { $($k).+ $($field)* })
);
(target: $target:expr, ?$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { $($k).+ $($field)+ })
(target: $target:expr, ?$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { ?$($k).+ $($field)* })
);
(target: $target:expr, %$($k:ident).+ $($field:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { $($k).+ $($field)+ })
(target: $target:expr, %$($k:ident).+ $($field:tt)* ) => (
$crate::event!(target: $target, $crate::Level::ERROR, { %$($k).+ $($field)* })
);
(target: $target:expr, $($arg:tt)+ ) => (
$crate::event!(target: $target, $crate::Level::ERROR, {}, $($arg)+)
Expand Down Expand Up @@ -1756,7 +1756,7 @@ macro_rules! error {
(%$($k:ident).+ = $($field:tt)*) => (
$crate::event!(
target: module_path!(),
$crate::Level::TRACE,
$crate::Level::ERROR,
{ %$($k).+ = $($field)*}
)
);
Expand Down
30 changes: 30 additions & 0 deletions tracing/tests/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,12 @@ fn trace() {
trace!(?foo);
trace!(%foo);
trace!(foo);
trace!(target: "foo_events", ?foo);
trace!(target: "foo_events", %foo);
trace!(target: "foo_events", foo);
trace!(target: "foo_events", ?foo, true, "message");
trace!(target: "foo_events", %foo, true, "message");
trace!(target: "foo_events", foo, true, "message");
}

#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
Expand Down Expand Up @@ -437,6 +443,12 @@ fn debug() {
debug!(?foo);
debug!(%foo);
debug!(foo);
debug!(target: "foo_events", ?foo);
debug!(target: "foo_events", %foo);
debug!(target: "foo_events", foo);
debug!(target: "foo_events", ?foo, true, "message");
debug!(target: "foo_events", %foo, true, "message");
debug!(target: "foo_events", foo, true, "message");
}

#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
Expand Down Expand Up @@ -467,6 +479,12 @@ fn info() {
info!(?foo);
info!(%foo);
info!(foo);
info!(target: "foo_events", ?foo);
info!(target: "foo_events", %foo);
info!(target: "foo_events", foo);
info!(target: "foo_events", ?foo, true, "message");
info!(target: "foo_events", %foo, true, "message");
info!(target: "foo_events", foo, true, "message");
}

#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
Expand Down Expand Up @@ -497,6 +515,12 @@ fn warn() {
warn!(?foo);
warn!(%foo);
warn!(foo);
warn!(target: "foo_events", ?foo);
warn!(target: "foo_events", %foo);
warn!(target: "foo_events", foo);
warn!(target: "foo_events", ?foo, true, "message");
warn!(target: "foo_events", %foo, true, "message");
warn!(target: "foo_events", foo, true, "message");
}

#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
Expand Down Expand Up @@ -527,6 +551,12 @@ fn error() {
error!(?foo);
error!(%foo);
error!(foo);
error!(target: "foo_events", ?foo);
error!(target: "foo_events", %foo);
error!(target: "foo_events", foo);
error!(target: "foo_events", ?foo, true, "message");
error!(target: "foo_events", %foo, true, "message");
error!(target: "foo_events", foo, true, "message");
}

#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
Expand Down

0 comments on commit 1b800fa

Please sign in to comment.