Store HH_FIXMES and DECL_HH_FIXMES in exported decls
commit093f86b8e926889b1b8a0b97d964ef76545087c2
authorJake Bailey (Hacklang) <jakebailey@fb.com>
Fri, 2 Nov 2018 23:37:28 +0000 (2 16:37 -0700)
committerHhvm Bot <hhvm-bot@users.noreply.github.com>
Fri, 2 Nov 2018 23:40:21 +0000 (2 16:40 -0700)
treec3a651fc6e3b97910ef5e1d81f20f8b9e314b247
parentd5a059b22e9e1e078be031c5cde872774dc79f40
Store HH_FIXMES and DECL_HH_FIXMES in exported decls

Summary:
D12877486 demonstrates a situation where we could fail to suppress an error because the HH_FIXME heaps are empty. D10409458 addressed this by parsing all files containing hot classes on startup, but this regresses server startup time by 3 seconds (~10% for a clean init).

Instead, this diff stores the relevant parts of the HH_FIXMES and DECL_HH_FIXMES heaps in the saved state, ensuring no significant regression in startup time.

Reviewed By: dabek

Differential Revision: D12887980

fbshipit-source-id: 7847cc572b18bff3f8708c466d00426e3da4d5d9
hphp/hack/src/decl/decl_export.ml
hphp/hack/src/server/saveStateService.ml
hphp/hack/src/server/serverInitTypes.ml
hphp/hack/src/server/serverLazyInit.ml
hphp/hack/test/integration_ml/saved_state/test_load_decls_fixme_in_hot_unchanged_interface.ml