Menu

← Back to generics.*

Error Identifier: generics.lessTypes

Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.

Code example #

<?php declare(strict_types = 1);

/**
 * @template TKey
 * @template TValue
 */
class Map
{
}

/**
 * @param Map<string> $map
 */
function doFoo(Map $map): void
{
}

Why is it reported? #

A generic type is used without specifying all of its required template type parameters. The class Map expects two type arguments (TKey and TValue), but only one (string) is provided. All required template types must be specified for PHPStan to properly analyse the code.

How to fix it #

Specify all required template type arguments:

 /**
- * @param Map<string> $map
+ * @param Map<string, int> $map
  */
 function doFoo(Map $map): void
 {
 }

How to ignore this error #

You can use the identifier generics.lessTypes to ignore this error using a comment:

// @phpstan-ignore generics.lessTypes
codeThatProducesTheError();

You can also use only the identifier key to ignore all errors of the same type in your configuration file in the ignoreErrors parameter:

parameters:
	ignoreErrors:
		-
			identifier: generics.lessTypes

Rules that report this error #

  • PHPStan\Rules\Classes\LocalTypeAliasesRule [1]
  • PHPStan\Rules\Classes\LocalTypeTraitAliasesRule [1]
  • PHPStan\Rules\Classes\LocalTypeTraitUseAliasesRule [1]
  • PHPStan\Rules\Classes\MethodTagRule [1]
  • PHPStan\Rules\Classes\MethodTagTraitRule [1]
  • PHPStan\Rules\Classes\MethodTagTraitUseRule [1]
  • PHPStan\Rules\Classes\MixinRule [1]
  • PHPStan\Rules\Classes\MixinTraitRule [1]
  • PHPStan\Rules\Classes\MixinTraitUseRule [1]
  • PHPStan\Rules\Classes\PropertyTagRule [1]
  • PHPStan\Rules\Classes\PropertyTagTraitRule [1]
  • PHPStan\Rules\Classes\PropertyTagTraitUseRule [1]
  • PHPStan\Rules\Generics\ClassAncestorsRule [1]
  • PHPStan\Rules\Generics\ClassTemplateTypeRule [1]
  • PHPStan\Rules\Generics\EnumAncestorsRule [1]
  • PHPStan\Rules\Generics\FunctionTemplateTypeRule [1]
  • PHPStan\Rules\Generics\InterfaceAncestorsRule [1]
  • PHPStan\Rules\Generics\InterfaceTemplateTypeRule [1]
  • PHPStan\Rules\Generics\MethodTagTemplateTypeRule [1]
  • PHPStan\Rules\Generics\MethodTagTemplateTypeTraitRule [1]
  • PHPStan\Rules\Generics\MethodTemplateTypeRule [1]
  • PHPStan\Rules\Generics\TraitTemplateTypeRule [1]
  • PHPStan\Rules\Generics\UsedTraitsRule [1]
  • PHPStan\Rules\PhpDoc\FunctionAssertRule [1]
  • PHPStan\Rules\PhpDoc\IncompatibleClassConstantPhpDocTypeRule [1]
  • PHPStan\Rules\PhpDoc\IncompatiblePhpDocTypeRule [1]
  • PHPStan\Rules\PhpDoc\IncompatiblePropertyHookPhpDocTypeRule [1]
  • PHPStan\Rules\PhpDoc\IncompatiblePropertyPhpDocTypeRule [1]
  • PHPStan\Rules\PhpDoc\IncompatibleSelfOutTypeRule [1]
  • PHPStan\Rules\PhpDoc\InvalidPhpDocVarTagTypeRule [1]
  • PHPStan\Rules\PhpDoc\MethodAssertRule [1]

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.