Skip to content

Exhaustively handle parsed attributes in CheckAttr - #140372

Merged
bors merged 2 commits into
rust-lang:masterfrom
mejrs:attrs
Jun 10, 2025
Merged

Exhaustively handle parsed attributes in CheckAttr#140372
bors merged 2 commits into
rust-lang:masterfrom
mejrs:attrs

Conversation

@mejrs

Copy link
Copy Markdown
Member

This pr

  • Deletes the unused DiagnosticAttribute struct and variant
  • Comments the AttributeKind enum
  • The match in CheckAttrVisitor is now exhaustive for AttributeKind::Parsed.
  • Moved some checks around after that change

I did not thoroughly check that there's no duplicated logic between this pass and the attribute parsing but I think it's OK.

r? @jdonszelmann

@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 27, 2025
@rustbot

Copy link
Copy Markdown
Collaborator

Some changes occurred in compiler/rustc_passes/src/check_attr.rs

cc @jdonszelmann

Some changes occurred in compiler/rustc_attr_data_structures

cc @jdonszelmann

@rust-log-analyzer

This comment has been minimized.

Comment threadcompiler/rustc_attr_data_structures/src/attributes.rs Outdated
Comment threadcompiler/rustc_attr_data_structures/src/attributes.rs Outdated
Comment threadcompiler/rustc_attr_data_structures/src/attributes.rs Outdated
Comment threadcompiler/rustc_attr_data_structures/src/attributes.rs Outdated
@mejrs
mejrsforce-pushed the attrs branch 2 times, most recently from e88b142 to 2e609cdCompareApril 28, 2025 14:22
@mejrs

Copy link
Copy Markdown
MemberAuthor

Thanks @jieyouxu . I think I read the CI error wrong and that's why I added the <> 😆

@mejrsmejrs changed the title Force exhaustive handling of parsed attributesExhaustively handle parsed attributes in CheckAttrApr 29, 2025
@mejrs

mejrs commented Jun 3, 2025

Copy link
Copy Markdown
MemberAuthor

r? compiler

@jdonszelmann

Copy link
Copy Markdown
Contributor

I'm sorry for the long wait, however I finally started getting time to review these so I took it back and will review today :)

Comment threadcompiler/rustc_attr_data_structures/src/attributes.rs Outdated
}
}

#[derive(Clone, Debug, Encodable, Decodable, HashStable_Generic, PrintAttribute)]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add this back in soon, but that's ok

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to do that actually, I just thought there shouldn't be a bunch of dead code here at this time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, and feel free to. I just filed #138164, #138165 and #138291 which might help with that

@jdonszelmann

Copy link
Copy Markdown
Contributor

Some minor comments, but looks good overall

@jdonszelmann

Copy link
Copy Markdown
Contributor

@rustbot author

@rustbotrustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 6, 2025
@rustbot

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@rustbotrustbot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jun 6, 2025
@rustbot

This comment has been minimized.

@mejrs

mejrs commented Jun 6, 2025

Copy link
Copy Markdown
MemberAuthor

@rustbot ready

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 6, 2025
@jdonszelmannjdonszelmann added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 9, 2025
@jdonszelmann

jdonszelmann commented Jun 9, 2025

Copy link
Copy Markdown
Contributor

bors-r-plus

@bors

bors commented Jun 9, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 5fdacfe has been approved by jdonszelmann

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 9, 2025
@jdonszelmann

Copy link
Copy Markdown
Contributor

