]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_resolve/src/late/diagnostics.rs
Use the same message as type & const generics.
[rust.git] / compiler / rustc_resolve / src / late / diagnostics.rs
index 552102be92c1263b3206d1e6f1e8f5248fa3104b..9213652e35f8e0e98a38f38773cebe5cf4e3dffe 100644 (file)
@@ -2038,43 +2038,30 @@ pub(crate) fn maybe_emit_forbidden_non_static_lifetime_error(
 }
 
 /// Report lifetime/lifetime shadowing as an error.
-pub fn signal_lifetime_shadowing(
-    sess: &Session,
-    orig: Ident,
-    shadower: Ident,
-    orig_is_param: bool,
-) {
-    let mut err = if orig_is_param {
-        struct_span_err!(
-            sess,
-            shadower.span,
-            E0263,
-            "lifetime name `{}` declared twice in the same scope",
-            orig.name,
-        )
-    } else {
-        struct_span_err!(
-            sess,
-            shadower.span,
-            E0496,
-            "lifetime name `{}` shadows a lifetime name that is already in scope",
-            orig.name,
-        )
-    };
+pub fn signal_lifetime_shadowing(sess: &Session, orig: Ident, shadower: Ident) {
+    let mut err = struct_span_err!(
+        sess,
+        shadower.span,
+        E0496,
+        "lifetime name `{}` shadows a lifetime name that is already in scope",
+        orig.name,
+    );
     err.span_label(orig.span, "first declared here");
     err.span_label(shadower.span, format!("lifetime `{}` already in scope", orig.name));
     err.emit();
 }
 
-/// Shadowing involving a label is only a warning, due to issues with
-/// labels and lifetimes not being macro-hygienic.
-pub fn signal_label_shadowing(sess: &Session, orig: Ident, shadower: Ident) {
+/// Shadowing involving a label is only a warning for historical reasons.
+//FIXME: make this a proper lint.
+pub fn signal_label_shadowing(sess: &Session, orig: Span, shadower: Ident) {
+    let name = shadower.name;
+    let shadower = shadower.span;
     let mut err = sess.struct_span_warn(
-        shadower.span,
-        &format!("label name `{}` shadows a label name that is already in scope", orig.name),
+        shadower,
+        &format!("label name `{}` shadows a label name that is already in scope", name),
     );
-    err.span_label(orig.span, "first declared here");
-    err.span_label(shadower.span, format!("label `{}` already in scope", orig.name));
+    err.span_label(orig, "first declared here");
+    err.span_label(shadower, format!("label `{}` already in scope", name));
     err.emit();
 }