mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Auto merge of #86689 - rylev:future-compat-lint-group, r=nikomatsakis
Only include lint in future_incompatible lint group if not an edition lint A follow up to #86330 - this only includes lints annotated with `FutureIncompatibleInfo` in the `future_incompatibile` lint group if the future compatibility is not tied to an edition. We probably want to rename `FutureIncompatibleInfo` to something else since this type is now used to indicate future breakages of all kinds (even those that happen in editions). I'd prefer to do that in a separate PR though. r? `@nikomatsakis`
This commit is contained in:
commit
51fd129ac1
@ -220,17 +220,20 @@ impl LintStore {
|
|||||||
})
|
})
|
||||||
.lint_ids
|
.lint_ids
|
||||||
.push(id);
|
.push(id);
|
||||||
|
} else {
|
||||||
|
// Lints belonging to the `future_incompatible` lint group are lints where a
|
||||||
|
// future version of rustc will cause existing code to stop compiling.
|
||||||
|
// Lints tied to an edition don't count because they are opt-in.
|
||||||
|
self.lint_groups
|
||||||
|
.entry("future_incompatible")
|
||||||
|
.or_insert(LintGroup {
|
||||||
|
lint_ids: vec![],
|
||||||
|
from_plugin: lint.is_plugin,
|
||||||
|
depr: None,
|
||||||
|
})
|
||||||
|
.lint_ids
|
||||||
|
.push(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.lint_groups
|
|
||||||
.entry("future_incompatible")
|
|
||||||
.or_insert(LintGroup {
|
|
||||||
lint_ids: vec![],
|
|
||||||
from_plugin: lint.is_plugin,
|
|
||||||
depr: None,
|
|
||||||
})
|
|
||||||
.lint_ids
|
|
||||||
.push(id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,18 @@
|
|||||||
|
// Ensure that the future_incompatible lint group only includes
|
||||||
|
// lints for changes that are not tied to an edition
|
||||||
#![deny(future_incompatible)]
|
#![deny(future_incompatible)]
|
||||||
|
|
||||||
trait Tr {
|
trait Tr {
|
||||||
fn f(u8) {} //~ ERROR anonymous parameters are deprecated
|
// Warn only since this is not a `future_incompatible` lint
|
||||||
//~^ WARN this is accepted in the current edition
|
fn f(u8) {} //~ WARN anonymous parameters are deprecated
|
||||||
|
//~| WARN this is accepted in the current edition
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod submodule {
|
||||||
|
// Error since this is a `future_incompatible` lint
|
||||||
|
#![doc(test(some_test))]
|
||||||
|
//~^ ERROR this attribute can only be applied at the crate level
|
||||||
|
//~| WARN this was previously accepted by the compiler
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {}
|
fn main() {}
|
||||||
|
@ -1,17 +1,28 @@
|
|||||||
error: anonymous parameters are deprecated and will be removed in the next edition.
|
warning: anonymous parameters are deprecated and will be removed in the next edition.
|
||||||
--> $DIR/future-incompatible-lint-group.rs:4:10
|
--> $DIR/future-incompatible-lint-group.rs:7:10
|
||||||
|
|
|
|
||||||
LL | fn f(u8) {}
|
LL | fn f(u8) {}
|
||||||
| ^^ help: try naming the parameter or explicitly ignoring it: `_: u8`
|
| ^^ help: try naming the parameter or explicitly ignoring it: `_: u8`
|
||||||
|
|
|
|
||||||
note: the lint level is defined here
|
= note: `#[warn(anonymous_parameters)]` on by default
|
||||||
--> $DIR/future-incompatible-lint-group.rs:1:9
|
|
||||||
|
|
|
||||||
LL | #![deny(future_incompatible)]
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
|
||||||
= note: `#[deny(anonymous_parameters)]` implied by `#[deny(future_incompatible)]`
|
|
||||||
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
|
||||||
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
|
= note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: this attribute can only be applied at the crate level
|
||||||
|
--> $DIR/future-incompatible-lint-group.rs:13:12
|
||||||
|
|
|
||||||
|
LL | #![doc(test(some_test))]
|
||||||
|
| ^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
note: the lint level is defined here
|
||||||
|
--> $DIR/future-incompatible-lint-group.rs:3:9
|
||||||
|
|
|
||||||
|
LL | #![deny(future_incompatible)]
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^
|
||||||
|
= note: `#[deny(invalid_doc_attributes)]` implied by `#[deny(future_incompatible)]`
|
||||||
|
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||||
|
= note: for more information, see issue #82730 <https://github.com/rust-lang/rust/issues/82730>
|
||||||
|
= note: read https://doc.rust-lang.org/nightly/rustdoc/the-doc-attribute.html#at-the-crate-level for more information
|
||||||
|
|
||||||
|
error: aborting due to previous error; 1 warning emitted
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user