Qodana 2023.2 Help

New in version 2023.2

Version 2023.2 of Qodana contains new features, such as:

  • Code coverage to analyze code coverage in your project

  • Quick-fix to automatically fix the problems detected by Qodana

  • Vulnerability checker to monitor your project for presence of vulnerabilities of third-party software

Besides that, now Qodana provides the new Qodana Community for Python linter.

If you wish to try this version of Qodana before the release date, you can use the eap linters. For example, you can use the jetbrains/qodana-jvm:2023.2 image for the Qodana for JVM linter, or jetbrains/qodana-dotnet:2023.2 in case of the Qodana for .NET linter.

Inspection update

Several new inspections are now available across all Qodana linters as per 2023.2:

Id

Description

Severity

Default mode

CssInvalidNestedSelector

Invalid nested selector

WARNING

Disabled

YAMLIncompatibleTypes

Suspicious type mismatch

WARNING

Disabled

VulnerableLibrariesGlobal

Vulnerable imported dependency

WARNING

Disabled

VulnerableLibrariesGlobal

Vulnerable declared dependency

WARNING

Disabled

QodanaSanity

Sanity

ERROR

Disabled

Several inspections were removed from all linters.

Id

Description

Severity

Default mode

QodanaServiceMessage

Qodana service message

ERROR

Disabled

JsonPathEvaluateUnknownKey

Unknown property key used for JSONPath evaluate expression

WARNING

Disabled

JsonPathUnknownFunction

Unknown JSONPath function

WARNING

Disabled

JsonPathUnknownOperator

Unknown JSONPath operator

WARNING

Disabled

Below are the lists of inspection updates per each linter.

Qodana for JVM

This is the list of new inspections.

Id

Description

Severity

Default mode

SqlSourceToSinkFlow

Non-safe string is used as SQL

WARNING

Enabled

UrlHashCode

Call to equals() or hashCode() on 'URL' object

WARNING

Enabled

LoggingConditionDisagreesWithLogLevelStatement

Log condition does not match logging call

WARNING

Disabled

LoggingPlaceholderCountMatchesArgumentCount

Number of placeholders does not match number of arguments in logging call

WARNING

Enabled

ExtractMethodRecommender

Method can be extracted

WARNING

Disabled

LossyConversionCompoundAssignment

Possibly lossy implicit cast in compound assignment

WARNING

Enabled

IncorrectMessageFormat

Incorrect MessageFormat pattern

WARNING

Enabled

OptionalOfNullableMisuse

Use of Optional.ofNullable with null or not-null argument

WARNING

Enabled

SuspiciousReturnByteInputStream

Suspicious byte value returned from InputStream.read()

WARNING

Enabled

UnsupportedChronoFieldUnitCall

Call methods with unsupported java.time.temporal.ChronoUnit and java.time.temporal.ChronoField

WARNING

Enabled

ThreadLocalSetWithNull

ThreadLocal.set() with null as an argument

WEAK WARNING

Enabled

LombokGetterMayBeUsed

Lombok @Getter may be used

WARNING

Disabled

RedundantExplicitChronoField

Calls of java.time methods with explicit ChronoField or ChronoUnit arguments can be simplified

WARNING

Disabled

JavaIoSerializableObjectMustHaveReadResolve

Serializable object must implement readResolve

WARNING

Enabled

DevKitPropertiesMessageValidation

Message format validation in properties files

WARNING

Disabled

ActionPresentationInitializedInCtor

Eager creation of action presentation

WARNING

Disabled

ApplicationServiceAsStaticFinalField

Application service assigned to a static final field/property

WARNING

Disabled

CallingMethodShouldBeRequiresBlockingContext

Calling method should be annotated with @RequiresBlockingContext

WEAK WARNING

Disabled

CancellationCheckInLoops

Cancellation check in loops

WARNING

Disabled

CompanionObjectInExtension

Companion object in extensions

ERROR

Disabled

ExtensionClassShouldBeFinalAndNonPublic

Extension class should be final and non-public

WARNING

Disabled

ExtensionRegisteredAsServiceOrComponent

Extension registered as service/component

ERROR

Disabled

ForbiddenInSuspectContextMethod

Forbidden in suspend context method usage

WARNING

Disabled

IncorrectProcessCanceledExceptionHandling

ProcessCanceledException is handled incorrectly

ERROR

Disabled

LightServiceMigrationCode

A service can be converted to a light one

WARNING

Disabled

LightServiceMustBeFinal

Light service must be final

ERROR

Disabled

MismatchedLightServiceLevelAndCtor

