// -*- rust -*- // Tests for match as expressions resulting in structural types fn test_rec() { let rs = match true { true => {i: 100}, _ => fail }; assert (rs.i == 100); } enum mood { happy, sad, } impl mood : cmp::Eq { pure fn eq(&self, other: &mood) -> bool { ((*self) as uint) == ((*other) as uint) } pure fn ne(&self, other: &mood) -> bool { !(*self).eq(other) } } fn test_tag() { let rs = match true { true => { happy } false => { sad } }; assert (rs == happy); } fn main() { test_rec(); test_tag(); }