----------------------------------
Fix a "class used as a type" crash
----------------------------------
Merge to STABLE
Thanks to Shae for finding this one. tcfail134 tests.
* Zonks any kinds
It cannot fail, and does no validity checking, except for
* Zonks any kinds
It cannot fail, and does no validity checking, except for
-structural matters, such as spurious ! annotations.
+structural matters, such as
+ (a) spurious ! annotations.
+ (b) a class used as a type
\begin{code}
dsHsType :: LHsType Name -> TcM Type
\begin{code}
dsHsType :: LHsType Name -> TcM Type
ds_var_app name arg_tys
= tcLookup name `thenM` \ thing ->
case thing of
ds_var_app name arg_tys
= tcLookup name `thenM` \ thing ->
case thing of
- ATyVar _ ty -> returnM (mkAppTys ty arg_tys)
- AGlobal (ATyCon tc) -> returnM (mkGenTyConApp tc arg_tys)
- other -> pprPanic "ds_app_type" (ppr name <+> ppr arg_tys)
+ ATyVar _ ty -> returnM (mkAppTys ty arg_tys)
+ AGlobal (ATyCon tc) -> returnM (mkGenTyConApp tc arg_tys)
+ other -> wrongThingErr "type" thing name