[GHC] #10854: Remove recursive uses of `pprParendHsExpr` from `HsExpr.ppr_expr`

GHC ghc-devs at haskell.org
Tue Sep 8 15:43:57 UTC 2015


#10854: Remove recursive uses of `pprParendHsExpr` from `HsExpr.ppr_expr`
-------------------------------------+-------------------------------------
              Reporter:  goldfire    |             Owner:
                  Type:  task        |            Status:  new
              Priority:  normal      |         Milestone:
             Component:  Compiler    |           Version:  7.10.2
              Keywords:  newcomer    |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
             Test Case:              |        Blocked By:
              Blocking:              |   Related Tickets:
Differential Revisions:              |
-------------------------------------+-------------------------------------
 An `HsExpr` should look exactly as a user wrote some Haskell code. Its
 pretty printer should therefore be quite dumb. Just print out the code!
 But a few places in GHC create `HsExpr`s and aren't scrupulous with regard
 to adding `HsPar` nodes where source syntax would need them. Thus, well-
 meaning souls have added `pprParendExpr` calls to the `HsExpr` pretty-
 printer to try to cover these cases.

 Simon and I [https://phabricator.haskell.org/D1219#34199 think] that we
 should remove all recursive uses of `pprParendExpr` from the `HsExpr`
 pretty-printer and instead add the `HsPar`s where necessary.

 It was recently reported that the following test cases break when simply
 removing `pprParendExpr`:

 {{{
 Unexpected failures:
    deriving/should_fail          T4846 [stderr mismatch] (normal)
    generics                      GenDerivOutput [stderr mismatch] (normal)
    generics                      GenDerivOutput1_0 [stderr mismatch]
 (normal)
    generics                      GenDerivOutput1_1 [stderr mismatch]
 (normal)
    ghci/scripts                  T10248 [bad stderr] (ghci)
    indexed-types/should_compile  PushedInAsGivens [stderr mismatch]
 (normal)
    safeHaskell/safeLanguage      SafeLang10 [stderr mismatch] (normal)
    safeHaskell/safeLanguage      SafeLang17 [stderr mismatch] (normal)
    typecheck/should_fail         T8603 [stderr mismatch] (normal)
    typecheck/should_fail         tcfail177 [stderr mismatch] (normal)
 }}}

 See also considerable commentary on Phab:D1114.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10854>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list