Skip to content

Conversation

chenyukang
Copy link
Member

@chenyukang chenyukang commented May 28, 2025

Fixes #140683

After two times of parsing error, the recover_stmt_ constructs an error ast, then when we expand macors, the invalid tokenstream triggered ICE because of mismatched delims.

Expected { and get other tokens is an obvious error message, too much effort on recovery may introduce noise.

r? @nnethercote

@rustbot rustbot added 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 May 28, 2025
@rustbot
Copy link
Collaborator

rustbot commented May 28, 2025

This PR changes a file inside tests/crashes. If a crash was fixed, please move into the corresponding ui subdir and add 'Fixes #' to the PR description to autoclose the issue upon merge.

@chenyukang
Copy link
Member Author

The second error in original issue is also removed:

error: non-item in item list
 --> /tmp/icemaker_global_tempdir.QK3qBTtK0qNE/rustc_testrunner_tmpdir_reporting.enN8ewTmyed4/mvce.rs:4:1
  |
1 | impl T {
  |        - item list starts here
...
4 | }
  | ^
  | |
  | non-item starts here
  | item list ends here

@nnethercote
Copy link
Contributor

@bors r+

@bors
Copy link
Collaborator

bors commented May 28, 2025

📌 Commit adcd0bf has been approved by nnethercote

It is now in the queue for this repository.

@bors bors 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 May 28, 2025
tgross35 added a commit to tgross35/rust that referenced this pull request May 28, 2025
…tracts, r=nnethercote

Fix ICE in tokenstream with contracts from parser recovery

Fixes rust-lang#140683

After two times of parsing error, the `recover_stmt_` constructs an error ast, then when we expand macors, the invalid tokenstream triggered ICE because of mismatched delims.

Expected `{` and get other tokens is an obvious error message, too much effort on recovery may introduce noise.

r? `@nnethercote`
bors added a commit that referenced this pull request May 28, 2025
Rollup of 8 pull requests

Successful merges:

 - #140369 (Add data_ptr method to Mutex and RwLock)
 - #140697 (Split `autodiff` into `autodiff_forward` and `autodiff_reverse`)
 - #141404 (Improve intrinsic handling in cg_ssa)
 - #141407 (Refactor the two-phase check for impls and impl items)
 - #141411 (rustdoc: linking to a local proc macro no longer warns)
 - #141548 (consider glob imports in cfg suggestion)
 - #141627 (Drop-build cleanups)
 - #141670 (Fix ICE in tokenstream with contracts from parser recovery)

r? `@ghost`
`@rustbot` modify labels: rollup
jhpratt added a commit to jhpratt/rust that referenced this pull request May 28, 2025
…tracts, r=nnethercote

Fix ICE in tokenstream with contracts from parser recovery

Fixes rust-lang#140683

After two times of parsing error, the `recover_stmt_` constructs an error ast, then when we expand macors, the invalid tokenstream triggered ICE because of mismatched delims.

Expected `{` and get other tokens is an obvious error message, too much effort on recovery may introduce noise.

r? ``@nnethercote``
bors added a commit that referenced this pull request May 28, 2025
Rollup of 8 pull requests

Successful merges:

 - #140369 (Add data_ptr method to Mutex and RwLock)
 - #140697 (Split `autodiff` into `autodiff_forward` and `autodiff_reverse`)
 - #141404 (Improve intrinsic handling in cg_ssa)
 - #141407 (Refactor the two-phase check for impls and impl items)
 - #141411 (rustdoc: linking to a local proc macro no longer warns)
 - #141548 (consider glob imports in cfg suggestion)
 - #141627 (Drop-build cleanups)
 - #141670 (Fix ICE in tokenstream with contracts from parser recovery)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit that referenced this pull request May 28, 2025
Rollup of 7 pull requests

Successful merges:

 - #140369 (Add data_ptr method to Mutex and RwLock)
 - #140697 (Split `autodiff` into `autodiff_forward` and `autodiff_reverse`)
 - #141404 (Improve intrinsic handling in cg_ssa)
 - #141411 (rustdoc: linking to a local proc macro no longer warns)
 - #141548 (consider glob imports in cfg suggestion)
 - #141627 (Drop-build cleanups)
 - #141670 (Fix ICE in tokenstream with contracts from parser recovery)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit d6b1108 into rust-lang:master May 28, 2025
7 checks passed
rust-timer added a commit that referenced this pull request May 28, 2025
Rollup merge of #141670 - chenyukang:yukang-fix-ice-from-contracts, r=nnethercote

Fix ICE in tokenstream with contracts from parser recovery

Fixes #140683

After two times of parsing error, the `recover_stmt_` constructs an error ast, then when we expand macors, the invalid tokenstream triggered ICE because of mismatched delims.

Expected `{` and get other tokens is an obvious error message, too much effort on recovery may introduce noise.

r? ```@nnethercote```
@rustbot rustbot added this to the 1.89.0 milestone May 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant 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.

ICE: in tokenstream with contracts in impl
4 participants