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

line! does not play well with tracing::info! #58

Closed
kdheepak opened this issue Jun 30, 2024 · 1 comment
Closed

line! does not play well with tracing::info! #58

kdheepak opened this issue Jun 30, 2024 · 1 comment

Comments

@kdheepak
Copy link
Collaborator

kdheepak commented Jun 30, 2024

Importing ratatui_macros::line causes tracing::info to compile error:

use ratatui_macros::line;
use tracing::info;

fn main() {
    info!("Hello, world!");
}

Here's the error:

error: expected a literal
 --> src/main.rs:5:5
  |
5 |     info!("Hello, world!");
  |     ^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: only literals (like `"foo"`, `-42` and `3.14`) can be passed to `concat!()`
  = note: this error originates in the macro `line` which comes from the expansion of the macro `info` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0308]: mismatched types
   --> src/main.rs:5:5
    |
5   |     info!("Hello, world!");
    |     ^^^^^^^^^^^^^^^^^^^^^^
    |     |
    |     expected `u32`, found `Line<'_>`
    |     arguments to this enum variant are incorrect
    |

with this Cargo.toml

[package]
name = "test-ratatui-macros"
version = "0.1.0"
edition = "2021"

[dependencies]
log = "0.4.22"
ratatui = "0.27.0"
ratatui-macros = "0.4.2"
tracing = "0.1.40"

I get similar errors with other macros from tracing, but I don't get any errors with log::info! or other macros from log.

Here's the diff of cargo expand without and with use ratatui_macros::line;

--- without_ratatui_macros.txt  2024-06-30 00:19:44
+++ with_ratatui_macros.txt     2024-06-30 00:19:54
@@ -3,6 +3,7 @@
 use std::prelude::rust_2021::*;
 #[macro_use]
 extern crate std;
+use ratatui_macros::line;
 use tracing::info;
 fn main() {
     {
@@ -10,11 +11,11 @@
         static __CALLSITE: ::tracing::callsite::DefaultCallsite = {
             static META: ::tracing::Metadata<'static> = {
                 ::tracing_core::metadata::Metadata::new(
-                    "event src/main.rs:5",
+                    (/*ERROR*/),
                     "test_ratatui_macros",
                     ::tracing::Level::INFO,
                     ::core::option::Option::Some("src/main.rs"),
-                    ::core::option::Option::Some(5u32),
+                    ::core::option::Option::Some(::ratatui::text::Line::default()),
                     ::core::option::Option::Some("test_ratatui_macros"),
                     ::tracing_core::field::FieldSet::new(
                         &["message"],

tracing seems to be adding a line like this ::core::option::Option::Some(::ratatui::text::Line::default()), when use ratatui_macros::line is in the file. This seems to me like it is a bug with tracing but I wanted to post here first to double check.

@kdheepak
Copy link
Collaborator Author

This is an issue with tracing: tokio-rs/tracing#3023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant