diff options
author | Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> | 2019-04-09 13:51:29 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-05-29 10:35:50 -0400 |
commit | c8380a4a738e5c2488337496b0d1b1faf6a7de9d (patch) | |
tree | 1ed9ca05baf961eef5fb022fd1e0147523049013 | |
parent | 9334467f5dd59f9ea7c231c5ff0b1987df4d1570 (diff) | |
download | haskell-c8380a4a738e5c2488337496b0d1b1faf6a7de9d.tar.gz |
Handle hs-boot files in -Wmissing-home-modules (#16551)
-rw-r--r-- | compiler/main/GhcMake.hs | 4 | ||||
-rw-r--r-- | testsuite/tests/warnings/should_compile/T16551.stderr | 3 | ||||
-rw-r--r-- | testsuite/tests/warnings/should_compile/T16551/A.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/warnings/should_compile/T16551/B.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/warnings/should_compile/T16551/B.hs-boot | 1 | ||||
-rw-r--r-- | testsuite/tests/warnings/should_compile/all.T | 1 |
6 files changed, 13 insertions, 0 deletions
diff --git a/compiler/main/GhcMake.hs b/compiler/main/GhcMake.hs index ac92f3b42b..c8442e2a71 100644 --- a/compiler/main/GhcMake.hs +++ b/compiler/main/GhcMake.hs @@ -184,6 +184,10 @@ warnMissingHomeModules hsc_env mod_graph = is_my_target mod (TargetFile target_file _) | Just mod_file <- ml_hs_file (ms_location mod) = target_file == mod_file || + + -- Don't warn on B.hs-boot if B.hs is specified (#16551) + addBootSuffix target_file == mod_file || + -- We can get a file target even if a module name was -- originally specified in a command line because it can -- be converted in guessTarget (by appending .hs/.lhs). diff --git a/testsuite/tests/warnings/should_compile/T16551.stderr b/testsuite/tests/warnings/should_compile/T16551.stderr new file mode 100644 index 0000000000..352784c7d6 --- /dev/null +++ b/testsuite/tests/warnings/should_compile/T16551.stderr @@ -0,0 +1,3 @@ +[1 of 3] Compiling B[boot] ( T16551/B.hs-boot, T16551/B.o-boot ) +[2 of 3] Compiling A ( T16551/A.hs, T16551/A.o ) +[3 of 3] Compiling B ( T16551/B.hs, T16551/B.o ) diff --git a/testsuite/tests/warnings/should_compile/T16551/A.hs b/testsuite/tests/warnings/should_compile/T16551/A.hs new file mode 100644 index 0000000000..138a4faa1c --- /dev/null +++ b/testsuite/tests/warnings/should_compile/T16551/A.hs @@ -0,0 +1,2 @@ +module A where +import {-# SOURCE #-} B diff --git a/testsuite/tests/warnings/should_compile/T16551/B.hs b/testsuite/tests/warnings/should_compile/T16551/B.hs new file mode 100644 index 0000000000..af11916966 --- /dev/null +++ b/testsuite/tests/warnings/should_compile/T16551/B.hs @@ -0,0 +1,2 @@ +module B where +import A diff --git a/testsuite/tests/warnings/should_compile/T16551/B.hs-boot b/testsuite/tests/warnings/should_compile/T16551/B.hs-boot new file mode 100644 index 0000000000..c759bc2d13 --- /dev/null +++ b/testsuite/tests/warnings/should_compile/T16551/B.hs-boot @@ -0,0 +1 @@ +module B where diff --git a/testsuite/tests/warnings/should_compile/all.T b/testsuite/tests/warnings/should_compile/all.T index 36e6b1beeb..fcf03443d3 100644 --- a/testsuite/tests/warnings/should_compile/all.T +++ b/testsuite/tests/warnings/should_compile/all.T @@ -22,6 +22,7 @@ test('Werror01', normal, compile, ['']) test('Werror02', normal, compile, ['']) test('MissingMod', normal, multimod_compile, ['MissingMod', '-Wmissing-home-modules']) +test('T16551', [extra_files(['T16551/'])], multimod_compile, ['T16551/A.hs T16551/B.hs', '-Wmissing-home-modules']) test('StarBinder', normal, compile, ['']) |