Fix instability in type constraint names
Summary:
When dumping the bytecode for www builds, I was seeing a lot of differences like
```
- .method [public no_override trait] (170,175) <"HH\\Awaitable<HH\\int>" "HH\\Awaitable" hh_type extended_hint soft > genActivatedCount(<"HH\\bool" "HH\\bool" hh_type > $fuzzy = DV2("""true""")) {
+ .method [public no_override trait] (170,175) <"HH\\Awaitable<HH\\int>" "HH\\Awaitable" hh_type extended_hint soft > genActivatedCount(<"HH\\bool" "HH\\bool" hh_type > $fuzzy = DV2("""true""")) {
```
We were modifying the hphpc TypeAnnotation after using it to generate
the retUserType string - but in the case of traits, the TypeAnnotation
was shared between multiple copies of the method, and so there was a
race, and we could end up generating the retUserType string after the
TypeAnnotation had been modified.
Reviewed By: ricklavoie, alexeyt
Differential Revision:
D5740434
fbshipit-source-id:
3b65ff9914199ab8c911af7db95b1093f40083e8