From 6aa3d0f11a26ff69b4675f780f66010c46169e38 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 3 Mar 2016 08:20:57 +0100 Subject: [PATCH] Swap lang item collect order (externals are now collected before locals) --- src/librustc/middle/lang_items.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 9c890c76aa08..2e4484142950 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -185,19 +185,19 @@ impl<'a, 'tcx> LanguageItemCollector<'a, 'tcx> { match self.items.items[item_index] { Some(original_def_id) if original_def_id != item_def_id => { let cstore = &self.session.cstore; - let span = self.ast_map.span_if_local(original_def_id).unwrap_or(span); + let span = self.ast_map.span_if_local(item_def_id).unwrap_or(span); let mut err = struct_span_err!(self.session, span, E0152, "Duplicate lang item found: `{}`.", LanguageItems::item_name(item_index)); - if let Some(span) = self.ast_map.span_if_local(item_def_id) { + if let Some(span) = self.ast_map.span_if_local(original_def_id) { span_note!(&mut err, span, "First defined here."); } else { span_note!(&mut err, span, "First defined in crate `{}`.", - cstore.crate_name(item_def_id.krate)); + cstore.crate_name(original_def_id.krate)); } err.emit(); } @@ -225,8 +225,8 @@ impl<'a, 'tcx> LanguageItemCollector<'a, 'tcx> { } pub fn collect(&mut self, krate: &hir::Crate) { - self.collect_local_language_items(krate); self.collect_external_language_items(krate); + self.collect_local_language_items(krate); } }