Use HscEnv from initial HsToCore transformation when translating tfp to int
authorChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 13 Jul 2009 09:08:10 +0000 (11:08 +0200)
committerChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 13 Jul 2009 09:08:10 +0000 (11:08 +0200)
CoreTools.hs
VHDLTools.hs

index eae4122deff7425570ea5b232d4545ede76d46ac..988825509cd33be0b85f4c58d058ce1ba8edf9dc 100644 (file)
@@ -38,9 +38,10 @@ import Pretty
 
 -- | Evaluate a core Type representing type level int from the tfp
 -- library to a real int.
-eval_tfp_int :: Type.Type -> Int
-eval_tfp_int ty =
+eval_tfp_int :: HscTypes.HscEnv -> Type.Type -> Int
+eval_tfp_int env ty =
   unsafeRunGhc $ do
+    GHC.setSession env
     -- Automatically import modules for any fully qualified identifiers
     setDynFlag DynFlags.Opt_ImplicitImportQualified
 
index 1e6e5bc1d09e6a956bb5b53fc7039e2985afb406..a66f92dd4592d181152343909b72393a8d39948f 100644 (file)
@@ -527,10 +527,11 @@ isReprType ty = do
 tfp_to_int :: Type.Type -> TypeSession Int
 tfp_to_int ty = do
   lens <- getA vsTfpInts
+  hscenv <- getA vsHscEnv
   let existing_len = Map.lookup (OrdType ty) lens
   case existing_len of
     Just len -> return len
     Nothing -> do
-      let new_len = eval_tfp_int ty
+      let new_len = eval_tfp_int hscenv ty
       modA vsTfpInts (Map.insert (OrdType ty) (new_len))
       return new_len
\ No newline at end of file