Typechecker doesn't preserve HsPar in renamed source.

Richard Eisenberg rae at cs.brynmawr.edu
Tue Jun 12 03:34:19 UTC 2018

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 applications.
> 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/3b6db5a35dc8677a7187e349a85ffd51f452452a <https://github.com/wz1000/ghc/commit/3b6db5a35dc8677a7187e349a85ffd51f452452a>
> I have also created a ticket on trac: https://ghc.haskell.org/trac/ghc/ticket/15242#ticket <https://ghc.haskell.org/trac/ghc/ticket/15242#ticket>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20180611/696a1ead/attachment.html>

More information about the ghc-devs mailing list