diff options
-rw-r--r-- | compiler/GHC/Rename/HsType.hs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/GHC/Rename/HsType.hs b/compiler/GHC/Rename/HsType.hs index 90540eda08..144534f4ec 100644 --- a/compiler/GHC/Rename/HsType.hs +++ b/compiler/GHC/Rename/HsType.hs @@ -324,14 +324,16 @@ rnImplicitBndrs bind_free_tvs fvs_with_dups thing_inside = do { let fvs = nubL fvs_with_dups - real_fvs | bind_free_tvs = fvs - | otherwise = [] + -- implicit_vs are the surface-syntax free vars that are in fact + -- actually captured by implicit bindings + implicit_vs | bind_free_tvs = fvs + | otherwise = [] ; traceRn "rnImplicitBndrs" $ - vcat [ ppr fvs_with_dups, ppr fvs, ppr real_fvs ] + vcat [ ppr fvs_with_dups, ppr fvs, ppr implicit_vs ] ; loc <- getSrcSpanM - ; vars <- mapM (newLocalBndrRn . L loc . unLoc) real_fvs + ; vars <- mapM (newLocalBndrRn . L loc . unLoc) implicit_vs ; bindLocalNamesFV vars $ thing_inside vars } |