From be36af4bf05a92fc6f5e04808e56e1768a1943cb Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Sun, 22 Mar 2009 22:31:49 +0000 Subject: [PATCH] Added a work-around for resolving user defined types in the CompState --- transformations/SimplifyTypes.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/transformations/SimplifyTypes.hs b/transformations/SimplifyTypes.hs index f0f2c76..ad0e786 100644 --- a/transformations/SimplifyTypes.hs +++ b/transformations/SimplifyTypes.hs @@ -23,8 +23,10 @@ module SimplifyTypes ( ) where import Control.Monad.State +import qualified Data.Traversable as T import qualified AST as A +import CompState import Metadata import Pass import qualified Properties as Prop @@ -43,9 +45,14 @@ resolveNamedTypes (Prop.agg_namesDone ++ [Prop.expressionTypesChecked, Prop.processTypesChecked]) [Prop.typesResolvedInAST, Prop.typesResolvedInState] - (\t -> do get >>= resolve >>= put + (\t -> do get >>= resolve >>= resolve_csNames >>= put resolve t) where + -- Work-around for data types not being resolved: + resolve_csNames :: Transform CompState + resolve_csNames cs = do csNames' <- T.mapM resolve $ csNames cs + return $ cs { csNames = csNames' } + resolve :: PassType resolve = applyDepthM doType where