Typechecker doesn't preserve HsPar in renamed source.
zubin.duggal at gmail.com
Tue Jun 12 03:51:34 UTC 2018
At the time I hadn't modified tcSeq and tcTagToEnum to take HsArgPars into
account. I have now done that, and also added a test case.
I've also submitted the fix to Phab, over here:
On 12 June 2018 at 09:04, Richard Eisenberg <rae at cs.brynmawr.edu> wrote:
> This looks pretty good to me. What's "in progress" about it?
> I would want to see a comment on the declaration for HsArgPar with an
> example, and a test case.
> On Jun 7, 2018, at 6:38 AM, Zubin Duggal <zubin.duggal at gmail.com> wrote:
> Hello all,
> The typechecker doesn't preserve parenthesis that occur at the head of
> This results in some weird SrcSpans in the TypecheckedSource
> For example, given code
> foo a b c = (bar a) b c
> The typechecker will emit an HsApp with head spanning over `bar a) b` and
> tail spanning over `c`.
> Notice that the opening parenthesis is not included.
> On the other hand, the renamer will generate the expected SrcSpans that
> always include both parenthesis, or neither. This becomes an issue when you
> want to associate RenamedSource with its corresponding TypecheckedSource,
> as the SrcSpans no longer match and overlap partially.
> This occurs due to this line in TcExpr.hs
> tcApp m_herald (L _ (HsPar _ fun)) args res_ty
> = tcApp m_herald fun args res_ty
> I have a work in progress fix here: https://github.com/wz1000/ghc/commit/
> I have also created a ticket on trac: https://ghc.haskell.org/trac/
> ghc-devs mailing list
> ghc-devs at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs