Allow effect-polymorphic supportdyn closures
Summary:
Effect-polymorphic higher-order functions have tight restrictions on the type of the closure parameter, requiring `(function (t1, ..., tn)[_]: tr)`. Optional types are allowed.
D31291664 (https://github.com/facebook/hhvm/commit/
d71c612b356f60bb2e7876d377a82cc19b781af4) allowed like types.
We want to pessimise closure types into `supportdyn<(function ...)>`. This allows unwrapping of `supportdyn` in the pass that traverses `?` and `~`.
Reviewed By: andrewjkennedy
Differential Revision:
D33304736
fbshipit-source-id:
97509adef8ababcd5e38b9530bdc456855877528