New in version 2022.3
This page provides the list features that were implemented in the version 2022.3 of Qodana.
New linters
Starting from 2022.3, Qodana provides support for .NET and Golang using the Qodana for .NET and Qodana for Go linters.
Qodana for JVM
Here is the list of new inspections that were implemented in the Qodana for JVM linter.
Inspection name | Severity | Description |
---|---|---|
| Warning | Reactive: calling |
| Warning | Deprecated |
| Warning | REST: resource method with multiple HTTP method annotations |
| Warning | Reactive: calling |
| Warning | REST: Incorrect |
| Warning | Reactive: return |
| Warning | Reactive: class implements the |
| Warning | Reactive: class implements Subscriber |
| Warning | Reactive: throw statement in Reactive operator. Throwing exceptions from a |
| Warning | Reactive: too long same methods chain |
| Warning | Reactive: unused publisher |
| Weak Warning | Reactive: unnecessary debug initialization |
| Weak Warning |
|
| Error | REST: incorrect parameter type of resource method |
| Error | REST: |
| Warning | REST: incorrect value of the |
| Warning | Invalid YAML configuration |
| Weak Warning | Bootstrap configuration included in application context |
| Warning | Stream handler method error |
| Warning | Unresolved message channel |
| Error | Spring Data MongoDB JSON unresolved fields |
| Warning | Test in product source |
| Warning | Unfinished StepVerifier |
| Error | REST: unresolved Reports |
| Warning | REST: the |
| Error | Incorrect WADL configuration |
In version 2022.3 of Qodana, the following inspections were merged into the single SpringJavaInjectionPointsAutowiringInspection
inspection:
SpringJavaConstructorAutowiringInspection
SpringJavaAutowiredMembersInspection
Here is the list of inspections that were removed from the Qodana for JVM linter.
Inspection name | Severity | Description |
---|---|---|
| Information | Statistics collectors detection |
| Warning | Web service class has no methods |
| Information | Implicitly exposed web service method |
| Warning | JAX-WS service not annotated with |
| Error |
|
| Warning | Incorrect |
| Error | Autowiring issues in a Spring bean class constructors |
| Error | Incorrect Spring Web Services servlet declaration in |
| Warning | Incorrect Spring Shell command declarations |
| Warning | Invalid Spring Shell references |
| Warning | Incorrect Spring Web Services endpoint annotation |
| Error | Incorrect Spring Web Services configurations in xml application contexts |
| Error | Incorrect Spring WebSocket XML-based application context |
| Error | Valid externally bound |
| Warning | Unresolved reference from |
| Warning | Not whitelisted usage collector It was from removed with FUS plugin |
| Error | Invalid content |
Qodana Community for JVM
Here is the list of inspections implemented in the Qodana Community for JVM linter.
Inspection name | Description |
---|---|
| Suggests to replace repeated type casts with simpler expressions |
| Prevents bugs and performance degradation due to collection operations doing unexpected DNS lookups |
| Improves performance in custom Gradle tasks |
| Warns about conditions that are always true, including those in the |
| Kotlin 1.8+: suggests to replace |
| Reports code constructs that always violate nullability contracts, may throw exceptions, or are just redundant, based on data flow analysis |
| Gradle: detects incorrect dependency notations |
| Gradle: detects usage of configuration methods that were deprecated, such as |
| Kotlin: reports declarations that can be destructured |
| Calling |
| Java 15 introduced the string escape sequence |
| Gradle: detects possibly misplaced calls to Gradle methods, typically due to mismatched scope |
| Reports incorrect date time format patterns |
| Gradle: detects disallowed statements before the |
| Java: reports parts of method specification written in English that contradict the method declaration (type mismatch) |
| Java: reports hexadecimal constants that are sign-extended |
| Kotlin: reports properties that do not follow the naming conventions |
| Java: reports lists, arrays, and strings where exactly one element is queried right upon the creation |
| IDEA Platform plugins: reports problems with extension registration in |
| Java: suggests to replace |
| Reports empty |
| Regular expressions: reports redundant escapes in the replacement string of regex methods |
| Java: reports unnecessary array length checks followed by array iteration. When array length is zero |
| Kotlin 1.8+: suggest to replace |
| Kotlin 1.8+: suggest to replace |
| Kotlin: reports calls to a |
| Java: reports |
| Java: reports unnecessary unicode escape sequences. For example, when the file encoding can handle the character without escaping it |
| IDEA Platform plugins: reports passing the unspecified |
In 2022.3, the ConstantConditions
inspection was renamed for ConstantValue
.
Several inspections were removed from the Qodana Community for JVM linter.
Inspection name | Severity | Description |
---|---|---|
| Warning | Default File Template usage |
| Weak Warning | Function returning Deferred directly |
| Weak Warning | Function returning |
| Warning |
|
| Warning | Unique toolbar ID is required |
| Weak Warning | Redundant |
| Warning | JUnit |
| Warning | JUnit test method in product source |
Qodana Community for Android
Here is the list of inspections that were implemented in the Qodana Community for Android linter.
Inspection name | Severity | Description |
---|---|---|
| Warning | Permission appears to be a custom permission with a typo |
| Warning | Using a method deprecated in earlier SDK |
| Warning | Calling an empty super method |
| Warning | Usage of |
| Warning | Using internal inset dimension resource |
| Error | Value specified for permission is a known error |
| Error | Kotlin nullability annotation |
| Error | ID not found in inflated resource |
| Warning | Monochrome icon is not defined |
| Error | Notification ID is |
| Error | Notifications without permission |
| Error | Extending API only allowed from tests |
| Warning | Permission name does not follow a recommended convention |
| Error | Library has policy issues in SDK Index |
| Error | Permission name is a reserved Android permission |
| Error | Method must return |
| Warning |
|
| Warning |
|
| Error | Suspicious indentation |
| Warning | Permission appears to be a standard permission with a typo |
| Warning | Unused Translation |
| Warning | AndroidX watch faces must use action |
| Warning | Duplicate watch face configuration activities found |
| Warning | Color component is out of range |
| Warning | Unnecessary default tag |
| Warning | Event handler method signature problems |
| Warning | JavaFX redundant property values |
| Warning | The value from properties file is incompatible with the attribute type |
| Warning | Unresolved |
| Warning | JavaFX unused imports |
| Warning | Unresolved reference |
The following inspections were removed from the Qodana Community for Android linter.
Inspection name | Severity | Description |
---|---|---|
| Error | Incorrect property escapes |
| Warning | Missing |
Qodana for PHP
In 2022.3, several inspections were added to the Qodana for PHP linter.
Inspection name | Description |
---|---|
| Behat doc step can be converted to an attribute version for creating shorter tests |
| Class can be |
| Deprecated |
| Deprecated partially supported callables. Instead of invoking |
| Dynamic property declaration |
| The |
| Redundant closure In the function call, |
|
Instead of |
| Redeclaration of a standard library function. It is a runtime error to redeclare a function from the PHP standard library, such as |
| The |
| Invalid delimiter. For example, in |
| Vulnerability scanner |
| Unpacking arrays with string keys is forbidden for PHP < 8.1 |
|
Calling |
| Variable is only used inside closure. The scope of the variable can be made narrower, to make it easier to understand the code without looking at the surrounding function |
| Vulnerable paths scanner |
| ShellCheck |
Qodana for JS
Here is the list of inspections that were added to the Qodana for JS linter in 2022.3.
Inspection name | Description |
---|---|
| Reports Vue components, which require to be imported in Vue templates. It provides a quick fix to add the missing import |
| Reports an unrecognized Vue slot |
| Reports an unrecognized Vue directive |
| Reports a deprecated Vue symbol |
This table show the inspections that were renamed in Qodana for JS.
Inspection name | Renamed for |
---|---|
|
|
|
|
In 2022.3, several inspections from the unbundled CoffeeScript, Haml, and W3C Validators plugins were removed.
Plugin name | List of inspections |
---|---|
CoffeeScript |
|
Haml |
|
W3C Validators |
|
Qodana for Python
In 2022.3, several inspections were added to the Qodana for Python linter as shown in this table.
Inspection name | Description |
---|---|
| Reports duplicate |
| Reports duplicate properties in the |
| Reports cases when threadsafe is not enabled with the CGI handler |
| Reports cases when threadsafe is not present, or it is not set to either |
| Reports GQL queries that the index is not defined in |
| Reports GQL queries with bound parameters that do not have the necessary parameters passed to the query method call |
| Reports GQL queries that do not comply with the restrictions for queries allowed on the Google App Engine server. See the App Engine documentation for more information |
| Reports usages of Python features that are restricted by the Google App Engine sandbox and will cause a failure on the production server |
| HTML inspections of the HtmlTools plugin |
Other inspections
Natural languages
Based on Grazie, grammar check for English, German, and Russian languages was implemented in all Qodana linters based on these inspections.
Inspection name | Description |
---|---|
| Natural language detection |
| Reports grammar mistakes in your text |
By default, these inspections are disabled in Qodana.
CSS
Except Qodana Community for JVM, a bunch of CSS inspections were added to all Qodana linters.
Here is the full list of CSS inspections:
CssBrowserCompatibilityForProperties
CssConvertColorToHexInspection
CssConvertColorToRgbInspection
CssInvalidAtRule
CssInvalidCharsetRule
CssInvalidFunction
CssInvalidHtmlTagReference
CssInvalidImport
CssInvalidMediaFeature
CssInvalidPropertyValue
CssInvalidPseudoSelector
CssMissingComma
CssMissingSemicolon
CssNegativeValue
CssNoGenericFontName
CssNonIntegerLengthInPixels
CssOverwrittenProperties
CssRedundantUnit
CssReplaceWithShorthandSafely
CssReplaceWithShorthandUnsafely
CssUnknownProperty
CssUnknownTarget
CssUnresolvedClassInComposesRule
CssUnresolvedCustomProperty
CssUnusedSymbol
A couple of examples from this list are shown in this table.
Inspection name | Description |
---|---|
| Detecting invalid property values such as overflow-x: |
| Detecting accidentally overridden values such as in |
SQL
Here is the list of SQL inspections that were implemented in all linters of 2022.3 except the Qodana Community for JVM linter.
MongoJSDeprecationInspection
MongoJSResolveInspection
MongoJSSideEffectsInspection
MsBuiltinInspection
MsOrderByInspection
MysqlLoadDataPathInspection
MysqlParsingInspection
OraMissingBodyInspection
OraOverloadInspection
OraUnmatchedForwardDeclarationInspection
PgSelectFromProcedureInspection
SqlAddNotNullColumnInspection
SqlAggregatesInspection
SqlAmbiguousColumnInspection
SqlAutoIncrementDuplicateInspection
SqlCallNotationInspection
SqlCaseVsCoalesceInspection
SqlCaseVsIfInspection
SqlCheckUsingColumnsInspection
SqlConstantConditionInspection
SqlConstantExpressionInspection
SqlCurrentSchemaInspection
SqlDeprecateTypeInspection
SqlDerivedTableAliasInspection
SqlDialectInspection
SqlDropIndexedColumnInspection
SqlDtInspection
SqlDuplicateColumnInspection
SqlGotoInspection
SqlIdentifierInspection
SqlIllegalCursorStateInspection
SqlInsertIntoGeneratedColumnInspection
SqlInsertNullIntoNotNullInspection
SqlInsertValuesInspection
SqlJoinWithoutOnInspection
SqlMisleadingReferenceInspection
SqlMissingColumnAliasesInspection
SqlMissingReturnInspection
SqlMultipleLimitClausesInspection
SqlNamedArgumentsInspection
SqlNoDataSourceInspection
SqlNullComparisonInspection
SqlRedundantAliasInspection
SqlRedundantCodeInCoalesceInspection
SqlRedundantElseNullInspection
SqlRedundantLimitInspection
SqlRedundantOrderingDirectionInspection
SqlResolveInspection
SqlShadowingAliasInspection
SqlShouldBeInGroupByInspection
SqlSideEffectsInspection
SqlSignatureInspection
SqlStorageInspection
SqlStringLengthExceededInspection
SqlTransactionStatementInTriggerInspection
SqlTriggerTransitionInspection
SqlTypeInspection
SqlUnicodeStringLiteralInspection
SqlUnreachableCodeInspection
SqlUnusedCteInspection
SqlUnusedSubqueryItemInspection
SqlUnusedVariableInspection
SqlWithoutWhereInspection
YAML
Here is the list of YAML inspections that were added to 2022.3 in all linters except the Qodana Community for JVM linter.
YAMLDuplicatedKeys
YAMLRecursiveAlias
YAMLSchemaDeprecation
YAMLSchemaValidation
YAMLUnresolvedAlias
YAMLUnusedAnchor
By default, these inspections are disabled in Qodana.
HTML
The HtmlWrongAttributeValue
inspection reporting about incorrect HTML attribute values vas implemented in all linters.