Support abstract enum class constantsnightly-2021.09.07
commitc391108e16c3ba3bf5fe1f16f45f898a261672ee
authorVincent Siles <vsiles@fb.com>
Mon, 6 Sep 2021 09:50:47 +0000 (6 02:50 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Mon, 6 Sep 2021 09:52:17 +0000 (6 02:52 -0700)
tree7ff90838de012f445c7170963bd3d91cb7d73fa7
parent61cdfa9344525f8270a9640cd785acbd6d5f7e6b
Support abstract enum class constants

Summary: Updating HHVM enum class support to deal with abstract constants: when flattening the constants of `included` enums into an enum class, we must deal with abstract vs concrete constants as we do for other cases.

Reviewed By: ricklavoie

Differential Revision: D30218005

fbshipit-source-id: 672e0d687123e7d5d88368fe8865c03d4464b3f2
27 files changed:
hphp/hack/src/hhbc/hhbc_by_ref/emit_class.rs
hphp/hack/test/enum_class/typing/abstract_diamond.bad.php [new file with mode: 0644]
hphp/hack/test/enum_class/typing/abstract_diamond.bad.php.exp [new file with mode: 0644]
hphp/hack/test/enum_class/typing/abstract_diamond.good.php [new file with mode: 0644]
hphp/hack/test/enum_class/typing/abstract_diamond.good.php.exp [new file with mode: 0644]
hphp/hhbbc/index.cpp
hphp/runtime/vm/class.cpp
hphp/test/slow/enum_class/abstract_enum_class00.php [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class00.php.expectf [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class00.php.hphp_opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class00.php.opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class01.php [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class01.php.expectf [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class01.php.hphp_opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class01.php.opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class02.php [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class02.php.expectf [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class02.php.hphp_opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class02.php.opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class03.php [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class03.php.expectf [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class03.php.hphp_opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class03.php.opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class04.php [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class04.php.expectf [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class04.php.hphp_opts [new file with mode: 0644]
hphp/test/slow/enum_class/abstract_enum_class04.php.opts [new file with mode: 0644]