Inspectopedia 2026.2 Help

New Inspections in This Release

C/C++

Name

Available in

Description

#warning directive

CLion 2026.2

#warning preprocessor directive.

Awaiter type is not a class

CLion 2026.2

The awaiter type must be a a class according to the C++20 standard.

Cannot resolve a required coroutine function

CLion 2026.2

A coroutine-related function which is required by the C++20 standard cannot be resolved.

Default initialization of a const-qualified object of a type without a user-provided default constructor

CLion 2026.2

Default initialization of a const-qualified object of a type without a user-provided default constructor.

Designated initializers can be used

CLion 2026.2

Aggregate initialization can use designated initializers for better readability.

Discarded 'if constexpr' branch

CLion 2026.2

Discarded 'if constexpr' branch.

Enforce braces in 'do-while' statement

CLion 2026.2

Use braces to separate 'do-while' statement body.

Enforce braces in 'for' statement

CLion 2026.2

Use braces to separate 'for' statement body.

Enforce braces in 'if' statement

CLion 2026.2

Use braces to separate 'if' statement body.

Enforce braces in 'while' statement

CLion 2026.2

Use braces to separate 'while' statement body.

Enforce function declaration style

CLion 2026.2

Enforce usage of the trailing return type or the regular return type syntax.

Enforce nested namespaces style

CLion 2026.2

Enforce the syntax used to define nested namespaces.

Enforce overriding destructor style

CLion 2026.2

Enforce the 'virtual' and 'override' specifiers on overriding destructors.

Enforce overriding function style

CLion 2026.2

Enforce the 'virtual' and 'override' specifiers on overriding functions.

Enforce the order of cv-qualifiers

CLion 2026.2

Enforce the order of cv-qualifiers.

Enforce the placement of cv-qualifiers

CLion 2026.2

Enforce the placement of cv-qualifiers.

Enforce type alias code style

CLion 2026.2

Enforce usage of typedefs or type aliases depending on the syntax style setting.

Entity can have internal linkage

CLion 2026.2

An entity can be made static or moved into an anonymous namespace to enforce internal linkage.

Explicit specialization in non-namespace scope

CLion 2026.2

Explicit specializations of a template in non-namespace scope.

Numeric type can be replaced with auto

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.

Precompiled header is not found

CLion 2026.2

No corresponding file with the 'Precompiled Header' property set to 'Create' (/Yc) is found.

Precompiled header is not included

CLion 2026.2

Precompiled header must be included at the top of source file.

Qualified name refers to a member overridden in a subclass

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.

Redeclaration of a template parameter from an outer scope

CLion 2026.2

A template parameter from an outer scope is shadowed by a declaration with the same name.

Redundant whitespaces at the end of a line

CLion 2026.2

Redundant whitespace characters at the end of a line.

Reference class member with 'mutable' specifier

CLion 2026.2

Reference class members cannot have 'mutable' specifier.

Remove redundant braces

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.

static_assert failed

CLion 2026.2

static_assert failed.

Tabs are prohibited

CLion 2026.2

Prohibits the use of tabulation character everywhere in file.

The 'out' parameter must be assigned

CLion 2026.2

In HLSL 'out' parameters must be assigned before exiting the function.

Type can be replaced with auto

CLion 2026.2

Type can be replaced with 'auto'.

Uninitialized dependent base class

CLion 2026.2

Possibly uninitialized dependent base class.

Union member of reference type

CLion 2026.2

Unions cannot contain non-static data members of reference types.

Use of an incomplete type inside a template

CLion 2026.2

An incomplete type is used inside a template declaration or definition.

User-defined literal suffixes must start with an underscore

CLion 2026.2

User-defined literal suffixes must start with an underscore.

Database

Name

Available in

Description

Unused variable

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

'errors.As' can be replaced with 'errors.AsType'

GoLand 2026.2, Qodana for Go 2026.2

Reports calls to errors.As that can be replaced with errors.AsType.

'HasPrefix' and 'TrimPrefix' can use 'strings.CutPrefix'

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.

'interface{}' can be replaced with 'any'

GoLand 2026.2, Qodana for Go 2026.2

Reports type declarations that use interface{} and can be simplified by using any.

'Len()'/'At()' loop can be replaced with iterator

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).

'omitempty' tag on a struct field can be changed

GoLand 2026.2, Qodana for Go 2026.2

Reports JSON struct tags that use ,omitempty on struct-typed fields.

'reflect.TypeOf' can be replaced with ‘reflect.TypeFor’

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().

'sort.Slice' can be replaced with 'slices.Sort'

GoLand 2026.2, Qodana for Go 2026.2

Reports calls to sort.Slice where the comparison function only compares elements with the < operator.

'strings.Index' and slicing can use 'strings.Cut'

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.

Address can be built with 'net.JoinHostPort'

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).

Apply 'atomictypes' go fix

GoLand 2026.2, Qodana for Go 2026.2

Reports opportunities found by go fix -json -atomictypes.

Apply 'buildtag' go fix

GoLand 2026.2, Qodana for Go 2026.2

Reports opportunities found by go fix -json -buildtag.

Apply 'fmtappendf' go fix

GoLand 2026.2, Qodana for Go 2026.2

Reports opportunities found by go fix -json -fmtappendf.

Apply 'unsafefuncs' go fix

GoLand 2026.2, Qodana for Go 2026.2

Reports opportunities found by go fix -json -unsafefuncs.

Backward slice loop can use 'slices.Backward'

GoLand 2026.2, Qodana for Go 2026.2

Reports reverse index loops over slices that can be replaced with slices.Backward.

Conditional assignment can be replaced with 'min' or 'max'

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).

Counted loop can be replaced with range over integer

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).

Declaration marked with '//go:fix inline' can be inlined

GoLand 2026.2, Qodana for Go 2026.2

Reports references to functions or constants marked with //go:fix inline.

Map loop can be replaced with the 'maps' function

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.

Nested embedded field literals can be removed

GoLand 2026.2, Qodana for Go 2026.2

Reports composite literals that initialize a promoted field through an embedded struct literal.

Obsolete '+build' line

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.

Pointer helper call can be replaced with 'new()'

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(...).

Redundant range variable shadowing

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.

Slice search loop can be replaced with 'slices.Contains'

GoLand 2026.2, Qodana for Go 2026.2

Reports loops that check whether a slice contains a value by comparing each element with ==.

String concatenation can use 'strings.Builder'

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).

Struct field alignment

GoLand 2026.2, Qodana for Go 2026.2

Reports Go struct types where reordering fields would reduce memory usage by minimizing padding.

Test context cancellation can use 't.Context()'

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().

WaitGroup goroutine pattern can use 'WaitGroup.Go'

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

'for' loop may be replaced by 'while' loop

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.

Incompatible bitwise mask operation

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports bitwise mask expressions which are guaranteed to evaluate to true or false.

Non-serializable field in a 'Serializable' class

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports non-serializable fields in classes that implement java.io.Serializable.

Redundant call to 'String.format()'

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports calls to methods like format() and printf() that can be safely removed or simplified.

Redundant lambda parameter types

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.

Redundant type cast

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.

Single character string concatenation

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports concatenation with string literals that consist of one character.

Unchecked warning

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports code on which an unchecked warning will be issued by the javac compiler.

Unused label

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

Equality operator may cause type coercion

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.

Overly complex function

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

'equals()' between objects of inconvertible types

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.

Covariant 'equals()'

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.

Redundant double negation

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports redundant double negations.

Throwable not thrown

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports instantiations of Throwable or its subclasses, when the created Throwable is never actually thrown.

Unused variable

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

This inspection reports variables that are not used.

Python

Name

Available in

Description

Suspicious relative imports

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.

The truth value of a DataFrame is ambiguous

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.

Unused imports

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

Deprecated RSpec syntax

Qodana for Ruby 2026.2, RubyMine 2026.2

Reports use of syntax deprecated in RSpec 4.

Rust

Name

Available in

Description

Cargo project loading

RustRover 2026.2

Reports Cargo projects that failed to load during Qodana analysis.

Procedural macro used in the crate where it is defined

CLion 2026.2, RustRover 2026.2

Reports procedural macros invoked from the same crate that defines them.

Security

Name

Available in

Description

Serializable class in secure context

IntelliJ IDEA 2026.2, Qodana for JVM 2026.2

Reports classes that may be serialized or deserialized.

Spring

Name

Available in

Description

Serializable class without 'serialVersionUID'

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

Section order

JetBrains Rider 2026.1, Qodana for .NET 2026.1

Reports sections that appear out of order in TSCN and TRES files.

Last modified: 15 July 2026