diff options
| author | topecongiro <seuchida@gmail.com> | 2017-04-04 10:43:16 +0900 |
|---|---|---|
| committer | topecongiro <seuchida@gmail.com> | 2017-04-04 10:43:16 +0900 |
| commit | 018c5c929820af8e8b455a64a9d7d5456b01b1ed (patch) | |
| tree | 19206a8e039533cc64f7dc748dbea52effd78d8d | |
| parent | 5309a3e31d88def1f3ea966162ed4f81f161d500 (diff) | |
| download | rust-018c5c929820af8e8b455a64a9d7d5456b01b1ed.tar.gz rust-018c5c929820af8e8b455a64a9d7d5456b01b1ed.zip | |
Make 'overlapping_inherent_impls' lint a hard error
| -rw-r--r-- | src/librustc_typeck/coherence/inherent_impls_overlap.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/librustc_typeck/coherence/inherent_impls_overlap.rs b/src/librustc_typeck/coherence/inherent_impls_overlap.rs index 4b36072243c..33280fb931a 100644 --- a/src/librustc_typeck/coherence/inherent_impls_overlap.rs +++ b/src/librustc_typeck/coherence/inherent_impls_overlap.rs @@ -11,7 +11,6 @@ use rustc::hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; use rustc::hir; use rustc::hir::itemlikevisit::ItemLikeVisitor; -use rustc::lint; use rustc::traits::{self, Reveal}; use rustc::ty::{self, TyCtxt}; @@ -53,12 +52,16 @@ impl<'a, 'tcx> InherentOverlapChecker<'a, 'tcx> { for &item2 in &impl_items2[..] { if (name, namespace) == name_and_namespace(item2) { - let msg = format!("duplicate definitions with name `{}`", name); - let node_id = self.tcx.hir.as_local_node_id(item1).unwrap(); - self.tcx.sess.add_lint(lint::builtin::OVERLAPPING_INHERENT_IMPLS, - node_id, - self.tcx.span_of_impl(item1).unwrap(), - msg); + struct_span_err!(self.tcx.sess, + self.tcx.span_of_impl(item1).unwrap(), + E0592, + "duplicate definitions with name `{}`", + name) + .span_label(self.tcx.span_of_impl(item1).unwrap(), + &format!("duplicate definitions for `{}`", name)) + .span_label(self.tcx.span_of_impl(item2).unwrap(), + &format!("other definition for `{}`", name)) + .emit(); } } } |
