#![feature(box_patterns)]
#![allow(dead_code)]
#![allow(unused_variables)]
#![deny(unreachable_patterns)]


enum IntList {
    Cons(isize, Box<IntList>),
    Nil
}

fn tail(source_list: &IntList) -> IntList {
    match source_list {
        &IntList::Cons(val, box ref next_list) => tail(next_list),
        &IntList::Cons(val, box IntList::Nil)  => IntList::Cons(val, Box::new(IntList::Nil)),
        //~^ ERROR unreachable pattern
        _ => panic!(),
    }
}

fn main() {}
