@@ -102,6 +102,7 @@ import Data.Functor
102
102
import qualified Data.HashMap.Strict as HashMap
103
103
import Data.Tuple.Extra (dupe )
104
104
import Data.Unique as Unique
105
+ import Development.IDE.Core.Tracing (withTrace )
105
106
import qualified Language.LSP.Server as LSP
106
107
import qualified Language.LSP.Types as LSP
107
108
@@ -899,7 +900,8 @@ loadHieFile ncu f = do
899
900
-- Assumes file exists.
900
901
-- Requires the 'HscEnv' to be set up with dependencies
901
902
loadInterface
902
- :: MonadIO m => HscEnv
903
+ :: (MonadIO m , MonadMask m )
904
+ => HscEnv
903
905
-> ModSummary
904
906
-> SourceModified
905
907
-> Maybe LinkableType
@@ -939,7 +941,15 @@ loadInterface session ms sourceMod linkableNeeded regen = do
939
941
hmi <- liftIO $ mkDetailsFromIface sessionWithMsDynFlags iface linkable
940
942
return ([] , Just $ mkHiFileResult ms hmi)
941
943
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
943
953
944
954
mkDetailsFromIface :: HscEnv -> ModIface -> Maybe Linkable -> IO HomeModInfo
945
955
mkDetailsFromIface session iface linkable = do
0 commit comments