diff options
| author | bors <bors@rust-lang.org> | 2025-06-18 06:25:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-06-18 06:25:21 +0000 |
| commit | 1bb335244c311a07cee165c28c553c869e6f64a9 (patch) | |
| tree | ab7ce41f86ed7f64188504f84acb3fb137ca1fc9 /compiler/rustc_parse | |
| parent | 27733d46d79f4eb92e240fbba502c43022665735 (diff) | |
| parent | 81f8b570b9dd5d7bef27e1f1391dc73eb8fa4ff6 (diff) | |
| download | rust-1bb335244c311a07cee165c28c553c869e6f64a9.tar.gz rust-1bb335244c311a07cee165c28c553c869e6f64a9.zip | |
Auto merge of #138165 - jdonszelmann:inline, r=oli-obk
Rewrite `inline` attribute parser to use new infrastructure and improve diagnostics for all parsed attributes r? `@oli-obk` This PR: - creates a new parser for inline attributes - creates consistent error messages and error codes between attribute parsers; inline and others - as such changes a few error messages for other attributes to be (in my eyes) much more consistent - tests ast-lowering lints introduced by rust-lang/rust#138164 since this is now useful for the first time - Coalesce some useless error codes Builds on top of rust-lang/rust#138164 Closes rust-lang/rust#137950
Diffstat (limited to 'compiler/rustc_parse')
| -rw-r--r-- | compiler/rustc_parse/src/validate_attr.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/compiler/rustc_parse/src/validate_attr.rs b/compiler/rustc_parse/src/validate_attr.rs index 555ab3cdb2b..b3096e46b09 100644 --- a/compiler/rustc_parse/src/validate_attr.rs +++ b/compiler/rustc_parse/src/validate_attr.rs @@ -282,11 +282,22 @@ fn emit_malformed_attribute( name: Symbol, template: AttributeTemplate, ) { + // attrs with new parsers are locally validated so excluded here + if matches!( + name, + sym::inline + | sym::rustc_force_inline + | sym::rustc_confusables + | sym::repr + | sym::deprecated + ) { + return; + } + // Some of previously accepted forms were used in practice, // report them as warnings for now. - let should_warn = |name| { - matches!(name, sym::doc | sym::ignore | sym::inline | sym::link | sym::test | sym::bench) - }; + let should_warn = + |name| matches!(name, sym::doc | sym::ignore | sym::link | sym::test | sym::bench); let error_msg = format!("malformed `{name}` attribute input"); let mut suggestions = vec![]; |
