From 00da6b5977574a0564169172227d8aab45be188f Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Sat, 3 Jan 2015 21:07:56 -0800 Subject: Switch MATCH to separate begin/end macros The for loop trick turned out to be very prone to infinite loops at runtime. It's better to force compiler errors even if it's ugly. --- src/compat/option_test.cpp | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'src/compat/option_test.cpp') diff --git a/src/compat/option_test.cpp b/src/compat/option_test.cpp index f9cec0e..69f3a60 100644 --- a/src/compat/option_test.cpp +++ b/src/compat/option_test.cpp @@ -398,24 +398,32 @@ TEST(Option, unwrap) v = None; TRY_UNWRAP(fcr(), v = Some(1)); v = None; - if OPTION_IS_SOME_NOLOOP(o, v) + OMATCH_BEGIN (v) { - EXPECT_NE(o, o); - } - else - { - SUCCEED(); + OMATCH_CASE_SOME (o) + { + EXPECT_NE(o, o); + } + OMATCH_CASE_NONE () + { + SUCCEED(); + } } + OMATCH_END (); v = Some(1); - if OPTION_IS_SOME_NOLOOP(o, v) + OMATCH_BEGIN (v) { - EXPECT_EQ(o, 1); - } - else - { - FAIL(); + OMATCH_CASE_SOME (o) + { + EXPECT_EQ(o, 1); + } + OMATCH_CASE_NONE () + { + FAIL(); + } } + OMATCH_END (); } TEST(Option, flatten) -- cgit v1.2.3-70-g09d2