use Proxy instead of undefined -- we already dropped support for 7.6
authorÖmer Sinan Ağacan <omeragacan@gmail.com>
Sat, 24 Oct 2015 10:05:41 +0000 (12:05 +0200)
committerBen Gamari <ben@smart-cactus.org>
Sat, 24 Oct 2015 10:07:07 +0000 (12:07 +0200)
Reviewers: austin, goldfire, bgamari

Reviewed By: bgamari

Subscribers: thomie

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

compiler/typecheck/TcSplice.hs

index 12f28a5..728c40a 100644 (file)
@@ -109,8 +109,9 @@ import GHC.Desugar      ( AnnotationWrapper(..) )
 
 import qualified Data.Map as Map
 import Data.Dynamic  ( fromDynamic, toDyn )
-import Data.Typeable ( typeOf, Typeable )
+import Data.Typeable ( typeOf, Typeable, typeRep )
 import Data.Data (Data)
+import Data.Proxy    ( Proxy (..) )
 import GHC.Exts         ( unsafeCoerce# )
 #endif
 
@@ -844,9 +845,7 @@ instance TH.Quasi (IOEnv (Env TcGblEnv TcLclEnv)) where
       th_state_var <- fmap tcg_th_state getGblEnv
       th_state <- readTcRef th_state_var
       -- See #10596 for why we use a scoped type variable here.
-      -- ToDo: convert @undefined :: a@ to @proxy :: Proxy a@ when
-      -- we drop support for GHC 7.6.
-      return (Map.lookup (typeOf (undefined :: a)) th_state >>= fromDynamic)
+      return (Map.lookup (typeRep (Proxy :: Proxy a)) th_state >>= fromDynamic)
 
   qPutQ x = do
       th_state_var <- fmap tcg_th_state getGblEnv