Inspectopedia Help

Invalid type argument usage

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:

class Example[in A, out B] # Covariant type variable 'B' of class 'Example' used in a contravariant position, ... def call: (B) -> A end

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

RbsInvalidTypeArgumentUsage
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | RBS | Probable bugs

Availability

By default bundled with

Qodana for Ruby 2024.1, RubyMine 2024.1,

Can be installed with plugin

Ruby, 241.SNAPSHOT

Last modified: 18 June 2024