diff options
Diffstat (limited to 'src/HaskellCodeExplorer/GhcUtils.hs')
-rw-r--r-- | src/HaskellCodeExplorer/GhcUtils.hs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/HaskellCodeExplorer/GhcUtils.hs b/src/HaskellCodeExplorer/GhcUtils.hs index 461344f..99cf7b4 100644 --- a/src/HaskellCodeExplorer/GhcUtils.hs +++ b/src/HaskellCodeExplorer/GhcUtils.hs @@ -123,6 +123,7 @@ import GHC , HsDataDefn(..) , NewOrData(..) , Id + , rdrNameFieldOcc , HsGroup(..) , HsBindLR(..) , HsValBindsLR(..) @@ -480,14 +481,16 @@ hsGroupVals hsGroup = XValBindsLR (NValBinds binds _) -> concatMap (bagToList . snd) binds _ -> [] -hsPatSynDetails :: HsPatSynDetails GhcRn -> [Name] +hsPatSynDetails :: HsPatSynDetails GhcRn -> [Located Name] hsPatSynDetails patDetails = case patDetails of - InfixCon name1 name2 -> [unLoc name1, unLoc name2] - PrefixCon _ fields -> unLoc <$> fields + InfixCon name1 name2 -> [reLocN name1, reLocN name2] + PrefixCon _ fields -> reLocN <$> fields RecCon fields -> concatMap - (\field -> [extFieldOcc $ recordPatSynField field, - unLoc $ recordPatSynPatVar field]) + (\field -> [ + L ((getLocA . rdrNameFieldOcc . recordPatSynField) field) + (extFieldOcc $ recordPatSynField field), + reLocN $ recordPatSynPatVar field]) fields #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) |