Run simplifier only when the env is clean.
authorRichard Eisenberg <eir@cis.upenn.edu>
Sun, 20 Sep 2015 20:15:13 +0000 (16:15 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Mon, 21 Sep 2015 14:53:40 +0000 (10:53 -0400)
commit8e8b9ed9849ba21e454e6204b368f8e993feaf7b
tree217ed768a77b90a35654279e609e472094fea916
parente27b267f3675180c03a75282dd952b8a59339a1f
Run simplifier only when the env is clean.

This fixes #10896. In the indexed-types/should_fail/BadSock test,
there is a bad type definition. This gets type-checked, an error
gets reported, but then **GHC keeps going**. Later, when
running the simplifier to do an ambiguity check, the bad type
environment causes GHC to fall over. My solution: only run the
simplifier in a clean, error-free type environment.

A downside of this is that fewer error messages are reported.
This makes me a bit sad, but I'm not sure how to avoid the problem.
Suggestions welcome.
compiler/typecheck/TcFlatten.hs
compiler/typecheck/TcValidity.hs
testsuite/tests/typecheck/should_fail/T5300.stderr
testsuite/tests/typecheck/should_fail/T8030.stderr