Skip to content

Commit d652f11

Browse files
committed
trace rule outcome
1 parent 89015d3 commit d652f11

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

ghcide/src/Development/IDE/Core/Shake.hs

+8-6
Original file line numberDiff line numberDiff line change
@@ -872,9 +872,9 @@ defineEarlyCutoff
872872
:: IdeRule k v
873873
=> RuleBody k v
874874
-> Rules ()
875-
defineEarlyCutoff (Rule op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode isSuccess $ do
875+
defineEarlyCutoff (Rule op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode traceA $ do
876876
defineEarlyCutoff' True key file old mode $ op key file
877-
defineEarlyCutoff (RuleNoDiagnostics op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode isSuccess $ do
877+
defineEarlyCutoff (RuleNoDiagnostics op) = addRule $ \(Q (key, file)) (old :: Maybe BS.ByteString) mode -> otTracedAction key file mode traceA $ do
878878
defineEarlyCutoff' False key file old mode $ second (mempty,) <$> op key file
879879

880880
defineNoFile :: IdeRule k v => (k -> Action v) -> Rules ()
@@ -917,7 +917,8 @@ defineEarlyCutoff' doDiagnostics key file old mode action = do
917917
Nothing -> do
918918
(bs, (diags, res)) <- actionCatch
919919
(do v <- action; liftIO $ evaluate $ force v) $
920-
\(e :: SomeException) -> pure (Nothing, ([ideErrorText file $ T.pack $ show e | not $ isBadDependency e],Nothing))
920+
\(e :: SomeException) -> do
921+
pure (Nothing, ([ideErrorText file $ T.pack $ show e | not $ isBadDependency e],Nothing))
921922
modTime <- liftIO $ (currentValue . fst =<<) <$> getValues state GetModificationTime file
922923
(bs, res) <- case res of
923924
Nothing -> do
@@ -949,9 +950,10 @@ defineEarlyCutoff' doDiagnostics key file old mode action = do
949950
liftIO $ atomicModifyIORef'_ dirtyKeys (HSet.delete $ toKey key file)
950951
return res
951952

952-
isSuccess :: A v -> Bool
953-
isSuccess (A Failed{}) = False
954-
isSuccess _ = True
953+
traceA :: A v -> String
954+
traceA (A Failed{}) = "Failed"
955+
traceA (A Stale{}) = "Stale"
956+
traceA (A Succeeded{}) = "Success"
955957

956958
-- | Rule type, input file
957959
data QDisk k = QDisk k NormalizedFilePath

ghcide/src/Development/IDE/Core/Tracing.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ otTracedAction
8282
=> k -- ^ The Action's Key
8383
-> NormalizedFilePath -- ^ Path to the file the action was run for
8484
-> RunMode
85-
-> (a -> Bool)
85+
-> (a -> String)
8686
-> Action (RunResult a) -- ^ The action
8787
-> Action (RunResult a)
88-
otTracedAction key file mode success act
88+
otTracedAction key file mode result act
8989
| userTracingEnabled = fst <$>
9090
generalBracket
9191
(do
@@ -99,7 +99,7 @@ otTracedAction key file mode success act
9999
ExitCaseAbort -> setTag sp "aborted" "1"
100100
ExitCaseException e -> setTag sp "exception" (pack $ show e)
101101
ExitCaseSuccess res -> do
102-
unless (success $ runValue res) $ setTag sp "error" "1"
102+
setTag sp "result" (pack $ result $ runValue res)
103103
setTag sp "changed" $ case res of
104104
RunResult x _ _ -> fromString $ show x
105105
endSpan sp)

0 commit comments

Comments
 (0)