4c25e186

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Fix: ignore filter now suppresses RemoveAction on ignored do-block statements

The 'ignore' filter in instrumentLExpr only guards the head of the whole
expression. GHC 9.10 expands a do-block 'do { logDebug "x"; rest }' into
'(>>) (logDebug "x") rest', whose head is '(>>)', so the filter does not
fire — and the RemoveAction operator then removes the ignored 'logDebug "x"'
action, producing exactly the noise the ignore list is meant to silence.

RemoveAction now consults instrumentEnvIgnore and declines to remove an
action whose syntactic head is ignored, in both the expanded '(>>)' path
(mutateChain) and the raw HsDo fallback (rawDoAction). To keep this silent,
applyOperator now treats an operator action that returns no alternatives as
a deliberate non-candidate rather than a validation failure (no WARNING).

Suite timing

Time to Start Worker time Duration Time to finish
Config 1h05m41s 2s 2s 1h05m43s
Eval 1h05m49s 36s 36s 1h06m26s
Build 1h07m52s 54s 56s 1h08m49s
Test - - - -
Deploy - - - -
Suite 1h05m41s 1m33s 3m07s 1h08m49s

Timeline

0s1h5m1h6m1h6m1h6m1h8m1h8m1h8m1h8m1h8m