Track reassignment of locals in foreach statements
commitd765b9d7812ff802b09d40ef0e3bc97ae67fdc74
authorVladimir Matveev <vladima@fb.com>
Tue, 25 Sep 2018 21:14:29 +0000 (25 14:14 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Tue, 25 Sep 2018 21:31:30 +0000 (25 14:31 -0700)
tree2570debc88b5e48398a5e7737818ca8c96b56b10
parent8e565cc8e8a032500f29cd9d12a2ce40c2368180
Track reassignment of locals in foreach statements

Summary: as in title - properly handle cases when local is shadowed by iteration variable in foreach loop

Reviewed By: alexeyt

Differential Revision: D10021162

fbshipit-source-id: 1fe5d167b4f897eee0fee5b367d7354c089072e0
13 files changed:
hphp/hack/src/typing/typing.ml
hphp/hack/src/typing/typing_mutability.ml
hphp/hack/src/typing/typing_mutability.mli
hphp/hack/test/typecheck/reactive/reassign_in_foreach1.php [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach1.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach2.php [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach2.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach3.php [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach3.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach4.php [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach4.php.exp [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach5.php [new file with mode: 0644]
hphp/hack/test/typecheck/reactive/reassign_in_foreach5.php.exp [new file with mode: 0644]