Inspections. What is new in 2022.2?
This page provides the list of changes in Qodana inspections as of version 2022.2.
Qodana for JVM and Qodana Community for JVM
New inspections
Inspection name | Severity | Description |
---|---|---|
| Weak warning | Redundant The |
| Warning | Incorrectly numbered list item. Marks an ordered list like |
This table contains the list of new Kotlin inspections.
Inspection name | Severity | Description |
---|---|---|
| Disabled; error | Forbidden constructor call |
| Warning | - |
| Disabled; warning | Explicit conversion from |
| Disabled; warning | Ambiguous logical expressions in |
| Disabled; warning | Progression resolution change starting from version 1.9 of Kotlin |
| Disabled; warning | Inline classes are deprecated starting from version 1.5 of Kotlin |
| Disabled; error | Do not propagate method deprecation through overrides since 1.9 |
Below is the list of inspections related to the code style and DevKit.
Inspection name | Severity | Description |
---|---|---|
| Warning | Kotlin JVM annotation in Java |
| Warning | Redundant diagnostic suppression |
| Weak warning | Non-strict inequality |
| Text attributes | The variable was previously reassigned |
| Weak warning | Check verbose nullability and emptiness. |
| Warning | Absent entity implementation |
| Warning | Obsolete version of entity implementation |
Refactored inspections
In 2022.2, several Kotlin and JUnit inspections were refactored.
Inspection name | Severity | Description |
---|---|---|
| Disabled; error | Was renamed for |
| - | Check for the |
| Warning | Works only for Kotlin. Reports JUnit test member declarations that are malformed and not recognized by the JUnit test framework. Such declarations could result in non-executed tests or lifecycle methods. |
Several of the old inspections were disabled by default. Starting from 2022.2, they are enabled by default, and there is no way to disable them individually.
Inspection name | Description |
---|---|
| Marks test methods that are annotated with |
| The |
| Malformed |
| Malformed |
| JUnit 5 malformed extension registration |
| JUnit 5 malformed |
| Malformed parameterized tests. Prior to 2022.2, this inspection was disabled. |
| JUnit 5 malformed repeated test |
| Malformed |
| Malformed |
| Malformed |
| Reports JUnit test cases that cannot be constructed because they have an invalid constructor. Test cases like these will not be picked up by the JUnit test runner and will therefore not execute. The inspection severity is |
Enabled inspections
Inspection name | Severity | Description |
---|---|---|
| Warning | A regular expression like |
| Weak warning | A regular expression like |
| Disabled; warning | The 'Files.readAttributes' bulk call can be used instead of multiple file attribute calls |
| Warning | Call to |
| Disabled; error | Illegal dependency on internal package |
| Warning | Number of placeholders does not match number of arguments in logging call |
| Disabled; warning | Non-exhaustive |
| Warning | Redundant |
| Warning | Replacement operation has no effect |
Qodana for PHP
New inspections
In version 2022.2, the Qodana for PHP linter obtained several new inspections.
Inspection name | Severity | Description |
---|---|---|
| Weak warning | Redundant |
| Warning | Incorrectly numbered list item. Marks an ordered list like |
| Warning | Number range mismatch. Marks return statements containing numerals outside the range, for example, in |
| Weak warning | Type tag without a variable name. The |
| Weak warning | A typical loop consisting of three lines can be replaced with the |
| Weak warning | The |
| Informational | Multiple |
| Weak warning | The |
| Informational | The verbose |
| Weak warning | A class static member is accessed via an instance. Similar to Java, a class static member should not be accessed via an instance expression because that would mean that it might be different for each instance. |
| Error | Invalid Mockery mocking target In Mockery tests, methods cannot be private. If protected, they must be specifically enabled using |
| Error | Parse error due to unpaired parentheses in string literals. Early detection of unpaired parentheses in string literals that are later parsed by the Blade template engine. |
Enabled inspections
Inspection name | Severity | Description |
---|---|---|
| Warning | Regular expression can be simplified. A regular expression like |
| Weak warning | Suspicious back reference. A regular expression like |
Qodana for JS
New inspections
Inspection name | Severity | Description |
---|---|---|
| Weak warning | The |
| Warning | Marks an ordered list like |
Enabled inspections
Here is the list of inspections that were disabled prior to 2022.2.
Inspection name | Severity | Description |
---|---|---|
| Warning | A regular expression like |
| Weak warning | A regular expression like |
Besides new and enabled inspections in 2022.2, the MeteorUnresolvedSymbol
was removed because the Meteor plugin became unbundled.
Qodana for Python
New inspections
Inspection name | Severity | Description |
---|---|---|
| Weak warning | Redundant The |
| Warning | Marks an ordered list like |
| Warning | Invalid usage of ClassVar variables. Reports invalid usages of variables annotated as ClassVar. For example, this can be assignment to ClassVar via instance, or annotating local variables with ClassVar. |
Enabled inspections
Inspection name | Severity | Description |
---|---|---|
| Warning | A regular expression like |
| Weak warning | A regular expression like |
The JupyterKernelInspection
inspection was removed from 2022.2 because it became almost unused.
Qodana Community for Android
New inspections
This table contains the list of general inspections that were introduced in 2022.2.
Inspection name | Severity | Description |
---|---|---|
| Weak warning | Redundant The |
| Warning | Incorrectly numbered list item. Marks an ordered list like |
The table below contains the list of Kotlin inspections that became available starting from 2022.2
Inspection name | Severity | Description |
---|---|---|
| Disabled; error | Forbidden constructor call |
| Warning | Pattern variable hides field |
| Disabled; warning | Starting from version 1.9 of Kotlin, explicit conversion from |
| Disabled; warning | Ambiguous logical expressions starting from version 1.7 of Kotlin |
| Disabled; warning | Progression resolution change as of version 1.9 of Kotlin |
| Disabled; warning | Inline classes are deprecated since version 1.5 of Kotlin |
| Disabled; error | No propagation of method deprecation through overrides as of version 1.9 of Kotlin |
This table contains inspections related to code style.
Inspection name | Severity | Description |
---|---|---|
| Warning | Kotlin JVM annotation in Java |
| Warning | Redundant diagnostic suppression |
| Weak warning | Non-strict inequality |
| Text attributes | Reassigned variable |
| Weak warning | Check verbose nullability and emptiness. |
This table lists inspections related to DevKit.
Inspection name | Severity | Description |
---|---|---|
| Warning | Absent entity implementation |
| Warning | Obsolete version of entity implementation |
| Warning | App Bundle handling of runtime locale changes |
| Warning | Assertions with Side Effects |
| Error | Bidirectional text spoofing |
| Warning | Missing data extraction rules |
| Warning | Using discouraged APIs |
| Warning | - |
| Warning | Data tags should only declare unique attributes |
| Error | Views inside MotionLayout require an id |
| Warning | Not a constructor warning |
| Warning | Redundant label on activity |
| Warning | Avoid using UAST implementation |
| Error | Issues related to |
| Warning | - |
| Warning | Proceed with the HTTPS connection despite SSL errors |
Refactored inspections
Inspection name | Severity | Description |
---|---|---|
| Disabled; error | Was renamed for |
| - | The |
| Warning | Works only for Kotlin. Reports JUnit test member declarations that are malformed and not recognized by the JUnit test framework. Such declarations could result in non-executed tests or lifecycle methods. |
Several inspections were disabled by default. Starting from 2022.2, they are enabled, and there is no way to disable them individually.
Inspection name | Description |
---|---|
| Marks test methods that are annotated with |
| The |
| Malformed |
| Malformed |
| JUnit 5 malformed extension registration |
| JUnit 5 malformed |
| Malformed parameterized tests. Prior to 2022.2, this inspection was disabled. |
| JUnit 5 malformed repeated test |
|
|
| Malformed |
| Malformed |
| Reports JUnit test cases that cannot be constructed because they have an invalid constructor. Test cases like these will not be picked up by the JUnit test runner and will therefore not execute. The inspection severity is |
Enabled inspections
Inspection name | Severity | Description |
---|---|---|
| Warning | A regular expression like |
| Weak warning | A regular expression like |
| Disabled; warning | The 'Files.readAttributes' bulk call can be used instead of multiple file attribute calls |
| Warning | Call to |
| Disabled; error | Illegal dependency on internal package |
| Warning | Number of placeholders does not match number of arguments in logging call |
| Disabled; warning | Non-exhaustive 'when' statements will be prohibited starting from version 1.7 |
| Warning | Redundant |
| Warning | Replacement operation has no effect |
Removed inspections
Several inspections were also removed from the Qodana Community for Android linter in 2022.2.
Inspection name | Description |
---|---|
| AllowBackup/FullBackupContent Problems. This inspection was removed due to Android Lint updates. |
| Missing media capabilities property Removed due to Android Lint updates |
| Permission Check for Location APIs, an experimental inspection |