// Check that explicit region bounds are allowed on the various
// nominal types (but not on other types) and that they are type
// checked.

struct TupleStruct<'a>(&'a isize);
struct Struct<'a> { x:&'a isize }

fn a_fn1<'a,'b>(e: TupleStruct<'a>) -> TupleStruct<'b> {
    return e; //~ ERROR mismatched types
}

fn a_fn3<'a,'b>(e: Struct<'a>) -> Struct<'b> {
    return e; //~ ERROR mismatched types
}

fn main() { }
