// for this issue, this code must be built in a library

use std::mem;

trait A {
    fn dummy(&self) { }
}
struct B;
impl A for B {}

fn bar<T>(_: &mut A, _: &T) {}

fn foo<T>(t: &T) {
    let mut b = B;
    bar(&mut b as &mut A, t)
}
