{-# LANGUAGE GADTs #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Haskell.Debug.Adapter.State.Contaminated where
import Control.Monad.IO.Class
import qualified System.Log.Logger as L
import qualified Haskell.DAP as DAP
import Haskell.Debug.Adapter.Type
import qualified Haskell.Debug.Adapter.Utility as U
import Haskell.Debug.Adapter.Constant
import qualified Haskell.Debug.Adapter.State.Utility as SU
instance AppStateIF ContaminatedStateData where
entryAction :: AppState ContaminatedStateData -> AppContext ()
entryAction AppState ContaminatedStateData
ContaminatedState = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP String
"ContaminatedState entryAction called."
() -> AppContext ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
exitAction :: AppState ContaminatedStateData -> AppContext ()
exitAction AppState ContaminatedStateData
ContaminatedState = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP String
"ContaminatedState exitAction called."
() -> AppContext ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
doActivity :: AppState ContaminatedStateData
-> WrapRequest -> AppContext (Maybe StateTransit)
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@InitializeRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@LaunchRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@DisconnectRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@PauseRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@TerminateRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@SetBreakpointsRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@SetFunctionBreakpointsRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@SetExceptionBreakpointsRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@ConfigurationDoneRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@ThreadsRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@StackTraceRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@ScopesRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@VariablesRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@ContinueRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@NextRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@StepInRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@EvaluateRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@CompletionsRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@InternalTransitRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@InternalTerminateRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
doActivity AppState ContaminatedStateData
s (WrapRequest r :: Request a
r@InternalLoadRequest{}) = AppState ContaminatedStateData
-> Request a -> AppContext (Maybe StateTransit)
forall s r.
StateActivityIF s r =>
AppState s -> Request r -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
s Request a
r
instance StateActivityIF ContaminatedStateData DAP.InitializeRequest
instance StateActivityIF ContaminatedStateData DAP.LaunchRequest
instance StateActivityIF ContaminatedStateData DAP.DisconnectRequest
instance StateActivityIF ContaminatedStateData DAP.PauseRequest
instance StateActivityIF ContaminatedStateData DAP.TerminateRequest where
action :: AppState ContaminatedStateData
-> Request TerminateRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (TerminateRequest TerminateRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState TerminateRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ TerminateRequest -> String
forall a. Show a => a -> String
show TerminateRequest
req
TerminateRequest -> AppContext ()
SU.terminateRequest TerminateRequest
req
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
Contaminated_Shutdown
instance StateActivityIF ContaminatedStateData DAP.SetBreakpointsRequest where
action :: AppState ContaminatedStateData
-> Request SetBreakpointsRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (SetBreakpointsRequest SetBreakpointsRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState SetBreakpointsRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ SetBreakpointsRequest -> String
forall a. Show a => a -> String
show SetBreakpointsRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: SetBreakpointsResponse
res = SetBreakpointsResponse
DAP.defaultSetBreakpointsResponse {
seqSetBreakpointsResponse :: Int
DAP.seqSetBreakpointsResponse = Int
resSeq
, request_seqSetBreakpointsResponse :: Int
DAP.request_seqSetBreakpointsResponse = SetBreakpointsRequest -> Int
DAP.seqSetBreakpointsRequest SetBreakpointsRequest
req
, successSetBreakpointsResponse :: Bool
DAP.successSetBreakpointsResponse = Bool
False
, messageSetBreakpointsResponse :: String
DAP.messageSetBreakpointsResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ SetBreakpointsResponse -> Response
SetBreakpointsResponse SetBreakpointsResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.SetFunctionBreakpointsRequest where
action :: AppState ContaminatedStateData
-> Request SetFunctionBreakpointsRequest
-> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (SetFunctionBreakpointsRequest SetFunctionBreakpointsRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState SetFunctionBreakpointsRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ SetFunctionBreakpointsRequest -> String
forall a. Show a => a -> String
show SetFunctionBreakpointsRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: SetFunctionBreakpointsResponse
res = SetFunctionBreakpointsResponse
DAP.defaultSetFunctionBreakpointsResponse {
seqSetFunctionBreakpointsResponse :: Int
DAP.seqSetFunctionBreakpointsResponse = Int
resSeq
, request_seqSetFunctionBreakpointsResponse :: Int
DAP.request_seqSetFunctionBreakpointsResponse = SetFunctionBreakpointsRequest -> Int
DAP.seqSetFunctionBreakpointsRequest SetFunctionBreakpointsRequest
req
, successSetFunctionBreakpointsResponse :: Bool
DAP.successSetFunctionBreakpointsResponse = Bool
False
, messageSetFunctionBreakpointsResponse :: String
DAP.messageSetFunctionBreakpointsResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ SetFunctionBreakpointsResponse -> Response
SetFunctionBreakpointsResponse SetFunctionBreakpointsResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.SetExceptionBreakpointsRequest where
action :: AppState ContaminatedStateData
-> Request SetExceptionBreakpointsRequest
-> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (SetExceptionBreakpointsRequest SetExceptionBreakpointsRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState SetExceptionBreakpointsRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ SetExceptionBreakpointsRequest -> String
forall a. Show a => a -> String
show SetExceptionBreakpointsRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: SetExceptionBreakpointsResponse
res = SetExceptionBreakpointsResponse
DAP.defaultSetExceptionBreakpointsResponse {
seqSetExceptionBreakpointsResponse :: Int
DAP.seqSetExceptionBreakpointsResponse = Int
resSeq
, request_seqSetExceptionBreakpointsResponse :: Int
DAP.request_seqSetExceptionBreakpointsResponse = SetExceptionBreakpointsRequest -> Int
DAP.seqSetExceptionBreakpointsRequest SetExceptionBreakpointsRequest
req
, successSetExceptionBreakpointsResponse :: Bool
DAP.successSetExceptionBreakpointsResponse = Bool
False
, messageSetExceptionBreakpointsResponse :: String
DAP.messageSetExceptionBreakpointsResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ SetExceptionBreakpointsResponse -> Response
SetExceptionBreakpointsResponse SetExceptionBreakpointsResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.ConfigurationDoneRequest
instance StateActivityIF ContaminatedStateData DAP.ThreadsRequest where
action :: AppState ContaminatedStateData
-> Request ThreadsRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (ThreadsRequest ThreadsRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState ThreadsRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ ThreadsRequest -> String
forall a. Show a => a -> String
show ThreadsRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: ThreadsResponse
res = ThreadsResponse
DAP.defaultThreadsResponse {
seqThreadsResponse :: Int
DAP.seqThreadsResponse = Int
resSeq
, request_seqThreadsResponse :: Int
DAP.request_seqThreadsResponse = ThreadsRequest -> Int
DAP.seqThreadsRequest ThreadsRequest
req
, successThreadsResponse :: Bool
DAP.successThreadsResponse = Bool
True
, messageThreadsResponse :: String
DAP.messageThreadsResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ThreadsResponse -> Response
ThreadsResponse ThreadsResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.StackTraceRequest where
action :: AppState ContaminatedStateData
-> Request StackTraceRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (StackTraceRequest StackTraceRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState StackTraceRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ StackTraceRequest -> String
forall a. Show a => a -> String
show StackTraceRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: StackTraceResponse
res = StackTraceResponse
DAP.defaultStackTraceResponse {
seqStackTraceResponse :: Int
DAP.seqStackTraceResponse = Int
resSeq
, request_seqStackTraceResponse :: Int
DAP.request_seqStackTraceResponse = StackTraceRequest -> Int
DAP.seqStackTraceRequest StackTraceRequest
req
, successStackTraceResponse :: Bool
DAP.successStackTraceResponse = Bool
False
, messageStackTraceResponse :: String
DAP.messageStackTraceResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ StackTraceResponse -> Response
StackTraceResponse StackTraceResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.ScopesRequest where
action :: AppState ContaminatedStateData
-> Request ScopesRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (ScopesRequest ScopesRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState ScopesRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ ScopesRequest -> String
forall a. Show a => a -> String
show ScopesRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: ScopesResponse
res = ScopesResponse
DAP.defaultScopesResponse {
seqScopesResponse :: Int
DAP.seqScopesResponse = Int
resSeq
, request_seqScopesResponse :: Int
DAP.request_seqScopesResponse = ScopesRequest -> Int
DAP.seqScopesRequest ScopesRequest
req
, successScopesResponse :: Bool
DAP.successScopesResponse = Bool
False
, messageScopesResponse :: String
DAP.messageScopesResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ ScopesResponse -> Response
ScopesResponse ScopesResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.VariablesRequest where
action :: AppState ContaminatedStateData
-> Request VariablesRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (VariablesRequest VariablesRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState VariablesRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ VariablesRequest -> String
forall a. Show a => a -> String
show VariablesRequest
req
Int
resSeq <- AppContext Int
U.getIncreasedResponseSequence
let res :: VariablesResponse
res = VariablesResponse
DAP.defaultVariablesResponse {
seqVariablesResponse :: Int
DAP.seqVariablesResponse = Int
resSeq
, request_seqVariablesResponse :: Int
DAP.request_seqVariablesResponse = VariablesRequest -> Int
DAP.seqVariablesRequest VariablesRequest
req
, successVariablesResponse :: Bool
DAP.successVariablesResponse = Bool
False
, messageVariablesResponse :: String
DAP.messageVariablesResponse = String
"Contaminated State. need restart."
}
Response -> AppContext ()
U.addResponse (Response -> AppContext ()) -> Response -> AppContext ()
forall a b. (a -> b) -> a -> b
$ VariablesResponse -> Response
VariablesResponse VariablesResponse
res
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
instance StateActivityIF ContaminatedStateData DAP.ContinueRequest where
action :: AppState ContaminatedStateData
-> Request ContinueRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (ContinueRequest ContinueRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState ContinueRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ ContinueRequest -> String
forall a. Show a => a -> String
show ContinueRequest
req
AppContext ()
restartEvent
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
Contaminated_Shutdown
instance StateActivityIF ContaminatedStateData DAP.NextRequest where
action :: AppState ContaminatedStateData
-> Request NextRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (NextRequest NextRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState NextRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ NextRequest -> String
forall a. Show a => a -> String
show NextRequest
req
AppContext ()
restartEvent
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
Contaminated_Shutdown
instance StateActivityIF ContaminatedStateData DAP.StepInRequest where
action :: AppState ContaminatedStateData
-> Request StepInRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (StepInRequest StepInRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState StepInRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ StepInRequest -> String
forall a. Show a => a -> String
show StepInRequest
req
AppContext ()
restartEvent
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
Contaminated_Shutdown
instance StateActivityIF ContaminatedStateData DAP.EvaluateRequest where
action :: AppState ContaminatedStateData
-> Request EvaluateRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (EvaluateRequest EvaluateRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState EvaluateRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ EvaluateRequest -> String
forall a. Show a => a -> String
show EvaluateRequest
req
EvaluateRequest -> AppContext (Maybe StateTransit)
SU.evaluateRequest EvaluateRequest
req
instance StateActivityIF ContaminatedStateData DAP.CompletionsRequest where
action :: AppState ContaminatedStateData
-> Request CompletionsRequest -> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (CompletionsRequest CompletionsRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState CompletionsRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ CompletionsRequest -> String
forall a. Show a => a -> String
show CompletionsRequest
req
CompletionsRequest -> AppContext (Maybe StateTransit)
SU.completionsRequest CompletionsRequest
req
instance StateActivityIF ContaminatedStateData HdaInternalTransitRequest
instance StateActivityIF ContaminatedStateData HdaInternalTerminateRequest where
action :: AppState ContaminatedStateData
-> Request HdaInternalTerminateRequest
-> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (InternalTerminateRequest HdaInternalTerminateRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState InternalTerminateRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ HdaInternalTerminateRequest -> String
forall a. Show a => a -> String
show HdaInternalTerminateRequest
req
AppContext ()
SU.internalTerminateRequest
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe StateTransit -> AppContext (Maybe StateTransit))
-> Maybe StateTransit -> AppContext (Maybe StateTransit)
forall a b. (a -> b) -> a -> b
$ StateTransit -> Maybe StateTransit
forall a. a -> Maybe a
Just StateTransit
Contaminated_Shutdown
instance StateActivityIF ContaminatedStateData HdaInternalLoadRequest where
action :: AppState ContaminatedStateData
-> Request HdaInternalLoadRequest
-> AppContext (Maybe StateTransit)
action AppState ContaminatedStateData
_ (InternalLoadRequest HdaInternalLoadRequest
req) = do
IO () -> AppContext ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> AppContext ()) -> IO () -> AppContext ()
forall a b. (a -> b) -> a -> b
$ String -> String -> IO ()
L.debugM String
_LOG_APP (String -> IO ()) -> String -> IO ()
forall a b. (a -> b) -> a -> b
$ String
"ContaminatedState InternalLoadRequest called. " String -> String -> String
forall a. [a] -> [a] -> [a]
++ HdaInternalLoadRequest -> String
forall a. Show a => a -> String
show HdaInternalLoadRequest
req
String -> AppContext ()
SU.loadHsFile (String -> AppContext ()) -> String -> AppContext ()
forall a b. (a -> b) -> a -> b
$ HdaInternalLoadRequest -> String
pathHdaInternalLoadRequest HdaInternalLoadRequest
req
Maybe StateTransit -> AppContext (Maybe StateTransit)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe StateTransit
forall a. Maybe a
Nothing
restartEvent :: AppContext ()
restartEvent :: AppContext ()
restartEvent = do
AppContext ()
SU.terminateGHCi
String -> AppContext ()
U.sendConsoleEventLF String
""
String -> AppContext ()
U.sendConsoleEventLF String
"restarting debug adapter."
String -> AppContext ()
U.sendConsoleEventLF String
""
AppContext ()
U.sendRestartEvent
AppContext ()
U.sendExitedEvent