Commit 6abbe3d8 authored by Björn Peemöller 's avatar Björn Peemöller
Browse files

exportCheck is now done prior to qualification

parent f5693969
...@@ -159,11 +159,9 @@ checkModule opts env mdl = kindCheck env mdl -- should be only syntax checking ? ...@@ -159,11 +159,9 @@ checkModule opts env mdl = kindCheck env mdl -- should be only syntax checking ?
>>= uncurry (syntaxCheck opts) >>= uncurry (syntaxCheck opts)
>>= uncurry precCheck >>= uncurry precCheck
>>= (if withTypeCheck then uncurry typeCheck else return) >>= (if withTypeCheck then uncurry typeCheck else return)
>>= return . (uncurry qual)
>>= uncurry exportCheck >>= uncurry exportCheck
>>= return . qualEnv >>= return . (uncurry (qual opts))
where where
qualEnv (e, m) = (qualifyEnv opts e, m)
withTypeCheck = any (`elem` optTargetTypes opts) withTypeCheck = any (`elem` optTargetTypes opts)
[FlatCurry, ExtendedFlatCurry, FlatXml, AbstractCurry] [FlatCurry, ExtendedFlatCurry, FlatXml, AbstractCurry]
......
...@@ -24,6 +24,8 @@ import Transformations.Qual as Q (qual) ...@@ -24,6 +24,8 @@ import Transformations.Qual as Q (qual)
import Transformations.Simplify as S (simplify) import Transformations.Simplify as S (simplify)
import CompilerEnv import CompilerEnv
import CompilerOpts
import Imports (qualifyEnv)
import qualified IL import qualified IL
-- |Add missing case branches -- |Add missing case branches
...@@ -50,8 +52,8 @@ lift mdl env = (mdl', env { valueEnv = tyEnv', evalAnnotEnv = eEnv' }) ...@@ -50,8 +52,8 @@ lift mdl env = (mdl', env { valueEnv = tyEnv', evalAnnotEnv = eEnv' })
where (mdl', tyEnv', eEnv') = L.lift (valueEnv env) (evalAnnotEnv env) mdl where (mdl', tyEnv', eEnv') = L.lift (valueEnv env) (evalAnnotEnv env) mdl
-- |Fully qualify used constructors and functions -- |Fully qualify used constructors and functions
qual :: CompilerEnv -> Module -> (CompilerEnv, Module) qual :: Options -> CompilerEnv -> Module -> (CompilerEnv, Module)
qual env (Module m es is ds) = (env, Module m es is ds') qual opts env (Module m es is ds) = (qualifyEnv opts env, Module m es is ds')
where ds' = Q.qual (moduleIdent env) (tyConsEnv env) (valueEnv env) ds where ds' = Q.qual (moduleIdent env) (tyConsEnv env) (valueEnv env) ds
-- |Simplify the source code -- |Simplify the source code
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment