Skip to content

Commit

Permalink
Revert "Convert negate_unsigned feature gate to a warning"
Browse files Browse the repository at this point in the history
This reverts commit 0ca8e49 and fixes the code to work with
current rustc.

Fixes rust-lang#27141
  • Loading branch information
nagisa committed Sep 18, 2015
1 parent 24fdaed commit 5104a93
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
15 changes: 7 additions & 8 deletions src/librustc_lint/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ use std::{i8, i16, i32, i64, u8, u16, u32, u64, f32, f64};
use syntax::{abi, ast};
use syntax::attr::{self, AttrMetaMethods};
use syntax::codemap::{self, Span};
use syntax::feature_gate::{KNOWN_ATTRIBUTES, AttributeType};
use syntax::feature_gate::{KNOWN_ATTRIBUTES, AttributeType, emit_feature_err, GateIssue};
use syntax::ast::{TyIs, TyUs, TyI8, TyU8, TyI16, TyU16, TyI32, TyU32, TyI64, TyU64};
use syntax::ptr::P;

Expand Down Expand Up @@ -381,13 +381,12 @@ impl LateLintPass for TypeLimits {

fn check_unsigned_negation_feature(cx: &LateContext, span: Span) {
if !cx.sess().features.borrow().negate_unsigned {
// FIXME(#27141): change this to syntax::feature_gate::emit_feature_err…
cx.sess().span_warn(span,
"unary negation of unsigned integers will be feature gated in the future");
// …and remove following two expressions.
if option_env!("CFG_DISABLE_UNSTABLE_FEATURES").is_some() { return; }
cx.sess().fileline_help(span, "add #![feature(negate_unsigned)] to the \
crate attributes to enable the gate in advance");
emit_feature_err(
&cx.sess().parse_sess.span_diagnostic,
"negate_unsigned",
span,
GateIssue::Language,
"unary negation of unsigned integers may be removed in the future");
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/bench/shootout-mandelbrot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ fn write_line(init_i: f64, vec_init_r: &[f64], res: &mut Vec<u8>) {
i += 2;
}

res.push(cur_byte^-1);
res.push(cur_byte^!0);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,21 @@ impl std::ops::Neg for S {
}

const _MAX: usize = -1;
//~^ WARN unary negation of unsigned integers will be feature gated in the future
//~^ ERROR unary negation of unsigned integers may be removed in the future

fn main() {
let a = -1;
//~^ WARN unary negation of unsigned integers will be feature gated in the future
//~^ ERROR unary negation of unsigned integers may be removed in the future
let _b : u8 = a; // for infering variable a to u8.

-a;
//~^ WARN unary negation of unsigned integers will be feature gated in the future
//~^ ERROR unary negation of unsigned integers may be removed in the future

let _d = -1u8;
//~^ WARN unary negation of unsigned integers will be feature gated in the future
//~^ ERROR unary negation of unsigned integers may be removed in the future

for _ in -10..10u8 {}
//~^ WARN unary negation of unsigned integers will be feature gated in the future
//~^ ERROR unary negation of unsigned integers may be removed in the future

-S; // should not trigger the gate; issue 26840
}
2 changes: 2 additions & 0 deletions src/test/run-pass/unary-minus-suffix-inference.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![feature(negate_unsigned)]

pub fn main() {
let a = 1;
let a_neg: i8 = -a;
Expand Down

0 comments on commit 5104a93

Please sign in to comment.