diff options
author | Thomas Miedema <thomasmiedema@gmail.com> | 2015-04-01 19:22:28 +0200 |
---|---|---|
committer | Thomas Miedema <thomasmiedema@gmail.com> | 2015-04-01 19:22:54 +0200 |
commit | 7cec6c7b2973b34c18da1c74c87cead33bb1bfd7 (patch) | |
tree | be99face836f135e843f758ff9eab09b6f122f93 | |
parent | d4cf7051bc17182238b17ba1dc42e190fa5c6f0d (diff) | |
download | haskell-7cec6c7b2973b34c18da1c74c87cead33bb1bfd7.tar.gz |
Change which files --make thinks are 'Haskellish' (#10220)
`.hspp` and `.hscpp` are haskell files that have already been preprocessed.
Treat `.hspp` and `.hscpp` as Haskellish sources again, as they were before
commit a10e1990. This way, ghc --make will load their imports.
Make sure that `.cmm` and `.cmmcpp` are still not treated as Haskellish,
by moving them out of `haskell_src_suffixes` (but still keeping them in
haskellish_suffixes, though I'm not sure what the purpose of that group
is).
Reviewed By: austin
Differential Revision: https://phabricator.haskell.org/D778
-rw-r--r-- | compiler/main/DriverPhases.hs | 7 | ||||
-rw-r--r-- | ghc/Main.hs | 2 | ||||
-rw-r--r-- | testsuite/tests/driver/T10220.hspp | 2 | ||||
-rw-r--r-- | testsuite/tests/driver/T10220B.hs | 1 | ||||
-rw-r--r-- | testsuite/tests/driver/all.T | 4 |
5 files changed, 13 insertions, 3 deletions
diff --git a/compiler/main/DriverPhases.hs b/compiler/main/DriverPhases.hs index e3aaf698e0..9d1199339a 100644 --- a/compiler/main/DriverPhases.hs +++ b/compiler/main/DriverPhases.hs @@ -279,11 +279,14 @@ phaseInputExt StopLn = "o" haskellish_src_suffixes, haskellish_suffixes, cish_suffixes, haskellish_user_src_suffixes, haskellish_sig_suffixes :: [String] +-- When a file with an extension in the haskellish_src_suffixes group is +-- loaded in --make mode, its imports will be loaded too. haskellish_src_suffixes = haskellish_user_src_suffixes ++ - [ "hspp", "hscpp", "cmm", "cmmcpp" ] + [ "hspp", "hscpp" ] haskellish_suffixes = haskellish_src_suffixes ++ - [ "hc" ] + [ "hc", "cmm", "cmmcpp" ] cish_suffixes = [ "c", "cpp", "C", "cc", "cxx", "s", "S", "ll", "bc", "lm_s", "m", "M", "mm" ] + -- Will not be deleted as temp files: haskellish_user_src_suffixes = haskellish_sig_suffixes ++ [ "hs", "lhs", "hs-boot", "lhs-boot" ] diff --git a/ghc/Main.hs b/ghc/Main.hs index 2f013aa76e..fa266a24f8 100644 --- a/ghc/Main.hs +++ b/ghc/Main.hs @@ -656,7 +656,7 @@ doMake srcs = do let (hs_srcs, non_hs_srcs) = partition haskellish srcs haskellish (f,Nothing) = - looksLikeModuleName f || isHaskellUserSrcFilename f || '.' `notElem` f + looksLikeModuleName f || isHaskellSrcFilename f || '.' `notElem` f haskellish (_,Just phase) = phase `notElem` [ As True, As False, Cc, Cobjc, Cobjcxx, CmmCpp, Cmm , StopLn] diff --git a/testsuite/tests/driver/T10220.hspp b/testsuite/tests/driver/T10220.hspp new file mode 100644 index 0000000000..9dd6b0d39a --- /dev/null +++ b/testsuite/tests/driver/T10220.hspp @@ -0,0 +1,2 @@ +module T10220 where +import T10220B diff --git a/testsuite/tests/driver/T10220B.hs b/testsuite/tests/driver/T10220B.hs new file mode 100644 index 0000000000..fce109b203 --- /dev/null +++ b/testsuite/tests/driver/T10220B.hs @@ -0,0 +1 @@ +module T10220B where diff --git a/testsuite/tests/driver/all.T b/testsuite/tests/driver/all.T index e1665f1aca..32678d3d27 100644 --- a/testsuite/tests/driver/all.T +++ b/testsuite/tests/driver/all.T @@ -427,3 +427,7 @@ test('T10219', normal, run_command, # `-x hspp` in make mode should work. # Note: need to specify `-x hspp` before the filename. ['{compiler} --make -x hspp T10219.hspp -fno-code -v0']) + +test('T10220', normal, run_command, + # Preprocessed T10220.hspp imports T10220B. Should work in --make mode. + ['{compiler} --make T10220.hspp -fno-code -v0']) |