
Ah, yes. But I am interested in the SrcSpan of the *usage site* (as well as
the binding site).
Edsko
On Mon, Feb 25, 2013 at 4:41 PM, Simon Peyton-Jones
The SrcSpan of the binding site is stored inside the Id. getSrcSpan should do it.****
** **
S****
** **
*From:* Edsko de Vries [mailto:edskodevries@gmail.com] *Sent:* 25 February 2013 16:27
*To:* Simon Peyton-Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Top-level type signatures in TcGblEnv?****
** **
I'm sorry, I don't see any location information ("Located .." types) in tcg_type_env?****
** **
Edsko****
** **
On Mon, Feb 25, 2013 at 3:22 PM, Simon Peyton-Jones
wrote:**** Can’t you just use the range of the tcg_type_env?
Simon****
****
*From:* Edsko de Vries [mailto:edskodevries@gmail.com] *Sent:* 18 February 2013 14:03 *To:* Simon Peyton-Jones *Cc:* ghc-devs@haskell.org *Subject:* Top-level type signatures in TcGblEnv?****
****
Dear Simon, other ghc devs,****
****
I hooked into genericHscRecompile to traverse the typechecked source and construct an environment of type****
****
[(SrcSpan, Id)]****
****
recording all identifiers in the source with their type, definition site, etc. To be precise, I am traversing the ****
****
tcg_binds :: LHsBinds Id, -- Value bindings in this module****
****
field of the TcGblEnv structure returned by the type checker. The problem is that I have so far been unable to find top-level user-supplied type annotations inside LHsBinds. The closest thing I've found is the PostTcType of a MatchGroup, but that is not Located; what I'm really looking for is an LSig. ****
****
Now, let-bindings get a HsValBindsLR instead of an LHsBinds, and that *does* contain signatures. My question is two-fold:****
****
1. First, am I missing something? Are there LSigs somewhere inside the TcGblEnv where I simply haven't seen them?****
****
2. If not, is there a good reason why tcg_binds is an LHsBinds rather than an HsValBindsLR? And if there isn't, would you accept a patch making the change?****
****
Thanks,****
****
Edsko****
** **