Reject top-level typed TH splices. Fixes #10945
authorJan Stolarek <jan.stolarek@p.lodz.pl>
Tue, 20 Oct 2015 12:09:13 +0000 (14:09 +0200)
committerJan Stolarek <jan.stolarek@p.lodz.pl>
Tue, 20 Oct 2015 18:27:27 +0000 (20:27 +0200)
commit1750ebc2e40bab85246717326d3d5c60f132e652
treefc7317ebcff4e667f38340b4dd5be58579e0226b
parentae4acbd1ba4168b867a1b5fe8de50c0199dfc1f4
Reject top-level typed TH splices. Fixes #10945

When TemplateHaskell language extension is enabled it is valid to have
top-level expressions.  Each such expression is treated as a contents
of a splice.  The problem arises with typed splices.  They are not valid
at the top level and therefore we should interpret them not as a splice
but as a top-level expression (aka. implicit splice).  So saying:

$$foo

is equivalent of:

$( $$foo )

This patch makes sure that this is indeed the case.  Until now we
incorrectly treated typed splices as explicit splices.
compiler/parser/RdrHsSyn.hs
testsuite/tests/th/T10945.stderr [new file with mode: 0644]
testsuite/tests/th/all.T