@@ -15,7 +15,6 @@ use rustc_hir::def::{self, CtorKind, DefKind, Namespace};
15
15
use rustc_hir:: def_id:: { DefIdMap , DefIdSet , ModDefId , CRATE_DEF_ID , LOCAL_CRATE } ;
16
16
use rustc_hir:: definitions:: { DefKey , DefPathDataName } ;
17
17
use rustc_hir:: LangItem ;
18
- use rustc_session:: config:: TrimmedDefPaths ;
19
18
use rustc_session:: cstore:: { ExternCrate , ExternCrateSource } ;
20
19
use rustc_session:: Limit ;
21
20
use rustc_span:: symbol:: { kw, Ident , Symbol } ;
@@ -369,7 +368,7 @@ pub trait PrettyPrinter<'tcx>: Printer<'tcx> + fmt::Write {
369
368
return Ok ( true ) ;
370
369
}
371
370
if self . tcx ( ) . sess . opts . unstable_opts . trim_diagnostic_paths
372
- && ! matches ! ( self . tcx( ) . sess. opts. trimmed_def_paths, TrimmedDefPaths :: Never )
371
+ && self . tcx ( ) . sess . opts . trimmed_def_paths
373
372
&& !with_no_trimmed_paths ( )
374
373
&& !with_crate_prefix ( )
375
374
&& let Some ( symbol) = self . tcx ( ) . trimmed_def_paths ( ( ) ) . get ( & def_id)
@@ -3073,18 +3072,16 @@ fn for_each_def(tcx: TyCtxt<'_>, mut collect_fn: impl for<'b> FnMut(&'b Ident, N
3073
3072
/// See also [`DelayDm`](rustc_error_messages::DelayDm) and [`with_no_trimmed_paths!`].
3074
3073
// this is pub to be able to intra-doc-link it
3075
3074
pub fn trimmed_def_paths ( tcx : TyCtxt < ' _ > , ( ) : ( ) ) -> DefIdMap < Symbol > {
3076
- let mut map : DefIdMap < Symbol > = Default :: default ( ) ;
3075
+ assert ! ( tcx . sess . opts . trimmed_def_paths ) ;
3077
3076
3078
- if let TrimmedDefPaths :: GoodPath = tcx. sess . opts . trimmed_def_paths {
3079
- // Trimming paths is expensive and not optimized, since we expect it to only be used for
3080
- // error reporting.
3081
- //
3082
- // For good paths causing this bug, the `rustc_middle::ty::print::with_no_trimmed_paths`
3083
- // wrapper can be used to suppress this query, in exchange for full paths being formatted.
3084
- tcx. sess . good_path_delayed_bug (
3085
- "trimmed_def_paths constructed but no error emitted; use `DelayDm` for lints or `with_no_trimmed_paths` for debugging" ,
3086
- ) ;
3087
- }
3077
+ // Trimming paths is expensive and not optimized, since we expect it to only be used for error
3078
+ // reporting.
3079
+ //
3080
+ // For good paths causing this bug, the `rustc_middle::ty::print::with_no_trimmed_paths`
3081
+ // wrapper can be used to suppress this query, in exchange for full paths being formatted.
3082
+ tcx. sess . good_path_delayed_bug (
3083
+ "trimmed_def_paths constructed but no error emitted; use `DelayDm` for lints or `with_no_trimmed_paths` for debugging" ,
3084
+ ) ;
3088
3085
3089
3086
// Once constructed, unique namespace+symbol pairs will have a `Some(_)` entry, while
3090
3087
// non-unique pairs will have a `None` entry.
@@ -3118,6 +3115,7 @@ pub fn trimmed_def_paths(tcx: TyCtxt<'_>, (): ()) -> DefIdMap<Symbol> {
3118
3115
} ) ;
3119
3116
3120
3117
// Put the symbol from all the unique namespace+symbol pairs into `map`.
3118
+ let mut map: DefIdMap < Symbol > = Default :: default ( ) ;
3121
3119
for ( ( _, symbol) , opt_def_id) in unique_symbols_rev. drain ( ) {
3122
3120
use std:: collections:: hash_map:: Entry :: { Occupied , Vacant } ;
3123
3121
0 commit comments