--- tags: design-meeting --- # 2021-02-24: Lints and editions ## Links * [Proposed lint/error policy](https://hackmd.io/i1Ob4XS6TwuUv-rOVEoM4A) * [Lint categorizations and descriptions](https://hackmd.io/HETreGqPSRezlN109vgCnQ) ## Agenda * Overview general lint policy (15 minutes) * Key questions: * * Overview lints (30 minutes) * Per * Revisit general lint policy (15 minutes) ## General lint policy | name | Edition N | Edition N+1 | Migrations? | | --- | --- | --- | --- | | repurposed syntax | allow | new meaning | mandatory | | edition error | allow | error | mandatory | | soft deprecations | warn | warn | recommended | | hard deprecations | warn then deny | deny | mandatory | | bug fix | warn then error | warn then error | recommended | Niko's concerns * edition error: is there syntax we remove that is NOT deprecated? * hard deprecation: is there a reason that we would want deny in the new edition, and not error? * something we want people to be able to type but they have to opt-in with allow (versus some other mechanism)? * soft vs hard: * hard is for likely BUGS * not just a matter of "it'd be nice if this were better" but more like "some horrible problem" * Extreme danger of misuse or unsoundness. * Third-party tooling may wish to drop support for the pattern (and limit itself to the newer editions). ## Table | Lint | Current status | Proposed resolution | Bugs | Meeting consensus? | | --- | --- | --- | --- | --- | | BARE_TRAIT_OBJECTS | warn | soft deprecation<br>edition error | :heavy_check_mark: | | ELIDED_LIFETIMES_IN_PATHS | allow | no consensus | | | ELLIPSIS_INCLUSIVE_RANGE_PATTERNS | warn | soft deprecation<br>edition error | | EXPLICIT_OUTLIVES_REQUIREMENTS | allow | revisit after bugs are fixed | [#54630] | | UNUSED_EXTERN_CRATES | allow | not edition (though it take the edition into account) | 53964, 44294 | | UNREACHABLE_PUB | allow | defer, not edition | | MACRO_USE_EXTERN_CRATE | allow | decide as part of pub macro-rules | #52043 | CLASHING_EXTERN_DECLARATIONS | allow | hard deprecation | #52043 | [#54630]: https://github.com/rust-lang/rust/issues/54630