Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DX] Add strict PHPStan rules - step #5 #1334

Merged
merged 4 commits into from
Nov 28, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build/target-repository/docs/rector_rules_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -3684,8 +3684,8 @@ Remove unused parameter in required autowire method
private $visibilityManipulator;

#[Required]
- public function autowireSomeService(VisibilityManipulator $visibilityManipulator)
+ public function autowireSomeService()
- public function autowire(VisibilityManipulator $visibilityManipulator)
+ public function autowire()
{
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ private function processSerializerTypeTagValueNode(array $oldToNewClasses, PhpDo
foreach ($oldToNewClasses as $oldClass => $newClass) {
$className = $doctrineAnnotationTagValueNode->getSilentValue();

if ($className) {
if (is_string($className)) {
if ($className === $oldClass) {
$doctrineAnnotationTagValueNode->changeSilentValue($newClass);
continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public function changeParamType(PhpDocInfo $phpDocInfo, Type $newType, Param $pa
public function copyPropertyDocToParam(Property $property, Param $param): void
{
$phpDocInfo = $property->getAttribute(AttributeKey::PHP_DOC_INFO);
if (! $phpDocInfo) {
if (! $phpDocInfo instanceof PhpDocInfo) {
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function __construct(
}

#[Required]
public function autowirePlainValueParser(
public function autowire(
StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser,
ArrayParser $arrayParser
): void {
Expand Down
2 changes: 1 addition & 1 deletion packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ private function printPhpDocNode(PhpDocNode $phpDocNode): string
$output = $this->printEnd($output);

// fix missing start
if (! StringUtils::isMatch($output, self::DOCBLOCK_START_REGEX) && $output) {
if (! StringUtils::isMatch($output, self::DOCBLOCK_START_REGEX) && $output !== '') {
$output = '/**' . $output;
}

Expand Down
6 changes: 3 additions & 3 deletions packages/ChangesReporting/Output/ConsoleOutputFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ private function reportFileDiffs(array $fileDiffs): void
if ($fileDiff->getRectorChanges() !== []) {
$this->outputStyle->writeln('<options=underscore>Applied rules:</>');
$this->outputStyle->listing($rectorsChangelogsLines);
$this->outputStyle->newLine();
$this->outputStyle->newline();
}
}
}
Expand All @@ -107,12 +107,12 @@ private function reportErrors(array $errors): void
$message = sprintf(
'Could not process "%s" file%s, due to: %s"%s".',
$error->getRelativeFilePath(),
$error->getRectorClass() ? ' by "' . $error->getRectorClass() . '"' : '',
$error->getRectorClass() !== null ? ' by "' . $error->getRectorClass() . '"' : '',
PHP_EOL,
$errorMessage
);

if ($error->getLine()) {
if ($error->getLine() !== null) {
$message .= ' On line: ' . $error->getLine();
}

Expand Down
8 changes: 4 additions & 4 deletions packages/FileFormatter/Formatter/XmlFileFormatter.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ final class XmlFileFormatter implements FileFormatterInterface
*/
private const IS_CLOSING_TAG_REGEX = '#^\s*<\/#';

private ?int $depth = null;
private int $depth = 0;

private int $indent = 4;

Expand Down Expand Up @@ -79,7 +79,7 @@ private function formatXml(string $xml, EditorConfigConfiguration $editorConfigC
$parts = $this->getXmlParts($xml);

if (str_starts_with($parts[0], '<?xml')) {
$output = array_shift($parts) . $editorConfigConfiguration->getNewline();
$output = array_shift($parts) . $editorConfigConfiguration->getNewLine();
}

foreach ($parts as $part) {
Expand All @@ -104,10 +104,10 @@ private function getOutputForPart(string $part, EditorConfigConfiguration $edito
$this->runPre($part);

if ($this->preserveWhitespace) {
$output .= $part . $editorConfigConfiguration->getNewline();
$output .= $part . $editorConfigConfiguration->getNewLine();
} else {
$part = trim($part);
$output .= $this->getPaddedString($part) . $editorConfigConfiguration->getNewline();
$output .= $this->getPaddedString($part) . $editorConfigConfiguration->getNewLine();
}

$this->runPost($part);
Expand Down
4 changes: 2 additions & 2 deletions packages/FileSystemRector/ValueObject/AddedFileWithNodes.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
final class AddedFileWithNodes implements AddedFileInterface, FileWithNodesInterface
{
/**
* @param Node[] $nodes
* @param Node\Stmt[] $nodes
*/
public function __construct(
private string $filePath,
Expand All @@ -25,7 +25,7 @@ public function getFilePath(): string
}

/**
* @return Node[]
* @return Node\Stmt[]
*/
public function getNodes(): array
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,18 @@

use PhpParser\Node;

/**
* @template TNode as Node
*/
interface NodeNameResolverInterface
{
/**
* @return class-string<Node>
* @return class-string<TNode>
*/
public function getNode(): string;

/**
* @param TNode $node
*/
public function resolve(Node $node): ?string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public function reportInvalidNodeForName(MethodCall | StaticCall $node): void
$backtrace = debug_backtrace();
$rectorBacktrace = $this->matchRectorBacktraceCall($backtrace);

if ($rectorBacktrace) {
if ($rectorBacktrace !== null) {
// issues to find the file in prefixed
if (file_exists($rectorBacktrace[self::FILE])) {
$smartFileInfo = new SmartFileInfo($rectorBacktrace[self::FILE]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<ClassConstFetch>
*/
final class ClassConstFetchNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowireClassConstFetchNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return ClassConstFetch::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<ClassConst>
*/
final class ClassConstNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowireClassConstNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return ClassConst::class;
Expand Down
11 changes: 5 additions & 6 deletions packages/NodeNameResolver/NodeNameResolver/ClassNameResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,31 @@
namespace Rector\NodeNameResolver\NodeNameResolver;

use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassLike;
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<ClassLike>
*/
final class ClassNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowireClassNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return ClassLike::class;
}

/**
* @param Class_ $node
* @param ClassLike $node
*/
public function resolve(Node $node): ?string
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
use PhpParser\Node\Expr\Empty_;
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;

/**
* @implements NodeNameResolverInterface<Empty_>
*/
final class EmptyNameResolver implements NodeNameResolverInterface
{
/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Empty_::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
use Rector\NodeTypeResolver\Node\AttributeKey;

/**
* @implements NodeNameResolverInterface<FuncCall>
*/
final class FuncCallNameResolver implements NodeNameResolverInterface
{
public function __construct(
private ReflectionProvider $reflectionProvider
) {
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return FuncCall::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
use Rector\NodeTypeResolver\Node\AttributeKey;

/**
* @implements NodeNameResolverInterface<Function_>
*/
final class FunctionNameResolver implements NodeNameResolverInterface
{
/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Function_::class;
Expand All @@ -33,7 +33,7 @@ public function resolve(Node $node): ?string
}

$namespaceName = $scope->getNamespace();
if ($namespaceName) {
if ($namespaceName !== null) {
return $namespaceName . '\\' . $bareName;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
use Rector\NodeTypeResolver\Node\AttributeKey;

/**
* @implements NodeNameResolverInterface<Name>
*/
final class NameNameResolver implements NodeNameResolverInterface
{
public function __construct(
private FuncCallNameResolver $funcCallNameResolver
) {
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Name::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<Param>
*/
final class ParamNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowireParamNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Param::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<Property>
*/
final class PropertyNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowirePropertyNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Property::class;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
use Rector\NodeNameResolver\NodeNameResolver;
use Symfony\Contracts\Service\Attribute\Required;

/**
* @implements NodeNameResolverInterface<Use_>
*/
final class UseNameResolver implements NodeNameResolverInterface
{
private NodeNameResolver $nodeNameResolver;

#[Required]
public function autowireUseNameResolver(NodeNameResolver $nodeNameResolver): void
public function autowire(NodeNameResolver $nodeNameResolver): void
{
$this->nodeNameResolver = $nodeNameResolver;
}

/**
* @return class-string<Node>
*/
public function getNode(): string
{
return Use_::class;
Expand Down
Loading