summaryrefslogtreecommitdiff
path: root/compiler/GHC/Rename/Utils.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Rename/Utils.hs')
-rw-r--r--compiler/GHC/Rename/Utils.hs11
1 files changed, 4 insertions, 7 deletions
diff --git a/compiler/GHC/Rename/Utils.hs b/compiler/GHC/Rename/Utils.hs
index 68d453a68f..2e93ad882d 100644
--- a/compiler/GHC/Rename/Utils.hs
+++ b/compiler/GHC/Rename/Utils.hs
@@ -194,17 +194,14 @@ checkInferredVars :: HsDocContext
-> RnM ()
checkInferredVars _ Nothing _ = return ()
checkInferredVars ctxt (Just msg) ty =
- let bndrs = forallty_bndrs (hsSigType ty)
+ let bndrs = sig_ty_bndrs ty
in case find ((==) InferredSpec . hsTyVarBndrFlag) bndrs of
Nothing -> return ()
Just _ -> addErr $ withHsDocContext ctxt msg
where
- forallty_bndrs :: LHsType GhcPs -> [HsTyVarBndr Specificity GhcPs]
- forallty_bndrs (L _ ty) = case ty of
- HsParTy _ ty' -> forallty_bndrs ty'
- HsForAllTy { hst_tele = HsForAllInvis { hsf_invis_bndrs = tvs }}
- -> map unLoc tvs
- _ -> []
+ sig_ty_bndrs :: LHsSigType GhcPs -> [HsTyVarBndr Specificity GhcPs]
+ sig_ty_bndrs (L _ (HsSig{sig_bndrs = outer_bndrs}))
+ = map unLoc (hsOuterExplicitBndrs outer_bndrs)
{-
Note [Unobservably inferred type variables]