Skip to content

Commit b8c4518

Browse files
Francesco Zappa Nardellifacebook-github-bot
authored andcommitted
linter class_overrides_all_trait_methods should not be triggered by require this as
Summary: The linter `class_overrides_all_trait_methods` was incorrectly treating `require this as` as `require class` constraints. Reviewed By: geralt-encore Differential Revision: D74739487 fbshipit-source-id: 7e867e403b7396fec15da932622a94d6ae296a37
1 parent e6b5e22 commit b8c4518

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

hphp/hack/src/lints/linter_class_overrides_trait.ml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,8 @@ let handler =
114114
List.filter_map
115115
~f:(fun (u, k) ->
116116
match k with
117-
| RequireClass
118-
| RequireThisAs ->
119-
trait_name_from_hint (snd u)
117+
| RequireClass -> trait_name_from_hint (snd u)
118+
| RequireThisAs
120119
| RequireExtends
121120
| RequireImplements ->
122121
None)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?hh
2+
3+
<<file:__EnableUnstableFeatures('require_constraints')>>
4+
5+
trait T {
6+
require this as C;
7+
8+
public function foo(): void {}
9+
public function bar(): void {}
10+
}
11+
12+
class C {
13+
<<__Override>>
14+
public function foo(): void {}
15+
}
16+
17+
class D extends C {
18+
use T;
19+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
No lint errors

0 commit comments

Comments
 (0)