0b774cd7

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

Skip parsed-stage splice-span walk for DisableMutations modules

When a module carries {-# ANN module ("DisableMutations" :: String) #-},
the typecheck-stage plugin already short-circuits.  But the parser-stage
hook was still doing the full Data-generics walk to collect splice spans
for the --skip-th-splices feature, even though the spans would never be
consulted.

Look for the module-level ANN in the parsed AST (mirroring the
typecheck-stage check that uses tcg_ann_env) and skip the walk when it
is present.  The runtime-import injection still happens — it is cheap
and needed for -Wunused-packages on the sydtest-mutation-plugin dep.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 2s 3s 3s 5s 2s
Eval 5s 1m46s 1m46s 1m51s 0s
Build 1m02s 1h52m19s 51m05s 52m08s 0s
Suite 2s 1h54m09s 52m06s 52m08s 2s

Timeline

0s1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m24m25m26m27m28m29m30m31m32m33m34m35m36m37m38m39m40m41m42m43m44m45m46m47m48m49m50m51m52m