-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck #134940
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
Conversation
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>>| NoSolution) | ||
}, | ||
"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); | ||
} |
There was a problem hiding this comment.
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)
There was a problem hiding this 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 👍
…utlives assumptions in borrowck
ac3d0a4
to
5775190
Compare
Pulled it out into a separate function @bors 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
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
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#134940 (Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck) - rust-lang#135047 (Add gpu-kernel calling convention) - rust-lang#135228 (Improve `DispatchFromDyn` and `CoerceUnsized` impl validation) - rust-lang#135264 (Consider more erroneous layouts as `LayoutError::ReferencesError` to suppress spurious errors) - rust-lang#135302 (for purely return-type based searches, deprioritize clone-like functions) - rust-lang#135380 (Make sure we can produce `ConstArgHasWrongType` errors for valtree consts) - rust-lang#135425 (Do not consider traits that have unsatisfied const conditions to be conditionally const) r? `@ghost` `@rustbot` modify labels: rollup
…kingjubilee Rollup of 11 pull requests Successful merges: - rust-lang#134913 (bootstrap: do not rely on LIBRARY_PATH env variable) - rust-lang#134940 (Make sure to scrape region constraints from deeply normalizing type outlives assumptions in borrowck) - rust-lang#135228 (Improve `DispatchFromDyn` and `CoerceUnsized` impl validation) - rust-lang#135264 (Consider more erroneous layouts as `LayoutError::ReferencesError` to suppress spurious errors) - rust-lang#135302 (for purely return-type based searches, deprioritize clone-like functions) - rust-lang#135353 (re-add --disable-minification to rustdoc) - rust-lang#135380 (Make sure we can produce `ConstArgHasWrongType` errors for valtree consts) - rust-lang#135423 (Enforce syntactical stability of const traits in HIR) - rust-lang#135425 (Do not consider traits that have unsatisfied const conditions to be conditionally const) - rust-lang#135499 (fix underlining of hovered intra-doc links.) - rust-lang#135505 (Fix clippy lints in rustdoc) r? `@ghost` `@rustbot` modify labels: rollup
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
Otherwise we're just randomly registering these region relations into the infcx which isn't good
r? lcnr