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)]`"
}
declare_lint! {
pub OVERLAPPING_INHERENT_IMPLS,
- Warn,
+ Deny,
"two overlapping inherent impls define an item with the same name were erroneously allowed"
}
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"
}
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;
},
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),
},
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),
},
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>",
},
]);
// 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;
// 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::*;
use self::core::cell; // Check that public extern crates are glob imported
}
-#[rustc_error]
-fn main() {} //~ ERROR compilation successful
+fn main() {}
// 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
}
struct Bar<T>(T);
impl<T> Bar<T> {
- fn bar(&self) {} //~ WARN duplicate definitions
+ fn bar(&self) {} //~ ERROR duplicate definitions
//~^ WARN previously accepted
}
struct Baz<T>(T);
impl<T: Copy> Baz<T> {
- fn baz(&self) {} //~ WARN duplicate definitions
+ fn baz(&self) {} //~ ERROR duplicate definitions
//~^ WARN previously accepted
}
fn baz(&self) {}
}
-#[rustc_error]
-fn main() {} //~ ERROR compilation successful
+fn main() {}
// 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 {
// 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 `'_`
// 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(); }
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!();