From: Matthijs Kooijman Date: Mon, 9 Feb 2009 14:53:10 +0000 (+0100) Subject: Learn flattenExpr about Var expressions. X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fc%CE%BBash.git;a=commitdiff_plain;h=0b61849203b38c59a3878a1208d1de68943d6882 Learn flattenExpr about Var expressions. --- diff --git a/Flatten.hs b/Flatten.hs index f3057e8..52316ec 100644 --- a/Flatten.hs +++ b/Flatten.hs @@ -1,7 +1,9 @@ module Flatten where import CoreSyn import qualified Type +import qualified Name import qualified TyCon +import qualified Maybe import qualified CoreUtils import qualified Control.Monad.State as State @@ -167,6 +169,15 @@ flattenExpr binds lam@(Lam b expr) = do let binds' = (b, Left defs):binds flattenExpr binds' expr +flattenExpr binds (Var id) = + case bind of + Left sig_use -> return ([], sig_use) + Right _ -> error "Higher order functions not supported." + where + bind = Maybe.fromMaybe + (error $ "Argument " ++ Name.getOccString id ++ "is unknown") + (lookup id binds) + flattenExpr _ _ = do return ([], Tuple [])