Temporarily ban is/as-expressions in lambdas
commitd6bf73e51b338d3bacfc3d9269fa183f4bc33d60
authorKunal Mehta <kunalm@fb.com>
Tue, 3 Jul 2018 20:41:09 +0000 (3 13:41 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 3 Jul 2018 20:44:18 +0000 (3 13:44 -0700)
treea667fb32e1b5b0a02352b406becda3791ba7c03c
parentfd3858369e24ece8ad4280df249866bbbebfed4b
Temporarily ban is/as-expressions in lambdas

Summary:
Due to a HackC bug in which we weren't always running closure convert over all expressions in the AST, is/as cannot be used with variables that are captured in a closure.

In the interest of moving fast, this blanket bans all is/as-expressions in lambdas, with an error message indicating that users can FIXME it if they're not using a captured variable.

Reviewed By: vassilmladenov

Differential Revision: D8725780

fbshipit-source-id: 1e9c6a24f5d7c110fcce9342a98096470cc5359c
17 files changed:
hphp/hack/src/errors/error_codes.ml
hphp/hack/src/errors/errors.ml
hphp/hack/src/errors/errors_sig.ml
hphp/hack/src/typing/typing.ml
hphp/hack/src/typing/typing_env.ml
hphp/hack/src/typing/typing_env.mli
hphp/hack/src/typing/typing_env_types.ml
hphp/hack/src/typing/typing_env_types_sig.mli
hphp/hack/test/errors/error_map.ml
hphp/hack/test/typecheck/as_expression/in_async_block.php [new file with mode: 0644]
hphp/hack/test/typecheck/as_expression/in_async_block.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/as_expression/in_lambda.php [new file with mode: 0644]
hphp/hack/test/typecheck/as_expression/in_lambda.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/is_expression/in_async_block.php [new file with mode: 0644]
hphp/hack/test/typecheck/is_expression/in_async_block.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/is_expression/in_lambda.php [new file with mode: 0644]
hphp/hack/test/typecheck/is_expression/in_lambda.php.exp [new file with mode: 0644]