|
1 | 1 | use std::collections::hash_map::Entry::*; |
2 | 2 |
|
3 | 3 | use rustc_ast::expand::allocator::ALLOCATOR_METHODS; |
4 | | -use rustc_data_structures::fingerprint::Fingerprint; |
5 | 4 | use rustc_data_structures::fx::FxHashMap; |
6 | 5 | use rustc_hir as hir; |
7 | | -use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, CRATE_DEF_INDEX, LOCAL_CRATE}; |
| 6 | +use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, LOCAL_CRATE}; |
8 | 7 | use rustc_hir::Node; |
9 | | -use rustc_index::vec::IndexVec; |
10 | 8 | use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; |
11 | 9 | use rustc_middle::middle::exported_symbols::{ |
12 | 10 | metadata_symbol_name, ExportedSymbol, SymbolExportInfo, SymbolExportKind, SymbolExportLevel, |
@@ -347,17 +345,6 @@ fn upstream_monomorphizations_provider( |
347 | 345 |
|
348 | 346 | let mut instances: DefIdMap<FxHashMap<_, _>> = Default::default(); |
349 | 347 |
|
350 | | - let cnum_stable_ids: IndexVec<CrateNum, Fingerprint> = { |
351 | | - let mut cnum_stable_ids = IndexVec::from_elem_n(Fingerprint::ZERO, cnums.len() + 1); |
352 | | - |
353 | | - for &cnum in cnums.iter() { |
354 | | - cnum_stable_ids[cnum] = |
355 | | - tcx.def_path_hash(DefId { krate: cnum, index: CRATE_DEF_INDEX }).0; |
356 | | - } |
357 | | - |
358 | | - cnum_stable_ids |
359 | | - }; |
360 | | - |
361 | 348 | let drop_in_place_fn_def_id = tcx.lang_items().drop_in_place_fn(); |
362 | 349 |
|
363 | 350 | for &cnum in cnums.iter() { |
@@ -386,7 +373,7 @@ fn upstream_monomorphizations_provider( |
386 | 373 | // If there are multiple monomorphizations available, |
387 | 374 | // we select one deterministically. |
388 | 375 | let other_cnum = *e.get(); |
389 | | - if cnum_stable_ids[other_cnum] > cnum_stable_ids[cnum] { |
| 376 | + if tcx.stable_crate_id(other_cnum) > tcx.stable_crate_id(cnum) { |
390 | 377 | e.insert(cnum); |
391 | 378 | } |
392 | 379 | } |
|
0 commit comments