Skip to content

Commit 7bc86ad

Browse files
authored
✨ Add SlevomatCodingStandard.ControlStructures.RequireNullSafeObjectOperator (#84)
Fixes #76
1 parent 06ad6e4 commit 7bc86ad

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

PreviousNextDrupal/ruleset.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
<!-- SlevomatCodingStandard.Commenting -->
3737
<rule ref="SlevomatCodingStandard.Commenting.UselessInheritDocComment" />
3838

39+
<!-- SlevomatCodingStandard.ControlStructures -->
40+
<rule ref="SlevomatCodingStandard.ControlStructures.RequireNullSafeObjectOperator" />
41+
3942
<!-- SlevomatCodingStandard.Functions -->
4043
<rule ref="SlevomatCodingStandard.Functions.RequireTrailingCommaInCall" />
4144
<rule ref="SlevomatCodingStandard.Functions.RequireTrailingCommaInDeclaration" />

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ function doesAThing(array $data): int {
132132
#### SlevomatCodingStandard.Classes.ClassStructure
133133
#### SlevomatCodingStandard.Classes.RequireMultiLineMethodSignature
134134
#### SlevomatCodingStandard.Commenting.UselessInheritDocComment
135+
#### SlevomatCodingStandard.ControlStructures.RequireNullSafeObjectOperator
135136
#### SlevomatCodingStandard.Functions.RequireTrailingCommaInCall
136137
#### SlevomatCodingStandard.Functions.RequireTrailingCommaInDeclaration
137138
#### SlevomatCodingStandard.Functions.StaticClosure
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PreviousNext\CodingStandard\Tests\Sniffs;
6+
7+
use SlevomatCodingStandard\Sniffs\ControlStructures\RequireNullSafeObjectOperatorSniff;
8+
9+
/**
10+
* @covers \SlevomatCodingStandard\Sniffs\ControlStructures\RequireNullSafeObjectOperatorSniff
11+
*/
12+
final class RequireNullSafeObjectOperatorTest extends Base {
13+
14+
public function testNoError(): void {
15+
$report = self::checkFile(__DIR__ . '/fixtures/RequireNullSafeObjectOperatorNoError.php');
16+
self::assertNoSniffErrorInFile($report);
17+
}
18+
19+
public function testMissing(): void {
20+
$report = self::checkFile(__DIR__ . '/fixtures/RequireNullSafeObjectOperatorError.php');
21+
self::assertSame(1, $report->getErrorCount());
22+
self::assertSniffError($report, 6, RequireNullSafeObjectOperatorSniff::CODE_REQUIRED_NULL_SAFE_OBJECT_OPERATOR);
23+
}
24+
25+
protected static function getSniffName(): string {
26+
return 'SlevomatCodingStandard.ControlStructures.RequireNullSafeObjectOperator';
27+
}
28+
29+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
$a = new \stdClass();
6+
if ($a === NULL || $a->data === NULL) {
7+
$c = 1;
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
$a = new \stdClass();
6+
if ($a?->data === NULL) {
7+
$c = 1;
8+
}

0 commit comments

Comments
 (0)