})
.lint_ids
.push(id);
+ } else {
+ 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);
}
}
}
+// Ensure that the future_incompatible lint group only includes
+// lints for changes that are not tied to an edition
#![deny(future_incompatible)]
trait Tr {
- fn f(u8) {} //~ ERROR anonymous parameters are deprecated
- //~^ WARN this is accepted in the current edition
+ // Warn only since this is not a `future_incompatible` lint
+ 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() {}
-error: anonymous parameters are deprecated and will be removed in the next edition.
- --> $DIR/future-incompatible-lint-group.rs:4:10
+warning: anonymous parameters are deprecated and will be removed in the next edition.
+ --> $DIR/future-incompatible-lint-group.rs:7:10
|
LL | fn f(u8) {}
| ^^ help: try naming the parameter or explicitly ignoring it: `_: u8`
|
+ = note: `#[warn(anonymous_parameters)]` on by default
+ = 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>
+
+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:1:9
+ --> $DIR/future-incompatible-lint-group.rs:3: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!
- = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
+ = 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
+error: aborting due to previous error; 1 warning emitted