Skip to content

PHPStan identifiers

PHPStan names each error with an identifier, such as argument.type. This page lists the identifiers of PHPStan and phpstan-deprecation-rules that have Mago issues for the same finding. Search it for an identifier from a baseline, an ignoreErrors entry or a @phpstan-ignore comment.

The phpstan-ignores plugin reads the same table. With the plugin on, a comment that ignores one of these identifiers drops the matching Mago issues on the line that it covers.

An identifier that isn't listed can still have a Mago issue for the same finding. The table holds the ones matched by the plugin. The identifiers of phpstan-drupal are on the phpstan-drupal page.

PHPStan identifier Mago issues
argument.type false-argument, invalid-argument, less-specific-argument, less-specific-nested-argument-type, mixed-argument, null-argument, possibly-false-argument, possibly-invalid-argument, possibly-null-argument, template-constraint-violation
arguments.count too-few-arguments, too-many-arguments
array.invalidKey invalid-array-element-key, mixed-array-index
assign.propertyType invalid-property-assignment-value, mixed-property-type-coercion, property-type-coercion
assignOp.invalid invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
binaryOp.invalid invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
booleanAnd.alwaysFalse impossible-condition
booleanAnd.alwaysTrue redundant-condition
booleanAnd.leftAlwaysFalse impossible-condition, redundant-logical-operation
booleanAnd.leftAlwaysTrue redundant-condition, redundant-logical-operation
booleanAnd.rightAlwaysFalse impossible-condition, redundant-logical-operation
booleanAnd.rightAlwaysTrue redundant-condition, redundant-logical-operation
booleanNot.alwaysFalse impossible-condition
booleanNot.alwaysTrue redundant-condition
booleanOr.alwaysFalse impossible-condition
booleanOr.alwaysTrue redundant-condition
booleanOr.leftAlwaysFalse impossible-condition, redundant-logical-operation
booleanOr.leftAlwaysTrue redundant-condition, redundant-logical-operation
booleanOr.rightAlwaysFalse impossible-condition, redundant-logical-operation
booleanOr.rightAlwaysTrue redundant-condition, redundant-logical-operation
callable.nonCallable invalid-callable
class.extendsDeprecatedClass deprecated-class, deprecated-trait
class.implementsDeprecatedInterface deprecated-class, deprecated-trait
class.notFound non-existent-class, non-existent-class-like
classConstant.deprecated deprecated-class-constant
classConstant.deprecatedClass deprecated-class, deprecated-trait, deprecated-class-constant
classConstant.deprecatedEnum deprecated-class, deprecated-trait, deprecated-class-constant
classConstant.deprecatedInterface deprecated-class, deprecated-trait, deprecated-class-constant
classConstant.notFound non-existent-class-constant
clone.nonObject invalid-clone, mixed-clone, possibly-invalid-clone
constant.deprecated deprecated-constant
constant.notFound non-existent-constant
deadCode.unreachable unevaluated-code
elseif.alwaysFalse impossible-condition
elseif.alwaysTrue redundant-condition
empty.property impossible-condition, redundant-condition, redundant-logical-operation
empty.variable impossible-condition, redundant-condition, redundant-logical-operation
foreach.nonIterable invalid-iterator, possibly-null-iterator
function.alreadyNarrowedType impossible-condition, redundant-condition, redundant-logical-operation, redundant-type-comparison
function.deprecated deprecated-function
function.impossibleType impossible-condition, impossible-type-comparison
function.notFound non-existent-function
generics.notSubtype docblock-type-mismatch
identical.alwaysFalse impossible-condition, impossible-type-comparison, redundant-comparison, redundant-condition, redundant-logical-operation
identical.alwaysTrue impossible-condition, impossible-type-comparison, redundant-comparison, redundant-condition, redundant-logical-operation
if.alwaysFalse impossible-condition
if.alwaysTrue redundant-condition
instanceof.alwaysFalse impossible-condition, impossible-type-comparison, redundant-condition, redundant-logical-operation
instanceof.alwaysTrue impossible-condition, redundant-condition, redundant-logical-operation, redundant-type-comparison
interface.extendsDeprecatedInterface deprecated-class, deprecated-trait
isset.offset impossible-condition, redundant-condition, redundant-logical-operation
isset.property impossible-condition, redundant-condition, redundant-logical-operation
isset.variable impossible-condition, redundant-condition, redundant-logical-operation
match.unhandled match-not-exhaustive
method.alreadyNarrowedType impossible-condition, redundant-condition, redundant-logical-operation, redundant-type-comparison
method.deprecated deprecated-method
method.deprecatedClass deprecated-class, deprecated-trait, deprecated-method
method.deprecatedEnum deprecated-class, deprecated-trait, deprecated-method
method.deprecatedInterface deprecated-class, deprecated-trait, deprecated-method
method.impossibleType impossible-condition, impossible-type-comparison
method.nonObject ambiguous-object-method-access, invalid-method-access, method-access-on-null, mixed-method-access, possible-method-access-on-null
method.notFound ambiguous-object-method-access, non-documented-method, non-existent-method, possibly-non-existent-method
method.staticCall invalid-static-method-access
missingType.generics missing-template-parameter
missingType.iterableValue imprecise-type
missingType.parameter missing-parameter-type
missingType.property missing-property-type
missingType.return missing-return-type
new.deprecated deprecated-class, deprecated-trait
new.deprecatedClass deprecated-class, deprecated-trait
notIdentical.alwaysFalse impossible-condition, impossible-type-comparison, redundant-comparison, redundant-condition, redundant-logical-operation
notIdentical.alwaysTrue impossible-condition, impossible-type-comparison, redundant-comparison, redundant-condition, redundant-logical-operation
nullCoalesce.expr redundant-null-coalesce
nullCoalesce.offset redundant-null-coalesce
nullCoalesce.property redundant-null-coalesce
nullCoalesce.variable redundant-null-coalesce
nullsafe.neverNull redundant-nullsafe-operator
offsetAccess.invalidOffset invalid-array-index, mismatched-array-index, mixed-array-index
offsetAccess.nonArray invalid-destructuring-source
offsetAccess.nonOffsetAccessible false-array-access, invalid-array-access, mixed-array-access, mixed-array-assignment, null-array-access, possibly-false-array-access, possibly-invalid-array-access, possibly-null-array-access
offsetAccess.notFound possibly-null-array-access, possibly-undefined-array-index, possibly-undefined-int-array-index, possibly-undefined-string-array-index, undefined-int-array-index, undefined-string-array-index
parameter.phpDocType docblock-type-mismatch
parameterByRef.type reference-constraint-violation
postDec.type invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
postInc.type invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
preDec.type invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
preInc.type invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
property.defaultValue invalid-property-default-value
property.deprecated deprecated-property
property.deprecatedClass deprecated-class, deprecated-trait
property.nonObject ambiguous-object-property-access, invalid-property-access, mixed-property-access, null-property-access, possibly-null-property-access
property.notFound ambiguous-object-property-access, non-documented-property, non-existent-property, possibly-non-existent-property
property.phpDocType docblock-type-mismatch
return.empty invalid-return-statement
return.missing missing-return-statement
return.phpDocType docblock-type-mismatch
return.type falsable-return-statement, invalid-return-statement, less-specific-nested-return-statement, less-specific-return-statement, mixed-return-statement, nullable-return-statement
staticMethod.alreadyNarrowedType impossible-condition, redundant-condition, redundant-logical-operation, redundant-type-comparison
staticMethod.deprecated deprecated-method
staticMethod.deprecatedClass deprecated-class, deprecated-trait, deprecated-method
staticMethod.deprecatedEnum deprecated-class, deprecated-trait, deprecated-method
staticMethod.deprecatedInterface deprecated-class, deprecated-trait, deprecated-method
staticMethod.impossibleType impossible-condition, impossible-type-comparison
staticMethod.notFound non-existent-method
staticProperty.deprecated deprecated-property
staticProperty.notFound non-existent-property
ternary.alwaysFalse impossible-condition
ternary.alwaysTrue redundant-condition
traitUse.deprecatedTrait deprecated-class, deprecated-trait
unaryOp.invalid invalid-operand, mixed-operand, possibly-false-operand, possibly-invalid-operand, possibly-null-operand
variable.undefined possibly-undefined-variable, undefined-variable