@@ -102,6 +102,7 @@ import Data.Functor
102102import qualified Data.HashMap.Strict as HashMap
103103import Data.Tuple.Extra (dupe )
104104import Data.Unique as Unique
105+ import Development.IDE.Core.Tracing (withTrace )
105106import qualified Language.LSP.Server as LSP
106107import qualified Language.LSP.Types as LSP
107108
@@ -899,7 +900,8 @@ loadHieFile ncu f = do
899900-- Assumes file exists.
900901-- Requires the 'HscEnv' to be set up with dependencies
901902loadInterface
902- :: MonadIO m => HscEnv
903+ :: (MonadIO m , MonadMask m )
904+ => HscEnv
903905 -> ModSummary
904906 -> SourceModified
905907 -> Maybe LinkableType
@@ -939,7 +941,15 @@ loadInterface session ms sourceMod linkableNeeded regen = do
939941 hmi <- liftIO $ mkDetailsFromIface sessionWithMsDynFlags iface linkable
940942 return ([] , Just $ mkHiFileResult ms hmi)
941943 else regen linkableNeeded
942- (_reason, _) -> regen linkableNeeded
944+ (_reason, _) -> withTrace " regenerate interface" $ \ setTag -> do
945+ setTag " Module" $ moduleNameString $ moduleName $ ms_mod ms
946+ setTag " Reason" $ showReason _reason
947+ regen linkableNeeded
948+
949+ showReason :: RecompileRequired -> String
950+ showReason UpToDate = " UpToDate"
951+ showReason MustCompile = " MustCompile"
952+ showReason (RecompBecause s) = s
943953
944954mkDetailsFromIface :: HscEnv -> ModIface -> Maybe Linkable -> IO HomeModInfo
945955mkDetailsFromIface session iface linkable = do
0 commit comments