]> git.lizzy.rs Git - rust.git/commitdiff
kill the code path for E0388
authorNiko Matsakis <niko@alum.mit.edu>
Tue, 21 Feb 2017 15:35:16 +0000 (10:35 -0500)
committerNiko Matsakis <niko@alum.mit.edu>
Tue, 28 Feb 2017 13:43:47 +0000 (08:43 -0500)
This was specific to the old special-case handling of statics in
borrowck.

src/librustc_borrowck/borrowck/mod.rs
src/librustc_borrowck/diagnostics.rs

index f5d6780213b20617c023cee3d2bb961621e501e8..47b614a81ae251e9009fbb0543832a0082d2e19f 100644 (file)
@@ -801,11 +801,13 @@ pub fn report_aliasability_violation(&self,
             }
             mc::AliasableStatic |
             mc::AliasableStaticMut => {
-                let mut err = struct_span_err!(
-                    self.tcx.sess, span, E0388,
-                    "{} in a static location", prefix);
-                err.span_label(span, &format!("cannot write data in a static definition"));
-                err
+                // This path cannot occur. It happens when we have an
+                // `&mut` or assignment to a static. But in the case
+                // of `static X`, we get a mutability violation first,
+                // and never get here. In the case of `static mut X`,
+                // that is unsafe and hence the aliasability error is
+                // ignored.
+                span_bug!(span, "aliasability violation for static `{}`", prefix)
             }
             mc::AliasableBorrowed => {
                 let mut e = struct_span_err!(
index 88f739d1c74bb24089ede620f38c6e737430238d..db4a1701e976b9ec4f9ff1506c05265986157675 100644 (file)
@@ -287,27 +287,7 @@ fn mutable() {
 "##,
 
 E0388: r##"
-A mutable borrow was attempted in a static location.
-
-Erroneous code example:
-
-```compile_fail,E0388
-static X: i32 = 1;
-
-static STATIC_REF: &'static mut i32 = &mut X;
-// error: cannot borrow data mutably in a static location
-
-const CONST_REF: &'static mut i32 = &mut X;
-// error: cannot borrow data mutably in a static location
-```
-
-To fix this error, you have to use constant borrow:
-
-```
-static X: i32 = 1;
-
-static STATIC_REF: &'static i32 = &X;
-```
+E0388 was removed and is no longer issued.
 "##,
 
 E0389: r##"