Give a better deprecated message for INCLUDE pragmas; fixes #3933
authorIan Lynagh <igloo@earth.li>
Thu, 6 May 2010 13:09:10 +0000 (13:09 +0000)
committerIan Lynagh <igloo@earth.li>
Thu, 6 May 2010 13:09:10 +0000 (13:09 +0000)
We now have a DeprecatedFullText constructor, so we can override the
"-#include is deprecated: " part of the warning.

compiler/main/CmdLineParser.hs
compiler/main/DynFlags.hs

index dfe756b..f6b887e 100644 (file)
@@ -32,7 +32,9 @@ data Flag m = Flag
         flagDeprecated :: Deprecated  -- is the flag deprecated?
     }
 
-data Deprecated = Supported | Deprecated String
+data Deprecated = Supported
+                | Deprecated String
+                | DeprecatedFullText String
 
 data OptKind m                      -- Suppose the flag is -f
  = NoArg (m ())                     -- -f all by itself
@@ -66,6 +68,8 @@ processArgs spec args = process spec args [] [] []
            let warns' = case deprecated of
                         Deprecated warning ->
                             L loc ("Warning: " ++ dash_arg ++ " is deprecated: " ++ warning) : warns
+                        DeprecatedFullText warning ->
+                            L loc ("Warning: " ++ warning) : warns
                         Supported -> warns
            in case processOneArg action rest arg args of
               Left err            -> process spec args spare (L loc err : errs) warns'
index 5705bb3..86590db 100644 (file)
@@ -1014,7 +1014,7 @@ dynamic_flags = [
   , Flag "cpp"            (NoArg  (setDynFlag Opt_Cpp)) Supported
   , Flag "F"              (NoArg  (setDynFlag Opt_Pp)) Supported
   , Flag "#include"       (HasArg (addCmdlineHCInclude))
-                             (Deprecated "No longer has any effect")
+                             (DeprecatedFullText "-#include and INCLUDE pragmas are deprecated: They no longer have any effect")
   , Flag "v"              (OptIntSuffix setVerbosity) Supported
 
         ------- Specific phases  --------------------------------------------