Auto merge of #88811 - jackh726:issue-88446, r=nikomatsakis

Use a HashMap for UniverseInfo in mir borrowck

Fixes #88446

r? `@nikomatsakis`
This commit is contained in:
bors 2021-09-12 17:04:10 +00:00
commit d2dfb0eb8e
6 changed files with 59 additions and 15 deletions

View file

@ -0,0 +1,35 @@
// check-pass
trait Yokeable<'a> {
type Output: 'a;
}
impl<'a> Yokeable<'a> for () {
type Output = ();
}
trait DataMarker<'data> {
type Yokeable: for<'a> Yokeable<'a>;
}
impl<'data> DataMarker<'data> for () {
type Yokeable = ();
}
struct DataPayload<'data, M>(&'data M);
impl DataPayload<'static, ()> {
pub fn map_project_with_capture<M2, T>(
_: for<'a> fn(
capture: T,
std::marker::PhantomData<&'a ()>,
) -> <M2::Yokeable as Yokeable<'a>>::Output,
) -> DataPayload<'static, M2>
where
M2: DataMarker<'static>,
{
todo!()
}
}
fn main() {
let _: DataPayload<()> = DataPayload::<()>::map_project_with_capture::<_, &()>(|_, _| todo!());
}