about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonathan Turner <jonathandturner@users.noreply.github.com>2016-08-31 06:29:09 -0700
committerGitHub <noreply@github.com>2016-08-31 06:29:09 -0700
commitc4602288d2cb3bfd4fb29c44bfaa4bf0c0113e9f (patch)
tree62ad67267710a017effd63a0071b300cb0288cca
parent051685b2bcddaaf843f39dc96284c964722b1db4 (diff)
parentbdfcd782bc3fe3d59bd584684c13aca3daa7f562 (diff)
downloadrust-c4602288d2cb3bfd4fb29c44bfaa4bf0c0113e9f.tar.gz
rust-c4602288d2cb3bfd4fb29c44bfaa4bf0c0113e9f.zip
Rollup merge of #36079 - acrrd:new_format_E0318, r=GuillaumeGomez
Update E0318 to new format

Fixes #35322.
Part of #35233.

r? @GuillaumeGomez
-rw-r--r--src/librustc_typeck/coherence/orphan.rs10
-rw-r--r--src/test/compile-fail/typeck-default-trait-impl-outside-crate.rs5
2 files changed, 9 insertions, 6 deletions
diff --git a/src/librustc_typeck/coherence/orphan.rs b/src/librustc_typeck/coherence/orphan.rs
index a3c043fe7cb..bcce64cb110 100644
--- a/src/librustc_typeck/coherence/orphan.rs
+++ b/src/librustc_typeck/coherence/orphan.rs
@@ -347,15 +347,19 @@ impl<'cx, 'tcx> OrphanChecker<'cx, 'tcx> {
                     return;
                 }
             }
-            hir::ItemDefaultImpl(..) => {
+            hir::ItemDefaultImpl(_, ref item_trait_ref) => {
                 // "Trait" impl
                 debug!("coherence2::orphan check: default trait impl {}",
                        self.tcx.map.node_to_string(item.id));
                 let trait_ref = self.tcx.impl_trait_ref(def_id).unwrap();
                 if trait_ref.def_id.krate != LOCAL_CRATE {
-                    span_err!(self.tcx.sess, item.span, E0318,
+                    struct_span_err!(self.tcx.sess, item_trait_ref.path.span, E0318,
                               "cannot create default implementations for traits outside the \
-                               crate they're defined in; define a new trait instead");
+                               crate they're defined in; define a new trait instead")
+                        .span_label(item_trait_ref.path.span,
+                                    &format!("`{}` trait not defined in this crate",
+                                             item_trait_ref.path))
+                        .emit();
                     return;
                 }
             }
diff --git a/src/test/compile-fail/typeck-default-trait-impl-outside-crate.rs b/src/test/compile-fail/typeck-default-trait-impl-outside-crate.rs
index 09b97dfb30f..4d71517e060 100644
--- a/src/test/compile-fail/typeck-default-trait-impl-outside-crate.rs
+++ b/src/test/compile-fail/typeck-default-trait-impl-outside-crate.rs
@@ -10,7 +10,6 @@
 
 #![feature(optin_builtin_traits)]
 
-impl Copy for .. {}
-//~^ ERROR E0318
-
+impl Copy for .. {} //~ ERROR E0318
+     //~^ NOTE `Copy` trait not defined in this crate
 fn main() {}