Inspectopedia Help

Implicit type conversion

Reports implicit conversions between the predefined XPath-types STRING, NUMBER, BOOLEAN, and NODESET. Helps to write XSLT scripts that are more expressive about types and prevents subtle bugs:

Example:

<xsl:if test="foo" />

is not the same as

<xsl:if test="string(foo)" />

The first test checks whether the element "foo" exists (count(foo) > 0); the latter one however is only true if the element actually contains any text (string-length(foo) > 0). Suggests making the type conversion more explicit.

Use the following options to configure the inspection:

  • Enable or disable implicit conversions between certain types

  • Always report explicit conversions that do not result in the actually expected type, for example, <xsl:if test="number(foo)" />

  • Ignore conversion from NODESET to BOOLEAN by using the string() function as a shortcut for writing string-length() > 0.

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.

ImplicitTypeConversion
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 | XPath

Inspection options

Here you can find the description of settings available for the Implicit type conversion inspection, and the reference of their default values.

To STRING

None

To NUMBER

None

To BOOLEAN

None

Always flag explicit conversion to unexpected type

Default: Selected

Ignore conversion of NODESET to BOOLEAN by string()-conversion

Default: Selected

Availability

By default bundled with

CLion 2024.1, DataGrip 2024.1, IntelliJ IDEA 2024.1, JetBrains Rider 2023.3, PhpStorm 2024.1, Qodana for .NET 2023.3, Qodana for JVM 2024.1, Qodana for PHP 2024.1,

Can be installed with plugin

XPathView + XSLT, 241.SNAPSHOT

Last modified: 18 June 2024