Skip to content
This repository was archived by the owner on Dec 1, 2024. It is now read-only.

Commit dd1dd5c

Browse files
authored
Turn LinterTrait into an abstract class BaseLinter
1 parent c53996c commit dd1dd5c

File tree

4 files changed

+9
-12
lines changed

4 files changed

+9
-12
lines changed

src/Linters/LinterTrait.hack renamed to src/Linters/BaseLinter.hack

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ namespace Facebook\HHAST;
1212
use type Facebook\HHAST\File;
1313
use namespace HH\Lib\{C, Str};
1414

15-
<<__ConsistentConstruct>>
16-
trait LinterTrait {
17-
require implements Linter;
15+
<<__ConsistentConstruct, __Sealed(SingleRuleLinter::class, HHClientLinter::class)>>
16+
abstract class BaseLinter implements Linter {
1817

1918
public static function shouldLintFile(File $_): bool {
2019
return true;

src/Linters/HHClientLinter.hack

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ use namespace HH\Lib\{C, Str, Vec};
1515
/**
1616
* A linter as a proxy invoking `hh_client --lint`.
1717
*/
18-
final class HHClientLinter implements Linter {
19-
use LinterTrait;
18+
final class HHClientLinter extends BaseLinter {
2019
use SuppressibleTrait;
2120

2221
const type TConfig = shape();
@@ -63,13 +62,13 @@ final class HHClientLinter implements Linter {
6362
|> Vec\map(
6463
$$,
6564
$error ==> new HHClientLintError(
66-
$this->file,
65+
$this->getFile(),
6766
$error,
6867
$this::blameCode($file_lines, $error),
6968
),
7069
)
7170
|> Vec\filter($$, $error ==> {
72-
if ($error->getLintRule()->isSuppressedForFile($this->file)) {
71+
if ($error->getLintRule()->isSuppressedForFile($this->getFile())) {
7372
return false;
7473
}
7574
$range = $error->getRange();
@@ -78,12 +77,12 @@ final class HHClientLinter implements Linter {
7877
}
7978
list(list($line_number, $_), $_) = $range;
8079
$previous_line_number = $line_number - 1;
81-
if ($this->isSuppressedForLine($this->file, $previous_line_number)) {
80+
if ($this->isSuppressedForLine($this->getFile(), $previous_line_number)) {
8281
return false;
8382
}
8483
if (
8584
$error->getLintRule()
86-
->isSuppressedForLine($this->file, $previous_line_number)
85+
->isSuppressedForLine($this->getFile(), $previous_line_number)
8786
) {
8887
return false;
8988
}

src/Linters/Linter.hack

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Facebook\HHAST;
1515
* Problems found by a Linter could associated with different LintRules,
1616
* especially when the Linter is a proxy calling other linting tools.
1717
*/
18-
<<__Sealed(SingleRuleLinter::class, HHClientLinter::class)>>
18+
<<__Sealed(BaseLinter::class)>>
1919
interface Linter {
2020
<<__Reifiable>>
2121
abstract const type TConfig;

src/Linters/SingleRuleLinter.hack

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ namespace Facebook\HHAST;
1212
/**
1313
* A linter that applies a single lint rule.
1414
*/
15-
abstract class SingleRuleLinter implements LintRule, Linter {
16-
use LinterTrait;
15+
abstract class SingleRuleLinter extends BaseLinter implements LintRule {
1716
use SuppressibleTrait;
1817

1918
final public function getName(): string {

0 commit comments

Comments
 (0)