Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck by compiler-errors · Pull Request #134940 · rust-lang/rust (original) (raw)

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 andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation4 Commits1 Checks6 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

compiler-errors

Otherwise we're just randomly registering these region relations into the infcx which isn't good

r? lcnr

lcnr

Comment on lines 237 to 260

let Ok(TypeOpOutput {
output: normalized_outlives,
constraints: constraints_normalize,
error_info: _,
}) = CustomTypeOp::new(
|ocx
ocx.deeply_normalize(
&ObligationCause::dummy_with_span(span),
self.param_env,
outlives,
)
.map_err(|_: Vec<ScrubbedTraitError<'tcx>>
},
"normalize type outlives obligation",
)
.fully_perform(self.infcx, span)
else {
self.infcx.dcx().delayed_bug(format!("could not normalize {outlives:?}"));
continue;
};
outlives = normalized_outlives;
if let Some(c) = constraints_normalize {
constraints.push(c);
}

Choose a reason for hiding this comment

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

can you move this into a sub-fn

The function is already quite complex imo and this code isn't straightforward (I don't think it can be made less so, really)

lcnr

Contributor

@lcnr lcnr left a comment

Choose a reason for hiding this comment

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

r=me after nit 👍

@compiler-errors

…utlives assumptions in borrowck

@compiler-errors

Pulled it out into a separate function

@bors r=lcnr

@bors

📌 Commit 5775190 has been approved by lcnr

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

Jan 14, 2025

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Jan 14, 2025

@matthiaskrgr

Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck

Otherwise we're just randomly registering these region relations into the infcx which isn't good

r? lcnr

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request

Jan 14, 2025

@matthiaskrgr

Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck

Otherwise we're just randomly registering these region relations into the infcx which isn't good

r? lcnr

bors added a commit to rust-lang-ci/rust that referenced this pull request

Jan 15, 2025

@bors

…iaskrgr

Rollup of 7 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

bors added a commit to rust-lang-ci/rust that referenced this pull request

Jan 15, 2025

@bors

…kingjubilee

Rollup of 11 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

rust-timer added a commit to rust-lang-ci/rust that referenced this pull request

Jan 15, 2025

@rust-timer

Rollup merge of rust-lang#134940 - compiler-errors:scrape, r=lcnr

Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck

Otherwise we're just randomly registering these region relations into the infcx which isn't good

r? lcnr

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 (-Znext-solver)