X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Frename%2FRnTypes.lhs;h=e209036e5eb1d1878f822988273cc4c366d57a9e;hp=d7d435ce974d97c2d0df0ad116ef0939b78539c6;hb=cbc86d748d5f7b5ad5503c9e87c0b5c0402f27bc;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/compiler/rename/RnTypes.lhs b/compiler/rename/RnTypes.lhs index d7d435c..e209036 100644 --- a/compiler/rename/RnTypes.lhs +++ b/compiler/rename/RnTypes.lhs @@ -416,7 +416,14 @@ checkPrecMatch True op (MatchGroup ms _) = checkPrec op (unLoc p1) False `thenM_` checkPrec op (unLoc p2) True - check _ = panic "checkPrecMatch" + check _ = return () + -- This can happen. Consider + -- a `op` True = ... + -- op = ... + -- The infix flag comes from the first binding of the group + -- but the second eqn has no args (an error, but not discovered + -- until the type checker). So we don't want to crash on the + -- second eqn. checkPrec op (ConPatIn op1 (InfixCon _ _)) right = lookupFixityRn op `thenM` \ op_fix@(Fixity op_prec op_dir) ->