Skip to content

Typeck break expr even if break is illegal - #118010

Merged
bors merged 1 commit into
rust-lang:masterfrom
gurry:117821-ice-no-type-for-local-var
Nov 21, 2023
Merged

Typeck break expr even if break is illegal#118010
bors merged 1 commit into
rust-lang:masterfrom
gurry:117821-ice-no-type-for-local-var

Conversation

@gurry

@gurrygurry commented Nov 17, 2023

Copy link
Copy Markdown
Contributor

Fixes#117821

We were returning immediately when encountering an illegal break. However, this caused problems later when the expr that the break was returning was evaluated during writeback. So now we don't return and instead simply set tainted by error. This lets typeck of break expr to occur even though we've encountered an illegal break.

@rustbot

Copy link
Copy Markdown
Collaborator

r? @wesleywiser

(rustbot has picked a reviewer for you, use r? to override)

@rustbotrustbot 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 Nov 17, 2023
Comment threadcompiler/rustc_hir_typeck/src/expr.rs Outdated
@gurry
gurryforce-pushed the 117821-ice-no-type-for-local-var branch from 2d1c998 to 75f8495CompareNovember 18, 2023 02:49
@gurry

Copy link
Copy Markdown
ContributorAuthor

@compiler-errors please review

@compiler-errors

compiler-errors commented Nov 20, 2023

Copy link
Copy Markdown
Contributor

@gurry: It has been 3 days, 2 of which have been the weekend. Please be patient, I will review it when I have time :)

I don't think it is necessary to ping a reviewer until it's been at least a week without review.

Comment threadcompiler/rustc_hir_typeck/src/expr.rs Outdated
@rustbotrustbot added 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-review Status: Awaiting review from the assignee but also interested parties. labels Nov 20, 2023
@gurry

Copy link
Copy Markdown
ContributorAuthor

@gurry: It has been 3 days, 2 of which have been the weekend. Please be patient, I will review it when I have time :)

I don't think it is necessary to ping a reviewer until it's been at least a week without review.

Apologies. I keep forgetting that you are just one person reviewing a large volume of PRs. Will be mindful of that next time.

We were earlier returning immediately when encountering an illegal break. However, this caused problems later
when the expr that the break was returning was evaluated during writeback. So now we don't return and instead
simply set tainted by error. This lets typeck of break expr to occur even though we've encountered an illegal break.
@gurry
gurryforce-pushed the 117821-ice-no-type-for-local-var branch from 75f8495 to 4657917CompareNovember 20, 2023 09:46
@gurry

Copy link
Copy Markdown
ContributorAuthor

@rustbot label -S-waiting-on-author +S-waiting-on-review

@rustbotrustbot 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 Nov 20, 2023
@compiler-errors

Copy link
Copy Markdown
Contributor

@bors r+ rollup

@bors

bors commented Nov 20, 2023

Copy link
Copy Markdown
Collaborator

📌 Commit 4657917 has been approved by compiler-errors

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 Nov 20, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 20, 2023
…iaskrgr
Rollup of 8 pull requests
Successful merges:
- rust-lang#117327 (Add documentation for some queries)
- rust-lang#117835 (Note about object lifetime defaults in does not live long enough error)
- rust-lang#117851 (Uplift `InferConst` to `rustc_type_ir`)
- rust-lang#117973 (test: Add test for async-move in 2015 Rust proc macro)
- rust-lang#117992 (Don't require intercrate mode for negative coherence)
- rust-lang#118010 (Typeck break expr even if break is illegal)
- rust-lang#118026 (Don't consider regions in `deref_into_dyn_supertrait` lint)
- rust-lang#118089 (intercrate_ambiguity_causes: handle self ty infer + reservation impls)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 20, 2023
…iaskrgr
Rollup of 8 pull requests
Successful merges:
- rust-lang#117327 (Add documentation for some queries)
- rust-lang#117835 (Note about object lifetime defaults in does not live long enough error)
- rust-lang#117851 (Uplift `InferConst` to `rustc_type_ir`)
- rust-lang#117973 (test: Add test for async-move in 2015 Rust proc macro)
- rust-lang#117992 (Don't require intercrate mode for negative coherence)
- rust-lang#118010 (Typeck break expr even if break is illegal)
- rust-lang#118026 (Don't consider regions in `deref_into_dyn_supertrait` lint)
- rust-lang#118089 (intercrate_ambiguity_causes: handle self ty infer + reservation impls)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 21, 2023
…iaskrgr
Rollup of 8 pull requests
Successful merges:
- rust-lang#117327 (Add documentation for some queries)
- rust-lang#117835 (Note about object lifetime defaults in does not live long enough error)
- rust-lang#117851 (Uplift `InferConst` to `rustc_type_ir`)
- rust-lang#117973 (test: Add test for async-move in 2015 Rust proc macro)
- rust-lang#117992 (Don't require intercrate mode for negative coherence)
- rust-lang#118010 (Typeck break expr even if break is illegal)
- rust-lang#118026 (Don't consider regions in `deref_into_dyn_supertrait` lint)
- rust-lang#118089 (intercrate_ambiguity_causes: handle self ty infer + reservation impls)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 1936e2c into rust-lang:masterNov 21, 2023
@rustbotrustbot added this to the 1.76.0 milestone Nov 21, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Nov 21, 2023
Rollup merge of rust-lang#118010 - gurry:117821-ice-no-type-for-local-var, r=compiler-errors
Typeck break expr even if break is illegal
Fixesrust-lang#117821
We were returning immediately when encountering an illegal break. However, this caused problems later when the expr that the break was returning was evaluated during writeback. So now we don't return and instead simply set tainted by error. This lets typeck of break expr to occur even though we've encountered an illegal break.
@gurry
gurry deleted the 117821-ice-no-type-for-local-var branch November 21, 2023 08:16
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

ICE: no type for local variable

5 participants

@gurry@rustbot@compiler-errors@bors@wesleywiser