From 2e39bd463d4ffe447c3bd72e6070456c05f0c7b9 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 30 Jul 2007 22:39:58 +0000 Subject: [PATCH] Deal with specifications in parallel usage checker --- UsageCheck.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/UsageCheck.hs b/UsageCheck.hs index 96fbb8a..760efb8 100644 --- a/UsageCheck.hs +++ b/UsageCheck.hs @@ -92,13 +92,18 @@ parUsageCheck proc where doUsageCheck :: A.Process -> Bool doUsageCheck (A.Par _ _ s) - --TODO deal with Rep and Spec inside Par - = case s of + --TODO deal with Rep inside Par: + = case skipSpecs s of A.Several _ structList -> --Need to check that for each written item, it is not read/written elsewhere: or $ permuteHelper usageCheckList (map getVars structList) doUsageCheck _ = False + --Recursively skips down past the Specs: + skipSpecs :: A.Structured -> A.Structured + skipSpecs (A.Spec _ _ s) = skipSpecs s + skipSpecs other = other + --Should be no intersection between our written items, and any written or read items anywhere else: usageCheckList :: WrittenRead -> [WrittenRead] -> Bool usageCheckList (written,read) others