Skip to content

Commit

Permalink
Change default lint output format.
Browse files Browse the repository at this point in the history
Since lint check attributes are the preferred way of selectively
enabling/disabling lint checks, the output format of a failed
default check has been changed to reflect that.

When lint checks are being explicitly set by a command-line flag
or an attribute, the behavior is unchanged, so that the user can
quickly pinpoint the source.

Closes #6580
  • Loading branch information
geoffhill committed Oct 9, 2013
1 parent 3a70df1 commit 9c84982
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/librustc/middle/lint.rs
@@ -1,4 +1,4 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
Expand Down Expand Up @@ -372,12 +372,16 @@ impl Context {

let mut note = None;
let msg = match src {
Default | CommandLine => {
format!("{} [-{} {}{}]", msg, match level {
Default => {
format!("{}, \\#[{}({})] on by default", msg,
level_to_str(level), self.lint_to_str(lint))
},
CommandLine => {
format!("{} [-{} {}]", msg,
match level {
warn => 'W', deny => 'D', forbid => 'F',
allow => fail2!()
}, self.lint_to_str(lint).replace("_", "-"),
if src == Default { " (default)" } else { "" })
}, self.lint_to_str(lint).replace("_", "-"))
},
Node(src) => {
note = Some(src);
Expand Down
32 changes: 32 additions & 0 deletions src/test/compile-fail/lint-output-format.rs
@@ -0,0 +1,32 @@
// 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.

// compile-flags:-F experimental -D unstable

#[deprecated]
fn foo() -> uint {
20
}

#[experimental]
fn bar() -> uint {
40
}

#[unstable]
fn baz() -> uint {
30
}

fn main() {
let _x = foo(); //~ WARNING #[warn(deprecated)] on by default
let _y = bar(); //~ ERROR [-F experimental]
let _z = baz(); //~ ERROR [-D unstable]
}

5 comments on commit 9c84982

@bors
Copy link
Contributor

@bors bors commented on 9c84982 Oct 9, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bors
Copy link
Contributor

@bors bors commented on 9c84982 Oct 9, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging geoffhill/rust/lint-format2 = 9c84982 into auto

@bors
Copy link
Contributor

@bors bors commented on 9c84982 Oct 9, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

geoffhill/rust/lint-format2 = 9c84982 merged ok, testing candidate = e505d4c

@bors
Copy link
Contributor

@bors bors commented on 9c84982 Oct 9, 2013

@bors
Copy link
Contributor

@bors bors commented on 9c84982 Oct 9, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = e505d4c

Please sign in to comment.