Hannes Siebenhandl pushed to branch wip/fendor/t23703 at Glasgow Haskell Compiler / GHC
Commits:
-
69d328b2
by fendor at 2025-10-06T09:27:22+02:00
2 changed files:
Changes:
| ... | ... | @@ -472,14 +472,12 @@ alterUDFM_L |
| 472 | 472 | -> (Maybe elt, UniqDFM key elt) -- ^ New element at @key@ and modified 'UniqDFM'
|
| 473 | 473 | alterUDFM_L f (UDFM m i) k =
|
| 474 | 474 | let
|
| 475 | - -- Force the key Word64 as the thunk is almost never worth it.
|
|
| 476 | - !key = getKey $ getUnique k
|
|
| 477 | - (mElt, udfm) = M.alterF (dupe . alterf) key m
|
|
| 475 | + (mElt, udfm) = M.alterLookupWithKey alterf (getKey $ getUnique k) m
|
|
| 478 | 476 | in
|
| 479 | - (mElt, UDFM udfm (i + 1))
|
|
| 477 | + (untag mElt, UDFM udfm (i + 1))
|
|
| 480 | 478 | where
|
| 481 | - dupe :: Maybe (TaggedVal elt) -> (Maybe elt, Maybe (TaggedVal elt))
|
|
| 482 | - dupe mt = (fmap taggedFst mt, mt)
|
|
| 479 | + untag Nothing = Nothing
|
|
| 480 | + untag (Just (TaggedVal v _)) = Just v
|
|
| 483 | 481 | alterf :: Maybe (TaggedVal elt) -> (Maybe (TaggedVal elt))
|
| 484 | 482 | alterf Nothing = inject $ f Nothing
|
| 485 | 483 | alterf (Just (TaggedVal v _)) = inject $ f (Just v)
|
| ... | ... | @@ -22,7 +22,6 @@ module GHC.Types.Unique.Map ( |
| 22 | 22 | addToUniqMap_Acc,
|
| 23 | 23 | addToUniqMap_L,
|
| 24 | 24 | alterUniqMap,
|
| 25 | - alterUniqMap_L,
|
|
| 26 | 25 | addListToUniqMap_C,
|
| 27 | 26 | adjustUniqMap,
|
| 28 | 27 | delFromUniqMap,
|
| ... | ... | @@ -161,15 +160,6 @@ alterUniqMap :: Uniquable k |
| 161 | 160 | alterUniqMap f (UniqMap m) k = UniqMap $
|
| 162 | 161 | alterUFM (fmap (k,) . f . fmap snd) m k
|
| 163 | 162 | |
| 164 | -alterUniqMap_L :: Uniquable k
|
|
| 165 | - => (Maybe a -> Maybe a)
|
|
| 166 | - -> UniqMap k a
|
|
| 167 | - -> k
|
|
| 168 | - -> (Maybe a, UniqMap k a)
|
|
| 169 | -alterUniqMap_L f (UniqMap m) k =
|
|
| 170 | - let (r, m') = alterUFM_L (fmap (k,) . f . fmap snd) m k
|
|
| 171 | - in (snd <$> r, UniqMap m')
|
|
| 172 | - |
|
| 173 | 163 | addListToUniqMap_C
|
| 174 | 164 | :: Uniquable k
|
| 175 | 165 | => (a -> a -> a)
|