Convert negate_unsigned feature gate to a warning

This commit is contained in:
Simonas Kazlauskas 2015-07-20 12:17:55 +03:00
parent 22502154e6
commit 0ca8e4994e
2 changed files with 13 additions and 11 deletions

View File

@ -53,7 +53,7 @@ use syntax::{abi, ast};
use syntax::ast_util::{self, is_shift_binop, local_def};
use syntax::attr::{self, AttrMetaMethods};
use syntax::codemap::{self, Span};
use syntax::feature_gate::{KNOWN_ATTRIBUTES, AttributeType, emit_feature_err};
use syntax::feature_gate::{KNOWN_ATTRIBUTES, AttributeType};
use syntax::parse::token;
use syntax::ast::{TyIs, TyUs, TyI8, TyU8, TyI16, TyU16, TyI32, TyU32, TyI64, TyU64};
use syntax::ptr::P;
@ -382,11 +382,13 @@ impl LintPass for TypeLimits {
fn check_unsigned_negation_feature(cx: &Context, span: Span) {
if !cx.sess().features.borrow().negate_unsigned {
emit_feature_err(
&cx.sess().parse_sess.span_diagnostic,
"negate_unsigned",
span,
"unary negation of unsigned integers may be removed in the future");
// 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");
}
}
}

View File

@ -18,21 +18,21 @@ impl std::ops::Neg for S {
}
const _MAX: usize = -1;
//~^ ERROR unary negation of unsigned integers may be removed in the future
//~^ WARN unary negation of unsigned integers will be feature gated in the future
fn main() {
let a = -1;
//~^ ERROR unary negation of unsigned integers may be removed in the future
//~^ WARN unary negation of unsigned integers will be feature gated in the future
let _b : u8 = a; // for infering variable a to u8.
-a;
//~^ ERROR unary negation of unsigned integers may be removed in the future
//~^ WARN unary negation of unsigned integers will be feature gated in the future
let _d = -1u8;
//~^ ERROR unary negation of unsigned integers may be removed in the future
//~^ WARN unary negation of unsigned integers will be feature gated in the future
for _ in -10..10u8 {}
//~^ ERROR unary negation of unsigned integers may be removed in the future
//~^ WARN unary negation of unsigned integers will be feature gated in the future
-S; // should not trigger the gate; issue 26840
}