Hey @nikomatsakis , at some point I'd like to discuss with you (and perhaps @Matthew Jasper ) your thoughts on what we should do about empty regions and/or
In the case of #68550, we are trying to
eval_verify_bound where the lower bound is
'_#7r and the verify_bound is
AnyBound([OutlivedBy(ReEmpty(U0)), OutlivedBy(ReStatic), OutlivedBy('_#2r)])
I did see we have some special case code in
rustc_mir::borrow_check::type_check::constraint_conversion to avoid pushing a constraint when the right hand side is
eval_verify_bound need some similar special case code, to avoid calling
to_region_vid on such regions?
or is there a broader change that you think you would be more appropriate?
I think that having a vid corresponding to each reempty is what we eventually want, I'm not sure if doing that is enough to fix this issue though.
@pnkfelix I happen to be working right now on a PR to extend our handling ReEmpty in/around NLL
and I was wanting to refactor precisely that special-case code
though I'm not exactly sure what I want to do :)
I was expecting to make a vid for each empty, I guess, which means that all variables would then have to include the "element" for their universe
@nikomatsakis okay, maybe I'll just assign #68550 to you, then? Since I suspect your refactoring will address it.
that seems ok