SafeHaskell: Transitively check safety when compiling a module.
authorDavid Terei <davidterei@gmail.com>
Sun, 12 Jun 2011 03:20:32 +0000 (20:20 -0700)
committerDavid Terei <davidterei@gmail.com>
Sat, 18 Jun 2011 03:40:34 +0000 (20:40 -0700)
commit77d85a4a9c185a4756f14135e96f3b0aab9cf8f9
tree3ec89f901df517a9b8b2fd3a1e7e8c034c4dce9e
parent8ebe525b9e7988355c236dfe0dd18187522e377e
SafeHaskell: Transitively check safety when compiling a module.

While we previously checked the safety of safe imported modules we
didn't do this check transitively. This can be a problem when we depend
on a trustworthy module in a package that is no longer trusted, so we
should fail compilation. We already stored in an interface file the
transitive list of packages a module depends on. Now we extend that list
to include a flag saying if we depend on that package being trusted as
well.
compiler/ghci/Linker.lhs
compiler/iface/LoadIface.lhs
compiler/iface/MkIface.lhs
compiler/main/DriverPipeline.hs
compiler/main/HscMain.lhs
compiler/main/HscTypes.lhs
compiler/main/TidyPgm.lhs
compiler/rename/RnNames.lhs
compiler/typecheck/TcRnTypes.lhs