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 |
---|---|---|---|
| Invalid nested selector |
| Disabled |
| Suspicious type mismatch |
| Disabled |
| Vulnerable imported dependency |
| Disabled |
| Vulnerable declared dependency |
| Disabled |
| Sanity |
| Disabled |
Several inspections were removed from all linters.
Id | Description | Severity | Default mode |
---|---|---|---|
| Qodana service message |
| Disabled |
| Unknown property key used for JSONPath evaluate expression |
| Disabled |
| Unknown JSONPath function |
| Disabled |
| Unknown JSONPath operator |
| 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 |
---|---|---|---|
| Non-safe string is used as SQL |
| Enabled |
| Call to |
| Enabled |
| Log condition does not match logging call |
| Disabled |
| Number of placeholders does not match number of arguments in logging call |
| Enabled |
| Method can be extracted |
| Disabled |
| Possibly lossy implicit cast in compound assignment |
| Enabled |
| Incorrect |
| Enabled |
| Use of |
| Enabled |
| Suspicious byte value returned from |
| Enabled |
| Call methods with unsupported |
| Enabled |
|
|
| Enabled |
| Lombok |
| Disabled |
| Calls of |
| Disabled |
| Serializable object must implement |
| Enabled |
| Message format validation in properties files |
| Disabled |
| Eager creation of action presentation |
| Disabled |
| Application service assigned to a static final field/property |
| Disabled |
| Calling method should be annotated with |
| Disabled |
| Cancellation check in loops |
| Disabled |
| Companion object in extensions |
| Disabled |
| Extension class should be final and non-public |
| Disabled |
| Extension registered as service/component |
| Disabled |
| Forbidden in suspend context method usage |
| Disabled |
|
|
| Disabled |
| A service can be converted to a light one |
| Disabled |
| Light service must be final |
| Disabled |
| Mismatch between light service level and its constructor |
| Disabled |
| Incorrect or simplifiable retrieving service |
| Disabled |
| Threading and concurrency problems |
| Disabled |
| Non-platform TokenSet declared in |
| Disabled |
| A service can be converted to a light one |
| Disabled |
| Unsupported |
| Disabled |
|
|
| Enabled |
| Check Kotlin and Java source code coverage |
| Enabled |
This is the list of inspections that were removed from the linter.
Id | Description | Severity | Default mode |
---|---|---|---|
| Log condition does not match logging call |
| Disabled |
| Number of placeholders does not match number of arguments in logging call |
| Enabled |
|
|
| Enabled |
|
|
| Enabled |
| Number of placeholders does not match number of arguments in logging call |
| Enabled |
| Quotes validation in properties files |
| Disabled |
| Incorrect |
| Enabled |
| Incorrect XML application context setup in Spring facet |
| Enabled |
Qodana for Go
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| Deprecated dependency |
| Enabled |
| Dependency update available |
| Enabled |
| Retracted dependency version |
| Enabled |
| Redundant |
| Enabled |
| Direct comparison of errors |
| Enabled |
| Vulnerable API usage |
| Enabled |
Qodana for Python
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| The |
| Enabled |
| Unsatisfied depencencies in |
| Enabled |
Qodana for JS
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| Invalid |
| Disabled |
Qodana Community for Android
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| Navigation file |
| Disabled |
| Using a BOM without platform call |
| Disabled |
| Missing ABI Support for ChromeOS |
| Disabled |
| Poor performance with APIs inside |
| Disabled |
| Manually Edited |
| Disabled |
| Invalid Usage of |
| Disabled |
| NoOp Code |
| Disabled |
| Incorrect property escapes |
| Disabled |
| Scheduling |
| Disabled |
| Clearing communication device |
| Disabled |
| Avoid using |
| Disabled |
|
|
| Disabled |
| Use |
| Disabled |
| Incorrect usage of |
| Disabled |
| Provider with readPermission only and implemented write APIs |
| Disabled |
| Implicit intent matches an internal non-exported component |
| Disabled |
| Launched Unsafe Intent |
| Disabled |
| Missing |
| Disabled |
| Report shortcut usage |
| Disabled |
This is the list of inspections that were removed from the linter.
Id | Description | Severity | Default mode |
---|---|---|---|
| Method conflicts with new inherited method |
| Disabled |
| Minimum SDK and target SDK attributes not defined |
| Disabled |
| Avoid using UAST implementation |
| Disabled |
| Potential Multiple Certificate Exploit |
| Disabled |
| Deprecated Lombok annotations |
| Enabled |
| Lombok annotations |
| Enabled |
|
|
| Enabled |
| Redundant |
| Enabled |
| Redundant |
| Disabled |
| Unnecessary final before |
| Enabled |
| Redundant |
| Enabled |
Qodana for PHP
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| Webpack config compliance with JSON Schema |
| Enabled |
| Invalid Karma configuration file |
| Enabled |
| Missing import |
| Disabled |
| Unresolved mixin |
| Disabled |
| Unresolved variable |
| Disabled |
| Invalid custom media |
| Disabled |
| Invalid custom selector |
| Disabled |
| Invalid media query range |
| Disabled |
| Invalid nested rule |
| Disabled |
| Unresolved CSS module value |
| Disabled |
| Missing import |
| Disabled |
| Unresolved mixin |
| Disabled |
| Unresolved placeholder selector |
| Disabled |
| Unresolved variable |
| Disabled |
| Data function |
| Enabled |
| Deprecated symbol |
| Enabled |
| Duplicate template/script tag |
| Enabled |
| Missing component import |
| Enabled |
| Unrecognized directive |
| Enabled |
| Unrecognized slot |
| Enabled |
Qodana for .NET
This is the list of new inspections.
Id | Description | Severity | Default mode |
---|---|---|---|
| Put local function after |
| Enabled |
| Add explicit |
| Enabled |
| 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 |
| Enabled |
| The given expression never matches the provided pattern |
| Enabled |
| The given expression always matches the provided constant |
| Enabled |
| Converting method group to non-delegate type |
| Enabled |
| The default parameter value does not match in the target delegate type |
| Enabled |
| Parameter has params modifier in lambda but not in target delegate type |
| Enabled |
| Query can return incomplete data for related entities |
| Enabled |
| Usage of navigational property can return incomplete data |
| Enabled |
| Possible multiple queries to the database for related entities (N+1 problem) |
| Enabled |
| Possible multiple queries to the database (N+1 problem) |
| Enabled |
| Convert constructor into member initializers |
| Enabled |
| Use discard assignment |
| Enabled |
| Use raw string |
| Enabled |
| Local parameter name may confuse |
| Enabled |
| Suspicious use of variable with discard-like name |
| Enabled |
| Nullability conflicts with annotations in hierarchy |
| Enabled |
| Return of a task produced by |
| Enabled |
| Return of a variable captured by |
| Enabled |
| Do not use object initializer for |
| Enabled |
| Do not use object initializer for |
| Enabled |
| Raw string can be simplified |
| Enabled |
| Redundant nullable directive |
| Enabled |
| Redundant type declaration body |
| Enabled |
| Redundant |
| Enabled |
| Unused nullable directive |
| Enabled |
| Not accessed primary constructor parameter |
| Enabled |
| c2x-compat clang diagnostic |
| Enabled |
| cast-function-type-strict clang diagnostic |
| Enabled |
| coro-non-aligned-allocation-funciton clang diagnostic |
| Enabled |
| enum-constexpr-conversion clang diagnostic |
| Enabled |
| gnu-offsetof-extensions clang diagnostic |
| Enabled |
| incompatible-function-pointer-types-strict clang diagnostic |
| Enabled |
| mathematical-notation-identifier-extension clang diagnostic |
| Enabled |
| packed-non-pod clang diagnostic |
| Enabled |
| read-only-types clang diagnostic |
| Enabled |
| return-local-addr clang diagnostic |
| Enabled |
| single-bit-bitfield-constant-conversion clang diagnostic |
| Enabled |
| bugprone-standalone-empty clang-tidy check |
| Enabled |
| bugprone-suspicious-realloc-usage clang-tidy check |
| Enabled |
| cert-msc54-cpp clang-tidy check |
| Enabled |
| cppcoreguidelines-avoid-const-or-ref-data-members clang-tidy check |
| Enabled |
| misc-use-anonymous-namespace clang-tidy check |
| Enabled |
|
|
| Enabled |
|
|
| Enabled |
|
|
| Enabled |
|
|
| Enabled |
|
|
| Enabled |
| Concept is never used |
| Enabled |
| Forward enum declaration without underlying type |
| Enabled |
| Redundant dereferencing and taking address |
| Enabled |
| Redundant |
| Enabled |
This is the list of inspections that were removed from the linter.
Id | Description | Severity | Default mode |
---|---|---|---|
| The given expression never matches the provided pattern |
| Enabled |
| The given expression always matches the provided constant |
| Enabled |
| Redundant |
| Enabled |