Closed
Description
Edition lints in the rust_2018_idioms
group power Rustfix, the tool for transitioning crates from the 2015 to the 2018 edition. Having a good automatic tool for migrating crates is essential to a successful 2018 edition, and having well-implemented lints is essential to Rustfix actually working.
rust_2018_compatibility
- keywords (Write lint for usage of edition-gated keywords #49716, some mentoring instructions)
- migrating $()?* macros (2018 edition
?
Kleene operator #51587; PR in progress) - migrating extern crate with #[macro_use] (edition lint: migrating
extern crate
with#[macro_use]
#52043) - shadowing of
extern crate
s with modules (edition lint: modules shadowing extern crates #52040) -
dyn
should not be allowed as a trait name (impl dyn for AnyType fails to compile #50405)- decision was to allow this and force
impl self::dyn for ...
for disambiguation
- decision was to allow this and force
rust_2018_idioms
-
'_
in preference to lifetime elision in types (edition lint: prefer'_
to lifetime elision in types #52041) -
...
to..=
(rewrite...
to..=
as an idiom lint for Rust 2018 edition #51043; partial solution) - unnecessary T: 'a annotations (edition lint: unnecessary
T: 'a
annotations #52042) - declarations obviated by in-band lifetimes (edition lint: declarations obviated by in-band lifetimes #52045)
- prefer
crate
topub(crate)
(edition lint: prefercrate
topub(crate)
#52048) - suggestion for pub(crate) (add modifier keyword spans to hir::Visibility; improve unreachable-pub, private-no-mangle lint suggestions #51866)
- bare trait objects (i.e., missing
dyn
) - unreachable
pub
- unused
extern crate
- inclusive range patterns (
...
to..=
)
Metadata
Metadata
Assignees
Labels
Area: The 2018 editionArea: Lints (warnings about flaws in source code) such as unused_mut.Call for participation: Help is requested to fix this issue.Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.Relevant to the compiler team, which will review and decide on the PR/issue.Relevant to the dev-tools subteam, which will review and decide on the PR/issue.Working group: Epoch (2018) management