diff options
Diffstat (limited to 'compiler/GHC/Rename/Utils.hs')
-rw-r--r-- | compiler/GHC/Rename/Utils.hs | 11 |
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] |