Look up synthesized ancestors lazily
commit1713220932e040c350c79bd2acc394cc79268979
authorJake Bailey (Hacklang) <jakebailey@fb.com>
Mon, 13 May 2019 21:08:16 +0000 (13 14:08 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Mon, 13 May 2019 21:11:50 +0000 (13 14:11 -0700)
treee59400d577713c5e34ec0e280f8609a4568726c2
parentf023bbc533b3aeb16f3ff6161b39e1b0bfbc34bb
Look up synthesized ancestors lazily

Summary:
Replace the use of tc_req_ancestors_extends (the set of names of all require-extends and require-implements ancestors, plus the names of all classes they extend, traits they use, and XHP classes whose attributes they include) when shallow_class_decl is enabled using the linearization.

To do this, we need only collect the names of all ancestors marked with the mro_synthesized flag in the linearization.

Reviewed By: vassilmladenov

Differential Revision: D14631449

fbshipit-source-id: 3c914fec54fe08cc1ae57b08fc40729406d6dd4d
hphp/hack/src/decl/decl_ancestors.ml
hphp/hack/src/typing/typing_classes_heap.ml