Mismatch between light service level and its constructor

WARNING

Disabled

RetrievingService

Incorrect or simplifiable retrieving service

ERROR

Disabled

ThreadingConcurrency

Threading and concurrency problems

ERROR

Disabled

TokenSetInParserDefinition

Non-platform TokenSet declared in ParserDefinition

WARNING

Disabled

LightServiceMigrationXML

A service can be converted to a light one

WARNING

Disabled

WorkspaceEntityMutableField

Unsupported var field in entity

WARNING

Disabled

SpringCacheableMethodCallsInspection

@Cacheable self-invocation method calls

WARNING

Enabled

JvmCoverageInspection

Check Kotlin and Java source code coverage

WARNING

Enabled

This is the list of inspections that were removed from the linter.

Id

Description

Severity

Default mode

LoggingConditionDisagreesWithLogStatement

Log condition does not match logging call

WARNING

Disabled

PlaceholderCountMatchesArgumentCount

Number of placeholders does not match number of arguments in logging call

WARNING

Enabled

CollectionContainsUrl

Map or Set may contain URL objects

WARNING

Enabled

EqualsHashCodeCalledOnUrl

equals() or hashCode() called on URL object

WARNING

Enabled

KotlinPlaceholderCountMatchesArgumentCount

Number of placeholders does not match number of arguments in logging call

WARNING

Enabled

DevKitPropertiesQuotesValidation

Quotes validation in properties files

WARNING

Disabled

SpringFacetCodeInspection

Incorrect @Configuration class setup in Spring facet

WARNING

Enabled

SpringFacetInspection

Incorrect XML application context setup in Spring facet

WARNING

Enabled

Qodana for Go

This is the list of new inspections.

Id

Description

Severity

Default mode

VgoDependencyDeprecated

Deprecated dependency

WARNING

Enabled

VgoDependencyUpdateAvailable

Dependency update available

WEAK WARNING

Enabled

VgoDependencyVersionRetracted

Retracted dependency version

WARNING

Enabled

GoRedundantTrueInForCondition

Redundant true in for loop condition

WEAK WARNING

Enabled

GoDirectComparisonOfErrors

Direct comparison of errors

WARNING

Enabled

GoVulnerableCodeUsages

Vulnerable API usage

WARNING

Enabled

Qodana for Python

This is the list of new inspections.

Id

Description

Severity

Default mode

PyPandasSeriesToListInspection

The Series.to_list() method is recommended

WARNING

Enabled

PyprojectInspection

Unsatisfied depencencies in pyproject.toml (like in requirements.txt)

WARNING

Enabled

Qodana for JS

This is the list of new inspections.

Id

Description

Severity

Default mode

EditorConfigVerifyByCore

Invalid .editorconfig file

ERROR

Disabled

Qodana Community for Android

This is the list of new inspections.

Id

Description

Severity

Default mode

NavigationFile

Navigation file

ERROR

Disabled

AndroidLintBomWithoutPlatform

Using a BOM without platform call

WARNING

Disabled

AndroidLintChromeOsAbiSupport

Missing ABI Support for ChromeOS

WARNING

Disabled

AndroidLintChromeOsOnConfigurationChanged

Poor performance with APIs inside onConfigurationChanged()

WARNING

Disabled

AndroidLintEditedTargetSdkVersion

Manually Edited TargetSdkVersion

ERROR

Disabled

AndroidLintExactAlarm

Invalid Usage of Exact Alarms

ERROR

Disabled

AndroidLintNoOp

NoOp Code

WARNING

Disabled

AndroidLintPropertyEscape

Incorrect property escapes

ERROR

Disabled

AndroidLintScheduleExactAlarm

Scheduling Exact Alarms without required permission

ERROR

Disabled

AndroidLintSetAndClearCommunicationDevice

Clearing communication device

WARNING

Disabled

AndroidLintKotlincFE10

Avoid using kotlinc old frontend

WARNING

Disabled

AndroidLintKaptUsageInsteadOfKsp

Kapt usage should be replaced with KSP

WARNING

Disabled

AndroidLintUseTomlInstead

Use TOML Version Catalog instead

WARNING

Disabled

AndroidLintBinderGetCallingInMainThread

Incorrect usage of getCallingUid() or getCallingPid()

ERROR

Disabled

AndroidLintProviderReadPermissionOnly

Provider with readPermission only and implemented write APIs

WARNING

Disabled

AndroidLintUnsafeImplicitIntentLaunch

Implicit intent matches an internal non-exported component

ERROR

Disabled

AndroidLintUnsafeIntentLaunch

