Let vhld_ty handle free tyvars gracefully.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 15:32:11 +0000 (17:32 +0200)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 19 Aug 2009 15:32:11 +0000 (17:32 +0200)
Previously, free type vars could result in ugly errors from eval_tfp_int
and friends. Now, a type with free type vars is correctly marked as
non-representable.

cλash/CLasH/VHDL/VHDLTools.hs

index 0d95f55425c90ec9198a93bd1dbc46ee2a108b2c..39506f8b5fd571c3f40c63abdb1f7b7036922bfd 100644 (file)
@@ -289,7 +289,8 @@ vhdl_ty_either tything =
     Just ty -> vhdl_ty_either' ty
 
 vhdl_ty_either' :: Type.Type -> TypeSession (Either String (Maybe AST.TypeMark))
-vhdl_ty_either' ty = do
+vhdl_ty_either' ty | ty_has_free_tyvars ty = return $ Left $ "VHDLTools.vhdl_ty_either': Cannot create type: type has free type variables: " ++ pprString ty
+                   | otherwise = do
   typemap <- getA tsTypes
   htype_either <- mkHType ty
   case htype_either of