{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} module Language.Jsonnet.Error where import Data.Scientific (Scientific) import Data.Text (Text) import Data.Void (Void) import Language.Jsonnet.Common import Language.Jsonnet.Core import Language.Jsonnet.Parser.SrcSpan import Text.Megaparsec (ParseErrorBundle) import Text.PrettyPrint.ANSI.Leijen (Doc) data Error = ParserError ParserError | CheckError CheckError (Maybe SrcSpan) | EvalError EvalError (Backtrace Core) deriving (Int -> Error -> ShowS [Error] -> ShowS Error -> String (Int -> Error -> ShowS) -> (Error -> String) -> ([Error] -> ShowS) -> Show Error forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Error] -> ShowS $cshowList :: [Error] -> ShowS show :: Error -> String $cshow :: Error -> String showsPrec :: Int -> Error -> ShowS $cshowsPrec :: Int -> Error -> ShowS Show) data EvalError = TypeMismatch { EvalError -> Text expected :: Text, EvalError -> Text actual :: Text } | InvalidKey Doc | DuplicateKey Doc | NoSuchKey Doc | InvalidIndex Doc | IndexOutOfBounds Scientific | DivByZero | VarNotFound Doc | AssertionFailed Doc | TooManyArgs Int | ParamNotBound Doc | BadParam Doc | StdError Doc | RuntimeError Doc | ManifestError Doc deriving (Int -> EvalError -> ShowS [EvalError] -> ShowS EvalError -> String (Int -> EvalError -> ShowS) -> (EvalError -> String) -> ([EvalError] -> ShowS) -> Show EvalError forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [EvalError] -> ShowS $cshowList :: [EvalError] -> ShowS show :: EvalError -> String $cshow :: EvalError -> String showsPrec :: Int -> EvalError -> ShowS $cshowsPrec :: Int -> EvalError -> ShowS Show) data ParserError = ParseError (ParseErrorBundle Text Void) | ImportError IOError (Maybe SrcSpan) deriving (ParserError -> ParserError -> Bool (ParserError -> ParserError -> Bool) -> (ParserError -> ParserError -> Bool) -> Eq ParserError forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ParserError -> ParserError -> Bool $c/= :: ParserError -> ParserError -> Bool == :: ParserError -> ParserError -> Bool $c== :: ParserError -> ParserError -> Bool Eq, Int -> ParserError -> ShowS [ParserError] -> ShowS ParserError -> String (Int -> ParserError -> ShowS) -> (ParserError -> String) -> ([ParserError] -> ShowS) -> Show ParserError forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ParserError] -> ShowS $cshowList :: [ParserError] -> ShowS show :: ParserError -> String $cshow :: ParserError -> String showsPrec :: Int -> ParserError -> ShowS $cshowsPrec :: Int -> ParserError -> ShowS Show) data CheckError = DuplicateParam String | PosAfterNamedParam | DuplicateBinding String deriving (Int -> CheckError -> ShowS [CheckError] -> ShowS CheckError -> String (Int -> CheckError -> ShowS) -> (CheckError -> String) -> ([CheckError] -> ShowS) -> Show CheckError forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CheckError] -> ShowS $cshowList :: [CheckError] -> ShowS show :: CheckError -> String $cshow :: CheckError -> String showsPrec :: Int -> CheckError -> ShowS $cshowsPrec :: Int -> CheckError -> ShowS Show)