Commit 3174beb6 authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

Comments about -Wredundant-constraints

parent afdde48b
......@@ -367,6 +367,7 @@ reportImplic ctxt implic@(Implic { ic_skols = tvs, ic_given = given
_ -> []
warnRedundantConstraints :: ReportErrCtxt -> TcLclEnv -> SkolemInfo -> [EvVar] -> TcM ()
-- See Note [Tracking redundant constraints] in TcSimplify
warnRedundantConstraints ctxt env info ev_vars
| null redundant_evs
= return ()
......
......@@ -1511,13 +1511,23 @@ works:
----- Shortcomings
Consider (see Trac #9939)
f2 :: (Eq a, Ord a) => a -> a -> Bool
After I introduced -Wredundant-constraints there was extensive discussion
about cases where it reported a redundant constraint but the programmer
really wanted it. See
* #11370 (removed it from -Wdefault)
* #10635 (removed it from -Wall as well)
* #12142
* #11474, #10100 (class not used, but its fundeps are)
* #11099 (redundant, but still desired)
* #10183 (constraint necessary to exclude omitted case)
* #9939: f2 :: (Eq a, Ord a) => a -> a -> Bool
-- Ord a redundant, but Eq a is reported
f2 x y = (x == y)
We report (Eq a) as redundant, whereas actually (Ord a) is. But it's
really not easy to detect that!
We report (Eq a) as redundant, whereas actually (Ord a) is.
But it's really not easy to detect that!
Note [Cutting off simpl_loop]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment