// a bug was causing this to complain about leaked memory on exit use std; import option; import option::some; import option::none; enum t { foo(int, uint), bar(int, option), } fn nested(o: t) { alt o { bar(i, some::(_)) { #error("wrong pattern matched"); fail; } _ { #error("succeeded"); } } } fn main() { nested(bar(1, none::)); }