Skip to content

Commit

Permalink
Auto merge of #36894 - petrochenkov:deny, r=nikomatsakis
Browse files Browse the repository at this point in the history
Make sufficiently old or low-impact compatibility lints deny-by-default

Tracking issues are updated/created when necessary.
Needs crater run before proceeding.

r? @nikomatsakis
  • Loading branch information
bors authored Oct 27, 2016
2 parents 46d39f3 + 2a85211 commit a0e31a5
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 46 deletions.
14 changes: 7 additions & 7 deletions src/librustc/lint/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,25 +120,25 @@ declare_lint! {

declare_lint! {
pub INACCESSIBLE_EXTERN_CRATE,
Warn,
Deny,
"use of inaccessible extern crate erroneously allowed"
}

declare_lint! {
pub INVALID_TYPE_PARAM_DEFAULT,
Warn,
Deny,
"type parameter default erroneously allowed in invalid location"
}

declare_lint! {
pub ILLEGAL_FLOATING_POINT_CONSTANT_PATTERN,
Warn,
Deny,
"floating-point constants cannot be used in patterns"
}

declare_lint! {
pub ILLEGAL_STRUCT_OR_ENUM_CONSTANT_PATTERN,
Warn,
Deny,
"constants of struct or enum type can only be used in a pattern if \
the struct or enum has `#[derive(PartialEq, Eq)]`"
}
Expand All @@ -164,7 +164,7 @@ declare_lint! {

declare_lint! {
pub OVERLAPPING_INHERENT_IMPLS,
Warn,
Deny,
"two overlapping inherent impls define an item with the same name were erroneously allowed"
}

Expand All @@ -176,13 +176,13 @@ declare_lint! {

declare_lint! {
pub SUPER_OR_SELF_IN_GLOBAL_PATH,
Warn,
Deny,
"detects super or self keywords at the beginning of global path"
}

declare_lint! {
pub LIFETIME_UNDERSCORE,
Warn,
Deny,
"lifetimes or labels named `'_` were erroneously allowed"
}

Expand Down
2 changes: 0 additions & 2 deletions src/librustc_const_eval/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,6 @@ Not-a-Number (NaN) values cannot be compared for equality and hence can never
match the input to a match expression. So, the following will not compile:
```compile_fail
#![deny(illegal_floating_point_constant_pattern)]
const NAN: f32 = 0.0 / 0.0;
let number = 0.1f32;
Expand Down
16 changes: 8 additions & 8 deletions src/librustc_lint/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,43 +187,43 @@ pub fn register_builtins(store: &mut lint::LintStore, sess: Option<&Session>) {
},
FutureIncompatibleInfo {
id: LintId::of(INACCESSIBLE_EXTERN_CRATE),
reference: "PR 31362 <https://github.com/rust-lang/rust/pull/31362>",
reference: "issue #36886 <https://github.com/rust-lang/rust/issues/36886>",
},
FutureIncompatibleInfo {
id: LintId::of(INVALID_TYPE_PARAM_DEFAULT),
reference: "PR 30724 <https://github.com/rust-lang/rust/pull/30724>",
reference: "issue #36887 <https://github.com/rust-lang/rust/issues/36887>",
},
FutureIncompatibleInfo {
id: LintId::of(SUPER_OR_SELF_IN_GLOBAL_PATH),
reference: "PR #32403 <https://github.com/rust-lang/rust/pull/32403>",
reference: "issue #36888 <https://github.com/rust-lang/rust/issues/36888>",
},
FutureIncompatibleInfo {
id: LintId::of(TRANSMUTE_FROM_FN_ITEM_TYPES),
reference: "issue #19925 <https://github.com/rust-lang/rust/issues/19925>",
},
FutureIncompatibleInfo {
id: LintId::of(OVERLAPPING_INHERENT_IMPLS),
reference: "issue #22889 <https://github.com/rust-lang/rust/issues/22889>",
reference: "issue #36889 <https://github.com/rust-lang/rust/issues/36889>",
},
FutureIncompatibleInfo {
id: LintId::of(ILLEGAL_FLOATING_POINT_CONSTANT_PATTERN),
reference: "RFC 1445 <https://github.com/rust-lang/rfcs/pull/1445>",
reference: "issue #36890 <https://github.com/rust-lang/rust/issues/36890>",
},
FutureIncompatibleInfo {
id: LintId::of(ILLEGAL_STRUCT_OR_ENUM_CONSTANT_PATTERN),
reference: "RFC 1445 <https://github.com/rust-lang/rfcs/pull/1445>",
reference: "issue #36891 <https://github.com/rust-lang/rust/issues/36891>",
},
FutureIncompatibleInfo {
id: LintId::of(HR_LIFETIME_IN_ASSOC_TYPE),
reference: "issue #33685 <https://github.com/rust-lang/rust/issues/33685>",
},
FutureIncompatibleInfo {
id: LintId::of(LIFETIME_UNDERSCORE),
reference: "RFC 1177 <https://github.com/rust-lang/rfcs/pull/1177>",
reference: "issue #36892 <https://github.com/rust-lang/rust/issues/36892>",
},
FutureIncompatibleInfo {
id: LintId::of(SAFE_EXTERN_STATICS),
reference: "issue 36247 <https://github.com/rust-lang/rust/issues/35112>",
reference: "issue #36247 <https://github.com/rust-lang/rust/issues/35112>",
},
]);

Expand Down
11 changes: 4 additions & 7 deletions src/test/compile-fail/extern-crate-visibility.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![feature(rustc_attrs)]
#![allow(dead_code)]
#![allow(unused_imports)]
#![allow(unused)]

mod foo {
extern crate core;
Expand All @@ -19,11 +17,11 @@ mod foo {
// Check that private crates can be used from outside their modules, albeit with warnings
use foo::core; //~ WARN extern crate `core` is private
//~^ WARN this was previously accepted by the compiler but is being phased out
use foo::core::cell; //~ WARN extern crate `core` is private
use foo::core::cell; //~ ERROR extern crate `core` is private
//~^ WARN this was previously accepted by the compiler but is being phased out

fn f() {
foo::core::cell::Cell::new(0); //~ WARN extern crate `core` is private
foo::core::cell::Cell::new(0); //~ ERROR extern crate `core` is private
//~^ WARN this was previously accepted by the compiler but is being phased out

use foo::*;
Expand All @@ -39,5 +37,4 @@ mod baz {
use self::core::cell; // Check that public extern crates are glob imported
}

#[rustc_error]
fn main() {} //~ ERROR compilation successful
fn main() {}
12 changes: 5 additions & 7 deletions src/test/compile-fail/inherent-overlap.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,12 @@
// Test that you cannot define items with the same name in overlapping inherent
// impl blocks.

#![feature(rustc_attrs)]
#![allow(dead_code)]
#![allow(unused)]

struct Foo;

impl Foo {
fn id() {} //~ WARN duplicate definitions
fn id() {} //~ ERROR duplicate definitions
//~^ WARN previously accepted
}

Expand All @@ -28,7 +27,7 @@ impl Foo {
struct Bar<T>(T);

impl<T> Bar<T> {
fn bar(&self) {} //~ WARN duplicate definitions
fn bar(&self) {} //~ ERROR duplicate definitions
//~^ WARN previously accepted
}

Expand All @@ -39,13 +38,12 @@ impl Bar<u32> {
struct Baz<T>(T);

impl<T: Copy> Baz<T> {
fn baz(&self) {} //~ WARN duplicate definitions
fn baz(&self) {} //~ ERROR duplicate definitions
//~^ WARN previously accepted
}

impl<T> Baz<Vec<T>> {
fn baz(&self) {}
}

#[rustc_error]
fn main() {} //~ ERROR compilation successful
fn main() {}
9 changes: 3 additions & 6 deletions src/test/compile-fail/issue-6804.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,13 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![feature(rustc_attrs)]
#![feature(slice_patterns)]
#![allow(dead_code)]
#![deny(illegal_floating_point_constant_pattern)]

// Matching against NaN should result in a warning

#![feature(slice_patterns)]
#![allow(unused)]

use std::f64::NAN;

#[rustc_error]
fn main() {
let x = NAN;
match x {
Expand Down
2 changes: 0 additions & 2 deletions src/test/compile-fail/lifetime-underscore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![deny(lifetime_underscore)]

fn _f<'_>() //~ ERROR invalid lifetime name `'_`
//~^ WARN this was previously accepted
-> &'_ u8 //~ ERROR invalid lifetime name `'_`
Expand Down
10 changes: 4 additions & 6 deletions src/test/compile-fail/use-super-global-path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,20 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![feature(rustc_attrs)]
#![allow(unused_imports, dead_code)]
#![allow(unused)]

struct S;
struct Z;

mod foo {
use ::super::{S, Z}; //~ WARN global paths cannot start with `super`
use ::super::{S, Z}; //~ ERROR global paths cannot start with `super`
//~^ WARN this was previously accepted by the compiler but is being phased out

pub fn g() {
use ::super::main; //~ WARN global paths cannot start with `super`
use ::super::main; //~ ERROR global paths cannot start with `super`
//~^ WARN this was previously accepted by the compiler but is being phased out
main();
}
}

#[rustc_error]
fn main() { foo::g(); } //~ ERROR compilation successful
fn main() { foo::g(); }
2 changes: 1 addition & 1 deletion src/test/run-pass/type-macros-simple.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fn issue_36540() {

let x: m!() = m!();
std::cell::Cell::<m!()>::new(m!());
impl<T = m!()> std::ops::Index<m!()> for Trait<(m!(), T)>
impl<T> std::ops::Index<m!()> for Trait<(m!(), T)>
where T: Trait<m!()>
{
type Output = m!();
Expand Down

0 comments on commit a0e31a5

Please sign in to comment.