3b486a74

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

Step over an annotation pragma rather than reading it as a subject

Naming the pragma's fact after what it annotates fixed the common case and
broke the uncommon one: where {-# ANN foo #-} sits above bar, the comment
above the pragma came out attached to foo, which is worse than the scope
holding nothing that it replaced, because a suppression written there is
silently scoped elsewhere.

An annotation is not a subject, so it gets its own DeclKind and attachment
walks past it. The name stays, because a name occurrence inside the pragma is
scoped by it, and a suppression for such a finding has to be writable where
the hint says to write it.
GitHub
Time to Start Worker time Duration Time to finish Idle
Config 10m04s 0s 0s 10m05s 10m04s
Eval 10m09s 39s 39s 10m48s 3s
Build 10m34s 0s - - 0s
Suite 10m04s 40s - - 1h19m16s