diff --git a/src/Swarm/TUI/Controller.hs b/src/Swarm/TUI/Controller.hs index adb58afa3..93b8f9cef 100644 --- a/src/Swarm/TUI/Controller.hs +++ b/src/Swarm/TUI/Controller.hs @@ -830,13 +830,13 @@ handleREPLEventTyping = \case -- term (by `def` statements) to their requirements. -- E.g. if we had `def m = move end`, the reqCtx would -- record the fact that `m` needs the `move` capability. - -- We simply dump the entire `reqCtx` into the robot's + -- We simply add the entire `reqCtx` to the robot's -- context, so we can look up requirements if we later -- need to requirements-check an argument to `build` or -- `reprogram` at runtime. See the discussion at -- https://github.com/swarm-game/swarm/pull/827 for more -- details. - . (gameState . baseRobot . robotContext . defReqs .~ reqCtx) + . (gameState . baseRobot . robotContext . defReqs <>~ reqCtx) -- Set up the robot's CESK machine to evaluate/execute the -- given term, being sure to initialize the CESK machine -- environment and store from the top-level context. diff --git a/test/integration/Main.hs b/test/integration/Main.hs index 6c8f89ac9..acde2ca50 100644 --- a/test/integration/Main.hs +++ b/test/integration/Main.hs @@ -5,7 +5,7 @@ -- | Swarm integration tests module Main where -import Control.Lens (Ixed (ix), to, use, view, (&), (.~), (<&>), (^.), (^..), (^?!)) +import Control.Lens (Ixed (ix), to, use, view, (&), (.~), (<&>), (<>~), (^.), (^..), (^?!)) import Control.Monad (filterM, forM_, unless, void, when) import Control.Monad.State (StateT (runStateT), gets) import Control.Monad.Trans.Except (runExceptT) @@ -249,10 +249,10 @@ testScenarioSolution _ci _em = Just sol@(ProcessedTerm _ _ _ reqCtx) -> do let gs' = gs - -- See #827 for an explanation of why it's important to set + -- See #827 for an explanation of why it's important to add to -- the robotContext defReqs here (and also why this will, -- hopefully, eventually, go away). - & baseRobot . robotContext . defReqs .~ reqCtx + & baseRobot . robotContext . defReqs <>~ reqCtx & baseRobot . machine .~ initMachine sol Ctx.empty emptyStore m <- timeout (time s) (snd <$> runStateT playUntilWin gs') case m of