Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.PureScript
Description
The main compiler module
Synopsis
- module Control.Monad.Supply
- module Language.PureScript.AST
- module Language.PureScript.Comments
- module Language.PureScript.Crash
- module Language.PureScript.Environment
- module Language.PureScript.Externs
- module Language.PureScript.Graph
- module Language.PureScript.Linter
- module Language.PureScript.Make
- module Language.PureScript.ModuleDependencies
- module Language.PureScript.Names
- module Language.PureScript.Options
- module Language.PureScript.Pretty
- module Language.PureScript.Renamer
- module Language.PureScript.Roles
- module Language.PureScript.Sugar
- module Language.PureScript.TypeChecker
- module Language.PureScript.Types
- data SimpleErrorMessage
- = InternalCompilerError Text Text
- | ModuleNotFound ModuleName
- | ErrorParsingFFIModule FilePath (Maybe ErrorMessage)
- | ErrorParsingCSTModule ParserError
- | WarningParsingCSTModule ParserWarning
- | MissingFFIModule ModuleName
- | UnnecessaryFFIModule ModuleName FilePath
- | MissingFFIImplementations ModuleName [Ident]
- | UnusedFFIImplementations ModuleName [Ident]
- | InvalidFFIIdentifier ModuleName Text
- | DeprecatedFFIPrime ModuleName Text
- | DeprecatedFFICommonJSModule ModuleName FilePath
- | UnsupportedFFICommonJSExports ModuleName [Text]
- | UnsupportedFFICommonJSImports ModuleName [Text]
- | FileIOError Text Text
- | InfiniteType SourceType
- | InfiniteKind SourceType
- | MultipleValueOpFixities (OpName 'ValueOpName)
- | MultipleTypeOpFixities (OpName 'TypeOpName)
- | OrphanTypeDeclaration Ident
- | OrphanKindDeclaration (ProperName 'TypeName)
- | OrphanRoleDeclaration (ProperName 'TypeName)
- | RedefinedIdent Ident
- | OverlappingNamesInLet Ident
- | UnknownName (Qualified Name)
- | UnknownImport ModuleName Name
- | UnknownImportDataConstructor ModuleName (ProperName 'TypeName) (ProperName 'ConstructorName)
- | UnknownExport Name
- | UnknownExportDataConstructor (ProperName 'TypeName) (ProperName 'ConstructorName)
- | ScopeConflict Name [ModuleName]
- | ScopeShadowing Name (Maybe ModuleName) [ModuleName]
- | DeclConflict Name Name
- | ExportConflict (Qualified Name) (Qualified Name)
- | DuplicateModule ModuleName
- | DuplicateTypeClass (ProperName 'ClassName) SourceSpan
- | DuplicateInstance Ident SourceSpan
- | DuplicateTypeArgument Text
- | InvalidDoBind
- | InvalidDoLet
- | CycleInDeclaration Ident
- | CycleInTypeSynonym (NonEmpty (ProperName 'TypeName))
- | CycleInTypeClassDeclaration (NonEmpty (Qualified (ProperName 'ClassName)))
- | CycleInKindDeclaration (NonEmpty (Qualified (ProperName 'TypeName)))
- | CycleInModules (NonEmpty ModuleName)
- | NameIsUndefined Ident
- | UndefinedTypeVariable (ProperName 'TypeName)
- | PartiallyAppliedSynonym (Qualified (ProperName 'TypeName))
- | EscapedSkolem Text (Maybe SourceSpan) SourceType
- | TypesDoNotUnify SourceType SourceType
- | KindsDoNotUnify SourceType SourceType
- | ConstrainedTypeUnified SourceType SourceType
- | OverlappingInstances (Qualified (ProperName 'ClassName)) [SourceType] [Qualified (Either SourceType Ident)]
- | NoInstanceFound SourceConstraint [Qualified (Either SourceType Ident)] UnknownsHint
- | AmbiguousTypeVariables SourceType [(Text, Int)]
- | UnknownClass (Qualified (ProperName 'ClassName))
- | PossiblyInfiniteInstance (Qualified (ProperName 'ClassName)) [SourceType]
- | PossiblyInfiniteCoercibleInstance
- | CannotDerive (Qualified (ProperName 'ClassName)) [SourceType]
- | InvalidDerivedInstance (Qualified (ProperName 'ClassName)) [SourceType] Int
- | ExpectedTypeConstructor (Qualified (ProperName 'ClassName)) [SourceType] SourceType
- | InvalidNewtypeInstance (Qualified (ProperName 'ClassName)) [SourceType]
- | MissingNewtypeSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
- | UnverifiableSuperclassInstance (Qualified (ProperName 'ClassName)) (Qualified (ProperName 'ClassName)) [SourceType]
- | CannotFindDerivingType (ProperName 'TypeName)
- | DuplicateLabel Label (Maybe Expr)
- | DuplicateValueDeclaration Ident
- | ArgListLengthsDiffer Ident
- | OverlappingArgNames (Maybe Ident)
- | MissingClassMember (NonEmpty (Ident, SourceType))
- | ExtraneousClassMember Ident (Qualified (ProperName 'ClassName))
- | ExpectedType SourceType SourceType
- | IncorrectConstructorArity (Qualified (ProperName 'ConstructorName)) Int Int
- | ExprDoesNotHaveType Expr SourceType
- | PropertyIsMissing Label
- | AdditionalProperty Label
- | OrphanInstance Ident (Qualified (ProperName 'ClassName)) (Set ModuleName) [SourceType]
- | InvalidNewtype (ProperName 'TypeName)
- | InvalidInstanceHead SourceType
- | TransitiveExportError DeclarationRef [DeclarationRef]
- | TransitiveDctorExportError DeclarationRef [ProperName 'ConstructorName]
- | HiddenConstructors DeclarationRef (Qualified (ProperName 'ClassName))
- | ShadowedName Ident
- | ShadowedTypeVar Text
- | UnusedTypeVar Text
- | UnusedName Ident
- | UnusedDeclaration Ident
- | WildcardInferredType SourceType Context
- | HoleInferredType Text SourceType Context (Maybe TypeSearch)
- | MissingTypeDeclaration Ident SourceType
- | MissingKindDeclaration KindSignatureFor (ProperName 'TypeName) SourceType
- | OverlappingPattern [[Binder]] Bool
- | IncompleteExhaustivityCheck
- | ImportHidingModule ModuleName
- | UnusedImport ModuleName (Maybe ModuleName)
- | UnusedExplicitImport ModuleName [Name] (Maybe ModuleName) [DeclarationRef]
- | UnusedDctorImport ModuleName (ProperName 'TypeName) (Maybe ModuleName) [DeclarationRef]
- | UnusedDctorExplicitImport ModuleName (ProperName 'TypeName) [ProperName 'ConstructorName] (Maybe ModuleName) [DeclarationRef]
- | DuplicateSelectiveImport ModuleName
- | DuplicateImport ModuleName ImportDeclarationType (Maybe ModuleName)
- | DuplicateImportRef Name
- | DuplicateExportRef Name
- | IntOutOfRange Integer Text Integer Integer
- | ImplicitQualifiedImport ModuleName ModuleName [DeclarationRef]
- | ImplicitQualifiedImportReExport ModuleName ModuleName [DeclarationRef]
- | ImplicitImport ModuleName [DeclarationRef]
- | HidingImport ModuleName [DeclarationRef]
- | CaseBinderLengthDiffers Int [Binder]
- | IncorrectAnonymousArgument
- | InvalidOperatorInBinder (Qualified (OpName 'ValueOpName)) (Qualified Ident)
- | CannotGeneralizeRecursiveFunction Ident SourceType
- | CannotDeriveNewtypeForData (ProperName 'TypeName)
- | ExpectedWildcard (ProperName 'TypeName)
- | CannotUseBindWithDo Ident
- | ClassInstanceArityMismatch Ident (Qualified (ProperName 'ClassName)) Int Int
- | UserDefinedWarning SourceType
- | CannotDefinePrimModules ModuleName
- | MixedAssociativityError (NonEmpty (Qualified (OpName 'AnyOpName), Associativity))
- | NonAssociativeError (NonEmpty (Qualified (OpName 'AnyOpName)))
- | QuantificationCheckFailureInKind Text
- | QuantificationCheckFailureInType [Int] SourceType
- | VisibleQuantificationCheckFailureInType Text
- | UnsupportedTypeInKind SourceType
- | RoleMismatch Text Role Role
- | InvalidCoercibleInstanceDeclaration [SourceType]
- | UnsupportedRoleDeclaration
- | RoleDeclarationArityMismatch (ProperName 'TypeName) Int Int
- | DuplicateRoleDeclaration (ProperName 'TypeName)
- | CannotDeriveInvalidConstructorArg (Qualified (ProperName 'ClassName)) [Qualified (ProperName 'ClassName)] Bool
- | CannotSkipTypeApplication SourceType
- | CannotApplyExpressionOfTypeOnType SourceType SourceType
- data Level
- nonEmpty :: MultipleErrors -> Bool
- data ErrorMessage = ErrorMessage [ErrorMessageHint] SimpleErrorMessage
- renderBox :: Box -> String
- line :: Text -> Box
- errorMessage :: SimpleErrorMessage -> MultipleErrors
- data TypeMap = TypeMap {
- umSkolemMap :: Map Int (String, Int, Maybe SourceSpan)
- umUnknownMap :: Map Int Int
- umNextIndex :: Int
- newtype MultipleErrors = MultipleErrors {}
- rethrow :: MonadError e m => (e -> e) -> m a -> m a
- errorMessage' :: SourceSpan -> SimpleErrorMessage -> MultipleErrors
- rethrowWithPosition :: MonadError MultipleErrors m => SourceSpan -> m a -> m a
- addHint :: ErrorMessageHint -> MultipleErrors -> MultipleErrors
- defaultPPEOptions :: PPEOptions
- errorMessage'' :: NonEmpty SourceSpan -> SimpleErrorMessage -> MultipleErrors
- prettyPrintMultipleErrors :: PPEOptions -> MultipleErrors -> String
- singleError :: ErrorMessage -> MultipleErrors
- parU :: MonadError MultipleErrors m => [a] -> (a -> m b) -> m [b]
- positionedError :: SourceSpan -> ErrorMessageHint
- withPosition :: SourceSpan -> ErrorMessage -> ErrorMessage
- warnAndRethrow :: (MonadError e m, MonadWriter e m) => (e -> e) -> m a -> m a
- warnAndRethrowWithPosition :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a
- warnWithPosition :: MonadWriter MultipleErrors m => SourceSpan -> m a -> m a
- internalCompilerError :: (MonadError MultipleErrors m, HasCallStack) => Text -> m a
- addHints :: [ErrorMessageHint] -> MultipleErrors -> MultipleErrors
- escalateWarningWhen :: (MonadWriter MultipleErrors m, MonadError MultipleErrors m) => (ErrorMessage -> Bool) -> m a -> m a
- onErrorMessages :: (ErrorMessage -> ErrorMessage) -> MultipleErrors -> MultipleErrors
- onTypesInErrorMessage :: (SourceType -> SourceType) -> ErrorMessage -> ErrorMessage
- withoutPosition :: ErrorMessage -> ErrorMessage
- newtype ErrorSuggestion = ErrorSuggestion Text
- errorSpan :: ErrorMessage -> Maybe (NonEmpty SourceSpan)
- findHint :: (ErrorMessageHint -> Maybe a) -> ErrorMessage -> Maybe a
- errorModule :: ErrorMessage -> Maybe ModuleName
- stripModuleAndSpan :: ErrorMessage -> ErrorMessage
- errorCode :: ErrorMessage -> Text
- unwrapErrorMessage :: ErrorMessage -> SimpleErrorMessage
- errorMessage''' :: [SourceSpan] -> SimpleErrorMessage -> MultipleErrors
- defaultUnknownMap :: TypeMap
- replaceUnknowns :: SourceType -> State TypeMap SourceType
- onTypesInErrorMessageM :: Applicative m => (SourceType -> m SourceType) -> ErrorMessage -> m ErrorMessage
- errorDocUri :: ErrorMessage -> Text
- errorSuggestion :: SimpleErrorMessage -> Maybe ErrorSuggestion
- prettyPrintSuggestedTypeSimplified :: Type a -> String
- prettyPrintKindSignatureFor :: KindSignatureFor -> Text
- prettyPrintRef :: DeclarationRef -> Maybe Text
- suggestionSpan :: ErrorMessage -> Maybe SourceSpan
- showSuggestion :: SimpleErrorMessage -> Text
- ansiColor :: (ColorIntensity, Color) -> String
- ansiColorReset :: String
- colorCode :: Maybe (ColorIntensity, Color) -> Text -> Text
- colorCodeBox :: Maybe (ColorIntensity, Color) -> Box -> Box
- commasAndConjunction :: Text -> [Text] -> Text
- defaultCodeColor :: (ColorIntensity, Color)
- data PPEOptions = PPEOptions {
- ppeCodeColor :: Maybe (ColorIntensity, Color)
- ppeFull :: Bool
- ppeLevel :: Level
- ppeShowDocs :: Bool
- ppeRelativeDirectory :: FilePath
- ppeFileContents :: [(FilePath, Text)]
- prettyPrintSingleError :: PPEOptions -> ErrorMessage -> Box
- lineS :: String -> Box
- toTypelevelString :: Type a -> Maybe Box
- prettyPrintExport :: DeclarationRef -> Text
- prettyPrintImport :: ModuleName -> ImportDeclarationType -> Maybe ModuleName -> Text
- prettyPrintMultipleErrorsBox :: PPEOptions -> MultipleErrors -> [Box]
- prettyPrintMultipleWarnings :: PPEOptions -> MultipleErrors -> String
- prettyPrintMultipleWarningsBox :: PPEOptions -> MultipleErrors -> [Box]
- prettyPrintMultipleErrorsWith :: PPEOptions -> String -> String -> MultipleErrors -> [Box]
- version :: Version
Documentation
module Control.Monad.Supply
module Language.PureScript.AST
module Language.PureScript.Comments
module Language.PureScript.Crash
module Language.PureScript.Externs
module Language.PureScript.Graph
module Language.PureScript.Linter
module Language.PureScript.Make
module Language.PureScript.Names
module Language.PureScript.Options
module Language.PureScript.Pretty
module Language.PureScript.Renamer
module Language.PureScript.Roles
module Language.PureScript.Sugar
module Language.PureScript.Types
data SimpleErrorMessage #
A type of error messages
Constructors
Instances
How critical the issue is
nonEmpty :: MultipleErrors -> Bool #
Check whether a collection of errors is empty or not.
data ErrorMessage #
Constructors
ErrorMessage [ErrorMessageHint] SimpleErrorMessage |
Instances
NFData ErrorMessage # | |||||
Defined in Language.PureScript.Errors Methods rnf :: ErrorMessage -> () # | |||||
Generic ErrorMessage # | |||||
Defined in Language.PureScript.Errors Associated Types
| |||||
Show ErrorMessage # | |||||
Defined in Language.PureScript.Errors Methods showsPrec :: Int -> ErrorMessage -> ShowS # show :: ErrorMessage -> String # showList :: [ErrorMessage] -> ShowS # | |||||
type Rep ErrorMessage # | |||||
Defined in Language.PureScript.Errors type Rep ErrorMessage = D1 ('MetaData "ErrorMessage" "Language.PureScript.Errors" "purescript-0.15.15-8K0LbmS63k4ILju2RsIrDp" 'False) (C1 ('MetaCons "ErrorMessage" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ErrorMessageHint]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SimpleErrorMessage))) |
errorMessage :: SimpleErrorMessage -> MultipleErrors #
Create an error set from a single simple error message
A map from rigid type variable name/unknown variable pairs to new variables.
Constructors
TypeMap | |
Fields
|
newtype MultipleErrors #
A stack trace for an error
Constructors
MultipleErrors | |
Fields |
Instances
NFData MultipleErrors # | |
Defined in Language.PureScript.Errors Methods rnf :: MultipleErrors -> () # | |
Monoid MultipleErrors # | |
Defined in Language.PureScript.Errors Methods mappend :: MultipleErrors -> MultipleErrors -> MultipleErrors # mconcat :: [MultipleErrors] -> MultipleErrors # | |
Semigroup MultipleErrors # | |
Defined in Language.PureScript.Errors Methods (<>) :: MultipleErrors -> MultipleErrors -> MultipleErrors # sconcat :: NonEmpty MultipleErrors -> MultipleErrors # stimes :: Integral b => b -> MultipleErrors -> MultipleErrors # | |
Show MultipleErrors # | |
Defined in Language.PureScript.Errors Methods showsPrec :: Int -> MultipleErrors -> ShowS # show :: MultipleErrors -> String # showList :: [MultipleErrors] -> ShowS # | |
MonadError MultipleErrors Make # | |
Defined in Language.PureScript.Make.Monad Methods throwError :: MultipleErrors -> Make a # catchError :: Make a -> (MultipleErrors -> Make a) -> Make a # | |
MonadWriter MultipleErrors Make # | |
Defined in Language.PureScript.Make.Monad Methods writer :: (a, MultipleErrors) -> Make a # tell :: MultipleErrors -> Make () # listen :: Make a -> Make (a, MultipleErrors) # pass :: Make (a, MultipleErrors -> MultipleErrors) -> Make a # |
rethrow :: MonadError e m => (e -> e) -> m a -> m a #
Rethrow an error with a more detailed error message in the case of failure
errorMessage' :: SourceSpan -> SimpleErrorMessage -> MultipleErrors #
Create an error set from a single simple error message and source annotation
rethrowWithPosition :: MonadError MultipleErrors m => SourceSpan -> m a -> m a #
Rethrow an error with source position information
addHint :: ErrorMessageHint -> MultipleErrors -> MultipleErrors #
Add a hint to an error message
defaultPPEOptions :: PPEOptions #
Default options for PPEOptions
errorMessage'' :: NonEmpty SourceSpan -> SimpleErrorMessage -> MultipleErrors #
Create an error set from a single simple error message and source annotations
prettyPrintMultipleErrors :: PPEOptions -> MultipleErrors -> String #
Pretty print multiple errors
singleError :: ErrorMessage -> MultipleErrors #
Create an error set from a single error message
parU :: MonadError MultipleErrors m => [a] -> (a -> m b) -> m [b] #
Collect errors in in parallel
withPosition :: SourceSpan -> ErrorMessage -> ErrorMessage #
warnAndRethrow :: (MonadError e m, MonadWriter e m) => (e -> e) -> m a -> m a #
warnAndRethrowWithPosition :: (MonadError MultipleErrors m, MonadWriter MultipleErrors m) => SourceSpan -> m a -> m a #
warnWithPosition :: MonadWriter MultipleErrors m => SourceSpan -> m a -> m a #
internalCompilerError :: (MonadError MultipleErrors m, HasCallStack) => Text -> m a #
addHints :: [ErrorMessageHint] -> MultipleErrors -> MultipleErrors #
Add hints to an error message
escalateWarningWhen :: (MonadWriter MultipleErrors m, MonadError MultipleErrors m) => (ErrorMessage -> Bool) -> m a -> m a #
Runs a computation listening for warnings and then escalating any warnings that match the predicate to error status.
onErrorMessages :: (ErrorMessage -> ErrorMessage) -> MultipleErrors -> MultipleErrors #
Lift a function on ErrorMessage to a function on MultipleErrors
onTypesInErrorMessage :: (SourceType -> SourceType) -> ErrorMessage -> ErrorMessage #
newtype ErrorSuggestion #
Constructors
ErrorSuggestion Text |
errorSpan :: ErrorMessage -> Maybe (NonEmpty SourceSpan) #
Get the source span for an error
findHint :: (ErrorMessageHint -> Maybe a) -> ErrorMessage -> Maybe a #
errorModule :: ErrorMessage -> Maybe ModuleName #
Get the module name for an error
stripModuleAndSpan :: ErrorMessage -> ErrorMessage #
Remove the module name and span hints from an error
errorCode :: ErrorMessage -> Text #
Get the error code for a particular error type
unwrapErrorMessage :: ErrorMessage -> SimpleErrorMessage #
Extract nested error messages from wrapper errors
errorMessage''' :: [SourceSpan] -> SimpleErrorMessage -> MultipleErrors #
Create an error from multiple (possibly empty) source spans, reversed sorted.
onTypesInErrorMessageM :: Applicative m => (SourceType -> m SourceType) -> ErrorMessage -> m ErrorMessage #
errorDocUri :: ErrorMessage -> Text #
prettyPrintRef :: DeclarationRef -> Maybe Text #
ansiColor :: (ColorIntensity, Color) -> String #
colorCodeBox :: Maybe (ColorIntensity, Color) -> Box -> Box #
commasAndConjunction :: Text -> [Text] -> Text #
defaultCodeColor :: (ColorIntensity, Color) #
Default color intensity and color for code
data PPEOptions #
prettyPrintSingleError
Options
Constructors
PPEOptions | |
Fields
|
prettyPrintSingleError :: PPEOptions -> ErrorMessage -> Box #
Pretty print a single error, simplifying if necessary
toTypelevelString :: Type a -> Maybe Box #
prettyPrintExport :: DeclarationRef -> Text #
prettyPrintImport :: ModuleName -> ImportDeclarationType -> Maybe ModuleName -> Text #
prettyPrintMultipleErrorsBox :: PPEOptions -> MultipleErrors -> [Box] #
Pretty print errors as a Box
prettyPrintMultipleWarnings :: PPEOptions -> MultipleErrors -> String #
Pretty print multiple warnings
prettyPrintMultipleWarningsBox :: PPEOptions -> MultipleErrors -> [Box] #
Pretty print warnings as a Box
prettyPrintMultipleErrorsWith :: PPEOptions -> String -> String -> MultipleErrors -> [Box] #