Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Also consider TAIT to be uncomputable if the MIR body is tainted #117416

Merged
merged 1 commit into from
Oct 31, 2023

Conversation

compiler-errors
Copy link
Member

Not totally sure if this is the best solution. We could, alternatively, look at the hir typeck results and try to take a type from there instead of just falling back to type error, inferring u8 instead of {type error}. Not certain it really matters, though.

Happy to iterate on this.

Fixes #117413

r? @oli-obk cc @Nadrieril

@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 Oct 30, 2023
@oli-obk
Copy link
Contributor

oli-obk commented Oct 31, 2023

I was considering whether to replace the hidden types in the typeck and borrowck results with Error if the results were tainted, but I think it's ok/good to be able to obtain the real type manually if necessary, and only have the canonical type_of path turn it into an error

@bors r+

@bors
Copy link
Contributor

bors commented Oct 31, 2023

📌 Commit 48491c1 has been approved by oli-obk

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 Oct 31, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 31, 2023
…r=oli-obk

Also consider TAIT to be uncomputable if the MIR body is tainted

Not totally sure if this is the best solution. We could, alternatively, look at the hir typeck results and try to take a type from there instead of just falling back to type error, inferring `u8` instead of `{type error}`. Not certain it really matters, though.

Happy to iterate on this.

Fixes rust-lang#117413

r? `@oli-obk` cc `@Nadrieril`
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 31, 2023
… r=oli-obk

Build a better MIR body when errors are encountered

Doesn't really have much of an effect on its own, but it does lead to a less confusing phony MIR body being generated when an error is detected during THIR/MIR/match building. This was quite confusing when I hacked `-Zunpretty=mir` to emit `mir_built` rather than `instance_mir`.

This coincidentually also fixes rust-lang#117413, but not as generally as rust-lang#117416.

cc `@Nadrieril`
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 31, 2023
…iaskrgr

Rollup of 5 pull requests

Successful merges:

 - rust-lang#116267 (Some codegen cleanups around SIMD checks)
 - rust-lang#116712 (When encountering unclosed delimiters during lexing, check for diff markers)
 - rust-lang#117416 (Also consider TAIT to be uncomputable if the MIR body is tainted)
 - rust-lang#117421 (coverage: Replace impossible `coverage::Error` with assertions)
 - rust-lang#117438 (Do not ICE on constant evaluation failure in GVN.)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 8daa317 into rust-lang:master Oct 31, 2023
11 checks passed
@rustbot rustbot added this to the 1.75.0 milestone Oct 31, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Oct 31, 2023
Rollup merge of rust-lang#117416 - compiler-errors:tait-in-bad-body, r=oli-obk

Also consider TAIT to be uncomputable if the MIR body is tainted

Not totally sure if this is the best solution. We could, alternatively, look at the hir typeck results and try to take a type from there instead of just falling back to type error, inferring `u8` instead of `{type error}`. Not certain it really matters, though.

Happy to iterate on this.

Fixes rust-lang#117413

r? ``@oli-obk`` cc ``@Nadrieril``
bors-ferrocene bot added a commit to ferrocene/ferrocene that referenced this pull request Nov 1, 2023
78: Automated pull from upstream `master` r=tshepang a=github-actions[bot]


This PR pulls the following changes from the upstream repository:

* rust-lang/rust#113970
* rust-lang/rust#117459
  * rust-lang/rust#117451
  * rust-lang/rust#117439
  * rust-lang/rust#117417
  * rust-lang/rust#117388
  * rust-lang/rust#113241
* rust-lang/rust#117462
* rust-lang/rust#117450
* rust-lang/rust#117407
* rust-lang/rust#117444
  * rust-lang/rust#117438
  * rust-lang/rust#117421
  * rust-lang/rust#117416
  * rust-lang/rust#116712
  * rust-lang/rust#116267
* rust-lang/rust#117377
* rust-lang/rust#117419



Co-authored-by: Alexis (Poliorcetics) Bourget <ab_github@poliorcetiq.eu>
Co-authored-by: Esteban Küber <esteban@kuber.com.ar>
Co-authored-by: David Tolnay <dtolnay@gmail.com>
Co-authored-by: Celina G. Val <celinval@amazon.com>
Co-authored-by: Michael Goulet <michael@errs.io>
Co-authored-by: bors <bors@rust-lang.org>
Co-authored-by: Camille GILLOT <gillot.camille@gmail.com>
Co-authored-by: lcnr <rust@lcnr.de>
Co-authored-by: Zalathar <Zalathar@users.noreply.github.com>
Co-authored-by: Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de>
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 7, 2023
…=oli-obk

Build a better MIR body when errors are encountered

Doesn't really have much of an effect on its own, but it does lead to a less confusing phony MIR body being generated when an error is detected during THIR/MIR/match building. This was quite confusing when I hacked `-Zunpretty=mir` to emit `mir_built` rather than `instance_mir`.

This coincidentually also fixes rust-lang#117413, but not as generally as rust-lang#117416.

cc `@Nadrieril`
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.

TAIT: empty match on TAIT confuses typeck
4 participants