Please sign in to comment.
Remove [[call]] property from function statics
Summary: A function is modeled as a FunT with statics, but since all functions are objects it is also fair to consider the function as its statics. For this reason, we add a [[call]] property to the statics with the type of the function itself. This recursion is mostly fine, but polymorphic functions behave badly. The FunT is wrapped in a PolyT, but the [[call]] property is also wrapped in PolyT. This causes the type instantiations for the function and it's [[call]] property to be unrelated, when the two are essentially the same type. The trick here is to ensure that FunT types are not decomposed into their statics if they will be compared against another function or callable thing. I observed this behavior investigating something else, but it was not the cause of any specific bad behavior. Reviewed By: panagosg7 Differential Revision: D14783679 fbshipit-source-id: 8ce44ac0df985776b85368d886a2ace625bd37f8
- Loading branch information...
Showing with 8 additions and 1 deletion.