diff options
author | alexwl <alexey.a.kiryushin@gmail.com> | 2018-12-10 16:50:24 +0300 |
---|---|---|
committer | alexwl <alexey.a.kiryushin@gmail.com> | 2018-12-10 16:50:24 +0300 |
commit | 7488749af2408b6509776cfb54c150a834b55314 (patch) | |
tree | d7dc66efba2300cf2b233a7f6c94d77f7314f24d /src/HaskellCodeExplorer | |
parent | 2c089ff24c85faf0595a1d8b985c4e3ead3f4b64 (diff) |
Index injectivity annotations
Diffstat (limited to 'src/HaskellCodeExplorer')
-rw-r--r-- | src/HaskellCodeExplorer/AST/RenamedSource.hs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/HaskellCodeExplorer/AST/RenamedSource.hs b/src/HaskellCodeExplorer/AST/RenamedSource.hs index d3b67d3..52e92e6 100644 --- a/src/HaskellCodeExplorer/AST/RenamedSource.hs +++ b/src/HaskellCodeExplorer/AST/RenamedSource.hs @@ -64,6 +64,7 @@ import GHC #endif , Type , RoleAnnotDecl(..) + , InjectivityAnn (..) , unLoc ) #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) @@ -124,7 +125,8 @@ namesFromRenamedSource = hsRecAmbFieldExprNames `extQ` hsRecFieldPatNames `extQ` foreignDeclNames `extQ` - roleAnnotationNames) + roleAnnotationNames `extQ` + injectivityAnnotationNames) #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) fieldOccName :: Bool -> FieldOcc GhcRn -> NameOccurrence @@ -647,3 +649,19 @@ roleAnnotationNames (RoleAnnotDecl n _) = , isBinder = False } ] + +#if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) +injectivityAnnotationNames :: InjectivityAnn GhcRn -> [NameOccurrence] +#else +injectivityAnnotationNames :: InjectivityAnn Name -> [NameOccurrence] +#endif +injectivityAnnotationNames (InjectivityAnn lhsName rhsNames) = + injAnnNameOcc lhsName : map injAnnNameOcc rhsNames + where + injAnnNameOcc :: GenLocated SrcSpan Name -> NameOccurrence + injAnnNameOcc n = + NameOccurrence + { locatedName = Just <$> n + , description = "InjectivityAnn" + , isBinder = False + } |