Extend ModBreaks with the srcspan's of the enclosing expressions
[ghc-hetmet.git] / compiler / main / HscTypes.lhs
index 85cf73e..c1882d6 100644 (file)
@@ -1302,6 +1302,7 @@ data VectInfo
       vectInfoVar     :: VarEnv  (Var    , Var  ),   -- (f, f_v) keyed on f
       vectInfoTyCon   :: NameEnv (TyCon  , TyCon),   -- (T, T_v) keyed on T
       vectInfoDataCon :: NameEnv (DataCon, DataCon), -- (C, C_v) keyed on C
+      vectInfoPADFun  :: NameEnv (TyCon  , Var),     -- (T_v, paT) keyed on T_v
       vectInfoIso     :: NameEnv (TyCon  , Var)      -- (T, isoT) keyed on T
     }
     -- all of this is always tidy, even in ModGuts
@@ -1325,13 +1326,14 @@ data IfaceVectInfo
     }
 
 noVectInfo :: VectInfo
-noVectInfo = VectInfo emptyVarEnv emptyNameEnv emptyNameEnv emptyNameEnv
+noVectInfo = VectInfo emptyVarEnv emptyNameEnv emptyNameEnv emptyNameEnv emptyNameEnv
 
 plusVectInfo :: VectInfo -> VectInfo -> VectInfo
 plusVectInfo vi1 vi2 = 
   VectInfo (vectInfoVar     vi1 `plusVarEnv`  vectInfoVar     vi2)
            (vectInfoTyCon   vi1 `plusNameEnv` vectInfoTyCon   vi2)
            (vectInfoDataCon vi1 `plusNameEnv` vectInfoDataCon vi2)
+           (vectInfoPADFun  vi1 `plusNameEnv` vectInfoPADFun  vi2)
            (vectInfoIso     vi1 `plusNameEnv` vectInfoIso     vi2)
 
 noIfaceVectInfo :: IfaceVectInfo
@@ -1425,6 +1427,8 @@ data ModBreaks
         -- An array giving the source span of each breakpoint.
    , modBreaks_vars :: !(Array BreakIndex [OccName])
         -- An array giving the names of the free variables at each breakpoint.
+   , modBreaks_decls:: !(Array BreakIndex SrcSpan)
+        -- An array giving the span of the enclosing expression
    }
 
 emptyModBreaks :: ModBreaks
@@ -1433,5 +1437,6 @@ emptyModBreaks = ModBreaks
          -- Todo: can we avoid this? 
    , modBreaks_locs = array (0,-1) []
    , modBreaks_vars = array (0,-1) []
+   , modBreaks_decls= array (0,-1) []
    }
 \end{code}