Skip to content

Commit 64aaf4e

Browse files
committed
export map improvements
1 parent 64ef035 commit 64aaf4e

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

ghcide/src/Development/IDE/Types/Exports.hs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module Development.IDE.Types.Exports
88
rendered,
99
moduleNameText,
1010
occNameText,
11+
isDatacon,
1112
createExportsMap,
1213
createExportsMapMg,
1314
createExportsMapTc,
@@ -87,40 +88,41 @@ moduleNameText' = decodeUtf8 . bytesFS . moduleNameFS
8788
data IdentInfo = IdentInfo
8889
{ name :: !OccName
8990
, parent :: !(Maybe OccName)
90-
, isDatacon :: !Bool
9191
, identModuleName :: !ModuleName
9292
}
9393
deriving (Generic, Show)
9494
deriving anyclass Hashable
9595

96+
isDatacon :: IdentInfo -> Bool
97+
isDatacon = isDataOcc . name
98+
9699
instance Eq IdentInfo where
97100
a == b = name a == name b
98101
&& parent a == parent b
99-
&& isDatacon a == isDatacon b
100-
&& moduleNameText a == moduleNameText b
102+
&& identModuleName a == identModuleName b
101103

102104
instance NFData IdentInfo where
103105
rnf IdentInfo{..} =
104106
-- deliberately skip the rendered field
105-
rnf name `seq` rnf parent `seq` rnf isDatacon `seq` rnf moduleNameText
107+
rnf name `seq` rnf parent `seq` rnf identModuleName
106108

107109
mkIdentInfos :: ModuleName -> AvailInfo -> [IdentInfo]
108110
mkIdentInfos mod (AvailName n) =
109-
[IdentInfo (nameOccName n) Nothing (isDataConName n) mod]
111+
[IdentInfo (nameOccName n) Nothing mod]
110112
mkIdentInfos mod (AvailFL fl) =
111-
[IdentInfo (nameOccName n) Nothing (isDataConName n) mod]
113+
[IdentInfo (nameOccName n) Nothing mod]
112114
where
113115
n = flSelector fl
114116
mkIdentInfos mod (AvailTC parent (n:nn) flds)
115117
-- Following the GHC convention that parent == n if parent is exported
116118
| n == parent
117-
= [ IdentInfo (nameOccName n) (Just $! nameOccName parent) (isDataConName n) mod
119+
= [ IdentInfo (nameOccName n) (Just $! nameOccName parent) mod
118120
| n <- nn ++ map flSelector flds
119121
] ++
120-
[ IdentInfo (nameOccName n) Nothing (isDataConName n) mod]
122+
[ IdentInfo (nameOccName n) Nothing mod]
121123

122124
mkIdentInfos mod (AvailTC _ nn flds)
123-
= [ IdentInfo (nameOccName n) Nothing (isDataConName n) mod
125+
= [ IdentInfo (nameOccName n) Nothing mod
124126
| n <- nn ++ map flSelector flds
125127
]
126128

@@ -177,7 +179,7 @@ createExportsMapHieDb withHieDb = do
177179
where
178180
wrap identInfo = (rendered identInfo, Set.fromList [identInfo])
179181
-- unwrap :: ExportRow -> IdentInfo
180-
unwrap m ExportRow{..} = IdentInfo exportName exportParent exportIsDatacon m
182+
unwrap m ExportRow{..} = IdentInfo exportName exportParent m
181183

182184
unpackAvail :: ModuleName -> IfaceExport -> [(Text, Text, [IdentInfo])]
183185
unpackAvail mn

0 commit comments

Comments
 (0)