about summary refs log tree commit diff
path: root/src/librustc_metadata/decoder.rs
diff options
context:
space:
mode:
authorVadim Chugunov <vadimcn@gmail.com>2016-12-05 10:15:14 -0800
committerVadim Chugunov <vadimcn@gmail.com>2016-12-05 16:44:27 -0800
commit7d05d1e7f0add9e5151d48d51d92b6fb5885e257 (patch)
tree96d6ce1c413c605d8c1b4d1121283171cc41767d /src/librustc_metadata/decoder.rs
parentb700dd35e7fe9f3a987cca47a00ac0bdd1cfd425 (diff)
downloadrust-7d05d1e7f0add9e5151d48d51d92b6fb5885e257.tar.gz
rust-7d05d1e7f0add9e5151d48d51d92b6fb5885e257.zip
Consider only libs that aren't excluded by #[link(cfg=...)]
Diffstat (limited to 'src/librustc_metadata/decoder.rs')
-rw-r--r--src/librustc_metadata/decoder.rs15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/librustc_metadata/decoder.rs b/src/librustc_metadata/decoder.rs
index f8f80a60c16..5bd1dea1d79 100644
--- a/src/librustc_metadata/decoder.rs
+++ b/src/librustc_metadata/decoder.rs
@@ -11,13 +11,13 @@
 // Decoding metadata from a single crate's metadata
 
 use astencode::decode_inlined_item;
-use cstore::{self, CrateMetadata, MetadataBlob, NativeLibrary, NativeLibraryKind};
+use cstore::{self, CrateMetadata, MetadataBlob, NativeLibrary};
 use index::Index;
 use schema::*;
 
 use rustc::hir::map as hir_map;
 use rustc::hir::map::{DefKey, DefPathData};
-use rustc::util::nodemap::{FxHashMap, FxHashSet};
+use rustc::util::nodemap::FxHashMap;
 use rustc::hir;
 use rustc::hir::intravisit::IdRange;
 
@@ -36,7 +36,6 @@ use rustc::mir::Mir;
 use std::borrow::Cow;
 use std::cell::Ref;
 use std::io;
-use std::iter::FromIterator;
 use std::mem;
 use std::str;
 use std::u32;
@@ -1089,15 +1088,7 @@ impl<'a, 'tcx> CrateMetadata {
     }
 
     pub fn is_dllimport_foreign_item(&self, id: DefIndex) -> bool {
-        if self.dllimport_foreign_items.borrow().is_none() {
-            *self.dllimport_foreign_items.borrow_mut() = Some(FxHashSet::from_iter(
-                self.get_native_libraries().iter()
-                    .filter(|lib| lib.kind == NativeLibraryKind::NativeUnknown)
-                    .flat_map(|lib| &lib.foreign_items)
-                    .map(|id| *id)
-            ));
-        }
-        self.dllimport_foreign_items.borrow().as_ref().unwrap().contains(&id)
+        self.dllimport_foreign_items.contains(&id)
     }
 
     pub fn is_defaulted_trait(&self, trait_id: DefIndex) -> bool {