Skip to content
  • Simon Peyton Jones's avatar
    Fix dependencies among specialisations for imported Ids · 869984cd
    Simon Peyton Jones authored
    This was a subtle one (Trac #4903).  See
      Note [Glom the bindings if imported functions are specialised]
    in Speclialise.
    
    Fundamentally, a specialised binding for an imported Id was being
    declared non-recursive, whereas in fact it can become recursive
    via a RULE.  Once it's specified non-recurive the OccAnal pass
    treats that as gospel -- and that in turn led to infinite inlining.
    
    Easily fixed by glomming all the specialised bindings in a Rec;
    now the OccAnal will sort them out correctly.
    869984cd