X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fparser%2FRdrHsSyn.lhs;h=b83bcd952ecca057f97430a1daf6b232d352d2f3;hp=e0e8c3c211e339b8ece7f98f7f31ddf674ea71c0;hb=8dbd52c7606588ab7fc7ffd3a54641b7cadc4431;hpb=6f8ff0bbad3b9fa389c960ad1b5a267a1ae502f1 diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs index e0e8c3c..b83bcd9 100644 --- a/compiler/parser/RdrHsSyn.lhs +++ b/compiler/parser/RdrHsSyn.lhs @@ -128,7 +128,6 @@ extract_lty (L loc ty) acc HsNumTy _ -> acc HsQuasiQuoteTy {} -> acc -- Quasi quotes mention no type variables HsSpliceTy {} -> acc -- Type splices mention no type variables - HsSpliceTyOut {} -> acc -- Type splices mention no type variables HsKindSig ty _ -> extract_lty ty acc HsForAllTy _ [] cx ty -> extract_lctxt cx (extract_lty ty acc) HsForAllTy _ tvs cx ty -> acc ++ (filter ((`notElem` locals) . unLoc) $ @@ -503,8 +502,7 @@ checkTParams is_family tparams = do { tyvars <- checkTyVars tparams ; return (tyvars, Nothing) } | otherwise -- Family case (b) - = do { let tyvars = [L l (UserTyVar tv) - | L l tv <- extractHsTysRdrTyVars tparams] + = do { let tyvars = userHsTyVarBndrs (extractHsTysRdrTyVars tparams) ; return (tyvars, Just tparams) } checkTyVars :: [LHsType RdrName] -> P [LHsTyVarBndr RdrName] @@ -519,7 +517,7 @@ checkTyVars tparms = mapM chk tparms chk (L l (HsKindSig (L _ (HsTyVar tv)) k)) | isRdrTyVar tv = return (L l (KindedTyVar tv k)) chk (L l (HsTyVar tv)) - | isRdrTyVar tv = return (L l (UserTyVar tv)) + | isRdrTyVar tv = return (L l (UserTyVar tv placeHolderKind)) chk (L l _) = parseError l "Type found where type variable expected"