simplify logic for `check_member_unique` param in Typing_extends
commit4707cf5796b13df08e994a3b2b3cedd6230d3798
authorCatherine Gasnier <catg@fb.com>
Thu, 17 Mar 2022 11:26:29 +0000 (17 04:26 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Thu, 17 Mar 2022 11:26:29 +0000 (17 04:26 -0700)
tree13bb175f85ffbd20b143f6f65325a8135b09c1c1
parent9448f791b3afd17c265fe7256e37b72f65804271
simplify logic for `check_member_unique` param in Typing_extends

Summary:
Here's a summary of the code changes:

Before:
```
let check_multiple_concrete_definitions check_member_unique ... =
  if check_member_unique && ... then ...

let check_override ~check_member_unique ... =
  ...
  check_multiple_concrete_definitions check_member_unique ...
  ...

let foo ... =
  check_override ~check_member_unique:false ...

let check_class_against_parent_class_elt ... =
  ...
  check_override ~check_member_unique:(detect_multiple_concrete_defs ...)
  ...
```
After:
```
let check_multiple_concrete_definitions ... =
  if detect_multiple_concrete_defs ... && ... then ...

let check_override ~check_member_unique ... =
  ...
  if check_member_unique then
    check_multiple_concrete_definitions ...
  ...

let foo ... =
  check_override ~check_member_unique:false ...

let check_class_against_parent_class_elt ... =
  ...
  check_override ~check_member_unique:true
  ...
```

I.o.w:
- We've replaced `check_member_unique` with its value in `check_multiple_concrete_definitions`
- `check_member_unique` is now guarding call to `check_multiple_concrete_definitions` in `check_override`
- Callers to `check_override` pass boolean literal as `check_member_unique` param.

Reviewed By: andrewjkennedy

Differential Revision: D34893593

fbshipit-source-id: c2236825b8455562cd8b374c2e1fca34305f4d87
hphp/hack/src/typing/typing_extends.ml