// run-pass
#![allow(unused_braces)]
#![allow(non_camel_case_types)]

#[derive(Copy, Clone, Debug)]
enum chan { chan_t, }

impl PartialEq for chan {
    fn eq(&self, other: &chan) -> bool {
        ((*self) as usize) == ((*other) as usize)
    }
    fn ne(&self, other: &chan) -> bool { !(*self).eq(other) }
}

fn wrapper3(i: chan) {
    assert_eq!(i, chan::chan_t);
}

pub fn main() {
    let wrapped = {||wrapper3(chan::chan_t)};
    wrapped();
}
