Introduce typechecker errors for sketchy uses of default case in switch
commitb24166f341ada2b81e0b7925d3352d08a0fa6539
authorMartyna Siejba <tysia2512@fb.com>
Tue, 10 Sep 2019 17:35:30 +0000 (10 10:35 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 10 Sep 2019 17:38:26 +0000 (10 10:38 -0700)
tree02b68bdf4e1a237bcfe111a1bb791a08378e6b20
parentcb64ea31933f8cda116e20169d94476aa426d636
Introduce typechecker errors for sketchy uses of default case in switch

Summary:
Ban sketchy uses of default case in switch:
- multiple default cases in a switch
- default not being final case

Reviewed By: billf

Differential Revision: D16951057

fbshipit-source-id: bb06077cd5dfe6ddd16af7fa1939455e80280b94
14 files changed:
hphp/hack/src/errors/error_codes.ml
hphp/hack/src/errors/errors.ml
hphp/hack/src/errors/errors.mli
hphp/hack/src/typing/nast_check/nast_check.ml
hphp/hack/src/typing/nast_check/nast_switch_check.ml [new file with mode: 0644]
hphp/hack/test/errors/error_map.ml
hphp/hack/test/typecheck/switch/multiple_defaults.php [new file with mode: 0644]
hphp/hack/test/typecheck/switch/multiple_defaults.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/switch/multiple_errors.php [new file with mode: 0644]
hphp/hack/test/typecheck/switch/multiple_errors.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/switch/no_errors.php [new file with mode: 0644]
hphp/hack/test/typecheck/switch/no_errors.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/switch/non_terminal_default.php [new file with mode: 0644]
hphp/hack/test/typecheck/switch/non_terminal_default.php.exp [new file with mode: 0644]