SCC analysis for instances as well as types/classes
This big patch is in pursuit of Trac #11348. It is largely the work of Alex Veith (thank you!), with some follow-up simplification and refactoring from Simon PJ. The main payload is described in RnSource Note [Dependency analysis of type, class, and instance decls] which is pretty detailed. * There is a new data type HsDecls.TyClGroup, for a strongly connected component of type/class/instance/role decls. The hs_instds field of HsGroup disappears, in consequence This forces some knock-on changes, including a minor haddock submodule update Smaller, weakly-related things * I found that both the renamer and typechecker were building an identical env for RoleAnnots, so I put common code for RoleAnnotEnv in RnEnv. * I found that tcInstDecls1 had very clumsy error handling, so I put it together into TcInstDcls.doClsInstErrorChecks
Showing
- compiler/deSugar/DsMeta.hs 3 additions, 3 deletionscompiler/deSugar/DsMeta.hs
- compiler/hsSyn/HsDecls.hs 173 additions, 129 deletionscompiler/hsSyn/HsDecls.hs
- compiler/hsSyn/HsUtils.hs 13 additions, 8 deletionscompiler/hsSyn/HsUtils.hs
- compiler/parser/RdrHsSyn.hs 1 addition, 1 deletioncompiler/parser/RdrHsSyn.hs
- compiler/rename/RnEnv.hs 33 additions, 0 deletionscompiler/rename/RnEnv.hs
- compiler/rename/RnNames.hs 5 additions, 4 deletionscompiler/rename/RnNames.hs
- compiler/rename/RnSource.hs 394 additions, 198 deletionscompiler/rename/RnSource.hs
- compiler/typecheck/TcDeriv.hs 2 additions, 5 deletionscompiler/typecheck/TcDeriv.hs
- compiler/typecheck/TcInstDcls.hs 73 additions, 98 deletionscompiler/typecheck/TcInstDcls.hs
- compiler/typecheck/TcInstDcls.hs-boot 16 additions, 0 deletionscompiler/typecheck/TcInstDcls.hs-boot
- compiler/typecheck/TcRnDriver.hs 29 additions, 23 deletionscompiler/typecheck/TcRnDriver.hs
- compiler/typecheck/TcTyClsDecls.hs 106 additions, 52 deletionscompiler/typecheck/TcTyClsDecls.hs
- compiler/typecheck/TcTyDecls.hs 7 additions, 30 deletionscompiler/typecheck/TcTyDecls.hs
- testsuite/tests/deriving/should_fail/T9687.stderr 4 additions, 2 deletionstestsuite/tests/deriving/should_fail/T9687.stderr
- testsuite/tests/driver/sigof02/Map.hsig 0 additions, 1 deletiontestsuite/tests/driver/sigof02/Map.hsig
- testsuite/tests/ghci/scripts/T4175.stdout 56 additions, 56 deletionstestsuite/tests/ghci/scripts/T4175.stdout
- testsuite/tests/indexed-types/should_fail/T8550.stderr 11 additions, 10 deletionstestsuite/tests/indexed-types/should_fail/T8550.stderr
- testsuite/tests/polykinds/T8132.stderr 3 additions, 2 deletionstestsuite/tests/polykinds/T8132.stderr
- testsuite/tests/rename/should_compile/T4003A.hs-boot 0 additions, 1 deletiontestsuite/tests/rename/should_compile/T4003A.hs-boot
- testsuite/tests/roles/should_compile/T8958.stderr 1 addition, 1 deletiontestsuite/tests/roles/should_compile/T8958.stderr
Loading
Please register or sign in to comment