From a2905d827c4b23aa2b862726d63c92004feac73b Mon Sep 17 00:00:00 2001 From: Millie Chen Date: Tue, 2 Nov 2021 11:57:55 -0700 Subject: [PATCH] Fix require_implements/extends Summary: Only output require_implements/extends type info for interfaces and traits. Reviewed By: shayne-fletcher Differential Revision: D32087915 fbshipit-source-id: 30405c60fbec9609a76bd3ee07a07ff85c8c1349 --- hphp/hack/src/facts/facts.rs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/hphp/hack/src/facts/facts.rs b/hphp/hack/src/facts/facts.rs index 595de862ec6..fef9f36bf73 100644 --- a/hphp/hack/src/facts/facts.rs +++ b/hphp/hack/src/facts/facts.rs @@ -289,14 +289,31 @@ impl TypeFacts { } }; + let check_require = match typekind { + TypeKind::Interface | TypeKind::Trait => true, + _ => false, + }; + // Collect the requires let require_extends = req_extends .into_iter() - .map(|ty| extract_type_name(*ty)) + .filter_map(|&ty| { + if check_require { + Some(extract_type_name(ty)) + } else { + None + } + }) .collect::(); let require_implements = req_implements .into_iter() - .map(|ty| extract_type_name(*ty)) + .filter_map(|&ty| { + if check_require { + Some(extract_type_name(ty)) + } else { + None + } + }) .collect::(); // TODO(T101762617): modify the direct decl parser to -- 2.11.4.GIT