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