X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Frename%2FRnBinds.lhs;h=d54f76e053edfb7d51eba03eac5495f027bea353;hp=ff0629ac688b1742d4e74edf84523660b317611c;hb=a8427a4125e9b78e88a487eeabf018f1c6e8bc08;hpb=7d52c74cab50d3c9a5e76be5b97d63b60069bc2e;ds=sidebyside diff --git a/compiler/rename/RnBinds.lhs b/compiler/rename/RnBinds.lhs index ff0629a..d54f76e 100644 --- a/compiler/rename/RnBinds.lhs +++ b/compiler/rename/RnBinds.lhs @@ -380,7 +380,7 @@ rnBind sig_fn trim (L loc (FunBind { fun_id = name, fun_infix = inf, fun_matches ; (matches', fvs) <- bindSigTyVarsFV (sig_fn plain_name) $ -- bindSigTyVars tests for Opt_ScopedTyVars - rnMatchGroup (FunRhs plain_name) matches + rnMatchGroup (FunRhs plain_name inf) matches ; checkPrecMatch inf plain_name matches' @@ -444,12 +444,12 @@ rnMethodBind cls sig_fn gen_tyvars (L loc (FunBind { fun_id = name, fun_infix = -- type variables. See comments in RnSource.rnSourceDecl(ClassDecl) rn_match sel_name match@(L _ (Match (L _ (TypePat ty) : _) _ _)) = extendTyVarEnvFVRn gen_tvs $ - rnMatch (FunRhs sel_name) match + rnMatch (FunRhs sel_name inf) match where tvs = map (rdrNameOcc.unLoc) (extractHsTyRdrTyVars ty) gen_tvs = [tv | tv <- gen_tyvars, nameOccName tv `elem` tvs] - rn_match sel_name match = rnMatch (FunRhs sel_name) match + rn_match sel_name match = rnMatch (FunRhs sel_name inf) match -- Can't handle method pattern-bindings which bind multiple methods. @@ -555,10 +555,10 @@ rnMatch' ctxt match@(Match pats maybe_rhs_sig grhss) = -- Deal with the rhs type signature bindPatSigTyVarsFV rhs_sig_tys $ - doptM Opt_GlasgowExts `thenM` \ opt_GlasgowExts -> + doptM Opt_PatternSignatures `thenM` \ opt_PatternSignatures -> (case maybe_rhs_sig of Nothing -> returnM (Nothing, emptyFVs) - Just ty | opt_GlasgowExts -> rnHsTypeFVs doc_sig ty `thenM` \ (ty', ty_fvs) -> + Just ty | opt_PatternSignatures -> rnHsTypeFVs doc_sig ty `thenM` \ (ty', ty_fvs) -> returnM (Just ty', ty_fvs) | otherwise -> addLocErr ty patSigErr `thenM_` returnM (Nothing, emptyFVs)