diff options
Diffstat (limited to 'src/HaskellCodeExplorer')
| -rw-r--r-- | src/HaskellCodeExplorer/AST/RenamedSource.hs | 84 | 
1 files changed, 26 insertions, 58 deletions
| diff --git a/src/HaskellCodeExplorer/AST/RenamedSource.hs b/src/HaskellCodeExplorer/AST/RenamedSource.hs index 44e0190..cb0f132 100644 --- a/src/HaskellCodeExplorer/AST/RenamedSource.hs +++ b/src/HaskellCodeExplorer/AST/RenamedSource.hs @@ -10,8 +10,10 @@ module HaskellCodeExplorer.AST.RenamedSource    , namesFromRenamedSource    ) where -import BasicTypes (TupleSort(..)) -import BooleanFormula (BooleanFormula(..)) +-- import BasicTypes (TupleSort(..)) +import GHC.Types.Basic (TupleSort(..)) +-- import BooleanFormula (BooleanFormula(..)) +import GHC.Data.BooleanFormula (BooleanFormula(..))  import Data.Generics (Data, everything, extQ, mkQ)  import Data.Maybe (Maybe(..), mapMaybe)  import qualified Data.Text as T (Text) @@ -28,6 +30,7 @@ import GHC    , FixitySig(..)    , ForeignDecl(..)    , GenLocated(..) +  , getLocA    , HsBindLR(..)    , HsExpr(..)  #if MIN_VERSION_GLASGOW_HASKELL(8,4,1,0) @@ -65,6 +68,7 @@ import GHC    , Name    , Pat(..)    , PatSynBind(..) +  , reLocN    , Sig(..)    , TyClDecl(..)  #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) @@ -79,17 +83,21 @@ import GHC    , unLoc    )  #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) -import HsExtension (GhcRn) +-- import HsExtension (GhcRn) +import GHC.Hs.Extension (GhcRn)  #endif  import HaskellCodeExplorer.GhcUtils (hsPatSynDetails, ieLocNames, ghcDL)  import Prelude hiding (span) -import TysWiredIn +-- import TysWiredIn +import GHC.Builtin.Types    ( nilDataConName    , tupleTyConName -  , typeNatKind +--  , typeNatKind +  , naturalTy    , typeSymbolKind    ) -import SrcLoc +-- import SrcLoc +import GHC.Types.SrcLoc    ( mkRealSrcSpan    , mkRealSrcLoc    , realSrcSpanEnd @@ -139,19 +147,11 @@ namesFromRenamedSource =       roleAnnotationNames `extQ`       injectivityAnnotationNames) -#if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0)  fieldOccName :: Bool -> FieldOcc GhcRn -> NameOccurrence -#else -fieldOccName :: Bool -> FieldOcc Name -> NameOccurrence -#endif -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0)  fieldOccName _ (XFieldOcc _) = undefined -fieldOccName isBinder (FieldOcc name (L span _)) = -#else -fieldOccName isBinder (FieldOcc (L span _) name) = -#endif +fieldOccName isBinder (FieldOcc name located) =    NameOccurrence -    { locatedName = L span (Just name) +    { locatedName = L (getLocA located) (Just name)      , description = "FieldOcc"      , isBinder = isBinder      } @@ -215,12 +215,12 @@ hsExprNames (L _span (HsVar _ name)) =  hsExprNames (L _span (HsVar name)) =  #endif    [ NameOccurrence -    { locatedName = Just <$> name +    { locatedName = Just <$> reLocN name      , description = "HsVar"      , isBinder = False      }    ] -hsExprNames (L span (ExplicitList _ _ exprs)) +hsExprNames (L span (ExplicitList _ exprs))    | null exprs =      [ NameOccurrence        { locatedName = L span $ Just nilDataConName @@ -268,7 +268,7 @@ hsExprNames (L span (HsRnBracketOut _ (VarBr _ quote name) _)) =  hsExprNames (L span (HsRnBracketOut (VarBr quote name) _)) =  #endif    case span of -    RealSrcSpan realSpan -> +    RealSrcSpan realSpan _ ->        let start = realSrcSpanStart realSpan            end = realSrcSpanEnd realSpan            offset = @@ -362,45 +362,29 @@ importNames =    ieLocNames -#if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0)  patNames :: LPat GhcRn -> [NameOccurrence] -#else -patNames :: LPat Name -> [NameOccurrence] -#endif -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0)  patNames (ghcDL -> (L _span (VarPat _ name))) = -#else -patNames (L _span (VarPat name)) = -#endif    [ NameOccurrence      { locatedName = Just <$> name      , description = "VarPat"      , isBinder = True      }    ] -patNames (ghcDL -> (L _span (ConPatIn name _))) = +patNames (ghcDL -> (L _span (ConPat _ name _))) =    [ NameOccurrence      { locatedName = Just <$> name      , description = "ConPatIn"      , isBinder = False      }    ] -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0)  patNames (ghcDL -> (L _span (AsPat _ name _))) = -#else -patNames (L _span (AsPat name _)) = -#endif    [ NameOccurrence      { locatedName = Just <$> name      , description = "AsPat"      , isBinder = True      }    ] -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0)  patNames (ghcDL -> (L _span (NPlusKPat _ name _ _ _ _))) = -#else -patNames (L _span (NPlusKPat name _ _ _ _ _)) = -#endif    [ NameOccurrence      { locatedName = Just <$> name      , description = "NPlusKPat" @@ -538,7 +522,7 @@ hsTypeNames (L span (HsTyLit lit)) =  #endif    let kind =          case lit of -          HsNumTy _ _ -> typeNatKind +          HsNumTy _ _ -> naturalTy            HsStrTy _ _ -> typeSymbolKind    in [ TyLitOccurrence         { locatedName = L span Nothing @@ -566,8 +550,6 @@ hsTypeNames (L span (HsTupleTy tupleSort types))      let sort =            case tupleSort of              HsUnboxedTuple -> UnboxedTuple -            HsBoxedTuple -> BoxedTuple -            HsConstraintTuple -> ConstraintTuple              HsBoxedOrConstraintTuple -> BoxedTuple      in [ NameOccurrence           { locatedName = L span (Just $ tupleTyConName sort 0) @@ -582,36 +564,22 @@ hsTypeNames (L span (HsTupleTy tupleSort types))  hsTypeNames _ = [] -#if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) -hsTyVarBndrNames :: HsTyVarBndr GhcRn -> [NameOccurrence] -#else -hsTyVarBndrNames :: HsTyVarBndr Name -> [NameOccurrence] -#endif -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0) -hsTyVarBndrNames (UserTyVar _ n) = -#else -hsTyVarBndrNames (UserTyVar n) = -#endif +hsTyVarBndrNames :: HsTyVarBndr flag GhcRn -> [NameOccurrence] +hsTyVarBndrNames (UserTyVar _ _ n) =    [ NameOccurrence      { locatedName = Just <$> n      , description = "UserTyVar"      , isBinder = True      }    ] -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0) -hsTyVarBndrNames (KindedTyVar _ n _) = -#else -hsTyVarBndrNames (KindedTyVar n _) = -#endif +hsTyVarBndrNames (KindedTyVar _ _ n _) =    [ NameOccurrence      { locatedName = Just <$> n      , description = "KindedTyVar"      , isBinder = True      }    ] -#if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0)  hsTyVarBndrNames _ = [] -#endif  #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) @@ -669,7 +637,7 @@ familyDeclNames _ = []  #endif  #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) -familyEqNames :: FamEqn GhcRn (HsTyPats GhcRn) (LHsType GhcRn) -> [NameOccurrence] +familyEqNames :: FamEqn GhcRn (LHsType GhcRn) -> [NameOccurrence]  familyEqNames FamEqn {feqn_tycon = tyCon} =    [ NameOccurrence      { locatedName = Just <$> tyCon @@ -681,7 +649,7 @@ familyEqNames FamEqn {feqn_tycon = tyCon} =  familyEqNames _ = []  #endif -dataEqNames :: FamEqn GhcRn (HsTyPats GhcRn) (HsDataDefn GhcRn) -> [NameOccurrence] +dataEqNames :: FamEqn GhcRn (HsDataDefn GhcRn) -> [NameOccurrence]  dataEqNames FamEqn {feqn_tycon = tyCon} =    [ NameOccurrence      { locatedName = Just <$> tyCon | 
