-
Notifications
You must be signed in to change notification settings - Fork 825
Description
Just 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.
The issue stems from unqualified usages of line!
like these:
Line 700 in ba387dd
line!() |
Line 861 in ba387dd
line!() |
Line 1191 in ba387dd
line!() |
Making them std::line!()
should resolve this issue.
Thanks to @joshka for helping figure out the issue.