Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[flow] Separately guard against placeholders for conditional types
Summary: Currently, we conveniently guard both placeholders and unresolved inputs for conditional types, because they both return placeholder anyways. However, it's worth noting that they represent very different problems: 1. "placeholder in, placeholder out" is something that should hold regardless of whether we are in implicit instantiation. In practice, it only happens in implicit instantiation since placeholders should never leak beyond that. Doing this helps a later diff, when I will wrap all EvalT computation with fully resolved inputs into an lazy OpenT, which might not be forced under the same environment as before. 2. unresolved tvar input should only happen in implicit instantiation, but in practice they do happen outside, but normally these tvars shouldn't get any new bounds in the future. In the future, guarding these unresolved inputs should happen on the EvalT level, since EvalT behavior is not well defined for unresolved inputs, and it's actually one of the motivation to do LTI. Therefore, this diff splits the check. Changelog: [internal] Reviewed By: panagosg7 Differential Revision: D56023910 fbshipit-source-id: 186d62026ca8984be7056f1323b1e7aa6258fe83
- Loading branch information