Skip to content
  • 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
    353d8ae6