X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FHeaderInfo.hs;h=926288440f36e6e9dd8b2367810a334226d43e93;hb=930421d4ed09e5389e0ef4c5eef36075a6809cc0;hp=89f4661fd958d42edc2b7b8bd25423ac04c02275;hpb=c197fe602ed4aadf09affe0cdc18e7158d262012;p=ghc-hetmet.git diff --git a/compiler/main/HeaderInfo.hs b/compiler/main/HeaderInfo.hs index 89f4661..9262884 100644 --- a/compiler/main/HeaderInfo.hs +++ b/compiler/main/HeaderInfo.hs @@ -59,13 +59,16 @@ getImports dflags buf filename source_filename = do case unP parseHeader (mkPState buf loc dflags) of PFailed span err -> parseError span err POk pst rdr_module -> do - let ms@(warns, errs) = getMessages pst - logWarnings warns + let _ms@(_warns, errs) = getMessages pst + -- don't log warnings: they'll be reported when we parse the file + -- for real. See #2500. + ms = (emptyBag, errs) + -- logWarnings warns if errorsFound dflags ms then liftIO $ throwIO $ mkSrcErr errs else case rdr_module of - L _ (HsModule mb_mod _ imps _ _ _ _) -> + L _ (HsModule mb_mod _ imps _ _ _) -> let main_loc = mkSrcLoc (mkFastString source_filename) 1 0 mod = mb_mod `orElse` L (srcLocSpan main_loc) mAIN_NAME @@ -123,8 +126,9 @@ lazyGetToks dflags filename handle = do _other -> do rest <- lazyLexBuf handle state' eof return (t : rest) _ | not eof -> getMore handle state - | otherwise -> return [] - + | otherwise -> return [L (last_loc state) ITeof] + -- parser assumes an ITeof sentinel at the end + getMore :: Handle -> PState -> IO [Located Token] getMore handle state = do -- pprTrace "getMore" (text (show (buffer state))) (return ())