module Fay.Types.CompileError (CompileError (..)) where

import qualified Fay.Exts                        as F
import qualified Fay.Exts.NoAnnotation           as N
import qualified Fay.Exts.Scoped                 as S

import           Language.Haskell.Exts

-- | Error type.
data CompileError
  = Couldn'tFindImport N.ModuleName [FilePath]
  | EmptyDoBlock
  | FfiFormatBadChars SrcSpanInfo String
  | FfiFormatIncompleteArg SrcSpanInfo
  | FfiFormatInvalidJavaScript SrcSpanInfo String String
  | FfiFormatNoSuchArg SrcSpanInfo Int
  | FfiNeedsTypeSig S.Exp
  | GHCError String
  | InvalidDoBlock
  | ParseError S.SrcLoc String
  | ShouldBeDesugared String
  | UnableResolveQualified N.QName
  | UnsupportedDeclaration S.Decl
  | UnsupportedEnum N.Exp
  | UnsupportedExportSpec N.ExportSpec
  | UnsupportedExpression S.Exp
  | UnsupportedFieldPattern S.PatField
  | UnsupportedImport F.ImportDecl
  | UnsupportedLet
  | UnsupportedLetBinding S.Decl
  | UnsupportedLiteral S.Literal
  | UnsupportedModuleSyntax String F.Module
  | UnsupportedPattern S.Pat
  | UnsupportedQualStmt S.QualStmt
  | UnsupportedRecursiveDo
  | UnsupportedRhs S.Rhs
  | UnsupportedWhereInAlt S.Alt
  | UnsupportedWhereInMatch S.Match
  deriving (Int -> CompileError -> ShowS
[CompileError] -> ShowS
CompileError -> String
(Int -> CompileError -> ShowS)
-> (CompileError -> String)
-> ([CompileError] -> ShowS)
-> Show CompileError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompileError] -> ShowS
$cshowList :: [CompileError] -> ShowS
show :: CompileError -> String
$cshow :: CompileError -> String
showsPrec :: Int -> CompileError -> ShowS
$cshowsPrec :: Int -> CompileError -> ShowS
Show)
{-# ANN module "HLint: ignore Use camelCase" #-}