Skip to content

Commit 2e7445c

Browse files
authored
tracing: make valueset macro sanitary (#3382)
Due to an import of `::tracing::field::{display, debug, Value}`, macro `valueset!` wasn't sanitary and would produce compile errors when identifiers `debug` and `display` were used. This change fixes the issue and makes the macro sanitary. Fixes: #3381 ## Motivation Making sure the mentioned macro is sanitary and avoiding users from encountering unexpected compile errors. ## Solution Removed the import inside macro and used fully-qualified paths for imported items.
1 parent 72bfa8f commit 2e7445c

File tree

2 files changed

+43
-27
lines changed

2 files changed

+43
-27
lines changed

tracing/src/macros.rs

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2827,175 +2827,176 @@ macro_rules! valueset {
28272827
// };
28282828
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr, $($rest:tt)*) => {
28292829
$crate::valueset!(
2830-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2830+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
28312831
$next,
28322832
$($rest)*
28332833
)
28342834
};
28352835
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr, $($rest:tt)*) => {
28362836
$crate::valueset!(
2837-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2837+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
28382838
$next,
28392839
$($rest)*
28402840
)
28412841
};
28422842
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr, $($rest:tt)*) => {
28432843
$crate::valueset!(
2844-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2844+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn $crate::field::Value)) },
28452845
$next,
28462846
$($rest)*
28472847
)
28482848
};
28492849
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+, $($rest:tt)*) => {
28502850
$crate::valueset!(
2851-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2851+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn $crate::field::Value)) },
28522852
$next,
28532853
$($rest)*
28542854
)
28552855
};
28562856
(@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+, $($rest:tt)*) => {
28572857
$crate::valueset!(
2858-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2858+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$($k).+) as &dyn $crate::field::Value)) },
28592859
$next,
28602860
$($rest)*
28612861
)
28622862
};
28632863
(@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+, $($rest:tt)*) => {
28642864
$crate::valueset!(
2865-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2865+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$($k).+) as &dyn $crate::field::Value)) },
28662866
$next,
28672867
$($rest)*
28682868
)
28692869
};
28702870
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = ?$val:expr) => {
28712871
$crate::valueset!(
2872-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2872+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
28732873
$next,
28742874
)
28752875
};
28762876
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = %$val:expr) => {
28772877
$crate::valueset!(
2878-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2878+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
28792879
$next,
28802880
)
28812881
};
28822882
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+ = $val:expr) => {
28832883
$crate::valueset!(
2884-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2884+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn $crate::field::Value)) },
28852885
$next,
28862886
)
28872887
};
28882888
(@ { $(,)* $($out:expr),* }, $next:expr, $($k:ident).+) => {
28892889
$crate::valueset!(
2890-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn Value)) },
2890+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$($k).+ as &dyn $crate::field::Value)) },
28912891
$next,
28922892
)
28932893
};
28942894
(@ { $(,)* $($out:expr),* }, $next:expr, ?$($k:ident).+) => {
28952895
$crate::valueset!(
2896-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$($k).+) as &dyn Value)) },
2896+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$($k).+) as &dyn $crate::field::Value)) },
28972897
$next,
28982898
)
28992899
};
29002900
(@ { $(,)* $($out:expr),* }, $next:expr, %$($k:ident).+) => {
29012901
$crate::valueset!(
2902-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$($k).+) as &dyn Value)) },
2902+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$($k).+) as &dyn $crate::field::Value)) },
29032903
$next,
29042904
)
29052905
};
29062906

29072907
// Handle literal names
29082908
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr, $($rest:tt)*) => {
29092909
$crate::valueset!(
2910-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2910+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
29112911
$next,
29122912
$($rest)*
29132913
)
29142914
};
29152915
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr, $($rest:tt)*) => {
29162916
$crate::valueset!(
2917-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2917+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
29182918
$next,
29192919
$($rest)*
29202920
)
29212921
};
29222922
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr, $($rest:tt)*) => {
29232923
$crate::valueset!(
2924-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2924+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn $crate::field::Value)) },
29252925
$next,
29262926
$($rest)*
29272927
)
29282928
};
29292929
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = ?$val:expr) => {
29302930
$crate::valueset!(
2931-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&debug(&$val) as &dyn Value)) },
2931+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
29322932
$next,
29332933
)
29342934
};
29352935
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = %$val:expr) => {
29362936
$crate::valueset!(
2937-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&display(&$val) as &dyn Value)) },
2937+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
29382938
$next,
29392939
)
29402940
};
29412941
(@ { $(,)* $($out:expr),* }, $next:expr, $k:literal = $val:expr) => {
29422942
$crate::valueset!(
2943-
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn Value)) },
2943+
@ { $($out),*, (&$next, $crate::__macro_support::Option::Some(&$val as &dyn $crate::field::Value)) },
29442944
$next,
29452945
)
29462946
};
29472947

