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

impl PartialEq<{str,String}> for {Path,PathBuf} (and reversed) #105877

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Kixunil
Copy link
Contributor

@Kixunil Kixunil commented Dec 18, 2022

Comparison of paths and strings is expected to be possible and needed e.g. in tests. This change adds the impls os PartialEq between strings and paths, both owned and unsized, in both directions.

Because this is trait impl it's expected to be insta-stable.

ACP: rust-lang/libs-team#151

@rustbot
Copy link
Collaborator

rustbot commented Dec 18, 2022

r? @joshtriplett

(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-libs Relevant to the library team, which will review and decide on the PR/issue. labels Dec 18, 2022
@rustbot
Copy link
Collaborator

rustbot commented Dec 18, 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

@Kixunil
Copy link
Contributor Author

Kixunil commented Dec 18, 2022

@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 Dec 18, 2022
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@Kixunil Kixunil force-pushed the impl-partialeq-str-for-path branch 2 times, most recently from 8a4d869 to 3a37672 Compare December 19, 2022 11:06
@rust-log-analyzer

This comment has been minimized.

@ChrisDenton
Copy link
Member

ChrisDenton commented Dec 20, 2022

Since this is instantly stable, I think it's worth asking why these weren't implemented before. I doubt this omission was unintentional.

EDIT: Hm, looking at the proposed implementation I think my initial guess as to why was wrong. Still, my question stands,

@ChrisDenton
Copy link
Member

ChrisDenton commented Dec 20, 2022

Ah, looking at the above error it seems like this may cause type inference issues? In which case it would be a breaking change to implement this. See also previous attempts in #31861 and #76189

@Kixunil
Copy link
Contributor Author

Kixunil commented Dec 22, 2022

@ChrisDenton the errors in CI are just changed outputs in UI tests which is fine. I didn't have time to update them and will be unable for a few days I think. The linked issues seem like people gave up too soon but I will look later if different errors appear.

@ChrisDenton
Copy link
Member

Fair enough. If it's just the case that people keep giving up too early then I don't have any problem. I just prefer to know, if possible, why something seemingly obvious hasn't been done before rather than assuming it's just an oversight.

@bors
Copy link
Contributor

bors commented Dec 28, 2022

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

@Kixunil Kixunil force-pushed the impl-partialeq-str-for-path branch from 3a37672 to 5c9f724 Compare January 2, 2023 12:29
Comparison of paths and strings is expected to be possible and needed
e.g. in tests. This change adds the impls os `PartialEq` between strings
and paths, both owned and unsized, in both directions.

ACP: rust-lang/libs-team#151
@Kixunil Kixunil force-pushed the impl-partialeq-str-for-path branch from 5c9f724 to 4813457 Compare January 2, 2023 12:51
@pitaj
Copy link
Contributor

pitaj commented Jan 29, 2023

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

@rustbot rustbot added S-waiting-on-ACP Status: PR has an ACP and is waiting for the ACP to complete. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 29, 2023
@pitaj pitaj added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-ACP Status: PR has an ACP and is waiting for the ACP to complete. labels May 30, 2023
@workingjubilee workingjubilee added the needs-fcp This change is insta-stable, so needs a completed FCP to proceed. label Jul 31, 2023
@workingjubilee
Copy link
Member

r? libs-api

Needs FCP for a bunch of PartialEq between str and String with Path and PathBuf. ACP was already accepted.

@rustbot rustbot assigned m-ou-se and unassigned joshtriplett Jul 31, 2023
@workingjubilee
Copy link
Member

Though doesn't Deref handle some of them? Hmm...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-fcp This change is insta-stable, so needs a completed FCP to proceed. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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.

9 participants