From afb7afee0ce011754e60f313b6929d1eadfcc701 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 30 Mar 2014 16:11:00 -0400 Subject: more description improvements --- Property.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'Property.hs') diff --git a/Property.hs b/Property.hs index 84a57a1b..77a1f502 100644 --- a/Property.hs +++ b/Property.hs @@ -43,8 +43,8 @@ propertyList desc ps = Property desc $ ensureProperties' ps {- Combines a list of properties, resulting in one property that - ensures each in turn, stopping on failure. -} -combineProperties :: Desc -> [Property] -> Property -combineProperties desc ps = Property desc $ go ps NoChange +combineProperties :: [Property] -> Property +combineProperties ps = Property desc $ go ps NoChange where go [] rs = return rs go (l:ls) rs = do @@ -52,6 +52,9 @@ combineProperties desc ps = Property desc $ go ps NoChange case r of FailedChange -> return FailedChange _ -> go ls (combineResult r rs) + desc = case ps of + (p:_) -> propertyDesc p + _ -> "(empty)" {- Makes a perhaps non-idempotent Property be idempotent by using a flag - file to indicate whether it has run before. @@ -81,7 +84,7 @@ property `onChange` hook = Property (propertyDesc property) $ do {- Indicates that the first property can only be satisfied once - the second is. -} requires :: Property -> Property -> Property -x `requires` y = combineProperties (propertyDesc x) [y, x] +x `requires` y = combineProperties [y, x] `describe` propertyDesc x describe :: Property -> Desc -> Property describe p d = p { propertyDesc = d } -- cgit v1.2.3