29482948
// Handle constant names
29492949
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr, $($rest:tt)*) => {
29502950
$crate::valueset!(
2951-
@ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2951+
@ { $($out),*, (&$next, Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
29522952
$next,
29532953
$($rest)*
29542954
)
29552955
};
29562956
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr, $($rest:tt)*) => {
29572957
$crate::valueset!(
2958-
@ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2958+
@ { $($out),*, (&$next, Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
29592959
$next,
29602960
$($rest)*
29612961
)
29622962
};
29632963
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr, $($rest:tt)*) => {
29642964
$crate::valueset!(
2965-
@ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2965+
@ { $($out),*, (&$next, Some(&$val as &dyn $crate::field::Value)) },
29662966
$next,
29672967
$($rest)*
29682968
)
29692969
};
29702970
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = ?$val:expr) => {
29712971
$crate::valueset!(
2972-
@ { $($out),*, (&$next, Some(&debug(&$val) as &dyn Value)) },
2972+
@ { $($out),*, (&$next, Some(&$crate::field::debug(&$val) as &dyn $crate::field::Value)) },
29732973
$next,
29742974
)
29752975
};
29762976
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = %$val:expr) => {
29772977
$crate::valueset!(
2978-
@ { $($out),*, (&$next, Some(&display(&$val) as &dyn Value)) },
2978+
@ { $($out),*, (&$next, Some(&$crate::field::display(&$val) as &dyn $crate::field::Value)) },
29792979
$next,
29802980
)
29812981
};
29822982
(@ { $(,)* $($out:expr),* }, $next:expr, { $k:expr } = $val:expr) => {
29832983
$crate::valueset!(
2984-
@ { $($out),*, (&$next, Some(&$val as &dyn Value)) },
2984+
@ { $($out),*, (&$next, Some(&$val as &dyn $crate::field::Value)) },
29852985
$next,
29862986
)
29872987
};
29882988

29892989
// Remainder is unparsable, but exists --- must be format args!
29902990
(@ { $(,)* $($out:expr),* }, $next:expr, $($rest:tt)+) => {
2991-
$crate::valueset!(@ { (&$next, $crate::__macro_support::Option::Some(&$crate::__macro_support::format_args!($($rest)+) as &dyn Value)), $($out),* }, $next, )
2991+
$crate::valueset!(
2992+
@ { (&$next, $crate::__macro_support::Option::Some(&$crate::__macro_support::format_args!($($rest)+) as &dyn $crate::field::Value)), $($out),* },
2993+
$next,
2994+
)
29922995
};
29932996

29942997
// === entry ===
29952998
($fields:expr, $($kvs:tt)+) => {
29962999
{
2997-
#[allow(unused_imports)]
2998-
use $crate::field::{debug, display, Value};
29993000
let mut iter = $fields.iter();
30003001
$fields.value_set($crate::valueset!(
30013002
@ { },

tracing/tests/macros.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,9 @@ fn trace() {
621621
trace!(target: "foo_events", %foo, true, "message");
622622
trace!(name: "foo", target: "foo_events", ?foo, true, "message");
623623
trace!(name: "foo", target: "foo_events", %foo, true, "message");
624+
let debug = "debug";
625+
let display = "display";
626+
trace!("{debug:?} {display:?}");
624627
}
625628

626629
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
@@ -688,6 +691,9 @@ fn debug() {
688691
debug!(target: "foo_events", %foo, true, "message");
689692
debug!(name: "foo", target: "foo_events", ?foo, true, "message");
690693
debug!(name: "foo", target: "foo_events", %foo, true, "message");
694+
let debug = "debug";
695+
let display = "display";
696+
debug!("{debug:?} {display:?}");
691697
}
692698

693699
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
@@ -755,6 +761,9 @@ fn info() {
755761
info!(target: "foo_events", %foo, true, "message");
756762
info!(name: "foo", target: "foo_events", ?foo, true, "message");
757763
info!(name: "foo", target: "foo_events", %foo, true, "message");
764+
let debug = "debug";
765+
let display = "display";
766+
info!("{debug:?} {display:?}");
758767
}
759768

760769
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
@@ -822,6 +831,9 @@ fn warn() {
822831
warn!(target: "foo_events", %foo, true, "message");
823832
warn!(name: "foo", target: "foo_events", ?foo, true, "message");
824833
warn!(name: "foo", target: "foo_events", %foo, true, "message");
834+
let debug = "debug";
835+
let display = "display";
836+
warn!("{debug:?} {display:?}");
825837
}
826838

827839
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
@@ -889,6 +901,9 @@ fn error() {
889901
error!(target: "foo_events", %foo, true, "message");
890902
error!(name: "foo", target: "foo_events", ?foo, true, "message");
891903
error!(name: "foo", target: "foo_events", %foo, true, "message");
904+
let debug = "debug";
905+
let display = "display";
906+
error!("{debug:?} {display:?}");
892907
}
893908

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

0 commit comments

Comments
 (0)