facebook / facebook/flow

Enforce an override keyword for class methods

Open
#1,480 1 comment 0 reactions 0 assignees View on GitHub
feature request
Dominant language
Rust
Stars
22.3k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Description

Hi flow team. Firstly, thanks so much for putting together this tool.

I have decently complex class hierarchy and I'd love to have the requirement (or the ability to set the requirement) that I explicitly state when a method is overriding another method. Something like:

```
class Animal {
goes () {
return '';
}
}

class Cow extends Animal {
override goes () {
return 'moo';
}
}
```

then in the case of a missing override:

```
class Cat extends Animal {
goes () {
return 'meow';
}
}
```

we could report something like `overriding method 'goes' missing 'override' keyword`

and in the case of an unnecessary override:

```
class Dog extends Animal {
override barks () {
return 'woof';
}
}
```

we could report something like `method 'bark' is not an overriding method`

My apologies if this change has already been discussed/is infeasible. I looked for a similar discussion and could not find one. If this sounds like an interesting idea please let me know and I can look into putting together a PR for it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.