From 1f83d3295d9457fbea32694bbb88d12be3c44de9 Mon Sep 17 00:00:00 2001 From: Shayne Fletcher Date: Tue, 22 Oct 2024 11:47:03 -0400 Subject: [PATCH] updates for compatibility with GHC HEAD --- src/GHC/Util/Brackets.hs | 4 ---- src/GHC/Util/Unify.hs | 29 +++++++++++++++++++++++++---- src/Hint/Pattern.hs | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/GHC/Util/Brackets.hs b/src/GHC/Util/Brackets.hs index c3f27c8a..e543a7fd 100644 --- a/src/GHC/Util/Brackets.hs +++ b/src/GHC/Util/Brackets.hs @@ -59,12 +59,10 @@ instance Brackets (LocatedA (HsExpr GhcPs)) where _ -> False where isNegativeLit (HsInt _ i) = il_neg i - isNegativeLit (HsRat _ f _) = fl_neg f isNegativeLit (HsFloatPrim _ f) = fl_neg f isNegativeLit (HsDoublePrim _ f) = fl_neg f isNegativeLit (HsIntPrim _ x) = x < 0 isNegativeLit (HsInt64Prim _ x) = x < 0 - isNegativeLit (HsInteger _ x _) = x < 0 isNegativeLit _ = False isNegativeOverLit OverLit {ol_val=HsIntegral i} = il_neg i isNegativeOverLit OverLit {ol_val=HsFractional f} = fl_neg f @@ -131,8 +129,6 @@ instance Brackets (LocatedA (Pat GhcPs)) where isSignedLit HsInt{} = True isSignedLit HsIntPrim{} = True isSignedLit HsInt64Prim{} = True - isSignedLit HsInteger{} = True - isSignedLit HsRat{} = True isSignedLit HsFloatPrim{} = True isSignedLit HsDoublePrim{} = True isSignedLit _ = False diff --git a/src/GHC/Util/Unify.hs b/src/GHC/Util/Unify.hs index 66f3a497..f1c92dd5 100644 --- a/src/GHC/Util/Unify.hs +++ b/src/GHC/Util/Unify.hs @@ -120,6 +120,9 @@ unify' nm root x y | Just (x :: EpAnn AnnExplicitSum) <- cast x = Just mempty | Just (x :: EpAnn AnnFieldLabel) <- cast x = Just mempty | Just (x :: EpAnn (AnnList [EpToken ","])) <- cast x = Just mempty + | Just (x :: EpAnn (AnnList ())) <- cast x = Just mempty + | Just (x :: EpAnn (AnnList (EpToken "where"))) <- cast x = Just mempty + | Just (x :: EpAnn (AnnList (EpToken "hiding", [EpToken ","]))) <- cast x = Just mempty | Just (x :: EpAnn AnnListItem) <- cast x = Just mempty | Just (x :: EpAnn AnnParen) <- cast x = Just mempty | Just (x :: EpAnn AnnPragma) <- cast x = Just mempty @@ -135,16 +138,34 @@ unify' nm root x y | Just (x :: EpAnn HsRuleAnn) <- cast x = Just mempty | Just (x :: EpAnn NameAnn) <- cast x = Just mempty | Just (x :: EpAnn NoEpAnns) <- cast x = Just mempty - | Just (x :: EpToken "let") <- cast x = Just mempty - | Just (x :: EpToken "in") <- cast x = Just mempty - | Just (x :: EpToken "@") <- cast x = Just mempty + | Just (x :: EpToken "|") <- cast x = Just mempty + | Just (x :: EpToken ",") <- cast x = Just mempty + | Just (x :: EpToken ";") <- cast x = Just mempty + | Just (x :: EpToken "`") <- cast x = Just mempty + | Just (x :: EpToken ".") <- cast x = Just mempty + | Just (x :: EpToken "\\") <- cast x = Just mempty | Just (x :: EpToken "(") <- cast x = Just mempty | Just (x :: EpToken ")") <- cast x = Just mempty + | Just (x :: EpToken "@") <- cast x = Just mempty + | Just (x :: EpToken "#-}") <- cast x = Just mempty + | Just (x :: EpToken "if") <- cast x = Just mempty + | Just (x :: EpToken "then") <- cast x = Just mempty + | Just (x :: EpToken "let") <- cast x = Just mempty + | Just (x :: EpToken "else") <- cast x = Just mempty + | Just (x :: EpToken "case") <- cast x = Just mempty + | Just (x :: EpToken "of") <- cast x = Just mempty + | Just (x :: EpToken "in") <- cast x = Just mempty | Just (x :: EpToken "type") <- cast x = Just mempty | Just (x :: EpToken "%") <- cast x = Just mempty | Just (x :: EpToken "%1") <- cast x = Just mempty - | Just (x :: EpToken "⊸") <- cast x = Just mempty + | Just (x :: EpToken "proc") <- cast x = Just mempty + | Just (x :: EpToken "static") <- cast x = Just mempty + | Just (x :: EpToken "qualified") <- cast x = Just mempty + | Just (x :: EpToken "safe") <- cast x = Just mempty + | Just (x :: EpToken "as") <- cast x = Just mempty + | Just (x :: EpToken "import") <- cast x = Just mempty | Just (x :: EpUniToken "->" "→") <- cast x = Just mempty + | Just (x :: EpUniToken "::" "∷") <- cast x = Just mempty | Just (x :: TokenLocation) <- cast y = Just mempty | Just (y :: SrcSpan) <- cast y = Just mempty diff --git a/src/Hint/Pattern.hs b/src/Hint/Pattern.hs index 1b642547..8da7b0d2 100644 --- a/src/Hint/Pattern.hs +++ b/src/Hint/Pattern.hs @@ -69,7 +69,7 @@ import Data.Either import Refact.Types hiding (RType(Pattern, Match), SrcSpan) import Refact.Types qualified as R (RType(Pattern, Match), SrcSpan) -import GHC.Hs hiding(asPattern) +import GHC.Hs hiding (asPattern) import GHC.Types.SrcLoc import GHC.Types.Name.Reader import GHC.Types.Name.Occurrence