Commit c1ed9557 authored by Facundo Domínguez's avatar Facundo Domínguez

Have addModFinalizer expose the local type environment.

Kind inference in ghci was interfered when renaming of type splices
introduced the HsSpliced data constructor. This patch has kind
inference skip over it.

Test Plan: ./validate

Reviewers: simonpj, rrnewton, bgamari, goldfire, austin

Subscribers: thomie, mboes

Differential Revision:

GHC Trac Issues: #12985
parent c5452cc1
......@@ -446,6 +446,14 @@ tc_infer_hs_type mode (HsKindSig ty sig)
= do { sig' <- tc_lhs_kind (kindLevel mode) sig
; ty' <- tc_lhs_type mode ty sig'
; return (ty', sig') }
-- HsSpliced is an annotation produced by 'RnSplice.rnSpliceType' to communicate
-- the splice location to the typechecker. Here we skip over it in order to have
-- the same kind inferred for a given expression whether it was produced from
-- splices or not.
-- See Note [Delaying modFinalizers in untyped splices].
tc_infer_hs_type mode (HsSpliceTy (HsSpliced _ (HsSplicedTy ty)) _)
= tc_infer_hs_type mode ty
tc_infer_hs_type mode (HsDocTy ty _) = tc_infer_lhs_type mode ty
tc_infer_hs_type _ (HsCoreTy ty) = return (ty, typeKind ty)
tc_infer_hs_type mode other_ty
......@@ -8,3 +8,10 @@
:seti -XRankNTypes
:kind! forall a. F (Maybe a)
:set -XUnboxedTuples -XTemplateHaskell -XMagicHash
:set -fprint-explicit-runtime-reps -fprint-explicit-kinds
:set -fprint-explicit-foralls
:m + GHC.Exts Language.Haskell.TH Language.Haskell.TH.Lib
:m + Language.Haskell.TH.Syntax
:k $(unboxedTupleT 2)
......@@ -9,3 +9,5 @@ F (Maybe Bool) :: *
= Char
forall a. F (Maybe a) :: *
= Char
$(unboxedTupleT 2) :: forall (k0 :: RuntimeRep) (k1 :: RuntimeRep).
TYPE k0 -> TYPE k1 -> TYPE 'UnboxedTupleRep
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment