From 04d4d0d6c43dcf7643417bb16927f314b55e42fc Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 19 Jan 2015 14:43:25 -0400 Subject: Fix info propigation from fallback combinator's second Property. --- src/Propellor/Property.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Propellor/Property.hs b/src/Propellor/Property.hs index 43690735..9db08b2d 100644 --- a/src/Propellor/Property.hs +++ b/src/Propellor/Property.hs @@ -92,11 +92,13 @@ check c p = adjustProperty p $ \satisfy -> ifM (liftIO c) -- | Tries the first property, but if it fails to work, instead uses -- the second. fallback :: Property -> Property -> Property -fallback p1 p2 = adjustProperty p1 $ \satisfy -> do - r <- satisfy - if r == FailedChange - then propertySatisfy p2 - else return r +fallback p1 p2 = p1' { propertyChildren = p2 : propertyChildren p1' } + where + p1' = adjustProperty p1 $ \satisfy -> do + r <- satisfy + if r == FailedChange + then propertySatisfy p2 + else return r -- | Marks a Property as trivial. It can only return FailedChange or -- NoChange. -- cgit v1.2.3