mirror of
https://github.com/github/semantic.git
synced 2024-12-24 07:25:44 +03:00
Move ResolutionError into the module table effects module.
This commit is contained in:
parent
0d3f8b685f
commit
b09e854be5
@ -11,6 +11,9 @@ module Control.Abstract.ModuleTable
|
||||
, LoadError(..)
|
||||
, runLoadError
|
||||
, runLoadErrorWith
|
||||
, ResolutionError(..)
|
||||
, runResolutionError
|
||||
, runResolutionErrorWith
|
||||
) where
|
||||
|
||||
import Control.Abstract.Environment
|
||||
@ -20,6 +23,7 @@ import Data.Abstract.Environment
|
||||
import Data.Abstract.Exports as Exports
|
||||
import Data.Abstract.Module
|
||||
import Data.Abstract.ModuleTable as ModuleTable
|
||||
import Data.Language
|
||||
import Prologue
|
||||
|
||||
-- | Retrieve the table of evaluated modules.
|
||||
@ -144,3 +148,27 @@ runLoadError = raiseHandler runError
|
||||
|
||||
runLoadErrorWith :: (forall resume . LoadError term resume -> Evaluator location term value effects resume) -> Evaluator location term value (Resumable (LoadError term) ': effects) a -> Evaluator location term value effects a
|
||||
runLoadErrorWith = runResumableWith
|
||||
|
||||
|
||||
-- | An error thrown when we can't resolve a module from a qualified name.
|
||||
data ResolutionError resume where
|
||||
NotFoundError :: String -- ^ The path that was not found.
|
||||
-> [String] -- ^ List of paths searched that shows where semantic looked for this module.
|
||||
-> Language -- ^ Language.
|
||||
-> ResolutionError ModulePath
|
||||
|
||||
GoImportError :: FilePath -> ResolutionError [ModulePath]
|
||||
|
||||
deriving instance Eq (ResolutionError b)
|
||||
deriving instance Show (ResolutionError b)
|
||||
instance Show1 ResolutionError where liftShowsPrec _ _ = showsPrec
|
||||
instance Eq1 ResolutionError where
|
||||
liftEq _ (NotFoundError a _ l1) (NotFoundError b _ l2) = a == b && l1 == l2
|
||||
liftEq _ (GoImportError a) (GoImportError b) = a == b
|
||||
liftEq _ _ _ = False
|
||||
|
||||
runResolutionError :: Effectful m => m (Resumable ResolutionError ': effects) a -> m effects (Either (SomeExc ResolutionError) a)
|
||||
runResolutionError = raiseHandler runError
|
||||
|
||||
runResolutionErrorWith :: Effectful m => (forall resume . ResolutionError resume -> m effects resume) -> m (Resumable ResolutionError ': effects) a -> m effects a
|
||||
runResolutionErrorWith = runResumableWith
|
||||
|
@ -8,9 +8,6 @@ module Data.Abstract.Evaluatable
|
||||
, EvalError(..)
|
||||
, runEvalError
|
||||
, runEvalErrorWith
|
||||
, ResolutionError(..)
|
||||
, runResolutionError
|
||||
, runResolutionErrorWith
|
||||
, variable
|
||||
, evaluateInScopedEnv
|
||||
, evaluatePackageWith
|
||||
@ -31,7 +28,6 @@ import Data.Abstract.FreeVariables as X
|
||||
import Data.Abstract.Module
|
||||
import Data.Abstract.ModuleTable as ModuleTable
|
||||
import Data.Abstract.Package as Package
|
||||
import Data.Language
|
||||
import Data.Scientific (Scientific)
|
||||
import Data.Semigroup.App
|
||||
import Data.Semigroup.Foldable
|
||||
@ -77,30 +73,6 @@ type EvaluatableConstraints location term value effects =
|
||||
)
|
||||
|
||||
|
||||
-- | An error thrown when we can't resolve a module from a qualified name.
|
||||
data ResolutionError resume where
|
||||
NotFoundError :: String -- ^ The path that was not found.
|
||||
-> [String] -- ^ List of paths searched that shows where semantic looked for this module.
|
||||
-> Language -- ^ Language.
|
||||
-> ResolutionError ModulePath
|
||||
|
||||
GoImportError :: FilePath -> ResolutionError [ModulePath]
|
||||
|
||||
deriving instance Eq (ResolutionError b)
|
||||
deriving instance Show (ResolutionError b)
|
||||
instance Show1 ResolutionError where liftShowsPrec _ _ = showsPrec
|
||||
instance Eq1 ResolutionError where
|
||||
liftEq _ (NotFoundError a _ l1) (NotFoundError b _ l2) = a == b && l1 == l2
|
||||
liftEq _ (GoImportError a) (GoImportError b) = a == b
|
||||
liftEq _ _ _ = False
|
||||
|
||||
runResolutionError :: Effectful m => m (Resumable ResolutionError ': effects) a -> m effects (Either (SomeExc ResolutionError) a)
|
||||
runResolutionError = raiseHandler runError
|
||||
|
||||
runResolutionErrorWith :: Effectful m => (forall resume . ResolutionError resume -> m effects resume) -> m (Resumable ResolutionError ': effects) a -> m effects a
|
||||
runResolutionErrorWith = runResumableWith
|
||||
|
||||
|
||||
-- | The type of error thrown when failing to evaluate a term.
|
||||
data EvalError value resume where
|
||||
-- Indicates we weren't able to dereference a name from the evaluated environment.
|
||||
|
Loading…
Reference in New Issue
Block a user