diff --git a/haskell-lsp-types/src/Language/Haskell/LSP/Types/DataTypesJSON.hs b/haskell-lsp-types/src/Language/Haskell/LSP/Types/DataTypesJSON.hs index 2aabb5df2..bc0c41e9d 100644 --- a/haskell-lsp-types/src/Language/Haskell/LSP/Types/DataTypesJSON.hs +++ b/haskell-lsp-types/src/Language/Haskell/LSP/Types/DataTypesJSON.hs @@ -1623,16 +1623,13 @@ instance FromJSON MarkedString where data HoverContents = HoverContentsMS (List MarkedString) | HoverContents MarkupContent - | HoverContentsEmpty deriving (Read,Show,Eq) instance ToJSON HoverContents where toJSON (HoverContentsMS x) = toJSON x toJSON (HoverContents x) = toJSON x - toJSON (HoverContentsEmpty) = A.Null instance FromJSON HoverContents where parseJSON v@(A.String _) = HoverContentsMS <$> parseJSON v - parseJSON (A.Null) = pure HoverContentsEmpty parseJSON v@(A.Array _) = HoverContentsMS <$> parseJSON v parseJSON v@(A.Object _) = HoverContents <$> parseJSON v <|> HoverContentsMS <$> parseJSON v @@ -1646,10 +1643,8 @@ instance Semigroup HoverContents where #endif instance Monoid HoverContents where - mempty = HoverContentsEmpty + mempty = HoverContentsMS (List []) - HoverContentsEmpty `mappend` hc = hc - hc `mappend` HoverContentsEmpty = hc HoverContents h1 `mappend` HoverContents h2 = HoverContents (h1 `mappend` h2) HoverContents h1 `mappend` HoverContentsMS (List h2s) = HoverContents (mconcat (h1: (map toMarkupContent h2s))) HoverContentsMS (List h1s) `mappend` HoverContents h2 = HoverContents (mconcat ((map toMarkupContent h1s) ++ [h2])) diff --git a/test/JsonSpec.hs b/test/JsonSpec.hs index a69b8d3a3..0d157ccb8 100644 --- a/test/JsonSpec.hs +++ b/test/JsonSpec.hs @@ -59,7 +59,7 @@ instance Arbitrary MarkupKind where instance Arbitrary HoverContents where arbitrary = oneof [ HoverContentsMS <$> arbitrary , HoverContents <$> arbitrary - , pure HoverContentsEmpty] + ] -- | make lists of maximum length 3 for test performance smallList :: Gen a -> Gen [a]