Fix dependencies among specialisations for imported Ids
authorsimonpj@microsoft.com <unknown>
Wed, 26 Jan 2011 17:21:12 +0000 (17:21 +0000)
committersimonpj@microsoft.com <unknown>
Wed, 26 Jan 2011 17:21:12 +0000 (17:21 +0000)
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.


No differences found