[commit: ghc] ghc-8.2: Improve Wmissing-home-modules warning under Cabal (17bce7b)

git at git.haskell.org git at git.haskell.org
Wed Jul 19 23:24:04 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-8.2
Link       : http://ghc.haskell.org/trac/ghc/changeset/17bce7bccbc65058dc064acf1ef38a5466491c76/ghc

>---------------------------------------------------------------

commit 17bce7bccbc65058dc064acf1ef38a5466491c76
Author: Ben Gamari <bgamari.foss at gmail.com>
Date:   Tue Jul 11 11:54:59 2017 -0400

    Improve Wmissing-home-modules warning under Cabal
    
    Reviewers: hvr, alanz, austin
    
    Reviewed By: alanz
    
    Subscribers: rwbarton, thomie
    
    GHC Trac Issues: #13899
    
    Differential Revision: https://phabricator.haskell.org/D3686
    
    (cherry picked from commit b0c9f34aa3da914524ef37294bba78afefc3ada7)


>---------------------------------------------------------------

17bce7bccbc65058dc064acf1ef38a5466491c76
 compiler/main/GhcMake.hs                                      | 7 ++++++-
 testsuite/tests/warnings/should_compile/MissingMod.stderr     | 2 +-
 testsuite/tests/warnings/should_compile/T13727/T13727a.stderr | 2 +-
 testsuite/tests/warnings/should_compile/T13727/T13727b.stderr | 2 +-
 testsuite/tests/warnings/should_compile/T13727/T13727f.stderr | 3 ++-
 testsuite/tests/warnings/should_compile/T13727/T13727g.stderr | 3 ++-
 testsuite/tests/warnings/should_compile/T13727/T13727h.stderr | 2 +-
 testsuite/tests/warnings/should_compile/T13727/T13727i.stderr | 2 +-
 testsuite/tests/warnings/should_compile/T13727/T13727j.stderr | 2 +-
 9 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/compiler/main/GhcMake.hs b/compiler/main/GhcMake.hs
index 57a9138..1d9e9e2 100644
--- a/compiler/main/GhcMake.hs
+++ b/compiler/main/GhcMake.hs
@@ -187,7 +187,12 @@ warnMissingHomeModules hsc_env mod_graph =
     missing = map (moduleName . ms_mod) $
       filter (not . is_known_module) mod_graph
 
-    msg = text "Modules are not listed in command line: "
+    msg
+      | gopt Opt_BuildingCabalPackage dflags
+      = text "These modules are needed for compilation but not listed in your .cabal file's other-modules: "
+        <> sep (map ppr missing)
+      | otherwise
+      = text "Modules are not listed in command line but needed for compilation: "
         <> sep (map ppr missing)
     warn = makeIntoWarning
       (Reason Opt_WarnMissingHomeModules)
diff --git a/testsuite/tests/warnings/should_compile/MissingMod.stderr b/testsuite/tests/warnings/should_compile/MissingMod.stderr
index 0045092..119e72c 100644
--- a/testsuite/tests/warnings/should_compile/MissingMod.stderr
+++ b/testsuite/tests/warnings/should_compile/MissingMod.stderr
@@ -1,5 +1,5 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: MissingMod1
+    Modules are not listed in command line but needed for compilation: MissingMod1
 [1 of 2] Compiling MissingMod1      ( MissingMod1.hs, MissingMod1.o )
 [2 of 2] Compiling MissingMod       ( MissingMod.hs, MissingMod.o )
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727a.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727a.stderr
index 64ad6d2..c77fbc4 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727a.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727a.stderr
@@ -1,6 +1,6 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1
+    Modules are not listed in command line but needed for compilation: M1
 [1 of 2] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 2] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 Linking src-exe/Main ...
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727b.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727b.stderr
index 64ad6d2..c77fbc4 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727b.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727b.stderr
@@ -1,6 +1,6 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1
+    Modules are not listed in command line but needed for compilation: M1
 [1 of 2] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 2] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 Linking src-exe/Main ...
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727f.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727f.stderr
index 35bfae8..20a42ba 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727f.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727f.stderr
@@ -1,6 +1,7 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1 Main
+    Modules are not listed in command line but needed for compilation: M1
+                                                                       Main
 [1 of 3] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 3] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 [3 of 3] Compiling AltMain          ( src-exe/AltMain.hs, src-exe/AltMain.o )
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727g.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727g.stderr
index 35bfae8..20a42ba 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727g.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727g.stderr
@@ -1,6 +1,7 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1 Main
+    Modules are not listed in command line but needed for compilation: M1
+                                                                       Main
 [1 of 3] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 3] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 [3 of 3] Compiling AltMain          ( src-exe/AltMain.hs, src-exe/AltMain.o )
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727h.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727h.stderr
index 1832b38..a29f764 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727h.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727h.stderr
@@ -1,6 +1,6 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1
+    Modules are not listed in command line but needed for compilation: M1
 [1 of 3] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 3] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 [3 of 3] Compiling AltMain          ( src-exe/AltMain.hs, src-exe/AltMain.o )
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727i.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727i.stderr
index 1832b38..a29f764 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727i.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727i.stderr
@@ -1,6 +1,6 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: M1
+    Modules are not listed in command line but needed for compilation: M1
 [1 of 3] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 3] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 [3 of 3] Compiling AltMain          ( src-exe/AltMain.hs, src-exe/AltMain.o )
diff --git a/testsuite/tests/warnings/should_compile/T13727/T13727j.stderr b/testsuite/tests/warnings/should_compile/T13727/T13727j.stderr
index f6d3197..e85f778 100644
--- a/testsuite/tests/warnings/should_compile/T13727/T13727j.stderr
+++ b/testsuite/tests/warnings/should_compile/T13727/T13727j.stderr
@@ -1,6 +1,6 @@
 
 <no location info>: warning: [-Wmissing-home-modules]
-    Modules are not listed in command line: Main
+    Modules are not listed in command line but needed for compilation: Main
 [1 of 3] Compiling M1               ( src-lib/M1.hs, src-lib/M1.o )
 [2 of 3] Compiling Main             ( src-exe/Main.hs, src-exe/Main.o )
 [3 of 3] Compiling AltMain          ( src-exe/AltMain.hs, src-exe/AltMain.o )



More information about the ghc-commits mailing list