Add a clarifying comment about scoping of type variables in associated type decls
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 2 Jul 2014 22:05:52 +0000 (23:05 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Mon, 14 Jul 2014 20:07:31 +0000 (21:07 +0100)
compiler/typecheck/TcHsType.lhs

index eb3dd32..723206b 100644 (file)
@@ -1307,6 +1307,11 @@ tcTyClTyVars tycon (HsQTvs { hsq_kvs = hs_kvs, hsq_tvs = hs_tvs }) thing_inside
        ; tvs <- zipWithM tc_hs_tv hs_tvs kinds
        ; tcExtendTyVarEnv tvs (thing_inside (kvs ++ tvs) res) }
   where
+    -- In the case of associated types, the renamer has
+    -- ensured that the names are in commmon
+    -- e.g.   class C a_29 where
+    --           type T b_30 a_29 :: *
+    -- Here the a_29 is shared
     tc_hs_tv (L _ (UserTyVar n))        kind = return (mkTyVar n kind)
     tc_hs_tv (L _ (KindedTyVar n hs_k)) kind = do { tc_kind <- tcLHsKind hs_k
                                                   ; checkKind kind tc_kind