Handle macro invocation in attribute during parse#146579
Handle macro invocation in attribute during parse#146579bors merged 4 commits intorust-lang:mainfrom
Conversation
|
Some changes occurred in compiler/rustc_attr_parsing |
|
r? @davidtwco rustbot has assigned @davidtwco. Use |
| let before = self.parser.token.span.shrink_to_lo(); | ||
| while let token::Ident(..) = self.parser.token.kind { | ||
| self.parser.bump(); | ||
| if self.parser.look_ahead(1, |t| matches!(t.kind, token::TokenKind::Bang)) { |
There was a problem hiding this comment.
What if we meet:
#[deprecated(note = a!=b)]
struct X;There was a problem hiding this comment.
Silly me, I organized things thinking of only parsing a macro and not a statement. I think that parse_stmt_without_recovery will fail because of a lack of ;, but I can look at the stmt.kind instead. It should give the error with no note or structured suggestion.
There was a problem hiding this comment.
I'll wait with further review for this
There was a problem hiding this comment.
generally looking good though :)
|
r? jdonszelmann |
|
r? author |
This comment was marked as resolved.
This comment was marked as resolved.
f48a21e to
811d2e7
Compare
This comment has been minimized.
This comment has been minimized.
|
@rustbot author |
|
Reminder, once the PR becomes ready for a review, use |
This comment was marked as outdated.
This comment was marked as outdated.
811d2e7 to
9ca8198
Compare
This comment has been minimized.
This comment has been minimized.
|
@rustbot ready |
Handle macro invocation in attribute during parse
```
error: expected a literal (`1u8`, `1.0f32`, `"string"`, etc.) here, found macro `concat`
--> $DIR/macro-in-attribute.rs:4:21
|
LL | #[deprecated(note = concat!("a", "b"))]
| ^^^^^^^^^^^^^^^^^ macros are not allowed here
```
Fix rust-lang#146325.
Handle macro invocation in attribute during parse
```
error: expected a literal (`1u8`, `1.0f32`, `"string"`, etc.) here, found macro `concat`
--> $DIR/macro-in-attribute.rs:4:21
|
LL | #[deprecated(note = concat!("a", "b"))]
| ^^^^^^^^^^^^^^^^^ macros are not allowed here
```
Fix rust-lang#146325.
|
The conflicting PR merged, @estebank could you rebase? |
```
error: expected a literal (`1u8`, `1.0f32`, `"string"`, etc.) here, found macro `concat`
--> $DIR/macro-in-attribute.rs:4:21
|
LL | #[deprecated(note = concat!("a", "b"))]
| ^^^^^^^^^^^^^^^^^ macros are not allowed here
```
9ca8198 to
761cb57
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
@bors r=jdonszelmann rollup |
Rollup of 5 pull requests Successful merges: - #144938 (Enable `outline-atomics` by default on more AArch64 platforms) - #146579 (Handle macro invocation in attribute during parse) - #149400 (unstable proc_macro tracked::* rename/restructure) - #149664 (attempt to fix unreachable code regression ) - #149806 (Mirror `ubuntu:24.04` on ghcr) Failed merges: - #149789 (Cleanup in the attribute parsers) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 5 pull requests Successful merges: - #144938 (Enable `outline-atomics` by default on more AArch64 platforms) - #146579 (Handle macro invocation in attribute during parse) - #149400 (unstable proc_macro tracked::* rename/restructure) - #149664 (attempt to fix unreachable code regression ) - #149806 (Mirror `ubuntu:24.04` on ghcr) Failed merges: - #149789 (Cleanup in the attribute parsers) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #146579 - estebank:issue-146325, r=jdonszelmann Handle macro invocation in attribute during parse ``` error: expected a literal (`1u8`, `1.0f32`, `"string"`, etc.) here, found macro `concat` --> $DIR/macro-in-attribute.rs:4:21 | LL | #[deprecated(note = concat!("a", "b"))] | ^^^^^^^^^^^^^^^^^ macros are not allowed here ``` Fix #146325.
Rollup of 5 pull requests Successful merges: - rust-lang/rust#144938 (Enable `outline-atomics` by default on more AArch64 platforms) - rust-lang/rust#146579 (Handle macro invocation in attribute during parse) - rust-lang/rust#149400 (unstable proc_macro tracked::* rename/restructure) - rust-lang/rust#149664 (attempt to fix unreachable code regression ) - rust-lang/rust#149806 (Mirror `ubuntu:24.04` on ghcr) Failed merges: - rust-lang/rust#149789 (Cleanup in the attribute parsers) r? `@ghost` `@rustbot` modify labels: rollup
|
@rust-timer build baf3ab6 Trying if this regressed perf. in #149818 (although quite unlikely). |
This comment has been minimized.
This comment has been minimized.
|
Finished benchmarking commit (baf3ab6): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. @bors rollup=never Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 3.2%, secondary -3.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.1%, secondary -2.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 471.772s -> 471.951s (0.04%) |
Rollup of 5 pull requests Successful merges: - rust-lang/rust#144938 (Enable `outline-atomics` by default on more AArch64 platforms) - rust-lang/rust#146579 (Handle macro invocation in attribute during parse) - rust-lang/rust#149400 (unstable proc_macro tracked::* rename/restructure) - rust-lang/rust#149664 (attempt to fix unreachable code regression ) - rust-lang/rust#149806 (Mirror `ubuntu:24.04` on ghcr) Failed merges: - rust-lang/rust#149789 (Cleanup in the attribute parsers) r? `@ghost` `@rustbot` modify labels: rollup
Fix #146325.