diff options
author | simonpj@microsoft.com <unknown> | 2009-05-27 18:12:42 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2009-05-27 18:12:42 +0000 |
commit | 389cca214f33a29646e08d57e3dca862140007b2 (patch) | |
tree | 8154ffd0215228f3f6951481f7b2c73fc85d4d39 /compiler/rename/RnExpr.lhs | |
parent | 97a8fe8780307e95829034117efa98d2e27109cd (diff) | |
download | haskell-389cca214f33a29646e08d57e3dca862140007b2.tar.gz |
Template Haskell: allow type splices
At last! Trac #1476 and #3177
This patch extends Template Haskell by allowing splices in
types. For example
f :: Int -> $(burble 3)
A type splice should work anywhere a type is expected. This feature
has been long requested, and quite a while ago I'd re-engineered the
type checker to make it easier, but had never got around to finishing
the job. With luck, this does it.
There's a ToDo in the HsSpliceTy case of RnTypes.rnHsType, where I
am not dealing properly with the used variables; but that's awaiting
the refactoring of the way we report unused names.
Diffstat (limited to 'compiler/rename/RnExpr.lhs')
-rw-r--r-- | compiler/rename/RnExpr.lhs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rename/RnExpr.lhs b/compiler/rename/RnExpr.lhs index f86a04e6c0..32d4c4c379 100644 --- a/compiler/rename/RnExpr.lhs +++ b/compiler/rename/RnExpr.lhs @@ -20,14 +20,14 @@ module RnExpr ( import {-# SOURCE #-} TcSplice( runQuasiQuoteExpr ) #endif /* GHCI */ -import RnSource ( rnSrcDecls, rnSplice, checkTH ) +import RnSource ( rnSrcDecls ) import RnBinds ( rnLocalBindsAndThen, rnValBindsLHS, rnValBindsRHS, rnMatchGroup, makeMiniFixityEnv) import HsSyn import TcRnMonad import TcEnv ( thRnBrack ) import RnEnv -import RnTypes ( rnHsTypeFVs, +import RnTypes ( rnHsTypeFVs, rnSplice, checkTH, mkOpFormRn, mkOpAppRn, mkNegAppRn, checkSectionPrec) import RnPat import DynFlags ( DynFlag(..) ) |