[project @ 2005-11-19 14:59:53 by simonmar]
authorsimonmar <unknown>
Sat, 19 Nov 2005 14:59:53 +0000 (14:59 +0000)
committersimonmar <unknown>
Sat, 19 Nov 2005 14:59:53 +0000 (14:59 +0000)
fix repType after changes to the representation of type synonyms.
This caused the stage2 compiler to crash, because various info tables
misrepresented the pointerhood of constructor arguments.

ghc/compiler/types/Type.lhs

index 5a4fbb0..a9d8e28 100644 (file)
@@ -423,13 +423,10 @@ It's useful in the back end.
 \begin{code}
 repType :: Type -> Type
 -- Only applied to types of kind *; hence tycons are saturated
-repType (ForAllTy _ ty)   = repType ty
-repType (NoteTy   _ ty)   = repType ty
-repType (PredTy  p)       = repType (predTypeRep p)
-repType (TyConApp tc tys) 
-  | isNewTyCon tc        = ASSERT( tys `lengthIs` tyConArity tc )
-                           repType (new_type_rep tc tys)
-repType ty               = ty
+repType (ForAllTy _ ty)             = repType ty
+repType (NoteTy   _ ty)             = repType ty
+repType ty | Just ty' <- coreView ty = repType ty'
+          | otherwise               = ty
 
 -- ToDo: this could be moved to the code generator, using splitTyConApp instead
 -- of inspecting the type directly.