Commit 3bec818f authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Fix Trac #1122; spot absence of TyCon in data/newtype header

parent 0f6f2b86
...@@ -54,7 +54,7 @@ module RdrHsSyn ( ...@@ -54,7 +54,7 @@ module RdrHsSyn (
#include "HsVersions.h" #include "HsVersions.h"
import HsSyn -- Lots of it import HsSyn -- Lots of it
import RdrName ( RdrName, isRdrTyVar, mkUnqual, rdrNameOcc, import RdrName ( RdrName, isRdrTyVar, isRdrTc, mkUnqual, rdrNameOcc,
isRdrDataCon, isUnqual, getRdrName, isQual, isRdrDataCon, isUnqual, getRdrName, isQual,
setRdrNameSpace ) setRdrNameSpace )
import BasicTypes ( maxPrecedence, Activation, InlineSpec(..), alwaysInlineSpec, neverInlineSpec ) import BasicTypes ( maxPrecedence, Activation, InlineSpec(..), alwaysInlineSpec, neverInlineSpec )
...@@ -468,13 +468,12 @@ checkTyClHdr (L l cxt) ty ...@@ -468,13 +468,12 @@ checkTyClHdr (L l cxt) ty
where where
gol (L l ty) acc = go l ty acc gol (L l ty) acc = go l ty acc
go l (HsTyVar tc) acc go l (HsTyVar tc) acc
| not (isRdrTyVar tc) = do | isRdrTc tc = do tvs <- extractTyVars acc
tvs <- extractTyVars acc return (L l tc, tvs, acc)
return (L l tc, tvs, acc) go l (HsOpTy t1 ltc@(L _ tc) t2) acc
go l (HsOpTy t1 tc t2) acc = do | isRdrTc tc = do tvs <- extractTyVars (t1:t2:acc)
tvs <- extractTyVars (t1:t2:acc) return (ltc, tvs, acc)
return (tc, tvs, acc)
go l (HsParTy ty) acc = gol ty acc go l (HsParTy ty) acc = gol ty acc
go l (HsAppTy t1 t2) acc = gol t1 (t2:acc) go l (HsAppTy t1 t2) acc = gol t1 (t2:acc)
go l other acc = go l other acc =
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment