summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2024-11-09 19:29:06 +0100
committerRoman Smrž <roman.smrz@seznam.cz>2024-11-09 19:29:06 +0100
commit6447095bcffd101507afb65854da22bd4ee6fcaa (patch)
tree749b7ef6b13aaeb209013f26546f97e8d6670c8b
parent0c8bad166577f9973ba5701aee5ca5d9a3f3bc5d (diff)
Move withVar into MonadEval type class
-rw-r--r--src/Run.hs3
-rw-r--r--src/Run/Monad.hs2
-rw-r--r--src/Test.hs5
3 files changed, 5 insertions, 5 deletions
diff --git a/src/Run.hs b/src/Run.hs
index 1cb04bb..2fa1989 100644
--- a/src/Run.hs
+++ b/src/Run.hs
@@ -186,9 +186,6 @@ evalSteps = mapM_ $ \case
void $ outPromptGetLine "Waiting..."
-withVar :: ExprType e => VarName -> e -> TestRun a -> TestRun a
-withVar name value = local (fmap $ \s -> s { tsVars = ( name, SomeVarValue mempty $ const $ const value ) : tsVars s })
-
withInternet :: (Network -> TestRun a) -> TestRun a
withInternet inner = do
testDir <- asks $ optTestDir . teOptions . fst
diff --git a/src/Run/Monad.hs b/src/Run/Monad.hs
index 9ec9065..1890572 100644
--- a/src/Run/Monad.hs
+++ b/src/Run/Monad.hs
@@ -96,6 +96,8 @@ instance MonadEval TestRun where
lookupVar name = maybe (fail $ "variable not in scope: '" ++ unpackVarName name ++ "'") return =<< asks (lookup name . tsVars . snd)
rootNetwork = asks $ tsNetwork . snd
+ withVar name value = local (fmap $ \s -> s { tsVars = ( name, SomeVarValue mempty $ const $ const value ) : tsVars s })
+
instance MonadOutput TestRun where
getOutput = asks $ teOutput . fst
diff --git a/src/Test.hs b/src/Test.hs
index 24a4c72..58c8667 100644
--- a/src/Test.hs
+++ b/src/Test.hs
@@ -76,8 +76,9 @@ newtype SourceLine = SourceLine Text
class MonadFail m => MonadEval m where
- lookupVar :: VarName -> m SomeVarValue
- rootNetwork :: m Network
+ lookupVar :: VarName -> m SomeVarValue
+ rootNetwork :: m Network
+ withVar :: ExprType e => VarName -> e -> m a -> m a
newtype VarName = VarName Text