canon 3/3 suppressionnightly-2020.04.02
commit78dee9b5203f8217cb1de91d1497ac9aed68daab
authorLucian Wischik <ljw@fb.com>
Thu, 2 Apr 2020 00:24:47 +0000 (1 17:24 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 2 Apr 2020 00:42:04 +0000 (1 17:42 -0700)
tree94a49a54dca15a1f51a7638463a4e15fb1831b1d
parent356461277443b50586fa32de0643db2715ca9d3a
canon 3/3 suppression

Summary:
Ctx.entries is the definitive source of truth for symbols defined in entries.

If a symbol's not found there, then we fallback to looking for it in "delta", which is the definitive source of truth for symbols in files that have changned on disk since sqlite.

If a symbol's not found there either, then we fallback to looking in sqlite, the definitive source of truth for files that haven't changed since sqlite. (we also cache these into "delta").

It is very possible and reasonable that "delta" or "sqlite" might claim that a symbol is in entry X. That will routinely happen when the entry has changed compared to what's on disk.

So, whenever using the "delta" or sqlite fallbacks, we must double-check whether their claimed answer was in an entry.

Prior to this diff, we were suppressing in most cases, but not suppressing the two "get_canon" cases. This diff adds them.

Reviewed By: arxanas

Differential Revision: D20784776

fbshipit-source-id: 218518f1fc9fae1eb6218ec3c5008ce297a72dfe
hphp/hack/src/providers/naming_provider.ml
hphp/hack/test/unit/server_tests.ml