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

Improve safe transmute error reporting #109800

Merged
merged 1 commit into from
Apr 14, 2023

Conversation

bryangarza
Copy link
Contributor

@bryangarza bryangarza commented Mar 31, 2023

This patch updates the error reporting when Safe Transmute is not possible between 2 types by including the reason.

Also, fix some small bugs that occur when computing the Answer for transmutability.

@rustbot
Copy link
Collaborator

rustbot commented Mar 31, 2023

r? @WaffleLapkin

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

@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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative labels Mar 31, 2023
@rustbot
Copy link
Collaborator

rustbot commented Mar 31, 2023

Some changes occurred to the core trait solver

cc @rust-lang/initiative-trait-system-refactor

These commits modify the Cargo.lock file. Random changes to Cargo.lock can be introduced when switching branches and rebasing PRs.
This was probably unintentional and should be reverted before this PR is merged.

If this was intentional then you can ignore this comment.

@bryangarza
Copy link
Contributor Author

cc @jswrenn

@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch from a1e2b22 to f9b7248 Compare March 31, 2023 02:47
@rust-log-analyzer

This comment has been minimized.

@bryangarza
Copy link
Contributor Author

I think I missed some tests that need to be blessed, I’ll do it tomorrow

@compiler-errors compiler-errors self-assigned this Mar 31, 2023
@compiler-errors
Copy link
Member

use @rustbot ready to mark this as ready to review

@rustbot author

@rustbot rustbot 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 Apr 3, 2023
@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch from f9b7248 to 2bbb76b Compare April 6, 2023 02:23
@rustbot
Copy link
Collaborator

rustbot commented Apr 6, 2023

Hey! It looks like you've submitted a new PR for the library teams!

If this PR contains changes to any rust-lang/rust public library APIs then please comment with @rustbot label +T-libs-api -T-libs to tag it appropriately. If this PR contains changes to any unstable APIs please edit the PR description to add a link to the relevant API Change Proposal or create one if you haven't already. If you're unsure where your change falls no worries, just leave it as is and the reviewer will take a look and make a decision to forward on if necessary.

Examples of T-libs-api changes:

  • Stabilizing library features
  • Introducing insta-stable changes such as new implementations of existing stable traits on existing stable types
  • Introducing new or changing existing unstable library APIs (excluding permanently unstable features / features without a tracking issue)
  • Changing public documentation in ways that create new stability guarantees
  • Changing observable runtime behavior of library APIs

@bryangarza
Copy link
Contributor Author

bryangarza commented Apr 6, 2023

FYI

  • easier to review if you hide whitespace changes
  • Many of the changes in rustc_transmute are just moving some definitions to be under mod rustc

@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch 2 times, most recently from abaa6f6 to 5e2e976 Compare April 7, 2023 04:04
@bryangarza
Copy link
Contributor Author

@rustbot ready

@rustbot rustbot 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 Apr 7, 2023
@compiler-errors
Copy link
Member

Some more comments. Other than those, I'm pretty happy with the state of this PR, though.

@rustbot author

@rustbot rustbot 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 Apr 9, 2023
@compiler-errors
Copy link
Member

r=me after rebasing

there may be some problems with the error reporting with the new trait solver, since we will need to recompute the cannot-transmute-reason on demand in the error reporting code...

you can probably just leave that though, I can figure it out, unless you want to. ping me if you need help.

@compiler-errors compiler-errors 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 Apr 12, 2023
@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch from 5ee760b to 7c49f13 Compare April 12, 2023 22:59
@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch from 7c49f13 to 6a4b2e8 Compare April 13, 2023 21:39
@compiler-errors
Copy link
Member

Thanks @bryangarza for dealing with many rounds of review.

@bors r+

@bors
Copy link
Contributor

bors commented Apr 13, 2023

📌 Commit 6a4b2e89ff25f85507f603a4724f1ddadc16a1c9 has been approved by compiler-errors

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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 13, 2023
This patch updates the error reporting when Safe Transmute is not
possible between 2 types by including the reason.

Also, fix some small bugs that occur when computing the `Answer` for
transmutability.
@bryangarza bryangarza force-pushed the safe-transmute-improved-errors branch from 6a4b2e8 to 36febe1 Compare April 13, 2023 21:57
@bryangarza
Copy link
Contributor Author

@compiler-errors I force pushed a small change after approval (to get rustc_transmute to successfully pass cargo test) -- is it possible to get this new commit hash to be the one in the queue?

@compiler-errors
Copy link
Member

Force-pushing automatically un-approves your PR. I will re-approve it when CI is green.

@bryangarza
Copy link
Contributor Author

@rustbot ready

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 13, 2023
@compiler-errors
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Apr 13, 2023

📌 Commit 36febe1 has been approved by compiler-errors

It is now in the queue for this repository.

@bors bors removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 13, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 14, 2023
…-errors, r=compiler-errors

Improve safe transmute error reporting

This patch updates the error reporting when Safe Transmute is not possible between 2 types by including the reason.

Also, fix some small bugs that occur when computing the `Answer` for transmutability.
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 14, 2023
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#109225 (Clarify that RUST_MIN_STACK may be internally cached)
 - rust-lang#109800 (Improve safe transmute error reporting)
 - rust-lang#110158 (Remove obsolete test case)
 - rust-lang#110180 (don't uniquify regions when canonicalizing)
 - rust-lang#110207 (Assemble `Unpin` candidates specially for generators in new solver)
 - rust-lang#110276 (Remove all but one of the spans in `BoundRegionKind::BrAnon`)
 - rust-lang#110279 (rustdoc: Correctly handle built-in compiler proc-macros as proc-macro and not macro)
 - rust-lang#110298 (Cover edge cases for {f32, f64}.hypot() docs)
 - rust-lang#110299 (Switch to `EarlyBinder` for `impl_subject` query)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit c6223e1 into rust-lang:master Apr 14, 2023
@rustbot rustbot added this to the 1.70.0 milestone Apr 14, 2023
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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants