New Inspections in This Release
C/C++
Name | Available in | Description |
|---|---|---|
CLion 2026.2 | #warning preprocessor directive. | |
CLion 2026.2 | The awaiter type must be a a class according to the C++20 standard. | |
CLion 2026.2 | A coroutine-related function which is required by the C++20 standard cannot be resolved. | |
CLion 2026.2 | Default initialization of a const-qualified object of a type without a user-provided default constructor. | |
CLion 2026.2 | Aggregate initialization can use designated initializers for better readability. | |
CLion 2026.2 | Discarded 'if constexpr' branch. | |
CLion 2026.2 | Use braces to separate 'do-while' statement body. | |
CLion 2026.2 | Use braces to separate 'for' statement body. | |
CLion 2026.2 | Use braces to separate 'if' statement body. | |
CLion 2026.2 | Use braces to separate 'while' statement body. | |
CLion 2026.2 | Enforce usage of the trailing return type or the regular return type syntax. | |
CLion 2026.2 | Enforce the syntax used to define nested namespaces. | |
CLion 2026.2 | Enforce the 'virtual' and 'override' specifiers on overriding destructors. | |
CLion 2026.2 | Enforce the 'virtual' and 'override' specifiers on overriding functions. | |
CLion 2026.2 | Enforce the order of cv-qualifiers. | |
CLion 2026.2 | Enforce the placement of cv-qualifiers. | |
CLion 2026.2 | Enforce usage of typedefs or type aliases depending on the syntax style setting. | |
CLion 2026.2 | An entity can be made static or moved into an anonymous namespace to enforce internal linkage. | |
CLion 2026.2 | Explicit specializations of a template in non-namespace scope. | |
CLion 2026.2 | A numeric type can be replaced with 'auto'. | |
Order of #include directives does not match code style settings | CLion 2026.2 | Order of #include directives does not match code style settings. |
Order of definitions does not match the order of declaration | CLion 2026.2 | Order of definitions does not match the order of declaration. |
Order of member initializers does not match the initialization order | CLion 2026.2 | Order of member initializers does not match the initialization order. |
CLion 2026.2 | No corresponding file with the 'Precompiled Header' property set to 'Create' (/Yc) is found. | |
CLion 2026.2 | Precompiled header must be included at the top of source file. | |
CLion 2026.2 | A qualified reference to a virtual function uses an ancestor class as the qualifier, while a closer base class overrides that function. | |
CLion 2026.2 | A template parameter from an outer scope is shadowed by a declaration with the same name. | |
CLion 2026.2 | Redundant whitespace characters at the end of a line. | |
CLion 2026.2 | Reference class members cannot have 'mutable' specifier. | |
CLion 2026.2 | Braces can be safely removed without changing code semantics. | |
Slash symbol used in #include directive does not match code style settings | CLion 2026.2 | Slash symbol used in #include directive does not match code style settings. |
CLion 2026.2 | static_assert failed. | |
CLion 2026.2 | Prohibits the use of tabulation character everywhere in file. | |
CLion 2026.2 | In HLSL 'out' parameters must be assigned before exiting the function. | |
CLion 2026.2 | Type can be replaced with 'auto'. | |
CLion 2026.2 | Possibly uninitialized dependent base class. | |
CLion 2026.2 | Unions cannot contain non-static data members of reference types. | |
CLion 2026.2 | An incomplete type is used inside a template declaration or definition. | |
CLion 2026.2 | User-defined literal suffixes must start with an underscore. |
Database
Name | Available in | Description |
|---|---|---|
CLion 2026.2, DataGrip 2026.2, GoLand 2026.2, IntelliJ IDEA 2026.2, JetBrains Rider 2026.1, PhpStorm 2026.2, PyCharm 2026.2, Qodana for .NET 2026.1, Qodana for Go 2026.2, Qodana for JS 2026.2, Qodana for JVM 2026.2, Qodana for PHP 2026.2, Qodana for Ruby 2026.2, RubyMine 2026.2, RustRover 2026.2, WebStorm 2026.2 | Reports unused arguments, variables, or parameters. |
Go
Name | Available in | Description |
|---|---|---|
GoLand 2026.2, Qodana for Go 2026.2 | Reports calls to errors.As that can be replaced with errors.AsType. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports code that checks a prefix with strings.HasPrefix and then removes the same prefix with strings.TrimPrefix. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports type declarations that use interface{} and can be simplified by using any. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports index-based loops over standard library types where the loop body only accesses elements by index, such as x.At(i). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports JSON struct tags that use ,omitempty on struct-typed fields. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports uses of reflect.TypeOf where the type is known at compile time, such as reflect.TypeOf(T{}) and reflect.TypeOf((*T)(nil)).Elem(). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports calls to sort.Slice where the comparison function only compares elements with the < operator. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports code that uses strings.Index to find a separator and then slices the string manually. | |
'strings.Split' or 'strings.Fields' loop can use a 'Seq' variant | GoLand 2026.2, Qodana for Go 2026.2 | Reports loops that range over strings.Split or strings.Fields. |
GoLand 2026.2, Qodana for Go 2026.2 | Reports addresses built with fmt.Sprintf("%s:%d", host, port) or fmt.Sprintf("%s:%s", host, port). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports opportunities found by go fix -json -atomictypes. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports opportunities found by go fix -json -buildtag. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports opportunities found by go fix -json -fmtappendf. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports opportunities found by go fix -json -unsafefuncs. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports reverse index loops over slices that can be replaced with slices.Backward. | |
GoLand 2026.2, Qodana for Go 2026.2 | Syntax update: replace conditional assignment with min or max Reports if statements that assign one of two values to the same variable and can be replaced with the built-in min or max function (Go 1.21 or later). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports three-clause for loops of the form for i := 0; i < n; i++ that can be replaced with for i := range n (Go 1.22 or later). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports references to functions or constants marked with //go:fix inline. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports loops that copy a map or collect its keys or values and can be replaced with maps.Copy, maps.Keys, or maps.Values. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports composite literals that initialize a promoted field through an embedded struct literal. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports // +build lines that are no longer needed because the file already contains a matching //go:build directive. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports calls to pointer helper functions that return the address of a parameter, such as IntPtr(x) returning &x, and can be replaced with new(...). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports redundant variable shadowing inside a for range loop, such as x := x, that was previously used to capture the loop variable for a goroutine or closure. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports loops that check whether a slice contains a value by comparing each element with ==. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports index-based loops over standard library types where the loop body only accesses elements by index, such as x.At(i). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports Go struct types where reordering fields would reduce memory usage by minimizing padding. | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports test code that creates a cancellable context with context.WithCancel(context.Background()) and immediately defers cancel(). | |
GoLand 2026.2, Qodana for Go 2026.2 | Reports the common WaitGroup pattern that uses wg.Add(1), starts a goroutine, and defers wg.Done(). |
Java
Name | Available in | Description |
|---|---|---|
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports for loops that contain neither initialization nor update components, and suggests converting them to while loops. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports bitwise mask expressions which are guaranteed to evaluate to true or false. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports non-serializable fields in classes that implement java.io.Serializable. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports calls to methods like format() and printf() that can be safely removed or simplified. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports lambda formal parameter types that are redundant because they can be inferred from the context. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports unnecessary cast expressions. | |
Serializable class without 'readObject()' and 'writeObject()' | IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports Serializable classes that do not implement readObject() and writeObject() methods. |
Serializable non-'static' inner class with non-Serializable outer class | IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports non-static inner classes that implement Serializable and are declared inside a class that doesn't implement Serializable. |
Serializable non-static inner class without 'serialVersionUID' | IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports non-static inner classes that implement java.io.Serializable, but do not define a serialVersionUID field. |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports concatenation with string literals that consist of one character. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports code on which an unchecked warning will be issued by the javac compiler. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports labels that are not targets of any break or continue statements. |
JavaScript
Name | Available in | Description |
|---|---|---|
CLion 2026.2, GoLand 2026.2, IntelliJ IDEA 2026.2, JetBrains Rider 2026.1, PhpStorm 2026.2, PyCharm 2026.2, Qodana for .NET 2026.1, Qodana for Go 2026.2, Qodana for JS 2026.2, Qodana for JVM 2026.2, Qodana for PHP 2026.2, Qodana for Ruby 2026.2, RubyMine 2026.2, RustRover 2026.2, WebStorm 2026.2 | Reports a usage of an equality operator that may cause unexpected type coercions. | |
CLion 2026.2, GoLand 2026.2, IntelliJ IDEA 2026.2, JetBrains Rider 2026.1, PhpStorm 2026.2, PyCharm 2026.2, Qodana for .NET 2026.1, Qodana for Go 2026.2, Qodana for JS 2026.2, Qodana for JVM 2026.2, Qodana for PHP 2026.2, Qodana for Ruby 2026.2, RubyMine 2026.2, RustRover 2026.2, WebStorm 2026.2 | Reports a function with too many branching points in a function (too high cyclomatic complexity). |
Kotlin
Name | Available in | Description |
|---|---|---|
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports calls to equals() where the receiver and the argument are of incompatible primitive, enum, or string types. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports equals() that takes an argument type other than Any? if the class does not have another equals() that takes Any? as its argument type. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports redundant double negations. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports instantiations of Throwable or its subclasses, when the created Throwable is never actually thrown. | |
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | This inspection reports variables that are not used. |
Python
Name | Available in | Description |
|---|---|---|
CLion 2026.2, IntelliJ IDEA 2026.2, PyCharm 2026.2, Qodana for JVM 2026.2 | Reports usages of relative imports inside plain directories, for example, directories neither containing __init__.py nor explicitly marked as namespace packages. | |
CLion 2026.2, IntelliJ IDEA 2026.2, PyCharm 2026.2, Qodana for JVM 2026.2 | Reports ambiguous usage of a pandas DataFrame or Series in a boolean context, such as if, while, or logical expressions. | |
CLion 2026.2, IntelliJ IDEA 2026.2, PyCharm 2026.2, Qodana for JVM 2026.2 | Reports unused import statements in Python code. |
Ruby
Name | Available in | Description |
|---|---|---|
Qodana for Ruby 2026.2, RubyMine 2026.2 | Reports use of syntax deprecated in RSpec 4. |
Rust
Name | Available in | Description |
|---|---|---|
RustRover 2026.2 | Reports Cargo projects that failed to load during Qodana analysis. | |
CLion 2026.2, RustRover 2026.2 | Reports procedural macros invoked from the same crate that defines them. |
Security
Name | Available in | Description |
|---|---|---|
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports classes that may be serialized or deserialized. |
Spring
Name | Available in | Description |
|---|---|---|
IntelliJ IDEA 2026.2, Qodana for JVM 2026.2 | Reports classes that implement Serializable and do not declare a serialVersionUID field. |
Tscn
Name | Available in | Description |
|---|---|---|
JetBrains Rider 2026.1, Qodana for .NET 2026.1 | Reports sections that appear out of order in TSCN and TRES files. |