resume,
abandon, abandonAll,
getResumeContext,
+ getHistoryTick,
getHistorySpan,
getHistoryModule,
+ findEnclosingDeclSpanByTick,
back, forward,
setContext, getContext,
nameSetToGlobalRdrEnv,
(getHistorySpan hsc_env h)
in h
+getHistoryTick :: History -> BreakIndex
+getHistoryTick = breakInfo_number . historyBreakInfo
+
getHistoryModule :: History -> Module
getHistoryModule = breakInfo_module . historyBreakInfo
-- ^^ assumes md_types is sorted
in decl
+-- | Finds the span of the (smallest) function containing this BreakIndex
+findEnclosingDeclSpanByTick :: HscEnv -> Module -> BreakIndex -> SrcSpan
+findEnclosingDeclSpanByTick hsc_env mod tick =
+ case lookupUFM (hsc_HPT hsc_env) (moduleName mod) of
+ Nothing -> panic "findEnclosingDecl"
+ Just hmi -> let
+ modbreaks = md_modBreaks (hm_details hmi)
+ in ASSERT (inRange (bounds modBreaks) tick)
+ modBreaks_decls modbreaks ! tick
+
-- | Find the Module corresponding to a FilePath
findModuleFromFile :: HscEnv -> FilePath -> Maybe Module
findModuleFromFile hsc_env fp =