projects
/
matthijs
/
master-project
/
cλash.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
1c0228a
)
Let tfvec_len and tfvec_elem give a proper error message.
author
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 25 Jun 2009 08:40:40 +0000
(10:40 +0200)
committer
Matthijs Kooijman
<m.kooijman@student.utwente.nl>
Thu, 25 Jun 2009 08:40:40 +0000
(10:40 +0200)
CoreTools.hs
patch
|
blob
|
history
diff --git
a/CoreTools.hs
b/CoreTools.hs
index b08f3ce9897d65b607c14a7ed3db2ed8eca195ad..c797bb7581fa3b615af426e1693f4ff6303235ae 100644
(file)
--- a/
CoreTools.hs
+++ b/
CoreTools.hs
@@
-27,8
+27,10
@@
import qualified Unique
import qualified CoreUtils
import qualified CoreFVs
import qualified CoreUtils
import qualified CoreFVs
+-- Local imports
import GhcTools
import HsTools
import GhcTools
import HsTools
+import Pretty
-- | Evaluate a core Type representing type level int from the tfp
-- library to a real int.
-- | Evaluate a core Type representing type level int from the tfp
-- library to a real int.
@@
-92,15
+94,19
@@
ranged_word_bound ty =
tfvec_len :: Type.Type -> Int
tfvec_len ty =
eval_tfp_int len
tfvec_len :: Type.Type -> Int
tfvec_len ty =
eval_tfp_int len
- where
- (tycon, args) = Type.splitTyConApp ty
+ where
+ args = case Type.splitTyConApp_maybe ty of
+ Just (tycon, args) -> args
+ Nothing -> error $ "CoreTools.tfvec_len Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- | Get the element type of a TFVec type
tfvec_elem :: Type.Type -> Type.Type
tfvec_elem ty = el_ty
where
[len, el_ty] = args
-- | Get the element type of a TFVec type
tfvec_elem :: Type.Type -> Type.Type
tfvec_elem ty = el_ty
where
- (tycon, args) = Type.splitTyConApp ty
+ args = case Type.splitTyConApp_maybe ty of
+ Just (tycon, args) -> args
+ Nothing -> error $ "CoreTools.tfvec_len Not a vector type: " ++ (pprString ty)
[len, el_ty] = args
-- Is this a wild binder?
[len, el_ty] = args
-- Is this a wild binder?