Skip to content

inconsistent stringify! #140060

Open
Open
@loynoir

Description

@loynoir

I tried this code:

#[macro_export]
macro_rules! reproduce_macro {
    () => {{
        [stringify!(a::b), stringify!(&a)]
    }};
}

#[test]
pub fn reproduce() {
    let expected = [stringify!(a::b), stringify!(&a)];
    assert_eq!(expected, ["a::b", "&a"]);

    let actual = reproduce_macro!();
    assert_eq!(actual, ["a :: b", "& a"]);
}

I expected to see this happen: explanation

actual equal expected

Instead, this happened: explanation

actual not equal expected

$ cargo test -r
       Fresh reproduce v0.1.0 (/tmp/reproduce)
    Finished `release` profile [optimized] target(s) in 0.00s
     Running `/tmp/reproduce/target/release/deps/reproduce-7e181f6f7847a00f`

running 1 test
test reproduce ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests reproduce
     Running `/home/vscode/.rustup/toolchains/nightly-2025-04-14-x86_64-unknown-linux-gnu/bin/rustdoc --edition=2021 --crate-type lib --color auto --crate-name reproduce --test src/lib.rs --test-run-directory /tmp/reproduce -L dependency=/tmp/reproduce/target/release/deps -L dependency=/tmp/reproduce/target/release/deps --extern reproduce=/tmp/reproduce/target/release/deps/libreproduce-c271e11eea147c9e.rlib -C embed-bitcode=no --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' --error-format human`

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Meta

rustc --version --verbose:

<version>
channel = "nightly-2025-04-14"
Backtrace

<backtrace>

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-prettyArea: Pretty printing (including `-Z unpretty`)C-discussionCategory: Discussion or questions that doesn't represent real issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions