}
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!(
"##,
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##"