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
Config 2s 3s 3s 5s
Eval 5s 1m46s 1m46s 1m51s
Build 1m02s 1h52m19s 51m05s 52m08s
Test - - - -
Deploy - - - -
Suite 2s 1h54m09s 52m06s 52m08s

Timeline

0s1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m24m25m26m27m28m29m30m31m32m33m34m35m36m37m38m39m40m41m42m43m44m45m46m47m48m49m50m51m52m