Add support for ImplicitParams and RecursiveDo in TH
authorMichael Sloan <mgsloan@gmail.com>
Fri, 14 Sep 2018 10:17:13 +0000 (12:17 +0200)
committerKrzysztof Gogolewski <krz.gogolewski@gmail.com>
Fri, 14 Sep 2018 11:29:31 +0000 (13:29 +0200)
commit9c6b7493db24977595b17046e15baf76638b5317
treeaef4c568c2bb7620fed8ae12a5c2306e98e220ee
parentce240b3f998b68853c47ab131126eb9a245256c5
Add support for ImplicitParams and RecursiveDo in TH

Summary:
This adds TH support for the ImplicitParams and RecursiveDo extensions.

I'm submitting this as one review because I cannot cleanly make
the two commits independent.

Initially, my goal was just to add ImplicitParams support, and
I found that reasonably straightforward, so figured I might
as well use my newfound knowledge to address some other TH omissions.

Test Plan: Validate

Reviewers: goldfire, austin, bgamari, RyanGlScott

Reviewed By: RyanGlScott

Subscribers: carter, RyanGlScott, thomie

GHC Trac Issues: #1262

Differential Revision: https://phabricator.haskell.org/D1979
22 files changed:
compiler/deSugar/DsMeta.hs
compiler/hsSyn/Convert.hs
compiler/prelude/THNames.hs
compiler/typecheck/TcSplice.hs
docs/users_guide/8.8.1-notes.rst
libraries/template-haskell/Language/Haskell/TH/Lib.hs
libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
libraries/template-haskell/Language/Haskell/TH/Ppr.hs
libraries/template-haskell/Language/Haskell/TH/Syntax.hs
libraries/template-haskell/changelog.md
testsuite/tests/th/TH_implicitParams.hs [new file with mode: 0644]
testsuite/tests/th/TH_implicitParams.stdout [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr1.hs [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr1.stderr [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr2.hs [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr2.stderr [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr3.hs [new file with mode: 0644]
testsuite/tests/th/TH_implicitParamsErr3.stderr [new file with mode: 0644]
testsuite/tests/th/TH_recursiveDo.hs [new file with mode: 0644]
testsuite/tests/th/TH_recursiveDo.stdout [new file with mode: 0644]
testsuite/tests/th/TH_recursiveDoImport.hs [new file with mode: 0644]
testsuite/tests/th/all.T