From d769b9a431dfeed869244fa4d473e9f474c1b2ec Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Tue, 31 May 2022 18:35:07 +1000 Subject: fixing patsyn --- src/HaskellCodeExplorer/GhcUtils.hs | 42 ++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/src/HaskellCodeExplorer/GhcUtils.hs b/src/HaskellCodeExplorer/GhcUtils.hs index 2a40213..4256641 100644 --- a/src/HaskellCodeExplorer/GhcUtils.hs +++ b/src/HaskellCodeExplorer/GhcUtils.hs @@ -86,6 +86,8 @@ import GHC.Driver.Session (DynFlags) import GHC.Data.FastString (mkFastString, unpackFS) import GHC ( DynFlags + , unXRec + , recordPatSynField #if MIN_VERSION_GLASGOW_HASKELL(8,6,1,0) , HsDocString #else @@ -499,25 +501,35 @@ hsGroupVals hsGroup = #endif _ -> [] -hsPatSynDetails :: HsPatSynDetails a -> [a] +hsPatSynDetails :: HsPatSynDetails GhcRn -> [Name] hsPatSynDetails patDetails = -#if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) case patDetails of - InfixCon name1 name2 -> [name1, name2] - PrefixCon _ fields -> fields + InfixCon name1 name2 -> [unXRec name1, unXRec name2] + PrefixCon _ fields -> unXRec <$> fields RecCon fields -> concatMap - (\field -> [-- recordPatSynSelectorId field, - recordPatSynPatVar field]) - fields -#else - case patDetails of - InfixPatSyn name1 name2 -> [name1, name2] - PrefixPatSyn name -> name - RecordPatSyn fields -> - concatMap - (\field -> [recordPatSynSelectorId field, recordPatSynPatVar field]) + (\field -> [extFieldOcc $ recordPatSynField field, + unXRec $ recordPatSynPatVar field]) fields -#endif + +-- hsPatSynDetails :: HsPatSynDetails a -> [a] +-- hsPatSynDetails patDetails = +-- #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) +-- case patDetails of +-- InfixCon name1 name2 -> [name1, name2] +-- PrefixCon _ fields -> fields +-- RecCon fields -> concatMap +-- (\field -> [-- recordPatSynSelectorId field, +-- recordPatSynPatVar field]) +-- fields +-- #else +-- case patDetails of +-- InfixPatSyn name1 name2 -> [name1, name2] +-- PrefixPatSyn name -> name +-- RecordPatSyn fields -> +-- concatMap +-- (\field -> [recordPatSynSelectorId field, recordPatSynPatVar field]) +-- fields +-- #endif #if MIN_VERSION_GLASGOW_HASKELL(8,4,3,0) -- cgit v1.2.3