Skip to content
Open
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
12 changes: 12 additions & 0 deletions phpstan-baseline.neon
Original file line number Diff line number Diff line change
Expand Up @@ -1077,6 +1077,12 @@ parameters:
count: 2
path: src/Type/Enum/EnumCaseObjectType.php

-
rawMessage: 'Doing instanceof PHPStan\Type\ErrorType is error-prone and deprecated. Use Type::isError() instead.'
identifier: phpstanApi.instanceofType
count: 1
path: src/Type/ErrorType.php

-
rawMessage: 'Doing instanceof PHPStan\Type\ConstantScalarType is error-prone and deprecated. Use Type::isConstantScalarValue() or Type::getConstantScalarTypes() or Type::getConstantScalarValues() instead.'
identifier: phpstanApi.instanceofType
Expand Down Expand Up @@ -1479,6 +1485,12 @@ parameters:
count: 1
path: src/Type/ObjectType.php

-
rawMessage: 'Doing instanceof PHPStan\Type\ErrorType is error-prone and deprecated. Use Type::isError() instead.'
identifier: phpstanApi.instanceofType
count: 4
path: src/Type/ObjectType.php

-
rawMessage: Doing instanceof PHPStan\Type\Generic\GenericObjectType is error-prone and deprecated.
identifier: phpstanApi.instanceofType
Expand Down
6 changes: 3 additions & 3 deletions src/Analyser/MutatingScope.php
Original file line number Diff line number Diff line change
Expand Up @@ -1802,15 +1802,15 @@ static function (Node $node, Scope $scope) use ($arrowScope, &$arrowFunctionImpu

$returnType = $functionReflection->getReturnType();
$generatorSendType = $returnType->getTemplateType(Generator::class, 'TSend');
if ($generatorSendType instanceof ErrorType) {
if ($generatorSendType->isError()->yes()) {
return new MixedType();
}

return $generatorSendType;
} elseif ($node instanceof Expr\YieldFrom) {
$yieldFromType = $this->getType($node->expr);
$generatorReturnType = $yieldFromType->getTemplateType(Generator::class, 'TReturn');
if ($generatorReturnType instanceof ErrorType) {
if ($generatorReturnType->isError()->yes()) {
return new MixedType();
}

Expand Down Expand Up @@ -6098,7 +6098,7 @@ classReflection: $classReflection->withTypes($types)->asFinal(),
return TypeTraverser::map($newGenericType, static function (Type $type, callable $traverse) use ($resolvedTemplateTypeMap): Type {
if ($type instanceof TemplateType && !$type->isArgument()) {
$newType = $resolvedTemplateTypeMap->getType($type->getName());
if ($newType === null || $newType instanceof ErrorType) {
if ($newType === null || $newType->isError()->yes()) {
return $type->getDefault() ?? $type->getBound();
}

Expand Down
2 changes: 1 addition & 1 deletion src/Reflection/ClassReflection.php
Original file line number Diff line number Diff line change
Expand Up @@ -1643,7 +1643,7 @@ public function getActiveTemplateTypeMap(): TemplateTypeMap
if ($resolved !== null) {
$templateTypeMap = $this->getTemplateTypeMap();
return $this->activeTemplateTypeMap = $resolved->map(static function (string $name, Type $type) use ($templateTypeMap): Type {
if ($type instanceof ErrorType) {
if ($type->isError()->yes()) {
$templateType = $templateTypeMap->getType($name);
if ($templateType !== null) {
return TemplateTypeHelper::resolveToDefaults($templateType);
Expand Down
38 changes: 19 additions & 19 deletions src/Reflection/InitializerExprTypeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ public function resolveConcatType(Type $left, Type $right): Type
if (TypeCombinator::union(
$leftStringType,
$rightStringType,
) instanceof ErrorType) {
)->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -974,7 +974,7 @@ public function getBitwiseAndType(Expr $left, Expr $right, callable $getTypeCall
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1001,7 +1001,7 @@ public function getBitwiseAndType(Expr $left, Expr $right, callable $getTypeCall
$leftNumberType = $leftType->toNumber();
$rightNumberType = $rightType->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1043,7 +1043,7 @@ public function getBitwiseOrType(Expr $left, Expr $right, callable $getTypeCallb
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1067,7 +1067,7 @@ public function getBitwiseOrType(Expr $left, Expr $right, callable $getTypeCallb
return new StringType();
}

if (TypeCombinator::union($leftType->toNumber(), $rightType->toNumber()) instanceof ErrorType) {
if (TypeCombinator::union($leftType->toNumber(), $rightType->toNumber())->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1102,7 +1102,7 @@ public function getBitwiseXorType(Expr $left, Expr $right, callable $getTypeCall
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1126,7 +1126,7 @@ public function getBitwiseXorType(Expr $left, Expr $right, callable $getTypeCall
return new StringType();
}

if (TypeCombinator::union($leftType->toNumber(), $rightType->toNumber()) instanceof ErrorType) {
if (TypeCombinator::union($leftType->toNumber(), $rightType->toNumber())->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1187,7 +1187,7 @@ public function getDivType(Expr $left, Expr $right, callable $getTypeCallback):
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1238,7 +1238,7 @@ public function getModType(Expr $left, Expr $right, callable $getTypeCallback):
return $extensionSpecified;
}

if ($leftType->toNumber() instanceof ErrorType || $rightType->toNumber() instanceof ErrorType) {
if ($leftType->toNumber()->isError()->yes() || $rightType->toNumber()->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1255,7 +1255,7 @@ public function getModType(Expr $left, Expr $right, callable $getTypeCallback):
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1354,7 +1354,7 @@ public function getPlusType(Expr $left, Expr $right, callable $getTypeCallback):
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1533,7 +1533,7 @@ public function getMinusType(Expr $left, Expr $right, callable $getTypeCallback)
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1577,7 +1577,7 @@ public function getMulType(Expr $left, Expr $right, callable $getTypeCallback):
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1630,7 +1630,7 @@ public function getPowType(Expr $left, Expr $right, callable $getTypeCallback):
}

$exponentiatedTyped = $leftType->exponentiate($rightType);
if (!$exponentiatedTyped instanceof ErrorType) {
if (!$exponentiatedTyped->isError()->yes()) {
return $exponentiatedTyped;
}

Expand Down Expand Up @@ -1662,7 +1662,7 @@ public function getShiftLeftType(Expr $left, Expr $right, callable $getTypeCallb
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1689,7 +1689,7 @@ public function getShiftLeftType(Expr $left, Expr $right, callable $getTypeCallb
$leftNumberType = $leftType->toNumber();
$rightNumberType = $rightType->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1721,7 +1721,7 @@ public function getShiftRightType(Expr $left, Expr $right, callable $getTypeCall
$leftNumberType = $leftTypeInner->toNumber();
$rightNumberType = $rightTypeInner->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand All @@ -1748,7 +1748,7 @@ public function getShiftRightType(Expr $left, Expr $right, callable $getTypeCall
$leftNumberType = $leftType->toNumber();
$rightNumberType = $rightType->toNumber();

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}

Expand Down Expand Up @@ -1966,7 +1966,7 @@ private function resolveCommonMath(Expr\BinaryOp $expr, Type $leftType, Type $ri
return new ErrorType();
}

if ($leftNumberType instanceof ErrorType || $rightNumberType instanceof ErrorType) {
if ($leftNumberType->isError()->yes() || $rightNumberType->isError()->yes()) {
return new ErrorType();
}
if ($leftNumberType instanceof NeverType || $rightNumberType instanceof NeverType) {
Expand Down
3 changes: 1 addition & 2 deletions src/Reflection/Php/PhpClassReflectionExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
use PHPStan\Type\Constant\ConstantArrayTypeBuilder;
use PHPStan\Type\Constant\ConstantStringType;
use PHPStan\Type\Enum\EnumCaseObjectType;
use PHPStan\Type\ErrorType;
use PHPStan\Type\FileTypeMapper;
use PHPStan\Type\GeneralizePrecision;
use PHPStan\Type\Generic\TemplateMixedType;
Expand Down Expand Up @@ -1161,7 +1160,7 @@ private function inferAndCachePropertyTypes(
}

$propertyType = $methodScope->getType($expr->expr);
if ($propertyType instanceof ErrorType || $propertyType instanceof NeverType) {
if ($propertyType->isError()->yes() || $propertyType instanceof NeverType) {
continue;
}

Expand Down
5 changes: 2 additions & 3 deletions src/Reflection/ResolvedFunctionVariantWithOriginal.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

use PHPStan\Reflection\Php\ExtendedDummyParameter;
use PHPStan\Type\ConditionalTypeForParameter;
use PHPStan\Type\ErrorType;
use PHPStan\Type\Generic\GenericObjectType;
use PHPStan\Type\Generic\GenericStaticType;
use PHPStan\Type\Generic\TemplateType;
Expand Down Expand Up @@ -211,7 +210,7 @@ private function resolveResolvableTemplateTypes(Type $type, TemplateTypeVariance
&& $type->getScope()->getFunctionName() !== null
) {
$newType = $this->resolvedTemplateTypeMap->getType($type->getName());
if ($newType === null || $newType instanceof ErrorType) {
if ($newType === null || $newType->isError()->yes()) {
return $traverse($type);
}

Expand Down Expand Up @@ -252,7 +251,7 @@ private function resolveResolvableTemplateTypes(Type $type, TemplateTypeVariance

if ($type instanceof TemplateType && !$type->isArgument()) {
$newType = $this->resolvedTemplateTypeMap->getType($type->getName());
if ($newType === null || $newType instanceof ErrorType) {
if ($newType === null || $newType->isError()->yes()) {
return $traverse($type);
}

Expand Down
2 changes: 2 additions & 0 deletions src/Rules/Api/ApiInstanceofTypeRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
use PHPStan\Type\Constant\ConstantStringType;
use PHPStan\Type\ConstantScalarType;
use PHPStan\Type\Enum\EnumCaseObjectType;
use PHPStan\Type\ErrorType;
use PHPStan\Type\FloatType;
use PHPStan\Type\Generic\GenericClassStringType;
use PHPStan\Type\Generic\GenericObjectType;
Expand Down Expand Up @@ -79,6 +80,7 @@ final class ApiInstanceofTypeRule implements Rule
IntersectionType::class => null,
ConstantScalarType::class => 'Type::isConstantScalarValue() or Type::getConstantScalarTypes() or Type::getConstantScalarValues()',
ObjectShapeType::class => 'Type::isObject() and Type::hasProperty()',
ErrorType::class => 'Type::isError()',

// accessory types
NonEmptyArrayType::class => 'Type::isIterableAtLeastOnce()',
Expand Down
3 changes: 1 addition & 2 deletions src/Rules/Arrays/ArrayDestructuringRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
use PHPStan\Rules\RuleErrorBuilder;
use PHPStan\Rules\RuleLevelHelper;
use PHPStan\Type\Constant\ConstantIntegerType;
use PHPStan\Type\ErrorType;
use PHPStan\Type\ObjectType;
use PHPStan\Type\Type;
use PHPStan\Type\VerbosityLevel;
Expand Down Expand Up @@ -65,7 +64,7 @@ private function getErrors(Scope $scope, Node\Expr\List_ $var, Expr $expr): arra
static fn (Type $varType): bool => $varType->isArray()->yes() || (new ObjectType(ArrayAccess::class))->isSuperTypeOf($varType)->yes(),
);
$exprType = $exprTypeResult->getType();
if ($exprType instanceof ErrorType) {
if ($exprType->isError()->yes()) {
return [];
}
if (!$exprType->isArray()->yes() && !(new ObjectType(ArrayAccess::class))->isSuperTypeOf($exprType)->yes()) {
Expand Down
3 changes: 1 addition & 2 deletions src/Rules/Arrays/ArrayUnpackingRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
use PHPStan\Rules\Rule;
use PHPStan\Rules\RuleErrorBuilder;
use PHPStan\Rules\RuleLevelHelper;
use PHPStan\Type\ErrorType;
use PHPStan\Type\Type;
use PHPStan\Type\VerbosityLevel;
use function sprintf;
Expand Down Expand Up @@ -46,7 +45,7 @@ public function processNode(Node $node, Scope $scope): array
);

$keyType = $typeResult->getType();
if ($keyType instanceof ErrorType) {
if ($keyType->isError()->yes()) {
return $typeResult->getUnknownClassErrors();
}

Expand Down
5 changes: 2 additions & 3 deletions src/Rules/Arrays/InvalidKeyInArrayDimFetchRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use PHPStan\Rules\Rule;
use PHPStan\Rules\RuleErrorBuilder;
use PHPStan\Rules\RuleLevelHelper;
use PHPStan\Type\ErrorType;
use PHPStan\Type\Type;
use PHPStan\Type\VerbosityLevel;
use function sprintf;
Expand Down Expand Up @@ -49,7 +48,7 @@ public function processNode(Node $node, Scope $scope): array
static fn (Type $varType): bool => $varType->isArray()->no(),
)->getType();

if ($varType instanceof ErrorType) {
if ($varType->isError()->yes()) {
return [];
}

Expand All @@ -65,7 +64,7 @@ public function processNode(Node $node, Scope $scope): array
'',
static fn (Type $dimType): bool => $allowedArrayKeys->isSuperTypeOf($dimType)->yes(),
)->getType();
if ($dimensionType instanceof ErrorType) {
if ($dimensionType->isError()->yes()) {
return [];
}

Expand Down
3 changes: 1 addition & 2 deletions src/Rules/Arrays/InvalidKeyInArrayItemRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use PHPStan\Rules\Rule;
use PHPStan\Rules\RuleErrorBuilder;
use PHPStan\Rules\RuleLevelHelper;
use PHPStan\Type\ErrorType;
use PHPStan\Type\Type;
use PHPStan\Type\VerbosityLevel;
use function sprintf;
Expand Down Expand Up @@ -46,7 +45,7 @@ public function processNode(Node $node, Scope $scope): array
'',
static fn (Type $dimType): bool => $allowedArrayKeys->isSuperTypeOf($dimType)->yes(),
)->getType();
if ($dimensionType instanceof ErrorType) {
if ($dimensionType->isError()->yes()) {
return [];
}

Expand Down
3 changes: 1 addition & 2 deletions src/Rules/Arrays/IterableInForeachRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use PHPStan\Rules\Rule;
use PHPStan\Rules\RuleErrorBuilder;
use PHPStan\Rules\RuleLevelHelper;
use PHPStan\Type\ErrorType;
use PHPStan\Type\Type;
use PHPStan\Type\VerbosityLevel;
use function sprintf;
Expand Down Expand Up @@ -40,7 +39,7 @@ public function processNode(Node $node, Scope $scope): array
static fn (Type $type): bool => $type->isIterable()->yes(),
);
$type = $typeResult->getType();
if ($type instanceof ErrorType) {
if ($type->isError()->yes()) {
return $typeResult->getUnknownClassErrors();
}
if ($type->isIterable()->yes()) {
Expand Down
Loading
Loading