diff options
| author | Alan Zimmerman <alan.zimm@gmail.com> | 2020-10-06 18:38:35 +0100 | 
|---|---|---|
| committer | Alan Zimmerman <alan.zimm@gmail.com> | 2020-10-19 08:57:27 +0100 | 
| commit | a7d1d8e034d25612d5d08ed8fdbf6f472aded4a1 (patch) | |
| tree | 9d4d2c25af988627af00eebccadd1410ad32d463 /haddock-api/src/Haddock | |
| parent | 77261e89c31b41eb5d7f1d16bb1de5b14b4296f4 (diff) | |
Match GHC, adding IsUnicodeSyntax field to HsFunTy and HsScaled
Diffstat (limited to 'haddock-api/src/Haddock')
| -rw-r--r-- | haddock-api/src/Haddock/Backends/Hoogle.hs | 3 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Convert.hs | 7 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/GhcUtils.hs | 7 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Interface/Create.hs | 5 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Interface/Rename.hs | 6 | ||||
| -rw-r--r-- | haddock-api/src/Haddock/Interface/Specialize.hs | 5 | 
6 files changed, 19 insertions, 14 deletions
diff --git a/haddock-api/src/Haddock/Backends/Hoogle.hs b/haddock-api/src/Haddock/Backends/Hoogle.hs index 90bd6b66..ecc4bf97 100644 --- a/haddock-api/src/Haddock/Backends/Hoogle.hs +++ b/haddock-api/src/Haddock/Backends/Hoogle.hs @@ -29,6 +29,7 @@ import GHC  import GHC.Driver.Ppr  import GHC.Utils.Outputable as Outputable  import GHC.Utils.Panic +import GHC.Parser.Annotation (IsUnicodeSyntax(..))  import Data.Char  import Data.List @@ -245,7 +246,7 @@ ppCtor dflags dat subdocs con@ConDeclH98 {}                             [out dflags (map (extFieldOcc . unLoc) $ cd_fld_names r) `typeSig` [resType, cd_fld_type r]]                            | r <- map unLoc recs] -        funs = foldr1 (\x y -> reL $ HsFunTy noExtField HsUnrestrictedArrow x y) +        funs = foldr1 (\x y -> reL $ HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) x y)          apps = foldl1 (\x y -> reL $ HsAppTy noExtField x y)          typeSig nm flds = operator nm ++ " :: " ++ outHsType dflags (unL $ funs flds) diff --git a/haddock-api/src/Haddock/Convert.hs b/haddock-api/src/Haddock/Convert.hs index 35cb3d92..650f8a1d 100644 --- a/haddock-api/src/Haddock/Convert.hs +++ b/haddock-api/src/Haddock/Convert.hs @@ -51,6 +51,7 @@ import GHC.Utils.Panic ( assertPanic )  import GHC.Types.Var  import GHC.Types.Var.Set  import GHC.Types.SrcLoc +import GHC.Parser.Annotation (IsUnicodeSyntax(..))  import Haddock.Types  import Haddock.Interface.Specialize @@ -767,9 +768,9 @@ noKindTyVars _ _ = emptyVarSet  synifyMult :: [TyVar] -> Mult -> HsArrow GhcRn  synifyMult vs t = case t of -                    One  -> HsLinearArrow -                    Many -> HsUnrestrictedArrow -                    ty -> HsExplicitMult (synifyType WithinType vs ty) +                    One  -> HsLinearArrow NormalSyntax +                    Many -> HsUnrestrictedArrow NormalSyntax +                    ty -> HsExplicitMult NormalSyntax (synifyType WithinType vs ty) diff --git a/haddock-api/src/Haddock/GhcUtils.hs b/haddock-api/src/Haddock/GhcUtils.hs index b4964d9f..a03587b4 100644 --- a/haddock-api/src/Haddock/GhcUtils.hs +++ b/haddock-api/src/Haddock/GhcUtils.hs @@ -44,6 +44,7 @@ import GHC.Types.Var.Env ( TyVarEnv, extendVarEnv, elemVarEnv, emptyVarEnv )  import GHC.Core.TyCo.Rep ( Type(..) )  import GHC.Core.Type     ( isRuntimeRepVar )  import GHC.Builtin.Types( liftedRepDataConTyCon ) +import GHC.Parser.Annotation (IsUnicodeSyntax(..))  import           GHC.Data.StringBuffer ( StringBuffer )  import qualified GHC.Data.StringBuffer             as S @@ -156,13 +157,13 @@ getGADTConType (ConDeclGADT { con_forall = L _ has_forall              | otherwise              = tau_ty ---   tau_ty :: LHsType DocNameI +--  tau_ty :: LHsType DocNameI     tau_ty = case args of                RecCon flds ->  mkFunTy (noLoc (HsRecTy noExtField (unLoc flds))) res_ty                PrefixCon pos_args -> foldr mkFunTy res_ty (map hsScaledThing pos_args)                InfixCon arg1 arg2 -> (hsScaledThing arg1) `mkFunTy` ((hsScaledThing arg2) `mkFunTy` res_ty) -   mkFunTy a b = noLoc (HsFunTy noExtField HsUnrestrictedArrow a b) +   mkFunTy a b = noLoc (HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) a b)  getGADTConType (ConDeclH98 {}) = panic "getGADTConType"    -- Should only be called on ConDeclGADT @@ -218,7 +219,7 @@ getGADTConTypeG (ConDeclGADT { con_forall = L _ has_forall                InfixCon arg1 arg2 -> (hsScaledThing arg1) `mkFunTy` ((hsScaledThing arg2) `mkFunTy` res_ty)     -- mkFunTy :: LHsType DocNameI -> LHsType DocNameI -> LHsType DocNameI -   mkFunTy a b = noLoc (HsFunTy noExtField HsUnrestrictedArrow a b) +   mkFunTy a b = noLoc (HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) a b)  getGADTConTypeG (ConDeclH98 {}) = panic "getGADTConTypeG"    -- Should only be called on ConDeclGADT diff --git a/haddock-api/src/Haddock/Interface/Create.hs b/haddock-api/src/Haddock/Interface/Create.hs index ffaec7f1..46f0cfe8 100644 --- a/haddock-api/src/Haddock/Interface/Create.hs +++ b/haddock-api/src/Haddock/Interface/Create.hs @@ -56,6 +56,7 @@ import GHC.Types.Basic ( StringLiteral(..), SourceText(..), PromotionFlag(..) )  import qualified GHC.Utils.Outputable as O  import GHC.Utils.Panic  import GHC.HsToCore.Docs hiding (mkMaps) +import GHC.Parser.Annotation (IsUnicodeSyntax(..))  -- | Use a 'TypecheckedModule' to produce an 'Interface'. @@ -957,7 +958,7 @@ extractPatternSyn nm t tvs cons =      in PatSynSig noExtField [noLoc nm] (mkEmptyImplicitBndrs typ'')    longArrow :: [LHsType GhcRn] -> LHsType GhcRn -> LHsType GhcRn -  longArrow inputs output = foldr (\x y -> noLoc (HsFunTy noExtField HsUnrestrictedArrow x y)) output inputs +  longArrow inputs output = foldr (\x y -> noLoc (HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) x y)) output inputs    data_ty con      | ConDeclGADT{} <- con = con_res_ty con @@ -974,7 +975,7 @@ extractRecSel _ _ _ [] = error "extractRecSel: selector not found"  extractRecSel nm t tvs (L _ con : rest) =    case getConArgs con of      RecCon (L _ fields) | ((l,L _ (ConDeclField _ _nn ty _)) : _) <- matching_fields fields -> -      L l (TypeSig noExtField [noLoc nm] (mkEmptySigWcType (noLoc (HsFunTy noExtField HsUnrestrictedArrow data_ty (getBangType ty))))) +      L l (TypeSig noExtField [noLoc nm] (mkEmptySigWcType (noLoc (HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) data_ty (getBangType ty)))))      _ -> extractRecSel nm t tvs rest   where    matching_fields :: [LConDeclField GhcRn] -> [(SrcSpan, LConDeclField GhcRn)] diff --git a/haddock-api/src/Haddock/Interface/Rename.hs b/haddock-api/src/Haddock/Interface/Rename.hs index 39a1ae17..67439383 100644 --- a/haddock-api/src/Haddock/Interface/Rename.hs +++ b/haddock-api/src/Haddock/Interface/Rename.hs @@ -223,9 +223,9 @@ renameMaybeInjectivityAnn :: Maybe (LInjectivityAnn GhcRn)  renameMaybeInjectivityAnn = traverse renameInjectivityAnn  renameArrow :: HsArrow GhcRn -> RnM (HsArrow DocNameI) -renameArrow HsUnrestrictedArrow = return HsUnrestrictedArrow -renameArrow HsLinearArrow = return HsLinearArrow -renameArrow (HsExplicitMult p) = HsExplicitMult <$> renameLType p +renameArrow (HsUnrestrictedArrow u) = return (HsUnrestrictedArrow u) +renameArrow (HsLinearArrow u) = return (HsLinearArrow u) +renameArrow (HsExplicitMult u p) = HsExplicitMult u <$> renameLType p  renameType :: HsType GhcRn -> RnM (HsType DocNameI)  renameType t = case t of diff --git a/haddock-api/src/Haddock/Interface/Specialize.hs b/haddock-api/src/Haddock/Interface/Specialize.hs index 28806f04..ad5063b3 100644 --- a/haddock-api/src/Haddock/Interface/Specialize.hs +++ b/haddock-api/src/Haddock/Interface/Specialize.hs @@ -17,6 +17,7 @@ import GHC  import GHC.Types.Name  import GHC.Data.FastString  import GHC.Builtin.Types ( listTyConName, unrestrictedFunTyConName ) +import GHC.Parser.Annotation (IsUnicodeSyntax(..))  import Control.Monad  import Control.Monad.Trans.State @@ -136,7 +137,7 @@ sugarTuples typ =  sugarOperators :: NamedThing (IdP (GhcPass p)) => HsType (GhcPass p) -> HsType (GhcPass p)  sugarOperators (HsAppTy _ (L _ (HsAppTy _ (L _ (HsTyVar _ _ (L l name))) la)) lb)      | isSymOcc $ getOccName name' = mkHsOpTy la (L l name) lb -    | unrestrictedFunTyConName == name' = HsFunTy noExtField HsUnrestrictedArrow la lb +    | unrestrictedFunTyConName == name' = HsFunTy noExtField (HsUnrestrictedArrow NormalSyntax) la lb    where      name' = getName name  sugarOperators typ = typ @@ -290,7 +291,7 @@ renameType t@(HsTyLit _ _) = pure t  renameType (HsWildCardTy wc) = pure (HsWildCardTy wc)  renameHsArrow :: HsArrow GhcRn -> Rename (IdP GhcRn) (HsArrow GhcRn) -renameHsArrow (HsExplicitMult p) = HsExplicitMult <$> renameLType p +renameHsArrow (HsExplicitMult u p) = HsExplicitMult u <$> renameLType p  renameHsArrow mult = pure mult  | 
