From 111e26dcedf78b09aa16705efb33bd091dce8c6d Mon Sep 17 00:00:00 2001 From: Michael Peyton Jones Date: Sun, 4 Feb 2024 17:42:11 +0000 Subject: [PATCH] Switch to GHC2021 (#550) * Switch to GHC2021 We don't support GHC < 9.2, so this is safe. * Format --- lsp-test/func-test/FuncTest.hs | 3 --- lsp-test/lsp-test.cabal | 15 ++++------- lsp-test/src/Language/LSP/Test.hs | 5 ---- lsp-test/src/Language/LSP/Test/Compat.hs | 1 - lsp-test/src/Language/LSP/Test/Files.hs | 3 --- lsp-test/src/Language/LSP/Test/Parsing.hs | 3 --- lsp-test/src/Language/LSP/Test/Session.hs | 7 ----- lsp-test/test/DummyServer.hs | 1 - lsp-test/test/Test.hs | 2 -- lsp-types/generator/CodeGen.hs | 2 -- lsp-types/lsp-types.cabal | 27 ++++--------------- .../metamodel/Language/LSP/MetaModel/Types.hs | 4 --- .../LSP/Protocol/QuickCheck/Common.hs | 5 ---- .../LSP/Protocol/QuickCheck/Message.hs | 5 ---- lsp-types/src/Data/IxMap.hs | 3 --- lsp-types/src/Data/Row/Aeson.hs | 5 ---- lsp-types/src/Data/Row/Hashable.hs | 5 ---- .../src/Language/LSP/Protocol/Capabilities.hs | 2 -- .../Language/LSP/Protocol/Message/Method.hs | 4 --- .../Language/LSP/Protocol/Message/Parsing.hs | 3 --- .../LSP/Protocol/Message/Registration.hs | 5 ---- .../Language/LSP/Protocol/Message/Types.hs | 4 --- .../src/Language/LSP/Protocol/Types/Common.hs | 4 --- .../src/Language/LSP/Protocol/Types/Edit.hs | 1 - .../LSP/Protocol/Types/SemanticTokens.hs | 1 - .../src/Language/LSP/Protocol/Types/Uri.hs | 5 ---- .../Language/LSP/Protocol/Types/Uri/OsPath.hs | 1 - .../src/Language/LSP/Protocol/Utils/Misc.hs | 1 - .../Language/LSP/Protocol/Utils/SMethodMap.hs | 2 -- lsp-types/test/JsonSpec.hs | 4 --- lsp-types/test/SemanticTokensSpec.hs | 1 - lsp-types/test/ServerCapabilitiesSpec.hs | 1 - lsp-types/test/URIFilePathSpec.hs | 1 - lsp/example/Reactor.hs | 4 --- lsp/lsp.cabal | 12 +++------ lsp/src/Language/LSP/Diagnostics.hs | 2 -- lsp/src/Language/LSP/Server.hs | 2 +- lsp/src/Language/LSP/Server/Control.hs | 2 -- lsp/src/Language/LSP/Server/Core.hs | 9 +------ lsp/src/Language/LSP/Server/Processing.hs | 7 ----- lsp/src/Language/LSP/VFS.hs | 6 ----- 41 files changed, 16 insertions(+), 164 deletions(-) diff --git a/lsp-test/func-test/FuncTest.hs b/lsp-test/func-test/FuncTest.hs index ea7b043a..1cc2ef9f 100644 --- a/lsp-test/func-test/FuncTest.hs +++ b/lsp-test/func-test/FuncTest.hs @@ -1,9 +1,6 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} {-# LANGUAGE ViewPatterns #-} module Main where diff --git a/lsp-test/lsp-test.cabal b/lsp-test/lsp-test.cabal index e6e5f3ab..2d587015 100644 --- a/lsp-test/lsp-test.cabal +++ b/lsp-test/lsp-test.cabal @@ -33,8 +33,7 @@ source-repository head library hs-source-dirs: src - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 exposed-modules: Language.LSP.Test reexported-modules: lsp-types:Language.LSP.Protocol.Types @@ -93,8 +92,7 @@ test-suite tests type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Test.hs - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 ghc-options: -W other-modules: DummyServer build-depends: @@ -117,8 +115,7 @@ test-suite tests test-suite func-test type: exitcode-stdio-1.0 hs-source-dirs: func-test - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 main-is: FuncTest.hs build-depends: , base @@ -136,8 +133,7 @@ test-suite func-test test-suite example type: exitcode-stdio-1.0 hs-source-dirs: example - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 main-is: Test.hs build-depends: , base @@ -149,8 +145,7 @@ test-suite example benchmark simple-bench type: exitcode-stdio-1.0 hs-source-dirs: bench - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 main-is: SimpleBench.hs ghc-options: -Wall -O2 -eventlog -rtsopts build-depends: diff --git a/lsp-test/src/Language/LSP/Test.hs b/lsp-test/src/Language/LSP/Test.hs index eb06aca3..182b0146 100644 --- a/lsp-test/src/Language/LSP/Test.hs +++ b/lsp-test/src/Language/LSP/Test.hs @@ -1,13 +1,8 @@ {-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE ExistentialQuantification #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} {- | Module : Language.LSP.Test diff --git a/lsp-test/src/Language/LSP/Test/Compat.hs b/lsp-test/src/Language/LSP/Test/Compat.hs index e3c75e45..cbcd1c02 100644 --- a/lsp-test/src/Language/LSP/Test/Compat.hs +++ b/lsp-test/src/Language/LSP/Test/Compat.hs @@ -2,7 +2,6 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeOperators #-} -- For some reason ghc warns about not using -- Control.Monad.IO.Class but it's needed for -- MonadIO diff --git a/lsp-test/src/Language/LSP/Test/Files.hs b/lsp-test/src/Language/LSP/Test/Files.hs index 495685cb..78e5db0d 100644 --- a/lsp-test/src/Language/LSP/Test/Files.hs +++ b/lsp-test/src/Language/LSP/Test/Files.hs @@ -1,9 +1,6 @@ -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} module Language.LSP.Test.Files ( swapFiles, diff --git a/lsp-test/src/Language/LSP/Test/Parsing.hs b/lsp-test/src/Language/LSP/Test/Parsing.hs index cfe1589b..334bb974 100644 --- a/lsp-test/src/Language/LSP/Test/Parsing.hs +++ b/lsp-test/src/Language/LSP/Test/Parsing.hs @@ -1,9 +1,6 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeInType #-} module Language.LSP.Test.Parsing ( diff --git a/lsp-test/src/Language/LSP/Test/Session.hs b/lsp-test/src/Language/LSP/Test/Session.hs index 11a1d718..b8abc972 100644 --- a/lsp-test/src/Language/LSP/Test/Session.hs +++ b/lsp-test/src/Language/LSP/Test/Session.hs @@ -3,15 +3,8 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLabels #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} -{-# LANGUAGE TypeApplications #-} module Language.LSP.Test.Session ( Session(..) diff --git a/lsp-test/test/DummyServer.hs b/lsp-test/test/DummyServer.hs index f44f4448..c1419572 100644 --- a/lsp-test/test/DummyServer.hs +++ b/lsp-test/test/DummyServer.hs @@ -1,6 +1,5 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeInType #-} module DummyServer where diff --git a/lsp-test/test/Test.hs b/lsp-test/test/Test.hs index 295246a5..3d34767f 100644 --- a/lsp-test/test/Test.hs +++ b/lsp-test/test/Test.hs @@ -1,8 +1,6 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeInType #-} import Control.Applicative.Combinators diff --git a/lsp-types/generator/CodeGen.hs b/lsp-types/generator/CodeGen.hs index 1fd419b4..1a588ee9 100644 --- a/lsp-types/generator/CodeGen.hs +++ b/lsp-types/generator/CodeGen.hs @@ -1,10 +1,8 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE ViewPatterns #-} {- | The main module for generating code from the metamodel diff --git a/lsp-types/lsp-types.cabal b/lsp-types/lsp-types.cabal index c88bcba7..f85e21d0 100644 --- a/lsp-types/lsp-types.cabal +++ b/lsp-types/lsp-types.cabal @@ -33,7 +33,7 @@ flag force-ospath library hs-source-dirs: src generated - default-language: Haskell2010 + default-language: GHC2021 -- Various things we want on by default -- * syntactic niceties, QOL @@ -46,27 +46,16 @@ library default-extensions: DataKinds DeriveAnyClass - DeriveGeneric DerivingStrategies DerivingVia DuplicateRecordFields - FlexibleInstances FunctionalDependencies GADTs - GeneralizedNewtypeDeriving - ImportQualifiedPost - KindSignatures - MultiParamTypeClasses NegativeLiterals OverloadedStrings - PolyKinds - ScopedTypeVariables - StandaloneDeriving StandaloneKindSignatures StrictData - TypeApplications TypeFamilies - TypeOperators UndecidableInstances build-depends: @@ -526,9 +515,8 @@ library metamodel -- library, but it's here if people want it visibility: public hs-source-dirs: metamodel - default-language: Haskell2010 + default-language: GHC2021 default-extensions: - ImportQualifiedPost StrictData exposed-modules: @@ -546,14 +534,11 @@ library metamodel library lsp-types-quickcheck visibility: public hs-source-dirs: quickcheck generated - default-language: Haskell2010 + default-language: GHC2021 default-extensions: - ImportQualifiedPost StrictData DerivingVia DerivingStrategies - StandaloneDeriving - GeneralizedNewtypeDeriving exposed-modules: Language.LSP.Protocol.QuickCheck @@ -576,9 +561,8 @@ library lsp-types-quickcheck executable generator hs-source-dirs: generator - default-language: Haskell2010 + default-language: GHC2021 default-extensions: - ImportQualifiedPost StrictData main-is: Main.hs @@ -597,8 +581,7 @@ executable generator test-suite lsp-types-test type: exitcode-stdio-1.0 hs-source-dirs: test - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 main-is: Main.hs other-modules: CapabilitiesSpec diff --git a/lsp-types/metamodel/Language/LSP/MetaModel/Types.hs b/lsp-types/metamodel/Language/LSP/MetaModel/Types.hs index b8d404e0..ffbccd91 100644 --- a/lsp-types/metamodel/Language/LSP/MetaModel/Types.hs +++ b/lsp-types/metamodel/Language/LSP/MetaModel/Types.hs @@ -1,14 +1,10 @@ {-# LANGUAGE DataKinds #-} -{-# LANGUAGE DeriveLift #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} -{-# LANGUAGE KindSignatures #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TypeApplications #-} {- | This defines the types of the LSP "metamodel", which is a machine-readable format specifying the diff --git a/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Common.hs b/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Common.hs index 4d628293..6135a2ce 100644 --- a/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Common.hs +++ b/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Common.hs @@ -1,8 +1,3 @@ -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE PolyKinds #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Language.LSP.Protocol.QuickCheck.Common where diff --git a/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Message.hs b/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Message.hs index 7a5060cb..3c515788 100644 --- a/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Message.hs +++ b/lsp-types/quickcheck/Language/LSP/Protocol/QuickCheck/Message.hs @@ -1,9 +1,4 @@ -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE PolyKinds #-} -{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} -- See Note [Arbitary Maybe Void] {-# OPTIONS_GHC -Wno-simplifiable-class-constraints #-} diff --git a/lsp-types/src/Data/IxMap.hs b/lsp-types/src/Data/IxMap.hs index 6721def0..508ce1dd 100644 --- a/lsp-types/src/Data/IxMap.hs +++ b/lsp-types/src/Data/IxMap.hs @@ -1,6 +1,3 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeInType #-} {-# LANGUAGE ViewPatterns #-} diff --git a/lsp-types/src/Data/Row/Aeson.hs b/lsp-types/src/Data/Row/Aeson.hs index ca0d282f..00010415 100644 --- a/lsp-types/src/Data/Row/Aeson.hs +++ b/lsp-types/src/Data/Row/Aeson.hs @@ -1,8 +1,3 @@ -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} diff --git a/lsp-types/src/Data/Row/Hashable.hs b/lsp-types/src/Data/Row/Hashable.hs index 672a4b8e..95673aed 100644 --- a/lsp-types/src/Data/Row/Hashable.hs +++ b/lsp-types/src/Data/Row/Hashable.hs @@ -1,8 +1,3 @@ -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} diff --git a/lsp-types/src/Language/LSP/Protocol/Capabilities.hs b/lsp-types/src/Language/LSP/Protocol/Capabilities.hs index f791f82a..ae2c4b4a 100644 --- a/lsp-types/src/Language/LSP/Protocol/Capabilities.hs +++ b/lsp-types/src/Language/LSP/Protocol/Capabilities.hs @@ -1,8 +1,6 @@ {-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} module Language.LSP.Protocol.Capabilities ( fullCaps, diff --git a/lsp-types/src/Language/LSP/Protocol/Message/Method.hs b/lsp-types/src/Language/LSP/Protocol/Message/Method.hs index 137a445c..2fda5db8 100644 --- a/lsp-types/src/Language/LSP/Protocol/Message/Method.hs +++ b/lsp-types/src/Language/LSP/Protocol/Message/Method.hs @@ -1,12 +1,8 @@ -{-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE QuantifiedConstraints #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# OPTIONS_GHC -Wno-orphans #-} diff --git a/lsp-types/src/Language/LSP/Protocol/Message/Parsing.hs b/lsp-types/src/Language/LSP/Protocol/Message/Parsing.hs index 836a44d8..32de1287 100644 --- a/lsp-types/src/Language/LSP/Protocol/Message/Parsing.hs +++ b/lsp-types/src/Language/LSP/Protocol/Message/Parsing.hs @@ -1,7 +1,4 @@ -{-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeInType #-} module Language.LSP.Protocol.Message.Parsing where diff --git a/lsp-types/src/Language/LSP/Protocol/Message/Registration.hs b/lsp-types/src/Language/LSP/Protocol/Message/Registration.hs index 1dd803ef..89cf1d19 100644 --- a/lsp-types/src/Language/LSP/Protocol/Message/Registration.hs +++ b/lsp-types/src/Language/LSP/Protocol/Message/Registration.hs @@ -1,10 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE ExistentialQuantification #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeInType #-} diff --git a/lsp-types/src/Language/LSP/Protocol/Message/Types.hs b/lsp-types/src/Language/LSP/Protocol/Message/Types.hs index b41a5627..320a3b5f 100644 --- a/lsp-types/src/Language/LSP/Protocol/Message/Types.hs +++ b/lsp-types/src/Language/LSP/Protocol/Message/Types.hs @@ -1,8 +1,4 @@ -{-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} -{-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeInType #-} module Language.LSP.Protocol.Message.Types where diff --git a/lsp-types/src/Language/LSP/Protocol/Types/Common.hs b/lsp-types/src/Language/LSP/Protocol/Types/Common.hs index 7084b90c..10ac8aeb 100644 --- a/lsp-types/src/Language/LSP/Protocol/Types/Common.hs +++ b/lsp-types/src/Language/LSP/Protocol/Types/Common.hs @@ -1,12 +1,8 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE TypeOperators #-} -- | Common types that aren't in the specification module Language.LSP.Protocol.Types.Common ( diff --git a/lsp-types/src/Language/LSP/Protocol/Types/Edit.hs b/lsp-types/src/Language/LSP/Protocol/Types/Edit.hs index f16104b8..786d5e91 100644 --- a/lsp-types/src/Language/LSP/Protocol/Types/Edit.hs +++ b/lsp-types/src/Language/LSP/Protocol/Types/Edit.hs @@ -1,6 +1,5 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeOperators #-} module Language.LSP.Protocol.Types.Edit where diff --git a/lsp-types/src/Language/LSP/Protocol/Types/SemanticTokens.hs b/lsp-types/src/Language/LSP/Protocol/Types/SemanticTokens.hs index af07fc22..a66372b5 100644 --- a/lsp-types/src/Language/LSP/Protocol/Types/SemanticTokens.hs +++ b/lsp-types/src/Language/LSP/Protocol/Types/SemanticTokens.hs @@ -1,7 +1,6 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} module Language.LSP.Protocol.Types.SemanticTokens where diff --git a/lsp-types/src/Language/LSP/Protocol/Types/Uri.hs b/lsp-types/src/Language/LSP/Protocol/Types/Uri.hs index ae1bcfd1..f59b1fc4 100644 --- a/lsp-types/src/Language/LSP/Protocol/Types/Uri.hs +++ b/lsp-types/src/Language/LSP/Protocol/Types/Uri.hs @@ -1,10 +1,5 @@ -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE InstanceSigs #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE TypeSynonymInstances #-} module Language.LSP.Protocol.Types.Uri ( Uri (..), diff --git a/lsp-types/src/Language/LSP/Protocol/Types/Uri/OsPath.hs b/lsp-types/src/Language/LSP/Protocol/Types/Uri/OsPath.hs index a17be977..4af96491 100644 --- a/lsp-types/src/Language/LSP/Protocol/Types/Uri/OsPath.hs +++ b/lsp-types/src/Language/LSP/Protocol/Types/Uri/OsPath.hs @@ -1,7 +1,6 @@ {- ORMOLU_DISABLE -} {-# LANGUAGE CPP #-} -{-# LANGUAGE ScopedTypeVariables #-} #if MIN_VERSION_filepath(1,4,100) #define OS_PATH 1 diff --git a/lsp-types/src/Language/LSP/Protocol/Utils/Misc.hs b/lsp-types/src/Language/LSP/Protocol/Utils/Misc.hs index c6fda2f3..f5465957 100644 --- a/lsp-types/src/Language/LSP/Protocol/Utils/Misc.hs +++ b/lsp-types/src/Language/LSP/Protocol/Utils/Misc.hs @@ -1,5 +1,4 @@ {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} module Language.LSP.Protocol.Utils.Misc ( diff --git a/lsp-types/src/Language/LSP/Protocol/Utils/SMethodMap.hs b/lsp-types/src/Language/LSP/Protocol/Utils/SMethodMap.hs index 63f7d000..935bfe41 100644 --- a/lsp-types/src/Language/LSP/Protocol/Utils/SMethodMap.hs +++ b/lsp-types/src/Language/LSP/Protocol/Utils/SMethodMap.hs @@ -1,8 +1,6 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE MagicHash #-} -{-# LANGUAGE PolyKinds #-} -{-# LANGUAGE RankNTypes #-} module Language.LSP.Protocol.Utils.SMethodMap ( SMethodMap, diff --git a/lsp-types/test/JsonSpec.hs b/lsp-types/test/JsonSpec.hs index a0ce2cdf..1f0586c2 100644 --- a/lsp-types/test/JsonSpec.hs +++ b/lsp-types/test/JsonSpec.hs @@ -1,10 +1,6 @@ {-# LANGUAGE DerivingStrategies #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeInType #-} {-# LANGUAGE UndecidableInstances #-} diff --git a/lsp-types/test/SemanticTokensSpec.hs b/lsp-types/test/SemanticTokensSpec.hs index 79f55ad0..37262ca0 100644 --- a/lsp-types/test/SemanticTokensSpec.hs +++ b/lsp-types/test/SemanticTokensSpec.hs @@ -1,5 +1,4 @@ {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeApplications #-} module SemanticTokensSpec where diff --git a/lsp-types/test/ServerCapabilitiesSpec.hs b/lsp-types/test/ServerCapabilitiesSpec.hs index 06c81f14..8adf945b 100644 --- a/lsp-types/test/ServerCapabilitiesSpec.hs +++ b/lsp-types/test/ServerCapabilitiesSpec.hs @@ -1,6 +1,5 @@ {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} module ServerCapabilitiesSpec where diff --git a/lsp-types/test/URIFilePathSpec.hs b/lsp-types/test/URIFilePathSpec.hs index f75e3e70..7383884f 100644 --- a/lsp-types/test/URIFilePathSpec.hs +++ b/lsp-types/test/URIFilePathSpec.hs @@ -1,6 +1,5 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} -- We're testing our own deprecated function here! {-# OPTIONS_GHC -Wno-deprecations #-} {-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} diff --git a/lsp/example/Reactor.hs b/lsp/example/Reactor.hs index db99fa32..8ee17bee 100644 --- a/lsp/example/Reactor.hs +++ b/lsp/example/Reactor.hs @@ -1,13 +1,9 @@ {-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} -- So we can keep using the old prettyprinter modules (which have a better -- compatibility range) for now. {-# OPTIONS_GHC -Wno-deprecations #-} diff --git a/lsp/lsp.cabal b/lsp/lsp.cabal index 38740506..f8dc5f7e 100644 --- a/lsp/lsp.cabal +++ b/lsp/lsp.cabal @@ -28,8 +28,7 @@ source-repository head library hs-source-dirs: src - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 ghc-options: -Wall -fprint-explicit-kinds reexported-modules: , Language.LSP.Protocol.Types @@ -81,8 +80,7 @@ library executable lsp-demo-reactor-server main-is: Reactor.hs hs-source-dirs: example - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 ghc-options: -Wall -Wno-unticked-promoted-constructors build-depends: , aeson @@ -101,8 +99,7 @@ executable lsp-demo-reactor-server executable lsp-demo-simple-server main-is: Simple.hs hs-source-dirs: example - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 ghc-options: -Wall -Wno-unticked-promoted-constructors build-depends: , base @@ -139,5 +136,4 @@ test-suite lsp-test build-tool-depends: hspec-discover:hspec-discover ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall - default-language: Haskell2010 - default-extensions: ImportQualifiedPost + default-language: GHC2021 diff --git a/lsp/src/Language/LSP/Diagnostics.hs b/lsp/src/Language/LSP/Diagnostics.hs index c1898561..acf51f14 100644 --- a/lsp/src/Language/LSP/Diagnostics.hs +++ b/lsp/src/Language/LSP/Diagnostics.hs @@ -1,6 +1,4 @@ {-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} {- diff --git a/lsp/src/Language/LSP/Server.hs b/lsp/src/Language/LSP/Server.hs index 909a41d1..91ff5edb 100644 --- a/lsp/src/Language/LSP/Server.hs +++ b/lsp/src/Language/LSP/Server.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE TypeOperators #-} +{-# LANGUAGE ExplicitNamespaces #-} module Language.LSP.Server ( module Language.LSP.Server.Control, diff --git a/lsp/src/Language/LSP/Server/Control.hs b/lsp/src/Language/LSP/Server/Control.hs index 51c8dd7a..f640495d 100644 --- a/lsp/src/Language/LSP/Server/Control.hs +++ b/lsp/src/Language/LSP/Server/Control.hs @@ -1,7 +1,5 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} -- So we can keep using the old prettyprinter modules (which have a better -- compatibility range) for now. {-# OPTIONS_GHC -Wno-deprecations #-} diff --git a/lsp/src/Language/LSP/Server/Core.hs b/lsp/src/Language/LSP/Server/Core.hs index 2a67539c..c4b594f4 100644 --- a/lsp/src/Language/LSP/Server/Core.hs +++ b/lsp/src/Language/LSP/Server/Core.hs @@ -1,20 +1,13 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE BinaryLiterals #-} {-# LANGUAGE DerivingVia #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GADTs #-} -{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE RoleAnnotations #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilyDependencies #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} +{-# LANGUAGE CUSKs #-} {-# OPTIONS_GHC -Wno-unticked-promoted-constructors #-} {-# OPTIONS_GHC -fprint-explicit-kinds #-} diff --git a/lsp/src/Language/LSP/Server/Processing.hs b/lsp/src/Language/LSP/Server/Processing.hs index 5376048b..88bcf967 100644 --- a/lsp/src/Language/LSP/Server/Processing.hs +++ b/lsp/src/Language/LSP/Server/Processing.hs @@ -1,16 +1,9 @@ -{-# LANGUAGE BangPatterns #-} -{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} -{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE RecursiveDo #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} -- So we can keep using the old prettyprinter modules (which have a better -- compatibility range) for now. {-# OPTIONS_GHC -Wno-deprecations #-} diff --git a/lsp/src/Language/LSP/VFS.hs b/lsp/src/Language/LSP/VFS.hs index a26c6be2..67b6d8dc 100644 --- a/lsp/src/Language/LSP/VFS.hs +++ b/lsp/src/Language/LSP/VFS.hs @@ -1,16 +1,10 @@ {-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE MultiWayIf #-} -{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeInType #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE ViewPatterns #-} -- So we can keep using the old prettyprinter modules (which have a better -- compatibility range) for now.