Launched Unsafe Intent

WARNING

Disabled

AndroidLintUnspecifiedRegisterReceiverFlag

Missing registerReceiver() exported flag

WARNING

Disabled

AndroidLintReportShortcutUsage

Report shortcut usage

INFO

Disabled

This is the list of inspections that were removed from the linter.

Id

Description

Severity

Default mode

AndroidLintOverride

Method conflicts with new inherited method

ERROR

Disabled

AndroidLintUsesMinSdkAttributes

Minimum SDK and target SDK attributes not defined

WARNING

Disabled

AndroidLintUastImplementation

Avoid using UAST implementation

WARNING

Disabled

AndroidLintPackageManagerGetSignatures

Potential Multiple Certificate Exploit

WARNING

Disabled

DeprecatedLombok

Deprecated Lombok annotations

WARNING

Enabled

Lombok

Lombok annotations

WARNING

Enabled

SpringQualifierCopyableLombok

@Qualifier not copyable by lombok

WARNING

Enabled

RedundantSlf4jDefinition

Redundant @Slf4j definition

WARNING

Enabled

RedundantModifiersUtilityClassLombok

Redundant @UtilityClass modifiers

WARNING

Disabled

RedundantModifiersValLombok

Unnecessary final before val

WARNING

Enabled

RedundantModifiersValueLombok

Redundant @Value modifiers

WARNING

Enabled

Qodana for PHP

This is the list of new inspections.

Id

Description

Severity

Default mode

WebpackConfigHighlighting

Webpack config compliance with JSON Schema

WARNING

Enabled

KarmaConfigFile

Invalid Karma configuration file

WARNING

Enabled

LessResolvedByNameOnly

Missing import

WEAK WARNING

Disabled

LessUnresolvedMixin

Unresolved mixin

WARNING

Disabled

LessUnresolvedVariable

Unresolved variable

WARNING

Disabled

PostCssCustomMedia

Invalid custom media

ERROR

Disabled

PostCssCustomSelector

Invalid custom selector

ERROR

Disabled

PostCssMediaRange

Invalid media query range

ERROR

Disabled

PostCssNesting

Invalid nested rule

WARNING

Disabled

PostCssUnresolvedModuleValueReference

Unresolved CSS module value

ERROR

Disabled

SassScssResolvedByNameOnly

Missing import

WEAK WARNING

Disabled

SassScssUnresolvedMixin

Unresolved mixin

WARNING

Disabled

SassScssUnresolvedPlaceholderSelector

Unresolved placeholder selector

WARNING

Disabled

SassScssUnresolvedVariable

Unresolved variable

WARNING

Disabled

VueDataFunction

Data function

WARNING

Enabled

VueDeprecatedSymbol

Deprecated symbol

WARNING

Enabled

VueDuplicateTag

Duplicate template/script tag

WARNING

Enabled

VueMissingComponentImportInspection

Missing component import

WARNING

Enabled

VueUnrecognizedDirective

Unrecognized directive

WARNING

Enabled

VueUnrecognizedSlot

Unrecognized slot

WEAK WARNING

Enabled

Qodana for .NET

This is the list of new inspections.

Id

Description

Severity

Default mode

MoveLocalFunctionAfterJumpStatement

Put local function after return or continue

WEAK WARNING

Enabled

SeparateLocalFunctionsWithJumpStatement

Add explicit return or continue before local functions

WEAK WARNING

Enabled

CSharpWarnings__CS0282

There is no defined ordering between fields in multiple declarations of partial struct. To specify an ordering, all instance fields must be in the same declaration

WARNING

Enabled

CSharpWarnings__CS8519

The given expression never matches the provided pattern

WARNING

Enabled

CSharpWarnings__CS8520

The given expression always matches the provided constant

WARNING

Enabled

CSharpWarnings__CS8974

Converting method group to non-delegate type object

WARNING

Enabled

CSharpWarnings__CS9099

The default parameter value does not match in the target delegate type

WARNING

Enabled

CSharpWarnings__CS9100

Parameter has params modifier in lambda but not in target delegate type

WEAK WARNING

Enabled

EntityFramework.NPlusOne.IncompleteDataQuery

Query can return incomplete data for related entities

WARNING

Enabled

EntityFramework.NPlusOne.IncompleteDataUsage

Usage of navigational property can return incomplete data

WARNING

Enabled

EntityFramework.NPlusOne.Query

Possible multiple queries to the database for related entities (N+1 problem)

WEAK WARNING

Enabled

EntityFramework.NPlusOne.Usage

Possible multiple queries to the database (N+1 problem)

