Suppress warnings about recursive INLINE in output of desugarer
authorsimonpj@microsoft.com <unknown>
Tue, 27 Jul 2010 09:45:49 +0000 (09:45 +0000)
committersimonpj@microsoft.com <unknown>
Tue, 27 Jul 2010 09:45:49 +0000 (09:45 +0000)
compiler/simplCore/CoreMonad.lhs

index f83f1bc..8e75a7b 100644 (file)
@@ -166,6 +166,11 @@ displayLintResults dflags pass warns errs binds
        ; Err.ghcExit dflags 1 }
 
   | not (isEmptyBag warns)
+  , not (case pass of { CoreDesugar -> True; _ -> False })
+       -- Suppress warnings after desugaring pass because some
+       -- are legitimate. Notably, the desugarer generates instance
+       -- methods with INLINE pragmas that form a mutually recursive
+       -- group.  Only afer a round of simplification are they unravelled.
   , not opt_NoDebugOutput
   , showLintWarnings pass
   = printDump (banner "warnings" $$ Err.pprMessageBag warns)