Merge remote-tracking branch 'upstream/master' into main

remotes/mxxun/master
Taylor Fausak 2022-01-11 13:48:58 +00:00 committed by GitHub
commit 97da38fab7
2 changed files with 25 additions and 209 deletions

View File

@ -61,7 +61,7 @@ log the size of the input, but _not_ the full input/output of requests.)
- via `stack` - via `stack`
~~~~.sh ~~~~.sh
stack install brittany # --resolver lts-10.0 stack install brittany # --resolver lts-16.31
~~~~ ~~~~
If you use an lts that includes brittany this should just work; otherwise If you use an lts that includes brittany this should just work; otherwise
@ -104,8 +104,8 @@ log the size of the input, but _not_ the full input/output of requests.)
#### VSCode #### VSCode
[This extension](https://marketplace.visualstudio.com/items?itemName=MaxGabriel.brittany) [This extension](https://marketplace.visualstudio.com/items?itemName=MaxGabriel.brittany)
connects commandline `brittany` to VSCode formatting API. Thanks to @MaxGabriel. connects commandline `brittany` to VSCode formatting API. Thanks to @MaxGabriel.
#### Via HIE #### Via HLS
[haskell-ide-engine](https://github.com/haskell/haskell-ide-engine) [haskell-language-server](https://github.com/haskell/haskell-language-server)
includes a `brittany` plugin that directly uses the brittany library. includes a `brittany` plugin that directly uses the brittany library.
Relevant for any editors that properly support the language-server-protocol. Relevant for any editors that properly support the language-server-protocol.
#### Neovim / Vim 8 #### Neovim / Vim 8

View File

@ -5,25 +5,17 @@ module Brittany.Internal.ParseModule where
import qualified Control.Monad as Monad import qualified Control.Monad as Monad
import qualified Control.Monad.IO.Class as IO import qualified Control.Monad.IO.Class as IO
import qualified Control.Monad.Trans.Except as Except import qualified Control.Monad.Trans.Except as Except
import qualified Data.Set as Set
import qualified GHC import qualified GHC
import qualified GHC.ByteOrder import qualified GHC.ByteOrder
import qualified GHC.Data.Bag import qualified GHC.Data.Bag
import qualified GHC.Data.EnumSet
import qualified GHC.Data.StringBuffer import qualified GHC.Data.StringBuffer
import qualified GHC.Driver.Session import qualified GHC.Driver.Session
import qualified GHC.Parser.Header import qualified GHC.Parser.Header
import qualified GHC.Platform import qualified GHC.Platform
import qualified GHC.Settings import qualified GHC.Settings
import qualified GHC.Types.Basic
import qualified GHC.Types.SrcLoc import qualified GHC.Types.SrcLoc
import qualified GHC.Unit.Module.Name
import qualified GHC.Unit.State
import qualified GHC.Unit.Types
import qualified GHC.Utils.Error import qualified GHC.Utils.Error
import qualified GHC.Utils.Fingerprint import qualified GHC.Utils.Fingerprint
import qualified GHC.Utils.Misc
import qualified GHC.Utils.Ppr.Colour
import qualified Language.Haskell.GHC.ExactPrint.Parsers as ExactPrint import qualified Language.Haskell.GHC.ExactPrint.Parsers as ExactPrint
import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint
@ -77,184 +69,18 @@ handleErrorMessages
handleErrorMessages = handleErrorMessages =
Except.throwE . mappend "errorMessages: " . show . GHC.Data.Bag.bagToList Except.throwE . mappend "errorMessages: " . show . GHC.Data.Bag.bagToList
initialCfgWeights :: GHC.Driver.Session.CfgWeights
initialCfgWeights = GHC.Driver.Session.CFGWeights
{ GHC.Driver.Session.backEdgeBonus = 0
, GHC.Driver.Session.callWeight = 0
, GHC.Driver.Session.condBranchWeight = 0
, GHC.Driver.Session.infoTablePenalty = 0
, GHC.Driver.Session.likelyCondWeight = 0
, GHC.Driver.Session.switchWeight = 0
, GHC.Driver.Session.uncondWeight = 0
, GHC.Driver.Session.unlikelyCondWeight = 0
}
initialDynFlags :: GHC.Driver.Session.DynFlags initialDynFlags :: GHC.Driver.Session.DynFlags
initialDynFlags = GHC.Driver.Session.DynFlags initialDynFlags = GHC.Driver.Session.defaultDynFlags initialSettings initialLlvmConfig
{ GHC.Driver.Session.avx = False
, GHC.Driver.Session.avx2 = False initialSettings :: GHC.Driver.Session.Settings
, GHC.Driver.Session.avx512cd = False initialSettings = GHC.Driver.Session.Settings
, GHC.Driver.Session.avx512er = False { GHC.Driver.Session.sGhcNameVersion = initialGhcNameVersion
, GHC.Driver.Session.avx512f = False , GHC.Driver.Session.sFileSettings = initialFileSettings
, GHC.Driver.Session.avx512pf = False , GHC.Driver.Session.sTargetPlatform = initialTargetPlatform
, GHC.Driver.Session.binBlobThreshold = 0 , GHC.Driver.Session.sToolSettings = initialToolSettings
, GHC.Driver.Session.bmiVersion = Nothing , GHC.Driver.Session.sPlatformMisc = initialPlatformMisc
, GHC.Driver.Session.cachedPlugins = [] , GHC.Driver.Session.sPlatformConstants = initialPlatformConstants
, GHC.Driver.Session.canGenerateDynamicToo = error "canGenerateDynamicToo" , GHC.Driver.Session.sRawSettings = []
, GHC.Driver.Session.canUseColor = False
, GHC.Driver.Session.cfgWeightInfo = initialCfgWeights
, GHC.Driver.Session.cmdlineFrameworks = []
, GHC.Driver.Session.cmmProcAlignment = Nothing
, GHC.Driver.Session.colScheme = GHC.Utils.Ppr.Colour.defaultScheme
, GHC.Driver.Session.debugLevel = 0
, GHC.Driver.Session.depExcludeMods = []
, GHC.Driver.Session.depIncludeCppDeps = False
, GHC.Driver.Session.depIncludePkgDeps = False
, GHC.Driver.Session.depMakefile = ""
, GHC.Driver.Session.depSuffixes = []
, GHC.Driver.Session.dirsToClean = error "dirsToClean"
, GHC.Driver.Session.dump_action = \_ _ _ _ _ _ -> pure ()
, GHC.Driver.Session.dumpDir = Nothing
, GHC.Driver.Session.dumpFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.dumpPrefix = Nothing
, GHC.Driver.Session.dumpPrefixForce = Nothing
, GHC.Driver.Session.dylibInstallName = Nothing
, GHC.Driver.Session.dynHiSuf = ""
, GHC.Driver.Session.dynLibLoader = GHC.Driver.Session.Deployable
, GHC.Driver.Session.dynObjectSuf = ""
, GHC.Driver.Session.dynOutputFile = Nothing
, GHC.Driver.Session.enableTimeStats = False
, GHC.Driver.Session.extensionFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.extensions = []
, GHC.Driver.Session.fatalWarningFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.fileSettings = initialFileSettings
, GHC.Driver.Session.filesToClean = error "filesToClean"
, GHC.Driver.Session.floatLamArgs = Nothing
, GHC.Driver.Session.flushErr = GHC.Driver.Session.defaultFlushErr
, GHC.Driver.Session.flushOut = GHC.Driver.Session.defaultFlushOut
, GHC.Driver.Session.frameworkPaths = []
, GHC.Driver.Session.frontendPluginOpts = []
, GHC.Driver.Session.generalFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.generatedDumps = error "generatedDumps"
, GHC.Driver.Session.ghcHeapSize = Nothing
, GHC.Driver.Session.ghciHistSize = 0
, GHC.Driver.Session.ghciScripts = []
, GHC.Driver.Session.ghcLink = GHC.Driver.Session.NoLink
, GHC.Driver.Session.ghcMode = GHC.Driver.Session.OneShot
, GHC.Driver.Session.ghcNameVersion = initialGhcNameVersion
, GHC.Driver.Session.ghcVersionFile = Nothing
, GHC.Driver.Session.haddockOptions = Nothing
, GHC.Driver.Session.hcSuf = ""
, GHC.Driver.Session.hiDir = Nothing
, GHC.Driver.Session.hieDir = Nothing
, GHC.Driver.Session.hieSuf = ""
, GHC.Driver.Session.historySize = 0
, GHC.Driver.Session.hiSuf = ""
, GHC.Driver.Session.homeUnitId = GHC.Unit.Types.stringToUnitId ""
, GHC.Driver.Session.homeUnitInstanceOfId = Nothing
, GHC.Driver.Session.homeUnitInstantiations = []
, GHC.Driver.Session.hooks = error "hooks"
, GHC.Driver.Session.hpcDir = ""
, GHC.Driver.Session.hscTarget = GHC.Driver.Session.HscNothing
, GHC.Driver.Session.ignorePackageFlags = []
, GHC.Driver.Session.importPaths = []
, GHC.Driver.Session.includePaths = initialIncludeSpecs
, GHC.Driver.Session.incoherentOnLoc = initialSrcSpan
, GHC.Driver.Session.initialUnique = 0
, GHC.Driver.Session.inlineCheck = Nothing
, GHC.Driver.Session.interactivePrint = Nothing
, GHC.Driver.Session.language = Nothing
, GHC.Driver.Session.ldInputs = []
, GHC.Driver.Session.liberateCaseThreshold = Nothing
, GHC.Driver.Session.libraryPaths = []
, GHC.Driver.Session.liftLamsKnown = False
, GHC.Driver.Session.liftLamsNonRecArgs = Nothing
, GHC.Driver.Session.liftLamsRecArgs = Nothing
, GHC.Driver.Session.llvmConfig = initialLlvmConfig
, GHC.Driver.Session.log_action = \_ _ _ _ _ -> pure ()
, GHC.Driver.Session.mainFunIs = Nothing
, GHC.Driver.Session.mainModIs = GHC.Unit.Types.mkModule
(GHC.Unit.Types.stringToUnit "")
(GHC.Unit.Module.Name.mkModuleName "")
, GHC.Driver.Session.maxErrors = Nothing
, GHC.Driver.Session.maxInlineAllocSize = 0
, GHC.Driver.Session.maxInlineMemcpyInsns = 0
, GHC.Driver.Session.maxInlineMemsetInsns = 0
, GHC.Driver.Session.maxPmCheckModels = 0
, GHC.Driver.Session.maxRefHoleFits = Nothing
, GHC.Driver.Session.maxRelevantBinds = Nothing
, GHC.Driver.Session.maxSimplIterations = 0
, GHC.Driver.Session.maxUncoveredPatterns = 0
, GHC.Driver.Session.maxValidHoleFits = Nothing
, GHC.Driver.Session.maxWorkerArgs = 0
, GHC.Driver.Session.newDerivOnLoc = initialSrcSpan
, GHC.Driver.Session.nextTempSuffix = error "nextTempSuffix"
, GHC.Driver.Session.nextWrapperNum = error "nextWrapperNum"
, GHC.Driver.Session.objectDir = Nothing
, GHC.Driver.Session.objectSuf = ""
, GHC.Driver.Session.optLevel = 0
, GHC.Driver.Session.outputFile = Nothing
, GHC.Driver.Session.outputHi = Nothing
, GHC.Driver.Session.overlapInstLoc = initialSrcSpan
, GHC.Driver.Session.packageDBFlags = []
, GHC.Driver.Session.packageEnv = Nothing
, GHC.Driver.Session.packageFlags = []
, GHC.Driver.Session.parMakeCount = Nothing
, GHC.Driver.Session.pkgTrustOnLoc = initialSrcSpan
, GHC.Driver.Session.platformConstants = initialPlatformConstants
, GHC.Driver.Session.platformMisc = initialPlatformMisc
, GHC.Driver.Session.pluginModNameOpts = []
, GHC.Driver.Session.pluginModNames = []
, GHC.Driver.Session.pluginPackageFlags = []
, GHC.Driver.Session.pprCols = 80
, GHC.Driver.Session.pprUserLength = 0
, GHC.Driver.Session.profAuto = GHC.Driver.Session.NoProfAuto
, GHC.Driver.Session.rawSettings = []
, GHC.Driver.Session.reductionDepth = GHC.Types.Basic.mkIntWithInf 0
, GHC.Driver.Session.refLevelHoleFits = Nothing
, GHC.Driver.Session.reverseErrors = False
, GHC.Driver.Session.rtccInfo = error "rtccInfo"
, GHC.Driver.Session.rtldInfo = error "rtldInfo"
, GHC.Driver.Session.rtsOpts = Nothing
, GHC.Driver.Session.rtsOptsEnabled = GHC.Driver.Session.RtsOptsNone
, GHC.Driver.Session.rtsOptsSuggestions = False
, GHC.Driver.Session.ruleCheck = Nothing
, GHC.Driver.Session.safeHaskell = GHC.Driver.Session.Sf_Ignore
, GHC.Driver.Session.safeInfer = False
, GHC.Driver.Session.safeInferred = False
, GHC.Driver.Session.simplPhases = 0
, GHC.Driver.Session.simplTickFactor = 0
, GHC.Driver.Session.solverIterations = GHC.Types.Basic.mkIntWithInf 0
, GHC.Driver.Session.specConstrCount = Nothing
, GHC.Driver.Session.specConstrRecursive = 0
, GHC.Driver.Session.specConstrThreshold = Nothing
, GHC.Driver.Session.splitInfo = Nothing
, GHC.Driver.Session.sseVersion = Nothing
, GHC.Driver.Session.staticPlugins = []
, GHC.Driver.Session.strictnessBefore = []
, GHC.Driver.Session.stubDir = Nothing
, GHC.Driver.Session.targetPlatform = initialTargetPlatform
, GHC.Driver.Session.thOnLoc = initialSrcSpan
, GHC.Driver.Session.toolSettings = initialToolSettings
, GHC.Driver.Session.trace_action = \_ _ _ a -> a
, GHC.Driver.Session.trustFlags = []
, GHC.Driver.Session.trustworthyOnLoc = initialSrcSpan
, GHC.Driver.Session.ufCreationThreshold = 0
, GHC.Driver.Session.ufDearOp = 0
, GHC.Driver.Session.ufDictDiscount = 0
, GHC.Driver.Session.ufFunAppDiscount = 0
, GHC.Driver.Session.ufUseThreshold = 0
, GHC.Driver.Session.ufVeryAggressive = False
, GHC.Driver.Session.uniqueIncrement = 0
, GHC.Driver.Session.unitDatabases = Nothing
, GHC.Driver.Session.unitState = GHC.Unit.State.emptyUnitState
, GHC.Driver.Session.useColor = GHC.Utils.Misc.Never
, GHC.Driver.Session.useUnicode = False
, GHC.Driver.Session.verbosity = 0
, GHC.Driver.Session.warningFlags = GHC.Data.EnumSet.fromList []
, GHC.Driver.Session.warnSafeOnLoc = initialSrcSpan
, GHC.Driver.Session.warnUnsafeOnLoc = initialSrcSpan
, GHC.Driver.Session.ways = Set.empty
} }
initialFileSettings :: GHC.Driver.Session.FileSettings initialFileSettings :: GHC.Driver.Session.FileSettings
@ -273,10 +99,17 @@ initialGhcNameVersion = GHC.Driver.Session.GhcNameVersion
, GHC.Driver.Session.ghcNameVersion_projectVersion = "" , GHC.Driver.Session.ghcNameVersion_projectVersion = ""
} }
initialIncludeSpecs :: GHC.Driver.Session.IncludeSpecs initialPlatformMisc :: GHC.Driver.Session.PlatformMisc
initialIncludeSpecs = GHC.Driver.Session.IncludeSpecs initialPlatformMisc = GHC.Driver.Session.PlatformMisc
{ GHC.Driver.Session.includePathsGlobal = [] { GHC.Driver.Session.platformMisc_ghcDebugged = False
, GHC.Driver.Session.includePathsQuote = [] , GHC.Driver.Session.platformMisc_ghcRTSWays = ""
, GHC.Driver.Session.platformMisc_ghcRtsWithLibdw = False
, GHC.Driver.Session.platformMisc_ghcThreaded = False
, GHC.Driver.Session.platformMisc_ghcWithInterpreter = False
, GHC.Driver.Session.platformMisc_ghcWithSMP = False
, GHC.Driver.Session.platformMisc_libFFI = False
, GHC.Driver.Session.platformMisc_llvmTarget = ""
, GHC.Driver.Session.platformMisc_targetPlatformString = ""
} }
initialLlvmConfig :: GHC.Driver.Session.LlvmConfig initialLlvmConfig :: GHC.Driver.Session.LlvmConfig
@ -424,23 +257,6 @@ initialPlatformMini = GHC.Settings.PlatformMini
, GHC.Settings.platformMini_os = GHC.Platform.OSLinux , GHC.Settings.platformMini_os = GHC.Platform.OSLinux
} }
initialPlatformMisc :: GHC.Driver.Session.PlatformMisc
initialPlatformMisc = GHC.Driver.Session.PlatformMisc
{ GHC.Driver.Session.platformMisc_ghcDebugged = False
, GHC.Driver.Session.platformMisc_ghcRTSWays = ""
, GHC.Driver.Session.platformMisc_ghcRtsWithLibdw = False
, GHC.Driver.Session.platformMisc_ghcThreaded = False
, GHC.Driver.Session.platformMisc_ghcWithInterpreter = False
, GHC.Driver.Session.platformMisc_ghcWithSMP = False
, GHC.Driver.Session.platformMisc_libFFI = False
, GHC.Driver.Session.platformMisc_llvmTarget = ""
, GHC.Driver.Session.platformMisc_targetPlatformString = ""
}
initialSrcSpan :: GHC.Types.SrcLoc.SrcSpan
initialSrcSpan =
GHC.Types.SrcLoc.UnhelpfulSpan GHC.Types.SrcLoc.UnhelpfulNoLocationInfo
initialTargetPlatform :: GHC.Settings.Platform initialTargetPlatform :: GHC.Settings.Platform
initialTargetPlatform = GHC.Settings.Platform initialTargetPlatform = GHC.Settings.Platform
{ GHC.Settings.platformByteOrder = GHC.ByteOrder.LittleEndian { GHC.Settings.platformByteOrder = GHC.ByteOrder.LittleEndian