You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using rustc 1.77.2, when I run cargo test, it warnning:
warning: creating a mutable reference to mutable static is discouraged
--> src/trace.rs:104:15
|
104 | match &mut TRACE {
| ^^^^^^^^^^ mutable reference to mutable static
|
= note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447>
= note: this will be a hard error in the 2024 edition
= note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior
= note: `#[warn(static_mut_refs)]` on by default
help: use `addr_of_mut!` instead to create a raw pointer
the code could be refactor to:
use std::ptr::addr_of_mut;match*addr_of_mut!(TRACE){None => {}Some(refmut t) => f(t),}
if it's ok with you, I'd like to make a PR
The text was updated successfully, but these errors were encountered:
Looking at the bug in the error message, they mention how you can't just then dereference the pointer and need to"[make] sure that the reference stops being used before a second reference is created". In reviewing this code, I think we do not do this, because multiple trace::scope()s will be nested.
I think the proper fix would be to remove the callbacks from if_enabled and scope so that it's impossible to use incorrectly.
Thanks for the great project.
I am using rustc 1.77.2, when I run
cargo test
, it warnning:the code could be refactor to:
if it's ok with you, I'd like to make a PR
The text was updated successfully, but these errors were encountered: