Skip to content

borrowck: Keep returned path from best_blame_constraint() consistent#158877

Open
Enselic wants to merge 1 commit into
rust-lang:mainfrom
Enselic:adjust-best_blame_constraint
Open

borrowck: Keep returned path from best_blame_constraint() consistent#158877
Enselic wants to merge 1 commit into
rust-lang:mainfrom
Enselic:adjust-best_blame_constraint

Conversation

@Enselic

@Enselic Enselic commented Jul 6, 2026

Copy link
Copy Markdown
Member

The function fn best_blame_constraint() returns a Vec<OutlivesConstraint> and a BlameConstraint. The BlameConstraint is really just a slimmed down version of an OutlivesConstraint. So we can remove BlameConstraint entirely and instead return Vec<OutlivesConstraint> and an index into that Vec. (Encapsulated in a struct for nice ergonomics.)

To prepare for that, change the code to adjust Vec<OutlivesConstraint> in-place and return info about the adjusted element, rather than returning info for a newly created "fake" OutlivesConstraint.

It is slightly sad that we make path mut, but I think we can live with that. Diagnostics tests will surely catch if someone messes up because of that.

This takes us one step closer (this is commit 2 of 4) towards the end result illustrated in #158623.

The function `fn best_blame_constraint()` returns a
`Vec<OutlivesConstraint>` and a `BlameConstraint`. The `BlameConstraint`
is really just a slimmed down version of an `OutlivesConstraint`. So we
can remove `BlameConstraint` entirely and instead return
`Vec<OutlivesConstraint>` and an index into that `Vec`. (Encapsulated in
a struct for nice ergonomics.)

To prepare for that, change the code to adjust `Vec<OutlivesConstraint>`
in-place and return info about the adjusted element, rather than
returning info for a newly created "fake" `OutlivesConstraint`.
@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 Jul 6, 2026
@rustbot

rustbot commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

r? @fee1-dead

rustbot has assigned @fee1-dead.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: borrowck, compiler
  • borrowck, compiler expanded to 75 candidates
  • Random selection from 20 candidates

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants