Inspectopedia
 
2024.3

Invalid type argument usage

Error
New
Last modified: 03 December 2024

Reports type variables used as arguments in locations that their variance does not allow, so long as they are not marked as unchecked. A type variable may have a variance of either covariant (out), contravariant (in), or invariant (neither out nor in).

The following rules are used to check the type arguments used in attribute and method declarations:

  • unchecked type arguments are ignored.

  • Covariant type arguments may only be used in locations that produce values (for example, return types and block parameters).

  • Contravariant type arguments may only be used in locations that consume arguments (for example, parameters and block return types).

  • Invariant type arguments may be used in both locations that produce values and consume arguments.

Example: