X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fparser%2FParserCore.y;h=6d302fb03acf1d1cb54f5ff14cbadece99d8a91f;hp=225c164472ecc1e6efb8569b031f6a53da80cb64;hb=e79c9ce01d0ce4412bd4bcd99c8c728a6a2ec569;hpb=de777ba42eb12b6a20e548a959b23b60179d9b57 diff --git a/compiler/parser/ParserCore.y b/compiler/parser/ParserCore.y index 225c164..6d302fb 100644 --- a/compiler/parser/ParserCore.y +++ b/compiler/parser/ParserCore.y @@ -1,4 +1,11 @@ { +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details + module ParserCore ( parseCore ) where import IfaceSyn @@ -13,7 +20,6 @@ import Type ( Kind, ) import Name( Name, nameOccName, nameModule, mkExternalName ) import Module -import PackageConfig ( mainPackageId, stringToPackageId ) import ParserCoreUtils import LexCore import Literal @@ -200,12 +206,12 @@ let_bind :: { IfaceBinding } | vdef { let (b,r) = $1 in IfaceNonRec b r } -vdefs1 :: { [(IfaceIdBndr, IfaceExpr)] } +vdefs1 :: { [(IfaceLetBndr, IfaceExpr)] } : vdef { [$1] } | vdef ';' vdefs1 { $1:$3 } -vdef :: { (IfaceIdBndr, IfaceExpr) } - : fs_var_occ '::' ty '=' exp { (($1, $3), $5) } +vdef :: { (IfaceLetBndr, IfaceExpr) } + : fs_var_occ '::' ty '=' exp { (IfLetBndr $1 $3 NoInfo, $5) } | '%local' vdef { $2 } -- NB: qd_occ includes data constructors, because @@ -346,7 +352,7 @@ eqTc (IfaceTc name) tycon = name == tyConName tycon -- are very limited (see the productions for 'ty', so the translation -- isn't hard toHsType :: IfaceType -> LHsType RdrName -toHsType (IfaceTyVar v) = noLoc $ HsTyVar (mkRdrUnqual (mkTyVarOcc v)) +toHsType (IfaceTyVar v) = noLoc $ HsTyVar (mkRdrUnqual (mkTyVarOccFS v)) toHsType (IfaceAppTy t1 t2) = noLoc $ HsAppTy (toHsType t1) (toHsType t2) toHsType (IfaceFunTy t1 t2) = noLoc $ HsFunTy (toHsType t1) (toHsType t2) toHsType (IfaceTyConApp (IfaceTc tc) ts) = foldl mkHsAppTy (noLoc $ HsTyVar (ifaceExtRdrName tc)) (map toHsType ts) @@ -378,7 +384,7 @@ ifaceArrow ifT1 ifT2 = IfaceFunTy ifT1 ifT2 ifaceEq ifT1 ifT2 = IfacePredTy (IfaceEqPred ifT1 ifT2) toHsTvBndr :: IfaceTvBndr -> LHsTyVarBndr RdrName -toHsTvBndr (tv,k) = noLoc $ KindedTyVar (mkRdrUnqual (mkTyVarOcc tv)) (toKind k) +toHsTvBndr (tv,k) = noLoc $ KindedTyVar (mkRdrUnqual (mkTyVarOccFS tv)) (toKind k) ifaceExtRdrName :: Name -> RdrName ifaceExtRdrName name = mkOrig (nameModule name) (nameOccName name)