Fix a bug to do with recursive modules in one-shot mode 2008-06-01
authorSimon Marlow <marlowsd@gmail.com>
Fri, 30 May 2008 14:53:49 +0000 (14:53 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Fri, 30 May 2008 14:53:49 +0000 (14:53 +0000)
commitd83e1ac43a43dc30c7e4f5b64f7b77e32d31886d
tree5d50f07b71c2bdd44f6da5698c55ec0c740b5af6
parent0d80489c9b9f2421f65d8dd86c1e50c6bb429715
Fix a bug to do with recursive modules in one-shot mode
The problem was that when loading interface files in checkOldIface, we
were not passing the If monad the mutable variable for use when
looking up entities in the *current* module, with the result that the
knots wouldn't be tied properly, and some instances of TyCons would
be incorrectly abstract.

This bug has subtle effects: for example, recompiling a module without
making any changes might lead to a slightly different result (noticed
due to the new interface-file fingerprints).  The bug doesn't lead to
any direct failures that we're aware of.
compiler/main/HscMain.lhs
compiler/main/HscTypes.lhs
compiler/typecheck/TcRnMonad.lhs