Read parentheses better
authorDavid Feuer <david.feuer@gmail.com>
Thu, 10 Nov 2016 20:20:15 +0000 (15:20 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 10 Nov 2016 20:25:39 +0000 (15:25 -0500)
commitbef7e784d037f720697a215b9e21f13b385e6d3e
treeb957387ca612a3e1d3e18776fb7a8f586c24e407
parente06e21af1fd077067149f2c41fb5b2553622f499
Read parentheses better

Instead of pulling a token and looking for `'('` or `')'`,
just look for the character itself. This prevents us from
lexing every single item twice, once to see if it's a
left parenthesis and once to actually parse it.

Partially fixes #12665

Make parens faster more aggressively

* Strip spaces before parsing, so we never have to strip
the same spaces twice.

* String parsers together manually, to try to avoid unnecessary closure
creation.

Test Plan: Validate

Reviewers: austin, hvr, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2630

GHC Trac Issues: #12665
libraries/base/GHC/Read.hs