Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
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