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

Remove structural match from TypeId #103291

Merged
merged 2 commits into from
May 26, 2023

Conversation

raldone01
Copy link
Contributor

@raldone01 raldone01 commented Oct 20, 2022

As per #99189 (comment).

Removing the structural equality might make sense, but is a breaking change that'd require a libs-api FCP.

#99189 (comment)

Landing this PR now (well, mainly the "remove structural equality" part) would unblock const fn TypeId::of, since we only postponed that because we were guaranteeing too much.

See also #99189, #101698

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Oct 20, 2022
@rust-highfive
Copy link
Collaborator

r? @thomcc

(rust-highfive has picked a reviewer for you, use r? to override)

@rustbot
Copy link
Collaborator

rustbot commented Oct 20, 2022

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

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Oct 20, 2022
@thomcc
Copy link
Member

thomcc commented Oct 20, 2022

I can't start that FCP and the comment is from @m-ou-se so....

r? @m-ou-se

@rust-highfive rust-highfive assigned m-ou-se and unassigned thomcc Oct 20, 2022
@raldone01
Copy link
Contributor Author

@rustbot label +T-libs-api -T-libs

@rustbot rustbot added T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. and removed T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Oct 20, 2022
@onestacked
Copy link
Contributor

cc @m-ou-se @eddyb

@onestacked
Copy link
Contributor

@rustbot label +needs-fcp

@rustbot rustbot added the needs-fcp This change is insta-stable, so needs a completed FCP to proceed. label Nov 15, 2022
Copy link
Member

@eddyb eddyb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but I don't understand what's going on with the test.

@eddyb eddyb added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 28, 2022
@eddyb
Copy link
Member

eddyb commented Nov 28, 2022

Marking as blocked on:

@raldone01 raldone01 force-pushed the typeid_no_struct_match branch from 7b92413 to a283c4f Compare February 3, 2023 19:02
@raldone01
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-blocked Status: Blocked on something else such as an RFC or other implementation work. labels Feb 3, 2023
@raldone01 raldone01 force-pushed the typeid_no_struct_match branch from a283c4f to dd57064 Compare February 3, 2023 20:26
@WaffleLapkin
Copy link
Member

Is this waiting on libs FCP to be started?

@WaffleLapkin WaffleLapkin removed the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Feb 24, 2023
@onestacked
Copy link
Contributor

@m-ou-se and @eddyb wanted this, so i think yes.

@bors
Copy link
Contributor

bors commented Apr 19, 2023

☔ The latest upstream changes (presumably #110393) made this pull request unmergeable. Please resolve the merge conflicts.

@dtolnay
Copy link
Member

dtolnay commented May 26, 2023

@bors r+

@bors
Copy link
Contributor

bors commented May 26, 2023

📌 Commit 6827a41 has been approved by dtolnay

It is now in the queue for this repository.

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label May 26, 2023
@dtolnay dtolnay assigned dtolnay and unassigned m-ou-se May 26, 2023
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request May 26, 2023
…atch, r=dtolnay

Remove structural match from `TypeId`

As per rust-lang#99189 (comment).

> Removing the structural equality might make sense, but is a breaking change that'd require a libs-api FCP.

rust-lang#99189 (comment)

> Landing this PR now (well, mainly the "remove structural equality" part) would unblock `const fn` `TypeId::of`, since we only postponed that because we were guaranteeing too much.

See also rust-lang#99189, rust-lang#101698
@bors
Copy link
Contributor

bors commented May 26, 2023

⌛ Testing commit 6827a41 with merge 1a5f8bc...

@rfcbot rfcbot added finished-final-comment-period The final comment period is finished for this PR / Issue. to-announce Announce this issue on triage meeting and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. labels May 26, 2023
@rfcbot
Copy link

rfcbot commented May 26, 2023

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

This will be merged soon.

@bors
Copy link
Contributor

bors commented May 26, 2023

☀️ Test successful - checks-actions
Approved by: dtolnay
Pushing 1a5f8bc to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 26, 2023
@bors bors merged commit 1a5f8bc into rust-lang:master May 26, 2023
@rustbot rustbot added this to the 1.71.0 milestone May 26, 2023
@dtolnay
Copy link
Member

dtolnay commented May 26, 2023

The pinnacle of efficiency. This must be a record?

Screenshot from 2023-05-26 13-06-38

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (1a5f8bc): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.1% [-2.8%, -1.4%] 2
All ❌✅ (primary) - - 0

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.2% [2.1%, 4.8%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 643.928s -> 644.897s (0.15%)

@jackh726
Copy link
Member

sorry to necro this a bit - looking through our I-unsound known-bug tracking in #105107 and came across this.

@dtolnay I added a commit that blesses the tests, but test tests/ui/const-generics/generic_const_exprs/typeid-equality-by-subtyping.rs uses Structural match of TypeId, so i removed the // run-pass and added #110395 as known-bug since comparing TypeId in const context is now imposible.

I'm not sure if this is how this should be done, since there was already a I-unsound related known bug on this test.

For future reference: this is not the correct use of known-bug. #110395 is not a bug for one. This obviously was resolved over time, but in the future please tag the appropriate team (in this case T-types) to check what the appropriate course is for handling changes to known-bug cases (you could imagine, for example, that an alternative resolution would be that #97156 could have been closed with this PR).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. merged-by-bors This PR was explicitly merged by bors. needs-fcp This change is insta-stable, so needs a completed FCP to proceed. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. S-waiting-on-fcp Status: PR is in FCP and is awaiting for FCP to complete. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.