From 5a8c5665ac1be2ec7ae6c2eb67411b37155d3272 Mon Sep 17 00:00:00 2001 From: Tatiana Racheva Date: Fri, 13 Mar 2020 16:31:02 -0700 Subject: [PATCH] Keep the list of changed files in env Summary: Accumulate the list of "dirty" files in a set in the server environment. We already accumulate the set of files we rechecked in ServerPrecheckedFiles, and this set will be much smaller because it will only include a set of files that changed since the saved state. Reviewed By: yinghuitan Differential Revision: D20401419 fbshipit-source-id: 974312669f016ebc0af7df4a49816e000baa4f4c --- hphp/hack/src/server/serverEnv.ml | 1 + hphp/hack/src/server/serverEnvBuild.ml | 1 + hphp/hack/src/server/serverLazyInit.ml | 1 + 3 files changed, 3 insertions(+) diff --git a/hphp/hack/src/server/serverEnv.ml b/hphp/hack/src/server/serverEnv.ml index 37481836b6e..03c9aee2721 100644 --- a/hphp/hack/src/server/serverEnv.ml +++ b/hphp/hack/src/server/serverEnv.ml @@ -157,6 +157,7 @@ type env = { full_recheck_on_file_changes: full_recheck_on_file_changes; full_check: full_check_status; prechecked_files: prechecked_files_status; + changed_files: Relative_path.Set.t; (* Not every caller of rechecks expects that they can be interrupted, * so making it opt-in by setting this flag at call site *) can_interrupt: bool; diff --git a/hphp/hack/src/server/serverEnvBuild.ml b/hphp/hack/src/server/serverEnvBuild.ml index c59cfb0a1db..7ed94d8e4a5 100644 --- a/hphp/hack/src/server/serverEnvBuild.ml +++ b/hphp/hack/src/server/serverEnvBuild.ml @@ -317,6 +317,7 @@ let make_env ?init_id config = full_recheck_on_file_changes = Not_paused; remote = false; full_check = Full_check_done; + changed_files = Relative_path.Set.empty; prechecked_files = Prechecked_files_disabled; can_interrupt = true; interrupt_handlers = (fun _ _ -> []); diff --git a/hphp/hack/src/server/serverLazyInit.ml b/hphp/hack/src/server/serverLazyInit.ml index 3819a3256c9..d660365becb 100644 --- a/hphp/hack/src/server/serverLazyInit.ml +++ b/hphp/hack/src/server/serverLazyInit.ml @@ -513,6 +513,7 @@ let type_check_dirty let to_recheck = Relative_path.Set.union to_recheck similar_files in let fast = extend_fast genv dirty_fast env.naming_table to_recheck in let files_to_check = Relative_path.Map.keys fast in + let env = { env with changed_files = dirty_files } in let result = type_check genv env files_to_check t in HackEventLogger.type_check_dirty ~start_t -- 2.11.4.GIT