• Simon Peyton Jones's avatar
    SCC analysis for instances as well as types/classes · 353d8ae6
    Simon Peyton Jones authored
    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
all.T 18.8 KB