summary refs log tree commit diff
path: root/compiler/rustc_lint/src/levels.rs
AgeCommit message (Collapse)AuthorLines
2022-11-13Store a LocalDefId in hir::Variant & hir::Field.Camille GILLOT-2/+2
2022-11-11Tweak signatures in rustc_middle::hir::map.Camille GILLOT-1/+1
2022-11-07fix: lint against lint functionsRejyr-0/+1
fix: lint against the functions `LintContext::{lookup_with_diagnostics,lookup,struct_span_lint,lint}`, `TyCtxt::struct_lint_node`, `LintLevelsBuilder::struct_lint`.
2022-10-22Change `unknown_lint` applicability to `MaybeIncorrect`Samuel Moelius-1/+1
2022-10-12link lint function with `decorate` function param to `struct_lint_level`Maybe Waffle-0/+4
2022-10-01Add sanity Drop impl.Camille GILLOT-0/+8
2022-10-01Add FIXME.Camille GILLOT-0/+1
2022-10-01Replace retain with assertion.Camille GILLOT-2/+6
2022-10-01Add fast path without visiting.Camille GILLOT-12/+30
2022-10-01Simplify LintLevelsProvider.Camille GILLOT-18/+16
2022-10-01Compute by owner instead of HirId.Camille GILLOT-16/+110
2022-10-01Add FIXME.Camille GILLOT-0/+2
2022-10-01Comment LintLevelSets.Camille GILLOT-1/+12
2022-10-01Move lint level computation to rustc_middle::lint.Camille GILLOT-26/+32
2022-10-01Reduce visibilities and remove dead code.Camille GILLOT-17/+15
2022-10-01Move code to rustc_lint.Camille GILLOT-2/+69
2022-10-01Remove unused tool_name.Camille GILLOT-4/+0
2022-10-01Compute `lint_levels` by definitionDeadbeef-278/+310
2022-10-01Refactor rustc lint APIMaybe Waffle-59/+73
2022-09-22Revert "Auto merge of #101620 - cjgillot:compute_lint_levels_by_def, r=oli-obk"Camille GILLOT-396/+284
This reverts commit 2cb9a65684dba47c52de8fa938febf97a73e70a9, reversing changes made to 750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c.
2022-09-14Add FIXME.Camille GILLOT-0/+2
2022-09-14Comment LintLevelSets.Camille GILLOT-1/+12
2022-09-14Remove unused tool_name.Camille GILLOT-4/+0
2022-09-14Move some code and add comments.Camille GILLOT-32/+103
2022-09-14Compute `lint_levels` by definitionDeadbeef-278/+310
2022-09-12Allow tool-lints to specify a feature-gate tooWim Looman-2/+4
2022-09-01Always import all tracing macros for the entire crate instead of piecemeal ↵Oli Scherer-1/+0
by module
2022-08-23cleanup: commented lintsRejyr-3/+0
2022-08-22rename: `UnknownTool` to `UnknownToolInScopedLint`Rejyr-2/+2
2022-08-22migrate: `OverruledAttribute`Rejyr-12/+25
2022-08-22change: diagnostic `String` field to `Symbol`Rejyr-2/+1
2022-08-22migrate: `bad_attr` to `SessionDiagnostic`Rejyr-17/+25
2022-08-22migrate: `UnknownTool` error to `SessionDiagnostic`Rejyr-16/+11
2022-08-11Add visitors for PatField and ExprField.Eric Huss-34/+13
This helps simplify the code. It also fixes it to use the correct parent when lowering. One consequence is the `non_snake_case` lint needed to change the way it looked for parent nodes in a struct pattern. This also includes a small fix to use the correct `Target` for expression field attribute validation.
2022-08-11Honor lint level attributes in more places.Eric Huss-3/+42
This extends the LintLevelBuilder to handle lint level attributes on struct expression fields and pattern fields. This also updates the early lints to honor lint levels on generic parameters.
2022-08-11Simplify `rustc_hir::intravisit::Visitor::visit_variant_data`.Nicholas Nethercote-7/+2
It has four arguments that are never used. This avoids lots of argument passing in functions that feed into `visit_variant_data`.
2022-07-05lint: `LintDiagnosticBuilder` into `rustc_errors`David Wood-3/+3
Signed-off-by: David Wood <david.wood@huawei.com>
2022-06-30middle: translation in `LintDiagnosticBuilder`David Wood-2/+2
Accept `DiagnosticMessage` in `LintDiagnosticBuilder::build` so that lints can be built with translatable diagnostic messages. Signed-off-by: David Wood <david.wood@huawei.com>
2022-06-16Rollup merge of #97757 - xFrednet:rfc-2383-expect-with-force-warn, ↵Matthias Krüger-6/+16
r=wesleywiser,flip1995 Support lint expectations for `--force-warn` lints (RFC 2383) Rustc has a `--force-warn` flag, which overrides lint level attributes and forces the diagnostics to always be warn. This means, that for lint expectations, the diagnostic can't be suppressed as usual. This also means that the expectation would not be fulfilled, even if a lint had been triggered in the expected scope. This PR now also tracks the expectation ID in the `ForceWarn` level. I've also made some minor adjustments, to possibly catch more bugs and make the whole implementation more robust. This will probably conflict with https://github.com/rust-lang/rust/pull/97718. That PR should ideally be reviewed and merged first. The conflict itself will be trivial to fix. --- r? `@wesleywiser` cc: `@flip1995` since you've helped with the initial review and also discussed this topic with me. :upside_down_face: Follow-up of: https://github.com/rust-lang/rust/pull/87835 Issue: https://github.com/rust-lang/rust/issues/85549 Yeah, and that's it.
2022-06-16Support lint expectations for `--force-warn` lints (RFC 2383)xFrednet-6/+16
2022-06-13remove unnecessary `to_string` and `String::new`Takayuki Maeda-3/+3
2022-05-20Lint single-use-lifetimes on the AST.Camille GILLOT-1/+9
2022-05-08Move lint expectation checking into a separate query (RFC 2383)xFrednet-7/+18
2022-04-05span: move `MultiSpan`David Wood-2/+2
`MultiSpan` contains labels, which are more complicated with the introduction of diagnostic translation and will use types from `rustc_errors` - however, `rustc_errors` depends on `rustc_span` so `rustc_span` cannot use types like `DiagnosticMessage` without dependency cycles. Introduce a new `rustc_error_messages` crate that can contain `DiagnosticMessage` and `MultiSpan`. Signed-off-by: David Wood <david.wood@huawei.com>
2022-03-16rustc_error: make ErrorReported impossible to constructmark-1/+1
There are a few places were we have to construct it, though, and a few places that are more invasive to change. To do this, we create a constructor with a long obvious name.
2022-03-15Rollup merge of #94947 - Dylan-DPC:fix/typos, r=oli-obkMatthias Krüger-2/+2
fix typos Rework of #94603 which got closed as I was trying to unmerge and repush. This is a subset of changes from the original pr as I sed'd whatever typos I remembered from the original PR thanks to `@cuishuang` for the original PR
2022-03-15fix typosDylan DPC-2/+2
2022-03-14Rollup merge of #94670 - xFrednet:rfc-2383-expect-impl-after-party, ↵Matthias Krüger-8/+28
r=flip1995,wesleywiser Improve `expect` impl and handle `#[expect(unfulfilled_lint_expectations)]` (RFC 2383) This PR updates unstable `ExpectationIds` in stashed diagnostics and adds some asserts to ensure that the stored expectations are really empty in the end. Additionally, it handles the `#[expect(unfulfilled_lint_expectations)]` case. According to the [Errors and lints docs](https://rustc-dev-guide.rust-lang.org/diagnostics.html#diagnostic-levels) the `error` level should only be used _"when the compiler detects a problem that makes it unable to compile the program"_. As this isn't the case with `#[expect(unfulfilled_lint_expectations)]` I decided to only create a warning. To avoid adding a new lint only for this case, I simply emit a `unfulfilled_lint_expectations` diagnostic with an additional note. --- r? `@wesleywiser` I'm requesting a review from you since you reviewed the previous PR https://github.com/rust-lang/rust/pull/87835. You are welcome to reassign it if you're busy :upside_down_face: rfc: [RFC-2383](https://rust-lang.github.io/rfcs/2383-lint-reasons.html) tracking issue: https://github.com/rust-lang/rust/issues/85549 cc: `@flip1995` In case you're also interested in this :)
2022-03-09Add comment about `unfulfilled_lint_expectation` not being in a group (RFC 2383)xFrednet-0/+2
2022-03-08Fix docs, fix incorrect lint source in noteDavid Koloski-2/+3