@@ -90,9 +90,9 @@ typecheckModule
9090typecheckModule packageState deps pm =
9191 fmap (either (, Nothing) (second Just)) $
9292 runGhcEnv packageState $
93− catchSrcErrors $ do
93+ catchSrcErrors "typecheck" $ do
9494 setupEnv deps
95− (warnings, tcm) <- withWarnings $ \tweak ->
95+ (warnings, tcm) <- withWarnings "typecheck" $ \tweak ->
9696 GHC.typecheckModule pm{pm_mod_summary = tweak $ pm_mod_summary pm}
9797 tcm2 <- mkTcModuleResult tcm
9898 return (warnings, tcm2)
@@ -107,12 +107,12 @@ compileModule
107107compileModule packageState deps tmr =
108108 fmap (either (, Nothing) (second Just)) $
109109 runGhcEnv packageState $
110− catchSrcErrors $ do
110+ catchSrcErrors "compile" $ do
111111 setupEnv (deps ++ [tmr])
112112
113113 let tm = tmrModule tmr
114114 session <- getSession
115− (warnings,desugar) <- withWarnings $ \tweak -> do
115+ (warnings,desugar) <- withWarnings "compile" $ \tweak -> do
116116 let pm = tm_parsed_module tm
117117 let pm' = pm{pm_mod_summary = tweak $ pm_mod_summary pm}
118118 let tm' = tm{tm_parsed_module = pm'}
@@ -199,7 +199,7 @@ getImportsParsed dflags (L loc parsed) = do
199199 let srcImports = filter (ideclSource . GHC.unLoc) $ GHC.hsmodImports parsed
200200 when (not $ null srcImports) $ Left $
201201 concat
202− [ diagFromString mloc ("Illegal source import of " <> GHC.moduleNameString (GHC.unLoc $ GHC.ideclName i))
202+ [ diagFromString "imports" mloc ("Illegal source import of " <> GHC.moduleNameString (GHC.unLoc $ GHC.ideclName i))
203203 | L mloc i <- srcImports ]
204204
205205 -- most of these corner cases are also present in https://hackage.haskell.org/package/ghc-8.6.1/docs/src/HeaderInfo.html#getImports
@@ -322,7 +322,7 @@ parseFileContents preprocessor filename mbContents = do
322322
323323 case unP Parser.parseModule (mkPState dflags contents loc) of
324324 PFailed _ locErr msgErr ->
325− throwE $ diagFromErrMsg dflags $ mkPlainErrMsg dflags locErr msgErr
325+ throwE $ diagFromErrMsg "parser" dflags $ mkPlainErrMsg dflags locErr msgErr
326326 POk pst rdr_module ->
327327 let hpm_annotations =
328328 (Map.fromListWith (++) $ annotations pst,
@@ -341,11 +341,11 @@ parseFileContents preprocessor filename mbContents = do
341341 -- errors are those from which a parse tree just can't
342342 -- be produced.
343343 unless (null errs) $
344− throwE $ diagFromErrMsgs dflags $ snd $ getMessages pst dflags
344+ throwE $ diagFromErrMsgs "parser" dflags $ snd $ getMessages pst dflags
345345
346346 -- Ok, we got here. It's safe to continue.
347347 let (errs, parsed) = preprocessor rdr_module
348− unless (null errs) $ throwE $ diagFromStrings errs
348+ unless (null errs) $ throwE $ diagFromStrings "parser" errs
349349 ms <- getModSummaryFromBuffer filename contents dflags parsed
350350 let pm =
351351 ParsedModule {
@@ -354,7 +354,7 @@ parseFileContents preprocessor filename mbContents = do
354354 , pm_extra_src_files=[] -- src imports not allowed
355355 , pm_annotations = hpm_annotations
356356 }
357− warnings = diagFromErrMsgs dflags warns
357+ warnings = diagFromErrMsgs "parser" dflags warns
358358 pure (warnings, pm)
359359
360360
@@ -364,7 +364,7 @@ parsePragmasIntoDynFlags
364364 => FilePath
365365 -> SB.StringBuffer
366366 -> m (Either [FileDiagnostic] DynFlags)
367−parsePragmasIntoDynFlags fp contents = catchSrcErrors $ do
367+parsePragmasIntoDynFlags fp contents = catchSrcErrors "pragmas" $ do
368368 dflags0 <- getSessionDynFlags
369369 let opts = Hdr.getOptions dflags0 contents fp
370370 (dflags, _, _) <- parseDynamicFilePragma dflags0 opts
@@ -372,12 +372,12 @@ parsePragmasIntoDynFlags fp contents = catchSrcErrors $ do
372372
373373-- | Run something in a Ghc monad and catch the errors (SourceErrors and
374374-- compiler-internal exceptions like Panic or InstallationError).
375−catchSrcErrors :: GhcMonad m => m a -> m (Either [FileDiagnostic] a)
376−catchSrcErrors ghcM = do
375+catchSrcErrors :: GhcMonad m => T.Text -> m a -> m (Either [FileDiagnostic] a)
376+catchSrcErrors fromWhere ghcM = do
377377 dflags <- getDynFlags
378378 handleGhcException (ghcExceptionToDiagnostics dflags) $
379379 handleSourceError (sourceErrorToDiagnostics dflags) $
380380 Right <$> ghcM
381381 where
382− ghcExceptionToDiagnostics dflags = return . Left . diagFromGhcException dflags
383− sourceErrorToDiagnostics dflags = return . Left . diagFromErrMsgs dflags . srcErrorMessages
382+ ghcExceptionToDiagnostics dflags = return . Left . diagFromGhcException fromWhere dflags
383+ sourceErrorToDiagnostics dflags = return . Left . diagFromErrMsgs fromWhere dflags . srcErrorMessages