07e7823c01
If a symbol name can only be imported from one place for a type, and as long as it was not glob-imported anywhere in the current crate, we can trim its printed path and print only the name. This has wide implications on error messages with types, for example, shortening `std::vec::Vec` to just `Vec`, as long as there is no other `Vec` importable anywhere. This adds a new '-Z trim-diagnostic-paths=false' option to control this feature. On the good path, with no diagnosis printed, we should try to avoid issuing this query, so we need to prevent trimmed_def_paths query on several cases. This change also relies on a previous commit that differentiates between `Debug` and `Display` on various rustc types, where the latter is trimmed and presented to the user and the former is not.
75 lines
2.3 KiB
Plaintext
75 lines
2.3 KiB
Plaintext
error: symbol-name(_ZN5impl13foo3Foo3bar17ha318160f105e638cE)
|
|
--> $DIR/impl1.rs:16:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling(impl1::foo::Foo::bar::ha318160f105e638c)
|
|
--> $DIR/impl1.rs:16:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling-alt(impl1::foo::Foo::bar)
|
|
--> $DIR/impl1.rs:16:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: def-path(foo::Foo::bar)
|
|
--> $DIR/impl1.rs:23:9
|
|
|
|
|
LL | #[rustc_def_path]
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: symbol-name(_ZN5impl13bar33_$LT$impl$u20$impl1..foo..Foo$GT$3baz17h6c2dbab6e66f9fa3E)
|
|
--> $DIR/impl1.rs:34:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling(impl1::bar::<impl impl1::foo::Foo>::baz::h6c2dbab6e66f9fa3)
|
|
--> $DIR/impl1.rs:34:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling-alt(impl1::bar::<impl impl1::foo::Foo>::baz)
|
|
--> $DIR/impl1.rs:34:9
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: def-path(bar::<impl foo::Foo>::baz)
|
|
--> $DIR/impl1.rs:41:9
|
|
|
|
|
LL | #[rustc_def_path]
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: symbol-name(_ZN209_$LT$$u5b$$RF$dyn$u20$impl1..Foo$u2b$Assoc$u20$$u3d$$u20$extern$u20$$u22$C$u22$$u20$fn$LP$$RF$u8$C$$u20$...$RP$$u2b$impl1..AutoTrait$u3b$$u20$3$u5d$$u20$as$u20$impl1..main..$u7b$$u7b$closure$u7d$$u7d$..Bar$GT$6method17SYMBOL_HASHE)
|
|
--> $DIR/impl1.rs:64:13
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method::SYMBOL_HASH)
|
|
--> $DIR/impl1.rs:64:13
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: demangling-alt(<[&dyn impl1::Foo+Assoc = extern "C" fn(&u8, ::.)+impl1::AutoTrait; 3] as impl1::main::{{closure}}::Bar>::method)
|
|
--> $DIR/impl1.rs:64:13
|
|
|
|
|
LL | #[rustc_symbol_name]
|
|
| ^^^^^^^^^^^^^^^^^^^^
|
|
|
|
error: def-path(<[&dyn Foo<Assoc = for<'r> extern "C" fn(&'r u8, ...)> + AutoTrait; 3] as Bar>::method)
|
|
--> $DIR/impl1.rs:71:13
|
|
|
|
|
LL | #[rustc_def_path]
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: aborting due to 12 previous errors
|
|
|