mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Add the warnings
lint attribute
This commit is contained in:
parent
42b44b21b1
commit
92424f0670
@ -96,6 +96,8 @@ pub enum lint {
|
||||
|
||||
missing_doc,
|
||||
unreachable_code,
|
||||
|
||||
warnings,
|
||||
}
|
||||
|
||||
pub fn level_to_str(lv: level) -> &'static str {
|
||||
@ -280,6 +282,13 @@ static lint_table: &'static [(&'static str, LintSpec)] = &[
|
||||
desc: "detects unreachable code",
|
||||
default: warn
|
||||
}),
|
||||
|
||||
("warnings",
|
||||
LintSpec {
|
||||
lint: warnings,
|
||||
desc: "mass-change the level for lints which produce warnings",
|
||||
default: warn
|
||||
}),
|
||||
];
|
||||
|
||||
/*
|
||||
@ -362,10 +371,11 @@ impl Context {
|
||||
|
||||
fn span_lint(&self, lint: lint, span: span, msg: &str) {
|
||||
let (level, src) = match self.curr.find(&(lint as uint)) {
|
||||
None => { return }
|
||||
Some(&(warn, src)) => (self.get_level(warnings), src),
|
||||
Some(&pair) => pair,
|
||||
None => { return; }
|
||||
};
|
||||
if level == allow { return; }
|
||||
if level == allow { return }
|
||||
|
||||
let mut note = None;
|
||||
let msg = match src {
|
||||
|
30
src/test/compile-fail/lint-change-warnings.rs
Normal file
30
src/test/compile-fail/lint-change-warnings.rs
Normal file
@ -0,0 +1,30 @@
|
||||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
#[deny(warnings)];
|
||||
|
||||
fn main() {
|
||||
while true {} //~ ERROR: infinite
|
||||
}
|
||||
|
||||
#[allow(warnings)]
|
||||
fn foo() {
|
||||
while true {}
|
||||
}
|
||||
|
||||
#[warn(warnings)]
|
||||
fn bar() {
|
||||
while true {} //~ WARNING: infinite
|
||||
}
|
||||
|
||||
#[forbid(warnings)]
|
||||
fn baz() {
|
||||
while true {} //~ ERROR: warnings
|
||||
}
|
Loading…
Reference in New Issue
Block a user