add test
This commit is contained in:
parent
71f8fd5c58
commit
72a21027f5
50
src/test/ui/implied-bounds/issue-101951.rs
Normal file
50
src/test/ui/implied-bounds/issue-101951.rs
Normal file
@ -0,0 +1,50 @@
|
||||
// Taken directly from that issue.
|
||||
//
|
||||
// This test detected that we didn't correctly resolve
|
||||
// inference variables when computing implied bounds.
|
||||
//
|
||||
// check-pass
|
||||
pub trait BuilderFn<'a> {
|
||||
type Output;
|
||||
}
|
||||
|
||||
impl<'a, F, Out> BuilderFn<'a> for F
|
||||
where
|
||||
F: FnOnce(&'a mut ()) -> Out,
|
||||
{
|
||||
type Output = Out;
|
||||
}
|
||||
|
||||
pub trait ConstructionFirm {
|
||||
type Builder: for<'a> BuilderFn<'a>;
|
||||
}
|
||||
|
||||
pub trait Campus<T>
|
||||
where
|
||||
T: ConstructionFirm,
|
||||
{
|
||||
fn add_building(
|
||||
&mut self,
|
||||
building: &mut <<T as ConstructionFirm>::Builder as BuilderFn<'_>>::Output,
|
||||
);
|
||||
}
|
||||
|
||||
struct ArchitectsInc {}
|
||||
|
||||
impl ConstructionFirm for ArchitectsInc {
|
||||
type Builder = fn(&mut ()) -> PrettyCondo<'_>;
|
||||
}
|
||||
|
||||
struct PrettyCondo<'a> {
|
||||
_marker: &'a mut (),
|
||||
}
|
||||
|
||||
struct CondoEstate {}
|
||||
|
||||
impl Campus<ArchitectsInc> for CondoEstate {
|
||||
fn add_building(&mut self, _building: &mut PrettyCondo<'_>) {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user