Fix regression incorrectly advertising TH support
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 16 Feb 2019 21:08:46 +0000 (22:08 +0100)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sun, 24 Feb 2019 02:43:58 +0000 (21:43 -0500)
`--supported-languages` must only advertise language extensions
which are supported by the compiler in order for tooling such
as Cabal relying on this signalling not to behave incorrectly.

Fixes #16331

compiler/main/DynFlags.hs

index f929d98..dca692e 100644 (file)
@@ -4290,6 +4290,14 @@ supportedExtensions :: [String]
 supportedExtensions = concatMap toFlagSpecNamePair xFlags
   where
     toFlagSpecNamePair flg
+#if !defined(GHCI)
+      -- IMPORTANT! Make sure that `ghc --supported-extensions` omits
+      -- "TemplateHaskell"/"QuasiQuotes" when it's known not to work out of the
+      -- box. See also GHC #11102 and #16331 for more details about
+      -- the rationale
+      | flagSpecFlag flg == LangExt.TemplateHaskell  = [noName]
+      | flagSpecFlag flg == LangExt.QuasiQuotes      = [noName]
+#endif
       | otherwise = [name, noName]
       where
         noName = "No" ++ name