From d2b123c32c249065f63570dbbf781130ebdd22f7 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Wed, 12 Dec 2012 22:05:32 -0500 Subject: [PATCH] Stop being quite so ambitious in Analysis.RuleMode.inv --- src/Dyna/Analysis/RuleMode.hs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Dyna/Analysis/RuleMode.hs b/src/Dyna/Analysis/RuleMode.hs index e0c9f57..399bbde 100644 --- a/src/Dyna/Analysis/RuleMode.hs +++ b/src/Dyna/Analysis/RuleMode.hs @@ -254,13 +254,11 @@ possible cr = case cr of -- XXX this really ought to be done some other way inv :: DFunct -> [ModedVar] -> ModedVar -> [Action] - inv "+" is (MB o) - = case L.partition isFree is of - ([MF fi],bis) -> let cv = "_tmp" - bis' = map varOfMV bis - in [[ OPCall cv bis' "+" - , OPCall fi [o, cv] "-"]] - _ -> [] + inv "+" is [(MB x), (MF y)] (MB o) + = [[ OPCall y [o,x] "-" ]] + + inv "+" is [(MF x), (MB y)] (MB o) + = [[ OPCall x [o,y] "-" ]] inv "-" [(MB x),(MF y)] (MB o) = [[ OPCall y [x,o] "-" ]] -- 2.50.1