Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tracing-attributes: support const values for target and name (backport v0.1.x) #2942

Open
wants to merge 3 commits into
base: v0.1.x
Choose a base branch
from

Commits on Apr 20, 2024

  1. fix: new clippy/rust lints

    dpc committed Apr 20, 2024
    Configuration menu
    Copy the full SHA
    e5b2603 View commit details
    Browse the repository at this point in the history
  2. tracing: fix event macros with constant field names in the first posi…

    …tion (tokio-rs#2883)
    
    
    ## Motivation
    
    Const argumetns in `level!` macros do not work when in the first
    position.
    
    This also seems to have fixed tokio-rs#2748 where literals for fields names like
    `info!("foo" = 2)` could not be used outside the `event!` macro.
    
    
    Fixes tokio-rs#2837
    Fixes tokio-rs#2738
    
    ## Solution
    
    Previsously, `level!($(args:tt))` was forwarded to `event!(target: ...,
    level: ..., { $(args:tt) })` but the added curly braces seem to have
    prevented the `event` macro from correctly understanding the arguments
    and it tried to pass them to `format!`.
    
    With this change there may have some performance impact when expanding
    the macros in most cases where the braces could have been added as it
    will take one more step.
    
    These are the two relevant `event!` blocks I believe, the new tests used
    to expand to the first one (with empty fields), now they expand to the
    latter:
    ```
        (target: $target:expr, $lvl:expr, { $($fields:tt)* }, $($arg:tt)+ ) => (
            $crate::event!(
                target: $target,
                $lvl,
                { message = $crate::__macro_support::format_args!($($arg)+), $($fields)* }
            )
        );
        (target: $target:expr, $lvl:expr, $($arg:tt)+ ) => (
            $crate::event!(target: $target, $lvl, { $($arg)+ })
        );
    ```
    mladedav authored and dpc committed Apr 20, 2024
    Configuration menu
    Copy the full SHA
    cc02d08 View commit details
    Browse the repository at this point in the history
  3. fix: more rust/clippy lints

    dpc committed Apr 20, 2024
    Configuration menu
    Copy the full SHA
    7d6be88 View commit details
    Browse the repository at this point in the history