about summary refs log tree commit diff
path: root/compiler/rustc_lint/src/context
AgeCommit message (Collapse)AuthorLines
2024-12-15Access `TyCtxt` from early diagnostic decorationUrgau-824/+0
2024-12-14Rollup merge of #133221 - Urgau:check-cfg-macro-diag, r=jieyouxuMatthias Krüger-10/+58
Add external macros specific diagnostics for check-cfg This PR adds specific check-cfg diagnostics for unexpected cfg in external macros. As well as hiding the some of the Cargo specific help/suggestions as they distraction for external macros and are generally not the right solution. Follow-up to #132577 `@rustbot` label +L-unexpected_cfgs r? compiler
2024-11-25fix confusing diagnostic for reserved `##`Peter Jaszkowiak-2/+6
2024-11-19Add external macro specific diagnostic to check-cfgUrgau-8/+49
2024-11-19Disable most Cargo check-cfg help in external macrosUrgau-3/+10
2024-10-08Reserve guarded string literals (RFC 3593)Peter Jaszkowiak-0/+3
2024-10-05Make deprecated_cfg_attr_crate_type_name a hard errorest31-6/+0
2024-09-22Reformat using the new identifier sorting from rustfmtMichael Goulet-5/+5
2024-09-18Improve handling of raw-idents in check-cfgUrgau-3/+11
2024-09-07Rollup merge of #126452 - compiler-errors:raw-lifetimes, r=spastorinoMatthias Krüger-0/+4
Implement raw lifetimes and labels (`'r#ident`) This PR does two things: 1. Reserve lifetime prefixes, e.g. `'prefix#lt` in edition 2021. 2. Implements raw lifetimes, e.g. `'r#async` in edition 2021. This PR additionally extends the `keyword_idents_2024` lint to also check lifetimes. cc `@traviscross` r? parser
2024-09-06Add initial support for raw lifetimesMichael Goulet-0/+4
2024-09-06elided_named_lifetimes: manually implement `LintDiagnostic`Pavel Grigorenko-25/+7
2024-09-06elided_named_lifetimes: add suggestionsPavel Grigorenko-15/+29
2024-09-06elided_named_lifetimes: unify lint def & pass MissingLifetimeKindPavel Grigorenko-10/+13
2024-09-02chore: Fix typos in 'compiler' (batch 2)Alexander Cyon-1/+1
2024-08-31Implement `elided_named_lifetimes` lintPavel Grigorenko-0/+13
2024-08-07Disallow setting built-in cfgs via set the command-lineUrgau-0/+3
2024-07-29Reformat `use` declarations.Nicholas Nethercote-3/+5
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-07-01Improve well known value check-cfg diagnostic for the standard libraryUrgau-6/+12
2024-06-24resolve: Implement a lint for out-of-scope use of `macro_rules`Vadim Petrochenkov-0/+3
2024-06-23Add hard error and migration lint for unsafe attrscarbotaniuman-0/+10
2024-06-14Resolve elided lifetimes in assoc const to static if no other lifetimes are ↵Michael Goulet-3/+12
in scope
2024-06-11Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril许杰友 Jieyou Xu (Joe)-2/+3
Spruce up the diagnostics of some early lints Implement the various "*(note to myself) in a follow-up PR we should turn parts of this message into a subdiagnostic (help msg or even struct sugg)*" drive-by comments I left in #124417 during my review. For context, before #124417, only a few early lints touched/decorated/customized their diagnostic because the former API made it a bit awkward. Likely because of that, things that should've been subdiagnostics were just crammed into the primary message. This PR rectifies this.
2024-06-06Auto merge of #124482 - spastorino:unsafe-extern-blocks, r=oli-obkbors-0/+3
Unsafe extern blocks This implements RFC 3484. Tracking issue #123743 and RFC https://github.com/rust-lang/rfcs/pull/3484 This is better reviewed commit by commit.
2024-06-05Make MISSING_UNSAFE_ON_EXTERN lint emit future compat info with suggestion ↵Santiago Pastorino-2/+2
to prepend unsafe
2024-06-04Make extern blocks without unsafe warn in edition 2024Santiago Pastorino-0/+3
2024-06-03Spruce up the diagnostics of some early lintsLeón Orell Valerian Liehr-2/+3
2024-05-28Convert `proc_macro_back_compat` lint to an unconditional error.Nicholas Nethercote-3/+0
We still check for the `rental`/`allsorts-rental` crates. But now if they are detected we just emit a fatal error, instead of emitting a warning and providing alternative behaviour. The original "hack" implementing alternative behaviour was added in #73345. The lint was added in #83127. The tracking issue is #83125. The direct motivation for the change is that providing the alternative behaviour is interfering with #125174 and follow-on work.
2024-05-27Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercotebors-230/+153
[perf] Delay the construction of early lint diag structs Attacks some of the perf regressions from https://github.com/rust-lang/rust/pull/124417#issuecomment-2123700666. See individual commits for details. The first three commits are not strictly necessary. However, the 2nd one (06bc4fc67145e3a7be9b5a2cf2b5968cef36e587, *Remove `LintDiagnostic::msg`*) makes the main change way nicer to implement. It's also pretty sweet on its own if I may say so myself.
2024-05-24Auto merge of #125463 - GuillaumeGomez:rollup-287wx4y, r=GuillaumeGomezbors-12/+18
Rollup of 6 pull requests Successful merges: - #125263 (rust-lld: fallback to rustc's sysroot if there's no path to the linker in the target sysroot) - #125345 (rustc_codegen_llvm: add support for writing summary bitcode) - #125362 (Actually use TAIT instead of emulating it) - #125412 (Don't suggest adding the unexpected cfgs to the build-script it-self) - #125445 (Migrate `run-make/rustdoc-with-short-out-dir-option` to `rmake.rs`) - #125452 (Cleanup check-cfg handling in core and std) r? `@ghost` `@rustbot` modify labels: rollup
2024-05-23Remove `#[macro_use] extern crate tracing` from `rustc_lint`.Nicholas Nethercote-0/+1
2024-05-23Delay the construction of early lint diag structsLeón Orell Valerian Liehr-230/+153
Fixes a slew of perf regressions.
2024-05-22Don't suggest adding the unexpected cfgs the build-script it-selfUrgau-12/+18
2024-05-21Make early lints translatableXiretza-447/+336
2024-05-21Convert uses of BuiltinLintDiag::Normal to custom variantsXiretza-12/+125
This ensures all diagnostic messages are created at diagnostic emission time, making them translatable.
2024-05-21Port DeprecatedMacro to diag structsXiretza-4/+21
2024-05-21Generate lint diagnostic message from BuiltinLintDiagXiretza-14/+136
Translation of the lint message happens when the actual diagnostic is created, not when the lint is buffered. Generating the message from BuiltinLintDiag ensures that all required data to construct the message is preserved in the LintBuffer, eventually allowing the messages to be moved to fluent. Remove the `msg` field from BufferedEarlyLint, it is either generated from the data in the BuiltinLintDiag or stored inside BuiltinLintDiag::Normal.
2024-05-21Convert unexpected_cfg_{name,value} to struct diagnosticsXiretza-152/+151
2024-05-21Convert NAMED_ASM_LABELS lint to diag structXiretza-4/+0
2024-05-20Fix quote escaping inside check-cfg valueUrgau-3/+2
2024-05-19Refer to the Cargo specific doc in the check-cfg diagnosticsUrgau-2/+4
2024-05-19Prefer suggesting string-literal for Cargo `check-cfg` lint configUrgau-18/+29
2024-05-16Update `unexpected_cfgs` lint for Cargo new `check-cfg` configUrgau-6/+8
2024-05-15Add `on_unimplemented" typo suggestionsmejrs-0/+8
2024-05-04Update Cargo diagnostics in check-cfgUrgau-4/+4
2024-04-29Remove `extern crate rustc_middle` from numerous crates.Nicholas Nethercote-0/+1
2024-04-21Move "elided lifetime in path" to subdiagnostic structXiretza-8/+10
This requires nested subdiagnostics.
2024-04-15Move --check-cfg documentation to stable booksUrgau-2/+2
2024-04-11Rollup merge of #122954 - fmease:defined-by-extern-prelude, r=petrochenkovLeón Orell Valerian Liehr-1/+1
Be more specific when flagging imports as redundant due to the extern prelude There are multiple distinct kinds of [preludes](https://doc.rust-lang.org/reference/names/preludes.html). Be more specific when flagging imports as redundant due to the [extern prelude](https://doc.rust-lang.org/reference/names/preludes.html#extern-prelude). r? Nilstrieb or compiler
2024-04-09Add a helper for extending a span to include any trailing whitespaceMichael Goulet-4/+1