WARNING

Enabled

ConvertConstructorToMemberInitializers

Convert constructor into member initializers

WEAK WARNING

Enabled

UseDiscardAssignment

Use discard assignment

WEAK WARNING

Enabled

UseRawString

Use raw string

WEAK WARNING

Enabled

AllUnderscoreLocalParameterName

Local parameter name may confuse

WARNING

Enabled

AssignmentInsteadOfDiscard

Suspicious use of variable with discard-like name

WARNING

Enabled

NullnessAnnotationConflictWithJetBrainsAnnotations

Nullability conflicts with annotations in hierarchy

WARNING

Enabled

ReturnOfTaskProducedByUsingVariable

Return of a task produced by using-captured object

WARNING

Enabled

ReturnOfUsingVariable

Return of a variable captured by using statement

WARNING

Enabled

UsingStatementResourceInitialization

Do not use object initializer for using variable

WARNING

Enabled

UsingStatementResourceInitializationExpression

Do not use object initializer for using variable (object initializer expression may throw exception while initializing using variable)

WEAK WARNING

Enabled

RawStringCanBeSimplified

Raw string can be simplified

WEAK WARNING

Enabled

RedundantNullableDirective

Redundant nullable directive

WARNING

Enabled

RedundantTypeDeclarationBody

Redundant type declaration body

WARNING

Enabled

RedundantWithCancellation

Redundant WithCancellation() invocation

WARNING

Enabled

UnusedNullableDirective

Unused nullable directive

WARNING

Enabled

NotAccessedPrimaryConstructorParameterCompiler

Not accessed primary constructor parameter

WARNING

Enabled

CppClangTidyClangDiagnosticC2xCompat

c2x-compat clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticCastFunctionTypeStrict

cast-function-type-strict clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticCoroNonAlignedAllocationFunciton

coro-non-aligned-allocation-funciton clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticEnumConstexprConversion

enum-constexpr-conversion clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticGnuOffsetofExtensions

gnu-offsetof-extensions clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticIncompatibleFunctionPointerTypesStrict

incompatible-function-pointer-types-strict clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticMathematicalNotationIdentifierExtension

mathematical-notation-identifier-extension clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticPackedNonPod

packed-non-pod clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticReadOnlyTypes

read-only-types clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticReturnLocalAddr

return-local-addr clang diagnostic

WARNING

Enabled

CppClangTidyClangDiagnosticSingleBitBitfieldConstantConversion

single-bit-bitfield-constant-conversion clang diagnostic

WARNING

Enabled

CppClangTidyBugproneStandaloneEmpty

bugprone-standalone-empty clang-tidy check

WARNING

Enabled

CppClangTidyBugproneSuspiciousReallocUsage

bugprone-suspicious-realloc-usage clang-tidy check

WARNING

Enabled

CppClangTidyCertMsc54Cpp

cert-msc54-cpp clang-tidy check

WARNING

Enabled

CppClangTidyCppcoreguidelinesAvoidConstOrRefDataMembers

cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check

WARNING

Enabled

CppClangTidyMiscUseAnonymousNamespace

misc-use-anonymous-namespace clang-tidy check

WEAK WARNING

Enabled

ConstevalIfIsAlwaysConstant

consteval if is always constant

WARNING

Enabled

IfStdIsConstantEvaluatedCanBeReplaced

if can be replaced by if consteval

WEAK WARNING

Enabled

StdIsConstantEvaluatedWillAlwaysEvaluateToConstant

std::is_constant_evaluated will always evaluate to constant

WARNING

Enabled

CppStaticAssertFailure

static_assert failed

ERROR

Enabled

CppWarningDirective

#warning directive

WARNING

Enabled

CppConceptNeverUsed

Concept is never used

WARNING

Enabled

CppForwardEnumDeclarationWithoutUnderlyingType

Forward enum declaration without underlying type

WARNING

Enabled

CppRedundantDereferencingAndTakingAddress

Redundant dereferencing and taking address

WEAK WARNING

Enabled

CppRedundantStaticSpecifierOnThreadLocalLocalVariable

Redundant static specifier on a thread_local local variable

WEAK WARNING

Enabled

This is the list of inspections that were removed from the linter.

Id

Description

Severity

Default mode

CSharpWarnings__CS8416

The given expression never matches the provided pattern

WARNING

Enabled

CSharpWarnings__CS8417

The given expression always matches the provided constant

WARNING

Enabled

RedundantRecordBody

Redundant record type declaration body

WARNING

Enabled

Last modified: 27 July 2023