Typechecker doesn't preserve HsPar in renamed source.

Zubin Duggal 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:
https://phabricator.haskell.org/D4822

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.
>
> Thanks!
> Richard
>
> 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
>
> I have also created a ticket on trac: 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/20180612/9afd23ad/attachment.html>


More information about the ghc-devs mailing list