on master help sign in
Get the correct exports
96136beEvan Czaplicki
compiler/Initialize.hs+9−7
@@ -31,10 +31,17 @@ buildFromSource noPrelude interfaces source =
31 [] -> return modul
31 [] -> return modul
32 ms -> Left ms
32 ms -> Left ms
33
33
34+ let exports'
35+ | null exs =
36+ let get = Set.toList . SD.boundVars in
37+ concat [ get pattern | Definition (Def pattern _) <- decls ] ++
38+ concat [ map fst ctors | Datatype _ _ ctors <- decls ]
39+ | otherwise = exs
40+
34 metaModule <- Canonical.metadataModule interfaces $ MetadataModule {
41 metaModule <- Canonical.metadataModule interfaces $ MetadataModule {
35 names = names,
42 names = names,
36 path = FP.joinPath names,
43 path = FP.joinPath names,
37− exports = exs,
44+ exports = exports',
38 imports = ims,
45 imports = ims,
39 -- reorder AST into strongly connected components
46 -- reorder AST into strongly connected components
40 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
47 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
@@ -48,12 +55,7 @@ buildFromSource noPrelude interfaces source =
48
55
49 types <- TI.infer interfaces metaModule
56 types <- TI.infer interfaces metaModule
50
57
51− let exports' | null exs =
52− Map.keys types ++
53− concat [ map fst ctors | (_,_,ctors) <- datatypes metaModule ]
54− | otherwise = exs
55−
56− return $ metaModule { types = types, exports = exports' }
58+ return $ metaModule { types = types }
57
59
58
60
59getSortedDependencies :: Bool -> FilePath -> IO [String]
61getSortedDependencies :: Bool -> FilePath -> IO [String]