summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIavor S. Diatchki <iavor.diatchki@gmail.com>2012-03-19 20:06:27 -0700
committerIavor S. Diatchki <iavor.diatchki@gmail.com>2012-03-19 20:06:27 -0700
commit62b25ec4d4654151ff36641b23adb7422e36da00 (patch)
tree24ad6f6ce8c1fa39f08be720db8d35fe1878fe65
parent29e3d7b1cb7bb83bab0cbb7bf565aef50baa27ef (diff)
downloadhaskell-62b25ec4d4654151ff36641b23adb7422e36da00.tar.gz
Add type-literals in the ordering hierarchy.
-rw-r--r--compiler/types/Type.lhs9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/types/Type.lhs b/compiler/types/Type.lhs
index fe913d48e7..c004c21bcb 100644
--- a/compiler/types/Type.lhs
+++ b/compiler/types/Type.lhs
@@ -1222,20 +1222,27 @@ cmpTypeX env (ForAllTy tv1 t1) (ForAllTy tv2 t2) = cmpTypeX (rnBndr2 env tv1
cmpTypeX env (AppTy s1 t1) (AppTy s2 t2) = cmpTypeX env s1 s2 `thenCmp` cmpTypeX env t1 t2
cmpTypeX env (FunTy s1 t1) (FunTy s2 t2) = cmpTypeX env s1 s2 `thenCmp` cmpTypeX env t1 t2
cmpTypeX env (TyConApp tc1 tys1) (TyConApp tc2 tys2) = (tc1 `compare` tc2) `thenCmp` cmpTypesX env tys1 tys2
+cmpTypeX _ (LitTy l1) (LitTy l2) = compare l1 l2
- -- Deal with the rest: TyVarTy < AppTy < FunTy < TyConApp < ForAllTy < PredTy
+ -- Deal with the rest: TyVarTy < AppTy < FunTy < LitTy < TyConApp < ForAllTy < PredTy
cmpTypeX _ (AppTy _ _) (TyVarTy _) = GT
cmpTypeX _ (FunTy _ _) (TyVarTy _) = GT
cmpTypeX _ (FunTy _ _) (AppTy _ _) = GT
+cmpTypeX _ (LitTy _) (TyVarTy _) = GT
+cmpTypeX _ (LitTy _) (AppTy _ _) = GT
+cmpTypeX _ (LitTy _) (FunTy _ _) = GT
+
cmpTypeX _ (TyConApp _ _) (TyVarTy _) = GT
cmpTypeX _ (TyConApp _ _) (AppTy _ _) = GT
cmpTypeX _ (TyConApp _ _) (FunTy _ _) = GT
+cmpTypeX _ (TyConApp _ _) (LitTy _) = GT
cmpTypeX _ (ForAllTy _ _) (TyVarTy _) = GT
cmpTypeX _ (ForAllTy _ _) (AppTy _ _) = GT
cmpTypeX _ (ForAllTy _ _) (FunTy _ _) = GT
+cmpTypeX _ (ForAllTy _ _) (LitTy _) = GT
cmpTypeX _ (ForAllTy _ _) (TyConApp _ _) = GT
cmpTypeX _ _ _ = LT