Ben Gamari pushed to branch wip/T25968 at Glasgow Haskell Compiler / GHC
Commits:
-
e9da33b9
by Ben Gamari at 2025-04-24T13:48:24-04:00
2 changed files:
Changes:
| ... | ... | @@ -96,7 +96,7 @@ import GHC.Utils.Misc |
| 96 | 96 | import GHC.Settings.Config (cProjectUnitId)
|
| 97 | 97 | |
| 98 | 98 | import Control.DeepSeq (NFData(..))
|
| 99 | -import Data.Data
|
|
| 99 | +import Data.Data (Data(..))
|
|
| 100 | 100 | import Data.List (sortBy)
|
| 101 | 101 | import Data.Function
|
| 102 | 102 | import Data.Bifunctor
|
| ... | ... | @@ -117,12 +117,6 @@ data GenModule unit = Module |
| 117 | 117 | }
|
| 118 | 118 | deriving (Eq,Ord,Data,Functor)
|
| 119 | 119 | |
| 120 | -instance Data ModuleName where
|
|
| 121 | - -- don't traverse?
|
|
| 122 | - toConstr _ = abstractConstr "ModuleName"
|
|
| 123 | - gunfold _ _ = error "gunfold"
|
|
| 124 | - dataTypeOf _ = mkNoRepType "ModuleName"
|
|
| 125 | - |
|
| 126 | 120 | -- | A Module is a pair of a 'Unit' and a 'ModuleName'.
|
| 127 | 121 | type Module = GenModule Unit
|
| 128 | 122 |
| ... | ... | @@ -3,6 +3,7 @@ module Language.Haskell.Syntax.Module.Name where |
| 3 | 3 | import Prelude
|
| 4 | 4 | |
| 5 | 5 | import Data.Char (isAlphaNum)
|
| 6 | +import Data.Data
|
|
| 6 | 7 | import Control.DeepSeq
|
| 7 | 8 | import qualified Text.ParserCombinators.ReadP as Parse
|
| 8 | 9 | import System.FilePath
|
| ... | ... | @@ -12,6 +13,15 @@ import GHC.Data.FastString |
| 12 | 13 | -- | A ModuleName is essentially a simple string, e.g. @Data.List@.
|
| 13 | 14 | newtype ModuleName = ModuleName FastString deriving (Show, Eq)
|
| 14 | 15 | |
| 16 | +instance Data ModuleName where
|
|
| 17 | + -- don't traverse?
|
|
| 18 | + toConstr _ = constr
|
|
| 19 | + where
|
|
| 20 | + constr = mkConstr datatype "{abstract:ModuleName}" [] Prefix
|
|
| 21 | + datatype = mkDataType "ModuleName" [constr]
|
|
| 22 | + gunfold _ _ = error "gunfold"
|
|
| 23 | + dataTypeOf _ = mkNoRepType "ModuleName"
|
|
| 24 | + |
|
| 15 | 25 | instance Ord ModuleName where
|
| 16 | 26 | nm1 `compare` nm2 = stableModuleNameCmp nm1 nm2
|
| 17 | 27 |