@@ -118,7 +118,7 @@ main = do
118118 Right a -> a
119119 outfmt = outputFormat opts
120120 mmap = combinedModuleMap mods
121- tenv = combinedTypeEnv mods
121+ tenv = stripExtended $ combinedTypeEnv mods
122122 pvm = combinedParamVarMap mods
123123
124124 let runTypes = analyseAndCheckTypesWithEnv tenv . analyseRenamesWithModuleMap mmap . initAnalysis
@@ -143,7 +143,7 @@ main = do
143143 Lex -> ioError $ userError $ usageInfo programName options
144144 Parse -> pp parsedPF
145145 Typecheck -> let (pf, _, errs) = runTypes parsedPF in
146- printTypeErrors errs >> printTypes (extractTypeEnv pf)
146+ printTypeErrors errs >> printTypes (extractTypeEnvExtended pf)
147147 Rename -> pp $ runRenamer parsedPF
148148 BBlocks -> putStrLn $ runBBlocks parsedPF
149149 SuperGraph -> putStrLn $ runSuperGraph parsedPF
@@ -220,7 +220,7 @@ compileFileToMod mvers mods path moutfile = do
220220 contents <- flexReadFile path
221221 let version = fromMaybe (deduceFortranVersion path) mvers
222222 mmap = combinedModuleMap mods
223- tenv = combinedTypeEnv mods
223+ tenv = stripExtended $ combinedTypeEnv mods
224224 runCompile = genModFile . fst . analyseTypesWithEnv tenv . analyseRenamesWithModuleMap mmap . initAnalysis
225225 parsedPF <-
226226 case (Parser. byVerWithMods mods version) path contents of
@@ -295,12 +295,14 @@ showStringMap :: StringMap -> String
295295showStringMap = showGenericMap
296296showModuleMap :: ModuleMap -> String
297297showModuleMap = concatMap (\ (n, m) -> show n ++ " :\n " ++ (unlines . map (" " ++ ) . lines . showGenericMap $ m)) . M. toList
298- showTypes :: TypeEnv -> String
298+ showTypes :: TypeEnvExtended -> String
299299showTypes tenv =
300- flip concatMap (M. toList tenv) $
301- \ (name, IDType { idVType = vt, idCType = ct }) ->
302- printf " %s\t\t %s %s\n " name (drop 1 $ maybe " -" show vt) (drop 2 $ maybe " " show ct)
303- printTypes :: TypeEnv -> IO ()
300+ let sortedInfo = sortBy (\ (_, (_, sp1, _)) (_, (_, sp2, _)) -> compare sp1 sp2) $ M. toList tenv
301+ in
302+ flip concatMap sortedInfo $
303+ \ (_, (name, sp, IDType { idVType = vt, idCType = ct })) ->
304+ printf " %s\t %s\t\t %s %s\n " (show $ ssFrom sp) name (drop 1 $ maybe " -" show vt) (drop 2 $ maybe " " show ct)
305+ printTypes :: TypeEnvExtended -> IO ()
304306printTypes = putStrLn . showTypes
305307showTypeErrors :: [TypeError ] -> String
306308showTypeErrors errs = unlines [ show ss ++ " : " ++ msg | (msg, ss) <- sortBy (comparing snd ) errs ]
0 commit comments