@bors rollup

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 10, 2025
Exhaustively handle parsed attributes in CheckAttr
This pr
- Deletes the unused `DiagnosticAttribute ` struct and variant
- Comments the `AttributeKind ` enum
- The match in `CheckAttrVisitor` is now exhaustive for `AttributeKind::Parsed`.
- Moved some checks around after that change
I did *not* thoroughly check that there's no duplicated logic between this pass and the attribute parsing but I think it's OK.
r? `@jdonszelmann`
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 13 pull requests
Successful merges:
- #134442 (Specify the behavior of `file!`)
- #134841 (Look at proc-macro attributes when encountering unknown attribute)
- #140372 (Exhaustively handle parsed attributes in CheckAttr)
- #140766 (Stabilize keylocker)
- #141061 (Change __rust_no_alloc_shim_is_unstable to be a function)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142101 (core::ptr: deduplicate more method docs)
- #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142258 (platform-support.md: Mention specific Linux kernel version or later)
- #142260 (Miri subtree update)
- #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142275 (rustdoc: Refractor `clean_ty_generics`)
r? `@ghost`
`@rustbot` modify labels: rollup
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request Jun 10, 2025
Exhaustively handle parsed attributes in CheckAttr
This pr
- Deletes the unused `DiagnosticAttribute ` struct and variant
- Comments the `AttributeKind ` enum
- The match in `CheckAttrVisitor` is now exhaustive for `AttributeKind::Parsed`.
- Moved some checks around after that change
I did *not* thoroughly check that there's no duplicated logic between this pass and the attribute parsing but I think it's OK.
r? ``@jdonszelmann``
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 12 pull requests
Successful merges:
- #134442 (Specify the behavior of `file!`)
- #134841 (Look at proc-macro attributes when encountering unknown attribute)
- #140372 (Exhaustively handle parsed attributes in CheckAttr)
- #140766 (Stabilize keylocker)
- #141061 (Change __rust_no_alloc_shim_is_unstable to be a function)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142101 (core::ptr: deduplicate more method docs)
- #142258 (platform-support.md: Mention specific Linux kernel version or later)
- #142260 (Miri subtree update)
- #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142275 (rustdoc: Refractor `clean_ty_generics`)
r? `@ghost`
`@rustbot` modify labels: rollup
fmease added a commit to fmease/rust that referenced this pull request Jun 10, 2025
Exhaustively handle parsed attributes in CheckAttr
This pr
- Deletes the unused `DiagnosticAttribute ` struct and variant
- Comments the `AttributeKind ` enum
- The match in `CheckAttrVisitor` is now exhaustive for `AttributeKind::Parsed`.
- Moved some checks around after that change
I did *not* thoroughly check that there's no duplicated logic between this pass and the attribute parsing but I think it's OK.
r? ```@jdonszelmann```
@fmeasefmease mentioned this pull request Jun 10, 2025
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 14 pull requests
Successful merges:
- #134442 (Specify the behavior of `file!`)
- #134841 (Look at proc-macro attributes when encountering unknown attribute)
- #140372 (Exhaustively handle parsed attributes in CheckAttr)
- #140766 (Stabilize keylocker)
- #141642 (Note the version and PR of removed features when using it)
- #141909 (Add central execution context to bootstrap)
- #141992 (use `#[naked]` for `__rust_probestack`)
- #142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
- #142124 (Allow transmute casts in pre-runtime-MIR)
- #142240 (deduplicate the rest of AST walker functions)
- #142258 (platform-support.md: Mention specific Linux kernel version or later)
- #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- #142271 (compiler: fn ptrs should hit different lints based on ABI)
- #142288 (const_eval: fix some outdated comments)
r? `@ghost`
`@rustbot` modify labels: rollup
@fmeasefmease mentioned this pull request Jun 10, 2025
bors added a commit that referenced this pull request Jun 10, 2025
Rollup of 16 pull requests
Successful merges:
- #134442 (Specify the behavior of `file!`)
- #140372 (Exhaustively handle parsed attributes in CheckAttr)
- #140766 (Stabilize keylocker)
- #141642 (Note the version and PR of removed features when using it)
- #141818 (Don't create .msi installer for gnullvm hosts)
- #141909 (Add central execution context to bootstrap)
- #141992 (use `#[naked]` for `__rust_probestack`)
- #142101 (core::ptr: deduplicate more method docs)
- #142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
- #142124 (Allow transmute casts in pre-runtime-MIR)
- #142240 (deduplicate the rest of AST walker functions)
- #142258 (platform-support.md: Mention specific Linux kernel version or later)
- #142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- #142271 (compiler: fn ptrs should hit different lints based on ABI)
- #142275 (rustdoc: Refractor `clean_ty_generics`)
- #142288 (const_eval: fix some outdated comments)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 0f16ccb into rust-lang:masterJun 10, 2025
@rustbotrustbot added this to the 1.89.0 milestone Jun 10, 2025
rust-timer added a commit that referenced this pull request Jun 10, 2025
Rollup merge of #140372 - mejrs:attrs, r=jdonszelmann
Exhaustively handle parsed attributes in CheckAttr
This pr
- Deletes the unused `DiagnosticAttribute ` struct and variant
- Comments the `AttributeKind ` enum
- The match in `CheckAttrVisitor` is now exhaustive for `AttributeKind::Parsed`.
- Moved some checks around after that change
I did *not* thoroughly check that there's no duplicated logic between this pass and the attribute parsing but I think it's OK.
r? ````@jdonszelmann````
tgross35 pushed a commit to tgross35/compiler-builtins that referenced this pull request Jun 14, 2025
Rollup of 16 pull requests
Successful merges:
- rust-lang/rust#134442 (Specify the behavior of `file!`)
- rust-lang/rust#140372 (Exhaustively handle parsed attributes in CheckAttr)
- rust-lang/rust#140766 (Stabilize keylocker)
- rust-lang/rust#141642 (Note the version and PR of removed features when using it)
- rust-lang/rust#141818 (Don't create .msi installer for gnullvm hosts)
- rust-lang/rust#141909 (Add central execution context to bootstrap)
- rust-lang/rust#141992 (use `#[naked]` for `__rust_probestack`)
- rust-lang/rust#142101 (core::ptr: deduplicate more method docs)
- rust-lang/rust#142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
- rust-lang/rust#142124 (Allow transmute casts in pre-runtime-MIR)
- rust-lang/rust#142240 (deduplicate the rest of AST walker functions)
- rust-lang/rust#142258 (platform-support.md: Mention specific Linux kernel version or later)
- rust-lang/rust#142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- rust-lang/rust#142271 (compiler: fn ptrs should hit different lints based on ABI)
- rust-lang/rust#142275 (rustdoc: Refractor `clean_ty_generics`)
- rust-lang/rust#142288 (const_eval: fix some outdated comments)
r? `@ghost`
`@rustbot` modify labels: rollup
tgross35 pushed a commit to rust-lang/compiler-builtins that referenced this pull request Jan 31, 2026
Rollup of 16 pull requests
Successful merges:
- rust-lang/rust#134442 (Specify the behavior of `file!`)
- rust-lang/rust#140372 (Exhaustively handle parsed attributes in CheckAttr)
- rust-lang/rust#140766 (Stabilize keylocker)
- rust-lang/rust#141642 (Note the version and PR of removed features when using it)
- rust-lang/rust#141818 (Don't create .msi installer for gnullvm hosts)
- rust-lang/rust#141909 (Add central execution context to bootstrap)
- rust-lang/rust#141992 (use `#[naked]` for `__rust_probestack`)
- rust-lang/rust#142101 (core::ptr: deduplicate more method docs)
- rust-lang/rust#142102 (docs: Small clarification on the usage of read_to_string and read_to_end trait methods)
- rust-lang/rust#142124 (Allow transmute casts in pre-runtime-MIR)
- rust-lang/rust#142240 (deduplicate the rest of AST walker functions)
- rust-lang/rust#142258 (platform-support.md: Mention specific Linux kernel version or later)
- rust-lang/rust#142262 (Mark `core::slice::memchr` as `#[doc(hidden)]`)
- rust-lang/rust#142271 (compiler: fn ptrs should hit different lints based on ABI)
- rust-lang/rust#142275 (rustdoc: Refractor `clean_ty_generics`)
- rust-lang/rust#142288 (const_eval: fix some outdated comments)
r? `@ghost`
`@rustbot` modify labels: rollup
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants

@mejrs@rustbot@rust-log-analyzer@jdonszelmann@bors@jieyouxu@BoxyUwU