New Inspections in This Release
Angular2
Name | Description |
---|---|
Reports problems with @let declaration usages. |
Angular2html
Name | Description |
---|---|
Reports problems with Angular blocks. | |
Reports that the type of variable to iterate over does not have [Symbol.iterator]() method, which returns an iterator. | |
Reports issues with triggers in `on` parameters in `@defer` block. |
Aoptarget
Name | Description |
---|---|
Advice parameters (argNames, returning, throwing) consistency check | Reports if an @AspectJ argNames attribute value does not correspond to the actual method parameter name. |
When using @Around advice, remember two things: Calling org.aspectj.lang.ProceedingJoinPoint#proceed is necessary, otherwise the call won't reach the target. | |
Reports @AspectJ Introduction inconsistency: it checks whether the defaultImpl is required and if yes, whether it implements the given interface. | |
Validates @Pointcut methods: the void return type, no throws clause, and an empty method body. | |
Reports if an argNames attribute is not defined in an @AspectJ annotation. |
Blade
Name | Description |
---|---|
Reports the Blade control directives that are not closed with the corresponding @end.. |
C#
Name | Description |
---|---|
Reports methods, classes and files whose coverage is below a certain threshold. |
CSS
Name | Description |
---|---|
Reports an rgb(), hsl(), or other color function. | |
Reports an hsl() or hwb() color function or a hexadecimal color notation. | |
Reports a deprecated CSS value. | |
Reports a missing required syntax, inherits, or initial-value property in a declaration of a custom property. | |
Reports an invalid custom property name. | |
Reports an unknown CSS function or an incorrect function parameter. | |
Reports an unknown CSS media feature or an incorrect media feature value. | |
Reports a nested selector starting with an identifier or a functional notation. | |
Reports an incorrect CSS property value. | |
Reports an incorrect CSS pseudo-class pseudo-element. | |
Reports a CSS type selector that matches an unknown HTML element. | |
Reports a misplaced @import statement. | |
Reports a misplaced @charset at-rule or an incorrect charset value. | |
Reports a multi-line selector. | |
Verifies that the font-family property contains a generic font family name as a fallback alternative. | |
Reports a missing semicolon at the end of a declaration. | |
Reports a negative value of a CSS property that is not expected to be less than zero, for example, object width or height. | |
Reports a non-integer length in pixels. | |
Reports a duplicated CSS property within a ruleset. | |
Reports a set of longhand properties. | |
Reports a set of longhand CSS properties and suggests replacing an incomplete set of longhand CSS properties with a shorthand form, which is however not 100% equivalent in this case. | |
Reports a CSS property that is not supported by the specified browsers. | |
Reports a measure unit of a zero value where units are not required by the specification. | |
Reports a discrepancy detected by the Stylelint linter. | |
Reports an unknown CSS at-rule. | |
Reports an unknown CSS property or a property used in a wrong context. | |
Reports an unknown unit. | |
Reports a CSS class reference in the 'composes' rule that cannot be resolved to any valid target. | |
Reports an unresolved reference to a custom property among the arguments of the var() function. | |
Reports a CSS class or an element IDs that appears in selectors but is not used in HTML. | |
Reports a discrepancy detected by the W3C CSS Validator. |
Cmake
Name | Description |
---|---|
Reports a usage of a deprecated command. | |
Reports mismatched arguments in opening- and closing commands. |
Coffeescript
Name | Description |
---|---|
Reports a module that is not referenced through an import statement. |
Commandline
Name | Description |
---|---|
Reports the problems if the arguments of the command you type in the console are not in the proper order. |
Cronexp
Name | Description |
---|---|
Reports invalid cron expression. |
Cython
Name | Description |
---|---|
Reports Cython variables being referenced before declaration. |
DTS
Name | Description |
---|---|
Reports duplicated elements inside a node. | |
Reports invalid array element size. | |
Reports if an entry is not valid in its current location. | |
Reports if property and node entries are in the wrong order. | |
Reports invalid node names. | |
Reports invalid property names. | |
Reports properties with invalid type. | |
Reports const properties with invalid values. | |
Reports enum properties with invalid values. | |
Reports invalid unit names inside node names. | |
Reports missing required properties. | |
Reports undeclared properties. |
Djangotemplate
Name | Description |
---|---|
Reports #} line comment ends in Django templates that do not have a matching line comment start. | |
Reports incorrect names of the closing blocks. | |
Reports a missing url in the url tag. | |
Reports duplicated block names in Django templates. | |
Reports features that are not available in the current Django version. | |
Reports missing parameters in the template file if the url() function has parameters in its URL path. | |
Reports missing whitespaces before and after comparison operators in Django templates. | |
Reports cases when opening tags in Django templates are not correctly matched by closing tags. | |
Reports the {% extends %} tag that is not the first tag in a Django template. | |
Reports unresolved filters in Django templates. | |
Reports unresolved references in Django load tags. | |
Reports unresolved references to static resources. | |
Reports unresolved tags in Django templates. | |
Reports unresolved file references in string literals of extends> and include> Django tags. |
Dockerfile
Name | Description |
---|---|
Reports a single quoted string in JSON array format. | |
Reports invalid destination directories in ADD and COPY commands. | |
Reports incorrect spacing for key-value pairs in ARG, ENV, and LABEL commands. | |
Reports missing continuation characters in RUN command. | |
Reports invalid number of arguments for the Dockerfile commands. |
EL
Name | Description |
---|---|
Reports dynamic expressions where deferred expressions are expected and vice versa. | |
Reports different number of formal and actual parameters in EL function call. | |
Reports method calls in EL that don't match method-signature constraints in TLD files. | |
Reports possible EL problems, such as unresolved references and invalid EL locations. | |
Reports possible problems caused by non-standard EL extensions: JSF EL expressions outside attributes, non-standard EL expressions, and so on. | |
Reports non-safe data in unescaped EL expressions in JSP pages. |
Ecmascript 6
Name | Description |
---|---|
Reports a class member initializer which references another non-hoisted class member while the latter may be not initialized yet. |
Editorconfig
Name | Description |
---|---|
Reports EditorConfig properties that are no longer supported. | |
Reports wildcard patterns in the EditorConfig section that contain a duplicate character in the character class, for example [aa]. | |
Reports file patterns that are redundant as there already are other patterns that define the same scope of files or even a broader one. | |
Reports sections that define the same file pattern as other sections. | |
Reports sections with an empty header. | |
Reports sections that do not contain any EditorConfig properties. | |
Reports multiple top-level declarations. | |
Verifies the whole file using the backing EditorConfig core library and reports any failures. | |
Reports identifiers that are either unknown or have a wrong type. | |
Reports sections with wildcard patterns that do not match any files under the directory in which the .editorconfig file is located. | |
Reports duplicates in lists of values. | |
Reports subsets of files specified in the current section that overlap with other subsets in other sections. | |
Reports properties that are already defined in other sections. | |
Reports properties that override the same properties defined earlier in the file. | |
Reports properties that are redundant when another applicable section already contains the same property and value. | |
Reports wildcards that become redundant when the “** ” wildcard is used in the same section. | |
Reports properties that miss the required declarations. | |
Reports space characters in wildcard patterns that affect pattern matching. | |
Reports sections that contain too many wildcards. | |
Reports commas that cannot be used in the current context. | |
Reports key-value pairs that are not allowed in the current context. | |
Reports unexpected top-level declarations. | |
Reports lists of values that are used in properties in which lists are not supported. | |
Reports pattern lists that are either empty {} or contain just one pattern, for example {foo} in contrast to a list containing multiple patterns, for example {foo,bar}. | |
Reports character classes that consist of a single character. | |
Reports unused declarations. |
FTL
Name | Description |
---|---|
Reports FreeMarker language errors. | |
Reports deprecated built-ins (for example, default, exists, if_exists, web_safe). | |
Reports malformed FreeMarker directives (for example, wrong nesting, missing closing tags, and so on). | |
Reports incorrect FreeMarker expression types. | |
Reports FreeMarker calls that do not match the macro declaration (for example, missing parameters, wrong type, and so on). | |
Reports unresolved #macro and #function directives located in other files. |
Flow js
Name | Description |
---|---|
Reports JavaScript code fragments that are not covered by the Flow type checker. | |
Reports a @flow flag comment that is not located at the top of a file. | |
Reports a JavaScript file with a @flow flag that doesn't have an associated .flowconfig file in the project. |
Gherkin
Name | Description |
---|---|
Reports a table if there is at least one row with the number of cells different from the number of cells in the table header. | |
Reports Background sections that are located incorrectly. | |
Reports Examples sections in Cucumber .feature files if they do not have ':' after the Examples keyword. | |
Reports scenario outlines in Cucumber .feature files that do not have the Examples section. | |
Reports Gherkin scenarios that contain an Examples section. | |
Reports steps in Cucumber (or some other Gherkin) .feature files that do not have matching step definitions. | |
Reports tables in Examples sections in Cucumber .feature files with unused or missing columns. |
Githubexpressionlanguage
Name | Description |
---|---|
Reports invalid GitHub Actions Expression language standard library function calls For more information on GitHub Actions Expression language, see the GitHub documentation. |
Gotemplate
Groovy
Name | Description |
---|---|
Reports break and continue statements inside of finally blocks. | |
Reports calls to notify() and notifyAll() not within a corresponding synchronized statement or synchronized method. | |
Reports return statements at the end of closures which can be made implicit. | |
Reports calls to wait() not made inside a loop. | |
Reports calls to wait() not made inside a corresponding synchronized statement or synchronized method. | |
Reports unused @DelegatesTo.Target annotations and unresolved @DelegatedTo.target annotation attribute values. | |
Reports unresolved argument labels in calls of methods annotated by @NamedVariant/@NamedParam/@NamedDelegate. | |
Reports annotation @groovy.transform.stc.POJO applied without @groovy.transform.CompileStatic. | |
Reports constructors of classes annotated by @Singleton unless it is declared non-strict. | |
Reports unresolved identifiers in @TupleConstructor and @MapConstructor includes and excludes annotation attribute values. | |
Reports accesses to a non-constant static field which is locked on either this or an instance field of this. | |
Detects usages of Gradle plugin com.jfrog.bintray. | |
Builds will no longer be able to resolve artifacts from JCenter after February 1st, 2022 | Detects usages of the JCenter repository to resolve dependencies. |
Reports calls to java.util.List.get() methods. | |
Reports calls to java.util.List.set() methods. | |
Reports calls to java.util.Map.get() methods. | |
Reports calls to java.util.Map.put() methods. | |
Reports calls to System.runFinalizersOnExit(). | |
Reports calls to Thread.stop(),Thread.suspend(), or Thread.resume(). | |
Reports boolean methods which can be accessed via the same property name. | |
Reports classes which implement two or more traits that contain methods with same signatures. | |
Reports if statements with boolean constant as a condition. | |
Reports deprecated dependencies in Gradle build scripts. | |
Reports duplicated expressions in case labels for switch statements. | |
Reports synchronized statements with empty bodies. | |
Reports switch expressions that do not cover all possible outcomes of the matched expression. | |
Reports uninitialized final fields, invalid assignments to final variables, and parameters and fields. | |
Reports statements which use a groovy.lang.GString object as a key to map. | |
Reports if statements with identical "then" and else branches. | |
Reports if statements with too many branches. | |
Reports calls with no arguments to method that has exactly one parameter. | |
Reports references which exceed access rights. | |
Reports usages of membership operator in with items and containers of incompatible types. | |
Incompatible kotlinx.coroutines dependency is used with Kotlin 1.3+ in Gradle | Reports kotlinx.coroutines library dependencies in Gradle that should be updated to be compatible with Kotlin 1.3+. |
Reports assignments with incompatible types. | |
Reports types used in ranges that do not have a next() or previous() method or do not implement the java.lang.Comparable interface. | |
Reports instance methods whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports instance variables whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports properties accessed via method calls. | |
Reports that Gradle plugin version isn't properly supported in the current IDE plugin. | |
Reports different Kotlin stdlib and compiler versions. | |
Reports labels already used in parent workflow. | |
Reports local variables assigned to expression with different type inside of closure or anonymous class. | |
Reports method calls that can be replaced with operator invocations. | |
Reports the usage of multiple URLs per repository (maven or ivy) block. | |
Reports named arguments of a default class constructor call which don't correspond to properties of this class. | |
Reports if statements which contain else branches and whose conditions are negated. | |
Reports switch statements that are nested inside other switch statements. | |
Reports new instance creation of classes annotated with @groovy.lang.Singleton. | |
Reports the non-short-circuit forms of boolean operators 'and' and 'or' ( & and | ). | |
Reports permitted classes that do not extend the sealed base class. | |
Reports non-final, non-private fields which are accessed in a synchronized context. | |
Reports operator invocations that can be replaced with method calls. | |
Reports files with a declared package that does not match the package expected. | |
Reports possible NullPointerException during chain methods or properties call. | |
Reports assignments of a variable to itself. | |
Reports static methods whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports static variables whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports strings with quotation that doesn't match code style. | |
Reports switch statements that do not contain default labels. | |
Reports synchronized statements where the lock expression is a non-final field. | |
Reports synchronized blocks which lock on an object which is initialized with a literal. | |
Reports the synchronized modifier on methods. | |
Reports ternary expressions. | |
Reports ternary expressions which can be replaced by an elvis expression. | |
Reports ternary expressions which can be replaced by a safe call. | |
Reports ternary expressions with identical "then" and "else" branches. | |
Reports files which can be custom type checkers and are not added to compiler resources yet. | |
Reports unchecked assignments from members of raw type. | |
Reports wait() being called unconditionally within a synchronized context. | |
Reports unnecessary def modifiers when used with explicit type declaration. | |
Reports unnecessary final modifiers when used with the record definition. | |
Reports unnecessary non-sealed modifiers which used on methods, fields, or variables. | |
Reports unnecessary public modifiers as Groovy classes and methods are public by default. | |
Reports unnecessary sealed modifiers which used on methods, fields, or variables. | |
Reports unnecessary import aliases. | |
Reports fully qualified references, which can be replaced with import. | |
Reports unresolved references inside GroovyDoc comments. | |
Reports reference expressions which cannot be resolved. | |
Reports non-synchronized methods overriding synchronized methods. | |
Reports reference expressions whose type can't be determined. | |
Reports unused incrementing and decrementing expressions. | |
Reports parameters or local variables that may have a final modifier added. | |
Reports variables that might not have been initialized. | |
Reports while loops, which spin on the value of a non-volatile field, waiting for it to be changed by another thread. |
HCL
Name | Description |
---|---|
Reports conflicting properties in an HCL block. | |
Reports deprecated blocks or properties. | |
Reports duplicate outputs. | |
Reports duplicate properties inside one block. | |
Reports duplicate providers. | |
Reports duplicate variables. | |
Reports old style HCL expressions and suggests converting them to HCL2 expressions. | |
Reports illegal interpolations. | |
Reports errors in vars files. | |
Reports incorrect variable type. | |
Reports invalid block labels or incorrect number of labels according to the schema. | |
Reports string and number invalid literals. | |
Reports blocks with missing required properties. | |
Reports suboptimal HCL2 expressions and suggests simplifications. | |
Reports if terraform was not initialized in the current working directory. | |
Reports blocks with an unknown type (first literal). | |
Detects resources/datasources provided by an unknown provider. | |
Reports unresolved modules and suggests running terraform get to update the modules. |
HIL
Name | Description |
---|---|
Reports operations incorrect argument types. | |
Reports usage of unavailable scopes, e.g. | |
Reports unknown (non-used in module) resource type usage. |
Haml
Name | Description |
---|---|
Reports a Haml tag whose contents are neither on the same line nor nested. |
Handlebars
Name | Description |
---|---|
Reports an if, each, or with block helper without an argument. |
Html
Name | Description |
---|---|
Reports any package.html files which are used for documenting packages. | |
Detects duplicate element IDs. | |
Reports an HTML non-boolean attribute without a value. | |
Reports a URL of an external JavaScript library that is not associated with any locally stored file. | |
Reports an HTML element without a closing tag. | |
Reports redundant closing tags on empty elements, for example, img or br. | |
Detects <title> tags that do not affect the topic title. | |
. | |
Detects media references in Writerside XML tags that do not match their expected media types, e.g., image references in <video> tags. | |
Reports an unknown HTML attribute. | |
Reports an unknown HTML tag. | |
Highlights unresolved references in Writerside XML topics as errors. |
Htmlcompatible
Name | Description |
---|---|
Reports a component that is matched on an embedded template element <ng-template> or multiple components matched on any other element. | |
Reports a text or tag occurrence inside a <ng-content> tag used for content projection. | |
Reports a binding to an event property or attribute, for example, [onclick] or [attr.onclick] instead of (click). | |
Reports an invalid assignment of an animation trigger. | |
Reports a mismatch between actual and expected directive binding type. | |
Reports a problem with a i18n-* attribute. | |
Reports issues related to usage of ngSrc (NgOptimizedDirective) on img tags. | |
Reports a missing event handler statement for an event binding. | |
Reports a missing binding for a required directive input. | |
Reports multiple structural directives (*ngIf, *ngFor, etc.) on one element. | |
Reports a template reference variable that is not assigned to a directive when using exportAs or is assigned to multiple directives. | |
Reports an undefined property, event, or structural directive bindings on elements. | |
Reports a tag defined by a component or directive out of the current scope. | |
Reports an unresolved pipe. | |
Reports an incorrect HTML attribute value. |
Http request
Name | Description |
---|---|
Reports a $placeholder inside a request. | |
Reports unnecessary `grpc` or standard `http[s]` schemes usage in gRPC requests. | |
Reports inappropriate usage of HTTP protocol keyword, e.g. | |
Reports unknown HTTP headers that do not match any publicly known headers. | |
Reports an explicitly set Content-Length header. | |
Reports possible custom HTTP methods. | |
Highlights references to non-existent Auth configurations. | |
Reports variables undeclared in the current environment HTTP Client. | |
Highlights spaces inside URL path segments. |
Ignorelang
Name | Description |
---|---|
Reports duplicate entries (patterns) in the ignore file (e.g. |
Ini
Name | Description |
---|---|
Reports duplicate properties in the ini file section. | |
Reports duplicate sections in the ini file. |
JVM
Name | Description |
---|---|
Reports actions, action groups and other ActionUpdateThreadAware classes that implicitly state the deprecated and costly ActionUpdateThread.OLD_EDT mode. | |
Reports plugin components and actions that are not registered in a plugin.xml descriptor. | |
Reports extension classes that are non-final or public. | |
Reports references in modules without module-info.java on packages which are not exported from named modules. | |
Reports JUnit annotated methods when used in a test case from a different JUnit version. | |
Reports classes annotated with the @com.intellij.openapi.components.Service annotation that are not final. | |
Reports mismatches between light service levels and its constructors. |
Jade
Name | Description |
---|---|
Reports use of spaces and tabs for indentation in a Pug file. |
Java
Name | Description |
---|---|
Reports any import statements that cover entire packages ('* imports'). | |
Reports usages of <code> tags in Javadoc comments. | |
Reports methods and fields in the Serializable and Externalizable classes that are suitable to be annotated with the java.io.Serial annotation. | |
Reports methods and fields in the Serializable and Externalizable classes that are not suitable to be annotated with the java.io.Serial annotation. | |
Reports fields of types: java.util.concurrent.atomic.AtomicLongFieldUpdater java.util.concurrent.atomic.AtomicIntegerFieldUpdater java.util.concurrent.atomic.AtomicReferenceFieldUpdater that are not static final. | |
Reports calls to BigDecimal.divide() or BigDecimal.setScale() that use integer constants to specify the rounding mode. | |
Reports Channel resources that are not safely closed, including any instances created by calling getChannel() on a file or socket resource. | |
Reports instantiations of the java.lang.ClassLoader class. | |
Reports Collection.toArray() calls that are not in the preferred style, and suggests applying the preferred style. | |
Reports calls of Collections.sort(list, comparator) which can be replaced with list.sort(comparator). | |
Reports classes that implement java.lang.Comparable but do not override equals(). | |
Reports classes that implement java.lang.Comparator, but do not implement java.io.Serializable. | |
Reports Comparator instances defined as lambda expressions that could be expressed using Comparator.comparing() calls. | |
'Enum.values()' is recommended to be replaced by 'Enum.getEntries()' since Kotlin 1.9 | Reports calls from Java to values() method of Kotlin enum classes that can be replaced with getEntries(). |
Reports try statements that catch java.lang.Error or any of its subclasses and do not rethrow the error. | |
Reports Externalizable classes without a public no-argument constructor. | |
Reports method calls that read or write a String as bytes using java.nio.file.Files. | |
'InputStream' and 'OutputStream' can be constructed using 'Files' methods | Reports new FileInputStream() or new FileOutputStream() expressions that can be replaced with Files.newInputStream() or Files.newOutputStream() calls respectively. |
Reports implementations of Iterator.hasNext() or ListIterator.hasPrevious() that call Iterator.next() or ListIterator.previous() on the iterator instance. | |
'Iterator.next()' which can't throw 'NoSuchElementException' | Reports implementations of Iterator.next() that cannot throw java.util.NoSuchElementException. |
'List.indexOf()' expression can be replaced with 'contains()' | Reports any List.indexOf() expressions that can be replaced with the List.contains() method. |
Reports List.remove(index) called in a loop that can be replaced with List.subList().clear(). | |
Reports instantiations of java.util.Map objects whose key types are enumerated classes. | |
Reports calls to Math.random() which are immediately cast to int. | |
Reports calls to Objects.equals(a, b) in which the first argument is statically known to be non-null. | |
Reports Optional call chains that can be replaced with a sequence of if statements. | |
Reports java.util.Optional or com.google.common.base.Optional types with an array or collection type parameter. | |
Reports any cases in which java.util.Optional<T>, java.util.OptionalDouble, java.util.OptionalInt, java.util.OptionalLong, or com.google.common.base.Optional are used as types for fields or parameters. | |
Reports Java ME javax.microedition.rms.RecordStore resources that are not opened in front of a try block and closed in the corresponding finally block. | |
Reports any java.util.concurrent.ScheduledThreadPoolExecutor instances in which corePoolSize is set to zero via the setCorePoolSize method or the object constructor. | |
'Serializable' object implicitly stores non-'Serializable' object | Reports any references to local non-Serializable variables outside Serializable lambdas, local and anonymous classes. |
Reports instantiations of java.util.Set objects whose content types are enumerated classes. | |
Reports instantiations of java.util.SimpleDateFormat or java.time.format.DateTimeFormatter that do not specify a java.util.Locale. | |
Reports calls to String.equals() with a CharSequence as the argument. | |
Reports equals() being called to compare a String with an empty string. | |
'String.indexOf()' expression can be replaced with 'contains()' | Reports comparisons with String.indexOf() calls that can be replaced with a call to the String.contains() method. |
Reports variables declared as StringBuffer and suggests replacing them with StringBuilder. | |
Reports usages of StringBuffer, StringBuilder, or StringJoiner which can be replaced with a single String concatenation. | |
Reports fields of type java.lang.StringBuffer or java.lang.StringBuilder. | |
Reports attempts to instantiate a new StringBuffer or StringBuilder object without specifying its initial capacity. | |
Reports try statements that catch java.lang.ThreadDeath and do not rethrow the exception. | |
Reports fields of type java.lang.ThreadLocal that are not declared static final. | |
Reports java.lang.ThreadLocal.set() with null as an argument. | |
Reports java.util.concurrent.ThreadLocalRandom instances which might be shared between threads. | |
Reports instantiations of Throwable or its subclasses, where the created Throwable is never actually thrown. | |
Reports calls to System.out.println() with an exception as an argument. | |
Reports assert messages that are not of the java.lang.String type. | |
Reports assert statements. | |
Reports assert statements that cause side effects. | |
Reports java.util.concurrent.locks.Condition.await() not being called inside a loop. | |
Reports calls to Condition.await(), for which no call to a corresponding Condition.signal() or Condition.signalAll() can be found. | |
Reports expressions of the char type used in addition or subtraction expressions. | |
Reports clone() methods that do not declare throws CloneNotSupportedException. | |
Reports calls to object constructors inside clone() methods. | |
Reports classes that override the clone() method but don't implement the Cloneable interface. | |
Reports clone() methods that are protected and not public. | |
'clone()' should have return type equal to the class it contains | Reports clone() methods with return types different from the class they're located in. |
Reports expressions that can be replaced by a call to the Integer.compare() method or a similar method from the Long, Short, Byte, Double or Float classes, instead of more verbose or less efficient constructs. | |
Reports declarations of equal() with a single parameter. | |
Reports classes that override the equals() method but do not override the hashCode() method or vice versa, which can potentially lead to problems when the class is added to a Collection or a HashMap. | |
Reports calls to equals() where the target and argument are of incompatible types. | |
Reports calls to equals() that can be replaced by == or != expressions without a change in semantics. | |
Reports equals() calls that compare two java.math.BigDecimal numbers. | |
Reports equals() calls that compare two arrays. | |
Reports equals() calls on StringBuilder, StringBuffer and instances of java.util.concurrent.atomic package. | |
Reports equals() calls on enum constants. | |
Reports calls to equals(), compareTo() or similar, that compare an object for equality with itself. | |
'equals()' expression replaceable by 'Objects.equals()' expression | Reports expressions that can be replaced with a call to java.util.Objects#equals. |
Reports equals() methods that do not check the type of their parameter. | |
Reports final methods in final classes. | |
Reports calls to Object.finalize(). | |
Reports any implementations of the Object.finalize() method that are declared public. | |
Reports overriding the Object.finalize() method. | |
Reports return, throw, break, continue, and yield statements that are used inside finally blocks. | |
Reports for loops that iterate over collections or arrays, and can be automatically replaced with an enhanced for loop (foreach iteration syntax). | |
Reports for loops that lack initialization, condition, or update clauses. | |
Reports incorrect hash code calculation for arrays. | |
Reports if statements that can be replaced with switch statements. | |
'if' statement can be replaced with conditional or boolean expression | Reports if statements that can be replaced with conditions using the &&, ||, ==, !=, or ?: operator. |
Reports if statements in which common parts can be extracted from the branches. | |
Reports if statements that contain else branches and whose conditions are negated. | |
Reports usages of instanceof or getClass() == SomeClass.class in which a this expression is checked. | |
Reports cases in which an instanceof expression is used for testing the type of a parameter in a catch block. | |
Reports instanceof expressions where the expression that is checked has a class/interface type that neither extends/implements the class/interface type on the right-side of the instanceof expression, nor has subclasses that do. | |
Reports long literals ending with lowercase 'l'. | |
'notify()' or 'notifyAll()' called on 'java.util.concurrent.locks.Condition' object | Reports calls to notify() or notifyAll() made on java.util.concurrent.locks.Condition object. |
'notify()' or 'notifyAll()' without corresponding state change | Reports Object.notify() or Object.notifyAll() being called without any detectable state change occurring. |
Reports calls to Object.notify() or Object.notifyAll() for which no call to a corresponding Object.wait() can be found. | |
Reports variables that are assigned to null outside a declaration. | |
Reports null literals that are used as the argument of a throw statement. | |
Reports package-info.java files without a package statement. | |
Reports methods that are marked with both final and private keywords. | |
Reports protected members in finalclasses. | |
Reports public static array fields. | |
Reports modifiable public static Collection fields. | |
Reports public constructors. | |
Reports public constructors in non-public classes. | |
Reports public fields. | |
Reports public methods in classes which are not exposed in an interface. | |
Reports public methods that accept a boolean parameter. | |
Reports any public methods that do not contain a logging statement. | |
Reports public nested classes. | |
Reports Serializable classes where the readObject or writeObject methods are not declared private. | |
'readResolve()' or 'writeReplace()' not declared 'protected' | Reports classes that implement java.io.Serializable where the readResolve() or writeReplace() methods are not declared protected. |
Reports serialization methods or fields defined in a record class. | |
Reports return statements that return a local variable where the value of the variable is computed somewhere else within the same method. | |
'serialPersistentFields' field not declared 'private static final ObjectStreamField[]' | Reports Serializable classes whose serialPersistentFields field is not declared as private static final ObjectStreamField[]. |
'serialVersionUID' field not declared 'private static final long' | Reports Serializable classes whose serialVersionUID field is not declared private static final long. |
Reports calls to Condition.signal() or Condition.signalAll() for which no call to a corresponding Condition.await() can be found. | |
Reports .size() or .length() comparisons with a 0 literal that can be replaced with a call to .isEmpty(). | |
Reports static methods that are marked as final. | |
Reports non-final static fields. | |
Reports switch statements. | |
Reports switch statements or expressions with a too low ratio of switch labels to executable statements. | |
Reports switch statements that do not contain default labels. | |
Reports the synchronized modifier on methods. | |
Reports possible escapes of this during the object initialization. | |
Reports throw statements whose exceptions are always caught by containing try statements. | |
'throw' inside 'catch' block which ignores the caught exception | Reports exceptions that are thrown from inside catch blocks but do not "wrap" the caught exception. |
Reports try-finally statements that can use Java 7 Automatic Resource Management, which is less error-prone. | |
Reports try statements with multiple resources that can be automatically split into multiple try-with-resources statements. | |
'wait()' called on 'java.util.concurrent.locks.Condition' object | Reports calls to wait() made on a java.util.concurrent.locks.Condition object. |
Reports calls to wait() that are not made inside a loop. | |
Reports calls to Object.wait() or Condition.await() without specifying a timeout. | |
Reports calls to wait(), notify(), and notifyAll() that are not made inside a corresponding synchronized statement or synchronized method. | |
Reports calls to wait() methods that may occur while the current thread is holding two locks. | |
Reports calls to Object.wait(), for which no call to the corresponding Object.notify() or Object.notifyAll() can be found. | |
Reports while loops that could be more effectively written as do-while loops. | |
Reports while loops that iterate over collections and can be replaced with enhanced for loops (foreach iteration syntax). | |
Reports while loops that spin on the value of a non-volatile field, waiting for it to be changed by another thread. | |
Reports methods annotated with @GET that do not return anything. | |
Reports fields annotated as not-null that are not initialized in the constructor. | |
Reports problems related to nullability annotations. | |
Reports classes annotated with @Path that have no resource methods. | |
Reports Spring @Qualifier annotations on class fields that are ignored by the corresponding Lombok @RequiredArgsConstructor and @AllArgsConstructor annotations. | |
Reports @Required setter bean properties that are not injected or autowired. | |
Reports explicitly defined Slf4j Loggers. | |
Reports unneeded modifiers for classes annotated with @UtilityClass. | |
Reports unneeded modifiers for classes annotated with @Value. | |
Reports usages of absolute alignment constants from AWT and Swing. | |
Reports abstract classes that can be converted to interfaces. | |
Reports abstract classes that extend concrete classes. | |
Reports abstract classes that have no concrete subclasses. | |
Reports abstract classes that have precisely one direct inheritor. | |
Reports abstract classes that have no abstract methods. | |
Reports calls to abstract methods of the current class during object construction. | |
Reports abstract methods that override abstract methods. | |
Reports abstract methods that override concrete super methods. | |
Reports abstract methods that are not implemented in every concrete subclass. | |
Reports code that accesses system properties using one of the following methods: System.getProperties(), System.setProperty(), System.setProperties(), System.clearProperties() Integer.getInteger() Boolean.getBoolean() While accessing the system properties is not a security risk in itself, it is often found in malicious code. | |
Reports references to static methods and fields via a class instance rather than the class itself. | |
Reports access to non-constant static fields that are locked on either this or an instance field of this. | |
Access to inherited field looks like access to element from surrounding code | Reports access to a superclass field from an anonymous, inner or local class, if a local variable, parameter, or field with the same name is available in the code surrounding the class. |
Reports accesses to private or protected fields of another object. | |
Reports annotations. | |
Reports annotation interfaces. | |
Reports anonymous classes. | |
Reports anonymous classes that may be safely replaced with static inner classes. | |
Anonymous class variable hides variable in containing method | Reports fields in an anonymous class that are named identically to local variables or parameters of the containing method or lambda expression. |
Reports anonymous inner classes whose method count exceeds the specified maximum. | |
Reports anonymous classes which can be replaced with lambda expressions. | |
Reports anonymous classes which can be replaced with method references. | |
Reports anonymous classes which could be transformed to a constructor or a factory method call with a lambda expression argument. | |
Reports arrays of enum constants that can be replaced with a call to EnumType.values(). | |
Reports operators == and != used to test for array equality. | |
Reports array initializers without new array expressions and suggests adding them. | |
Reports accesses to the .length property of an array in the condition part of a loop statement. | |
Reports assert statements and suggests replacing them with if statements that throw java.lang.AssertionError. | |
Reports assert statements and test framework assertions that are suppressed by a surrounding catch block. | |
Reports variable assignments that can be joined with a variable declaration. | |
Reports return of, or assignment from a method parameter to an array or a mutable type like Collection, Date, Map, Calendar, etc. | |
Reports assignments to, catch block parameters. | |
Reports assignments to fields which are bound to components in UI Designer forms. | |
Reports assignment to, or modification of lambda parameters. | |
Reports assignment to, or modification of method parameters. | |
Reports assignment to, or modification of static fields from within an instance method. | |
Reports expressions that are affected by autoboxing conversion (automatic wrapping of primitive values as objects). | |
Reports expressions that are affected by unboxing conversion (automatic unwrapping of objects into primitive values). | |
Reports AutoCloseable instances which are not used in a try-with-resources statement, also known as Automatic Resource Management. | |
Reports blank lines in Javadoc comments. | |
Reports comments which are used as code block markers. | |
Reports creation of Boolean objects. | |
Boolean expression can be replaced with conditional expression | Reports any boolean expressions which can be formulated in a more compact and, arguably, clear way than by using a conditional expression. |
Reports methods with a boolean return type that are always negated when called. | |
Reports boolean methods whose names do not start with a question word. | |
Reports boolean variables or fields which are always negated when their value is used. | |
Reports boxing of already boxed values. | |
Reports multiple sequential java.io.File attribute checks, such as: isDirectory() isFile() lastModified() length() Such calls can be replaced with a bulk Files.readAttributes() call. | |
Reports single operations inside loops that could be replaced with a bulk method. | |
Reports calls to java.lang.Thread.sleep() that occur inside loops. | |
Reports array declarations written in C-style syntax, where the array brackets are placed after a variable name or after a method parameter list. | |
Reports calls to round(), ceil(), floor(), rint() methods for Math and StrictMath with int as the argument. | |
Call methods with unsupported 'java.time.temporal.ChronoUnit' and 'java.time.temporal.ChronoField' | Reports java.time method calls (get(), getLong(), with(), plus(), minus()) with unsupported java.time.temporal.ChronoField or java.time.temporal.ChronoUnit enum constants as arguments. |
Reports calls to Arrays.asList() with at most one argument. | |
Call to 'BigDecimal' method without a rounding mode argument | Reports calls to divide() or setScale() without a rounding mode argument. |
Reports calls to java.sql.Connection.prepareStatement(), java.sql.Connection.prepareCall(), or any of their variants which take a dynamically-constructed string as the statement to prepare. | |
Reports toString() calls on java.util.Date objects. | |
Reports toString() calls on objects of a class extending Number. | |
Reports calls to Runtime.exec() or any of its variants. | |
Reports calls to java.lang.Runtime.exec() which take a dynamically-constructed string as the command to execute. | |
Reports calls to java.sql.Statement.execute() or any of its variants which take a dynamically-constructed string as the query to execute. | |
Reports calls to java.lang.String.concat(). | |
Call to 'String.toUpperCase()' or 'toLowerCase()' without locale | Reports toUpperCase() or toLowerCase() calls on String objects that do not specify a java.util.Locale. |
Reports calls to System.exit(), Runtime.exit(), and Runtime.halt(). | |
Reports System.gc() or Runtime.gc() calls. | |
Reports calls to System.getenv(). | |
Reports calls to java.lang.System.loadLibrary(), java.lang.System.load(), java.lang.Runtime.loadLibrary() and java.lang.Runtime.load() which take a dynamically-constructed string as the name of the library. | |
Reports calls to System.runFinalizersOnExit(). | |
Reports calls to System.setSecurityManager(). | |
Reports usages of Thread.dumpStack(). | |
Reports calls to Thread.setPriority(). | |
Reports calls to java.lang.Thread.sleep() methods that occur within a synchronized block or method. | |
Reports calls to start() on java.lang.Thread or any of its subclasses during object construction. | |
Reports calls to Thread.stop(), Thread.suspend(), and Thread.resume(). | |
Reports calls to Thread.yield(). | |
Reports toString() calls on java.sql.Time objects. | |
Call to 'list.containsAll(collection)' may have poor performance | Reports calls to containsAll() on java.util.List. |
Reports calls to Object.notify(). | |
Reports calls to Throwable.printStackTrace() without arguments. | |
Reports calls to java.util.Set.removeAll() with a java.util.List argument. | |
Reports calls to java.util.concurrent.locks.Condition.signal(). | |
Reports arrays used in String concatenations or passed as parameters to java.io.PrintStream methods, such as System.out.println(). | |
Reports calls native methods within a synchronized block or method. | |
Reports calls to toString() that use the default implementation from java.lang.Object. | |
Reports calls to a superclass method from an anonymous, inner or local class, if a method with the same signature exists in the code surrounding the class. | |
Reports calls to a simple property getter from within the property's class. | |
Reports calls to a simple property setter from within the property's class. | |
Reports calls of: equals() equalsIgnoreCase() compareTo() compareToIgnoreCase() and trim() on String objects. | |
Calls of 'java.time' methods with explicit 'ChronoField' or 'ChronoUnit' arguments can be simplified | Reports java.time method calls with java.time.temporal.ChronoField and java.time.temporal.ChronoUnit as arguments when these calls can be replaced with calls of more specific methods. |
Reports generic method parameters that can make use of bounded wildcards. | |
Reports type cast operations that can be replaced with existing local or pattern variables with the same value. | |
Reports type cast expressions that are preceded by an instanceof check for a different type. | |
Reports double literal expressions that are immediately cast to float. | |
Reports int literal expressions that are immediately cast to long. | |
Reports type cast expressions where the casted expression has a class/interface type that neither extends/implements the cast class/interface type, nor has subclasses that do. | |
Reports catch blocks that are empty or may ignore an exception. | |
Reports catch blocks that immediately rethrow the caught exception without performing any action on it. | |
Reports any chains of if-else statements all of whose conditions are instanceof expressions or class equality expressions (e.g. | |
Reports chained equality comparisons. | |
Reports method calls whose target is another method call. | |
Reports ordinal comparisons of char values. | |
Reports checked exception classes (that is, subclasses of java.lang.Exception that are not subclasses of java.lang.RuntimeException). | |
Reports classes that can be converted record classes. | |
Reports classes that directly extend java.lang.Thread. | |
Reports classes that directly extend java.lang.Throwable. | |
Reports classes without a toString() method. | |
Reports any classes that are explicitly declared to extend java.lang.Object. | |
Reports classes that extend concrete subclasses of the java.util.Collection or java.util.Map classes. | |
Reports classes declared as an implementation or extension of an annotation interface. | |
Reports classes that extend a utility class. | |
Reports classes that: do not depend on any other class in their module are not a dependency for any other class in their module Such classes are an indication of ad-hoc or incoherent modularisation strategies, and may often profitably be moved. | |
Reports classes that don't depend on any other class in their package and are not a dependency for any other class in their package. | |
Reports instance initializers which may be made static. | |
Reports classes that are declared final. | |
Reports usages of classes in a field or method signature where the class has less visibility than the member that uses it. | |
Reports classes or interfaces that can be replaced with an implementation or extension of a more specific commonly used class or interface. | |
Reports classes implementing listeners instead of extending corresponding adapters. | |
Reports top-level class names that don't match the name of a file containing them. | |
Reports classes whose names are prefixed with their package names, ignoring differences in capitalization. | |
Reports classes that have the same name as one of their superclasses, while their fully qualified names remain different. | |
Reports classes that: do not depend on any other class in their module depend on classes from a different module are a dependency only for classes from this other module Such classes could be moved into the module on which they depend. | |
Reports classes that don't depend on any other class in their package, depend on classes from another package, and are themselves a dependency only for classes from this other package. | |
Reports classes which contain references to one of their subclasses. | |
Reports classes that are too deep in the inheritance hierarchy. | |
Reports classes that have multiple loggers declared. | |
Class with only 'private' constructors should be declared 'final' | Reports classes with only private constructors. |
Reports classes whose number of constructors exceeds the specified maximum. | |
Reports classes that are directly dependent on too many other classes in the project. | |
Reports a class on which too many other classes are directly dependent. | |
Reports classes whose number of fields exceeds the specified maximum. | |
Reports classes whose number of methods exceeds the specified maximum. | |
Reports classes that are directly or indirectly dependent on too many other classes. | |
Reports a class on which too many other classes are directly or indirectly dependent. | |
Reports classes without constructors. | |
Reports classes which do not have a declared logger. | |
Reports classes without a constructor that takes no arguments (i.e. | |
Reports Runnable passed to a Cleaner.register() capturing reference being registered. | |
Reports classes which may be cloned. | |
Reports classes implementing the Cloneable interface that don't override the clone() method. | |
Reports control flow statements with a single statement in their code block and suggests removing the braces from the control flow statement body. | |
Reports cases where the argument of a method call on a java.util.Collection or java.util.Map is the collection or map itself. | |
Reports declarations of Collection variables made by using the collection class as a type, rather than an appropriate interface. | |
Reports attempts to instantiate a new Collection object without specifying an initial capacity. | |
Reports a regular comment that belongs to a field, method, or class that can be replaced with a Javadoc comment. | |
Reports comments that contain Java code. | |
Reports switch expressions and statements where every branch has a common subexpression, and the switch can be moved inside. | |
Reports Comparator combinator constructs that can be simplified. | |
Reports equality comparisons between short and char values. | |
Reports any comparisons to Double.NaN or Float.NaN. | |
Reports empty string operands in string concatenations. | |
Reports conditions that become redundant as they are completely covered by a subsequent condition. | |
Reports conditional breaks at the beginning or at the end of a loop and suggests adding a loop condition instead to shorten the code. | |
Reports conditional expressions with then and else branches that are similar enough so that the expression can be moved inside. | |
Reports null-check conditions and suggests replacing them with Optional chains. | |
Reports conditional expressions whose conditions are negated. | |
Reports methods that are named "main", but do not have the public static void main(String[]) signature in Java up to 21. | |
Reports calls to variable arity methods that have a single argument in the vararg parameter position, which is either a null or an array of a subtype of the vararg parameter. | |
Reports any floating point numbers that don't have a decimal point, numbers before the decimal point, or numbers after the decimal point. | |
Reports string literals containing an octal escape sequence immediately followed by a digit. | |
Reports any calls to a variable arity method where the call has a primitive array in the variable arity parameter position (for example, System.out.printf("%s", new int[]{1, 2, 3})). | |
Reports Java ME javax.microedition.io.Connection resources that are not opened in front of a try block and closed in the corresponding finally block. | |
Reports constant arguments in assertTrue(), assertFalse(), assertNull(), and assertNotNull() calls. | |
Reports calls to java.lang.Math or java.lang.StrictMath methods that can be replaced with simple compile-time constants. | |
Reports assert statement conditions that are constants. | |
Reports constants (public static final fields) declared in abstract classes. | |
Reports constants (public static final fields) declared in interfaces. | |
Reports constant expressions, whose value can be evaluated statically, and suggests replacing them with their actual values. | |
Reports comparison operations where the constant value is on the wrong side. | |
Reports expressions and conditions that always produce the same result, like true, false, null, or zero. | |
Reports assignment to, or modification of fields that are declared in a superclass from within a subclass constructor. | |
Reports constructors whose number of parameters exceeds the specified maximum. | |
Reports issues in method @Contract annotations. | |
Reports any if, while, do, or for statements without braces. | |
Reports copy constructors that don't copy all the fields of the class. | |
Reports fragments of Java code which are identical to the existing static methods suggesting to reuse these static methods. | |
Reports equals() methods taking an argument type other than java.lang.Object if the containing class does not have other overloads of equals() that take java.lang.Object as its argument type. | |
Reports user-defined subclasses of java.lang.ClassLoader. | |
Reports user-defined subclasses of java.lang.SecurityManager. | |
Reports classes that are mutually or cyclically dependent on other classes. | |
Reports packages that are mutually or cyclically dependent on other packages. | |
Reports Javadoc comments that don't belong to any class, method or field. | |
Reports references to data provider methods that do not exist or are not accessible. | |
Reports fields, methods or classes that may have their access modifier narrowed down. | |
Reports fields, methods, or classes that may have the final modifier added to their declarations. | |
Reports unresolved references inside Javadoc comments. | |
Reports annotation parameters that are assigned to their default value. | |
Reports usages of automatic modules in a requires directive. | |
Reports deprecated Lombok annotations and suggests quick-fixes to replace them with the ones promoted to the main package. | |
Reports deprecated classes, methods, and fields that are used in your code nonetheless. | |
Reports methods which are not static, private, final or abstract, and whose bodies are not empty. | |
Reports instantiation of generic classes in which the <> symbol (diamond) is used instead of type parameters. | |
Reports Double Brace Initialization. | |
Reports double-checked locking. | |
Reports switch statements or expressions that contain the same code in different branches and suggests merging the duplicate branches. | |
Reports string literals that are replicated unchanged throughout the project. | |
Reports duplicate exceptions in a method throws list. | |
Reports TestNG data providers with equal names if org.testng.TestNGException has occurred. | |
Reports StringTokenizer() constructor calls or nextToken() method calls that contain duplicate characters in the delimiter argument. | |
Dynamic regular expression can be replaced by compiled 'Pattern' | Reports calls to the regular expression methods (such as matches() or split()) of java.lang.String using constant arguments. |
Reports loops with an if statement that can end with break without changing the semantics. | |
Reports an empty module-info.java file, indicating unresolved module dependencies. | |
Reports synchronized statements with empty bodies. | |
Reports empty classes and empty Java files. | |
Reports empty class initializer blocks. | |
Reports enhanced for statements. | |
Reports local variable declarations and accessors to record components that can be replaced with pattern variables in enhanced `for` statements, which are usually more compact. | |
Reports enhanced switch statements and expressions. | |
Reports switch statements over enumerated types that are not exhaustive. | |
Reports enum classes. | |
Reports calls to Enumeration methods that are used on collections and may be replaced with equivalent Iterator constructs. | |
Reports exception classes whose names don't end with Exception. | |
Reports creation of a exception instance without any arguments specified. | |
Reports packages that only contain classes that extend java.lang.Throwable, either directly or indirectly. | |
Reports if a trivial lambda expression is used in cases in which there's an alternative method that behaves in the same way, but accepts a concrete value instead of a lambda. | |
Reports condition chains in which a value range is checked and these condition chains can be simplified to a single check. | |
Reports checked exceptions expected by a JUnit 4 test-method that are never thrown inside the method body. | |
Reports method calls that accept a non-trivial expression and can be replaced with an equivalent method call which accepts a lambda instead. | |
Reports loops that can be replaced with Arrays.setAll() or Arrays.fill() calls. | |
Explicit class declaration can be converted into implicitly declared class | Reports ordinary classes, which can be converted into implicitly declared classes Example: public class Sample { public static void main(String[] args) { System.out.println("Hello, world!"); } } After the quick-fix is applied: public static void main(String[] args) { System.out.println("Hello, world!"); }. |
Reports new expressions with type arguments that can be replaced a with diamond type <>. | |
Reports expressions that can be factorized, i.e. | |
Reports expressions with a repeating pattern that could be replaced with Stream API or a String.join() call. | |
Reports comparisons where left and right operand represent the identical expression. | |
Expression with 'java.time' 'compareTo()' call can be simplified | Reports java.time comparisons with compareTo() calls that can be replaced with isAfter(), isBefore() or isEqual() calls. |
Reports Externalizable classes that define readObject() or writeObject() methods. | |
Reports the Feature Envy code smell. | |
Field accessed in both 'synchronized' and unsynchronized contexts | Reports non-final fields that are accessed in both synchronized and non-synchronized contexts. |
Suggests replacing initialization of fields using assignment with initialization in the field declaration. | |
Reports redundant class fields that can be replaced with local variables. | |
Reports instance variables that can safely be made static. | |
Reports fields that have setter methods but no getter methods. | |
Reports fields that can be safely made final. | |
Reports fields that are not used in the toString() method of a class. | |
Reports floating-point values that are being compared using the == or != operator. | |
Reports Java code constructs that may fail to compile in future Java versions. | |
Reports method references or lambda expressions that point to a method of their own functional interface type and hence can be replaced with their qualifiers removing unnecessary object allocation. | |
Guava pseudo-functional call can be converted to Stream API call | Reports usages of Guava pseudo-functional code when Java Stream API is available. |
Reports usages of Guava's functional primitives that can be migrated to standard Java API calls. | |
Reports the same HTML issues in the Javadoc comments that have been reported by DocLint since Java 8. | |
Reports the forward (/) or backward (\) slash in a string or character literal. | |
Reports linefeed (\n) and carriage return (\r) character escape sequences used in string literals, character literals or text blocks. | |
Reports unrecognized properties in Hibernate Criteria API usages. | |
Reports calls to the openSession() method if the returned org.hibernate.Session resource is not safely closed. | |
Reports I/O resources that are not safely closed. | |
Reports loops whose second and all subsequent iterations do not produce any additional side effects other than the one produced by the first iteration, which can indicate a programming error. | |
Reports identical catch sections in a single try statement. | |
Reports illegal method names passed to the dependsOnMethods attribute in the @Test annotation. | |
Immutable collection creation can be replaced with collection factory call | Reports java.util.Collections unmodifiable collection calls that can be converted to newer collection factory methods. |
Reports constructors that do not begin with a call to "super" constructor or another constructor of the same class. | |
Reports implicit conversion between numeric types. | |
Reports method and constructor calls that implicitly use the platform default charset. | |
Implicitly declared class can be replaced with ordinary class | Reports implicitly declared classes and suggests replacing them with regular classes. |
Reports issues with AtomicLongFieldUpdater, AtomicIntegerFieldUpdater, or AtomicReferenceFieldUpdater fields (the java.util.concurrent.atomic package). | |
Reports text blocks that are indented using both spaces and tabs. | |
Reports incorrect date time format patterns. | |
Reports incorrect message format patterns or incorrect indexes of placeholders The following errors are reported: Unparsed or negative index Unclosed brace Unpaired quote. | |
Incorrect 'channel' attribute in an endpoint method annotation | Reports incorrect channel attributes in endpoint method annotations: @Gateway, @ServiceActivator, @Filter, and so on. |
Incorrect 'min' and 'max' values in Bean Validation annotations | Reports incorrect values of max and min values in Bean Validation constraint annotations. |
Reports incorrect return types of @Async methods. | |
Reports syntax errors and unused URI templates inside @Path annotations. | |
Reports incorrect @Scheduled methods. | |
Reports incorrect Spring Integration endpoint method declarations. | |
Incorrect Spring component autowiring or injection on a static class member | Reports autowired and injected static methods/fields of Spring components. |
Incorrect configuration of Spring beans referenced in the Spring Security annotation | Reports unresolved Spring beans referenced in Spring Security annotations. |
Reports attempts to inject Spring Expression Language (SpEL) into static fields ('null' value is injected). | |
Reports resource method parameters (annotated with @PathParam, @QueryParam, and so on) with unsupported types. | |
Reports the value of @DefaultValue if it cannot be converted to the specified type of parameter. | |
Reports incorrect 'caching' annotations: @Cacheable, @CacheEvict, @CachePut, @CacheConfig, and so on. | |
Reports incorrect bean references in the value parameter of the @DependsOn annotation. | |
Incorrectly referenced bean in @Lookup annotation of Spring component | Reports incorrect bean references in the value parameter of the @Lookup annotation. |
Reports incorrect bean references in the scheduler parameter of the @Scheduled annotation. | |
Reports Stream API call chains ending with a count() operation, that are optimizable. | |
Reports attempts to inherit from Kotlin sealed interfaces or classes in Java code. | |
Reports when a @Language annotation is applied to an element with a type other than String or String[]. | |
Reports inner class fields named identically to a field of a surrounding class. | |
Reports inner classes that can be made static. | |
Reports inner classes in interface classes. | |
Reports accesses of inner and nested classes where the call is qualified by a subclass of the declaring class, rather than the declaring class itself. | |
Reports classes whose number of nested inner classes exceeds the specified maximum. | |
Reports any uses of java.lang.Random or java.lang.Math.random(). | |
Reports field access operations that are not qualified with this or some other qualifier. | |
Reports instance variables that may be uninitialized upon object initialization. | |
Reports fields that are not guaranteed to be initialized after the object is deserialized by the readObject() method. | |
Reports instance variables that are read before initialization. | |
Reports @GuardedBy annotations on instance fields or methods in which the guard is a static field. | |
Reports calls to non-static methods on the same instance that are not qualified with this. | |
Reports instantiations of Thread or an inheritor without specifying a Runnable parameter or overriding the run() method. | |
Reports code that instantiates a class to get its class object. | |
Reports instantiation of utility classes using the new keyword. | |
Reports integer divisions where the result is used as a floating-point number. | |
Reports integer multiplications and left shifts that are implicitly cast to long. | |
Reports interfaces that can be annotated with @FunctionalInterface. | |
Reports interface methods that clash with the protected methods clone() and finalize() from the java.lang.Object class. | |
Reports interfaces that have no concrete subclasses. | |
Reports interfaces that have precisely one direct inheritor. | |
Reports incorrect 'mode' configuration in the @DirtiesContext annotation. | |
Reports methods marked with @DataProvider annotation that doesn't return Object[][] or Iterator<Object>. | |
Reports method references mapped to the Comparator interface that don't fulfill its contract. | |
Reports invalid arguments that are passed to methods with parameters annotated as @PropertyKey. | |
Reports invalid transactional lifecycle method declarations annotated with @BeforeTransaction and @AfterTransaction in testing classes annotated as @Transactional. | |
Reports suspicious usages of Collection or Iterable in vararg method calls. | |
Reports iterations over the keySet() of a java.util.Map instance, where the iterated keys are used to retrieve the values from the map. | |
Reports JDBC resources that are not safely closed. | |
Reports JNDI resources that are not safely closed. | |
Reports any JUnit-based test class that can be converted into TestNG based unit test. | |
Allows viewing the problems reported by the Java annotator: compilation problems, unresolved by IDEA references, and so on. | |
Reports cases when a module name contradicts Java Platform Module System recommendations. | |
Reports unresolved references in Java code. | |
Reports known Javac issues, performance problems, and incompatibilities. | |
Reports Javadoc comments that can be converted to Markdown documentation comments. | |
Reports Javadoc comments and tags with the following problems: invalid tag names incomplete tag descriptions duplicated tags missing Javadoc descriptions Example: /** * Invalid tag name * @poram param description */ public void sample(int param){ } Example: /** * Pointing to itself {@link #sample(int)} */ public void sample(int param){ } Quick-fix adds the unknown Javadoc tag to the list of user defined additional tags. | |
Reports useless Kotlin JVM annotations in Java code. | |
Reports Kotlin properties that are not const and used as Java annotation arguments. | |
Reports rules of switch expressions or enhanced switch statements with an expression body. | |
Reports labeled rules of switch statements or switch expressions that have a redundant code block. | |
Reports lambdas whose body is an expression and suggests converting expression bodies to code blocks. | |
Reports lambda expressions that can be replaced with anonymous classes. | |
Reports lambda expressions which can be replaced with a call to a JDK method. | |
Reports lambdas that can be replaced with method references. | |
Reports lambda parameters named identically to a field of a surrounding class. | |
Reports lambda parameters whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports lambda parameters that do not have their type specified and suggests adding the missing type declarations. | |
Reports overloaded methods that take functional interfaces with conflicting abstract method signatures. | |
Reports when the language of a reference does not match the expected language of the usage context. | |
Reports large array allocations which do not check for java.lang.OutOfMemoryError. | |
Reports Law of Demeter violations. | |
Reports plain text links in Javadoc comments. | |
Reports local classes. | |
Reports local variables named identically to a field of a surrounding class. | |
Reports parameters or local variables that may have the final modifier added to their declaration. | |
Reports redundant local variable types. | |
Local variable used and declared in different 'switch' branches | Reports local variables declared in one branch of a switch statement and used in another branch. |
Reports java.util.concurrent.locks.Lock resources that are not acquired in front of a try block or not unlocked in the corresponding finally block. | |
Reports Logger instances that are initialized with a class literal from a different class than the Logger is contained in. | |
Reports standard getter method that can be replaced by the lombok @Getter annotation. | |
Reports standard setter method that can be replaced by the lombok @Setter annotation. | |
Offers general inspections for Lombok annotations. | |
Reports loops which can be replaced with stream API calls using lambda expressions. | |
Reports loops which can be collapsed into a single Collection.removeIf() call. | |
Reports loops which can be collapsed into a single List.replaceAll() call. | |
Reports loops that cannot be completed without an index overflow or loops that don't loop at all. | |
Reports any instance of for, while, and do statements whose bodies will be executed once at most. | |
Reports any variables and parameters that are used in a loop condition and are not updated inside the loop. | |
Reports any while, do-while, and for loops that have the true constant as their only condition. | |
Reports character literals that are used without constant declaration. | |
Reports expressions that can be replaced with "magic" constants. | |
Reports format strings that don't comply with the standard Java syntax. | |
Reports manual copying of array contents that can be replaced with a call to System.arraycopy(). | |
Reports code that uses a loop to copy the contents of an array into a collection. | |
Reports cases where the minimum or the maximum of two numbers can be calculated using a Math.max() or Math.min() call, instead of doing it manually. | |
Suggests replacing for(Entry<?,?> entry : map.entrySet()) {...} or map.entrySet().forEach(entry -> ...) with map.forEach((key, value) -> ...). | |
Reports redundant Stream API calls like map(), or boxed() right before the count() call. | |
Reports marker interfaces without any methods or fields. | |
Reports switch statements or expressions with too many case labels. | |
Reports annotations used on record components that have no effect. | |
Reports calls to assertXXX() or fail() without an error message string argument. | |
Reports method calls in the condition part of a loop statement. | |
Suggests extracting fragments of code to a separate method to make code more clear. | |
Reports methods whose return values are never used when called. | |
Reports methods that can be converted to variable arity methods. | |
Reports methods that are declared final. | |
Reports methods that override a super method without calling it. | |
Reports methods that are identical to their super methods. | |
Reports methods that are named identically to their class. | |
Reports methods that have the same name as the superclass of the method's class, as such a method name may be confusing. | |
Reports cases in which multiple methods of a class have the names that differ only by case. | |
Reports methods with the same signature as an inaccessible method of a superclass, for example, a private method, or a package-private method of a superclass in another package. | |
Reports method parameters whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports method references, like MyClass::myMethod and myObject::myMethod, and suggests replacing them with an equivalent lambda expression. | |
Reports methods that only return a constant, which may differ for various inheritors. | |
Reports static methods with a signature identical to a static method of a superclass. | |
Reports methods with three or more negations. | |
Reports methods that contain more than one loop statement. | |
Reports methods whose number of return points exceeds the specified maximum. | |
Method with single 'synchronized' block can be replaced with 'synchronized' method | Reports methods whose body contains a single synchronized statement. |
Reports methods that have too many types of exceptions in its throws list. | |
Reports methods whose number of parameters exceeds the specified maximum. | |
Reports MethodHandle and VarHandle factory method calls that don't match any method or field. | |
Reports switch statements and expressions with too few case labels, and suggests rewriting them as if and else if statements. | |
Reports parts of method specification written in English that contradict with the method declaration. | |
Reports String method calls that always return the same value (-1 or false) because a lowercase character is searched in an uppercase-only string or vice versa. | |
Reports StringBuilder, StringBuffer or StringJoiner objects whose contents are read but not written to, or written to but not read. | |
Reports arrays whose contents are read but not updated, or updated but not read. | |
Reports calls to assertEquals() that have the expected argument and the actual argument in the wrong order. | |
Reports module declarations, classes, fields, or methods that have the @deprecated Javadoc tag but do not have the @java.lang.Deprecated annotation. | |
Reports methods overriding superclass methods but are not annotated with @java.lang.Override. | |
Reports packages that contain classes but do not contain the package-info.java or package.html files and are, thus, missing the package documentation. | |
Reports missing Javadoc comments and tags. | |
Reports @Aspect annotations in Spring versions earlier than 2.5 if there is no <aop:aspectj-autoproxy/> element in the XML configuration. | |
Reports import statements which are not arranged according to the current code style (see Settings|Editor|Code Style). | |
Reports declarations whose modifiers are not in the canonical preferred order (as stated in the Java Language Specification). | |
Reports packages that are exported to, or opened in the same Java 9 module in which they are defined. | |
Reports modules that contain too few classes. | |
Reports modules that contain too many classes. | |
Reports multi-catch sections and suggests splitting them into separate catch blocks. | |
Reports JUnit test method throws clauses with more than one exception. | |
Reports multiple equivalent occurrences of the same expression within a method (or constructor, or class initializer) if the result of the expression can be reused. | |
Reports binary, conditional, or instanceof expressions that consist of different operators without parentheses. | |
Reports multiple top-level classes in a single Java file. | |
Reports multiple variables that are declared in a single declaration and suggest creating a separate declaration for each variable. | |
Reports multiplication of an integer value by a constant integer that can be represented as a power of two. | |
Reports methods declared native. | |
Reports equality expressions which are negated by a prefix expression. | |
Reports negative int hexadecimal constants in long context. | |
Reports negatively named variables, for example: disabled, hidden, or isNotChanged. | |
Reports nested synchronized statements. | |
Reports nested try statements. | |
Reports method calls used as parameters to another method call. | |
Reports code that applies == or != to a newly allocated object instead of calling equals(). | |
Reports no-op (for "no operation") methods in abstract classes. | |
Reports Optional expressions used as if or conditional expression conditions, that can be rewritten in a functional style. | |
Reports injected or autowired fields in Spring components. | |
Reports non-static initializers in classes. | |
Reports non-Basic Latin characters in literals and suggests replacing them with unicode entities. | |
Reports when a method without any @Pattern annotation overrides a @Pattern annotated method. | |
Reports non-atomic operations on volatile fields. | |
Reports non-boolean methods whose names start with a question word. | |
Reports variables declared as java.lang.String that are repeatedly appended to. | |
Reports non-static non-final fields whose names are all in upper case. | |
Reports logger fields that are not declared static and/or final. | |
Non-constant string concatenation as argument to logging call | Reports non-constant string concatenations that are used as arguments to SLF4J and Log4j 2 logging methods. |
Reports non-exception classes whose names end with Exception. | |
Reports @GuardedBy annotations in which the guarding field is not final. | |
Reports clone() methods without the final modifier. | |
Reports any non-final field in a class with the @Immutable annotation. | |
Reports non-final fields in enumeration types. | |
Reports fields in subclasses of java.lang.Exception that are not declared final. | |
Reports access to a non-final field inside a compareTo() implementation. | |
Reports implementations of equals() that access non-final variables. | |
Reports implementations of hashCode() that access non-final variables. | |
Reports the use of non-final static variables during class initialization. | |
Reports annotations in a shorthand form and suggests rewriting them in a normal form with an attribute name. | |
Reports non-final, non-private fields that are accessed in a synchronized context. | |
Reports calls to java.lang.Math methods, which results are not guaranteed to be reproduced precisely. | |
Non-serializable class with 'readObject()' or 'writeObject()' | Reports non-Serializable classes that define readObject() or writeObject() methods. |
Reports non-Serializable classes that define a serialVersionUID field. | |
Serializable non-static inner class without 'serialVersionUID' | Reports non-serializable fields in classes that implement java.io.Serializable. |
Reports objects of classes not implementing java.io.Serializable used as arguments to javax.servlet.http.HttpSession.setAttribute() or javax.servlet.http.HttpSession.putValue(). | |
Reports non-Serializable objects used as arguments to java.io.ObjectOutputStream.write(). | |
Reports usages of the non-short-circuit forms of boolean 'and' and 'or' (&, |, &= and |=). | |
Reports non-short-circuit operations consuming an infinite stream. | |
Non-strict inequality '>=' or '<=' can be replaced with '==' | Reports inequality conditions that, according to data flow analysis, can be satisfied only for a single operand value. |
Reports \s escape sequences anywhere except at text-block line endings or within a series of several escaped spaces. | |
Reports access to static fields that are of a non-thread-safe type. | |
Reports methods that override a variable arity (a.k.a. | |
Reports Spring MVC Controller methods annotated with @InitBinder that are not declared as void. | |
Reports null checks that can be replaced with a call to a static method from Objects or Stream. | |
Reports null assigned to an Optional variable or returned from a method returning Optional. | |
Null-check method is called with obviously non-null argument | Reports if a null-checking method (for example, Objects.requireNonNull or Assert.assertNotNull) is called on a value that is obviously non-null (for example, a newly created object). |
Reports code constructs that always violate nullability contracts, may throw exceptions, or are just redundant, based on data flow analysis. | |
Reports code that uses == or != instead of equals() to test for Number equality. | |
Reports instantiations of new Long, Integer, Short, or Byte objects that have a primitive long, integer, short, or byte argument. | |
Reports cast operations between primitive numeric types that may result in precision loss. | |
Reports expressions that overflow during computation. | |
Reports object or array allocations inside loops. | |
Reports code that uses == or != rather than equals() to test for object equality. | |
Reports construction of (temporary) new objects inside equals(), hashCode(), compareTo(), and Comparator.compare() methods. | |
Reports mixed octal and decimal integer literals in a single array initializer. | |
Reports TestNG org.testng.annotations.Configuration annotations. | |
Reports JUnit 3 style test methods that are located inside a class that does not extend the JUnit 3 TestCase class and contains JUnit 4 or JUnit 5 @Test annotated methods. | |
Reports lists, arrays, and strings where exactly one element is queried right upon the creation. | |
Reports Optional call chains that can be simplified. | |
Reports calls to get() on an Optional without checking that it has a value. | |
Reports methods that are declared in the same class, have the same name, and the same number of parameters. | |
Reports varargs methods with the same name as other methods in the class or in a superclass. | |
Reports catch blocks with parameters that are more generic than the exception thrown by the corresponding try block. | |
Reports throws clauses with exceptions that are more generic than the exceptions that the method actually throws. | |
Reports anonymous inner classes whose total complexity exceeds the specified maximum. | |
Reports classes whose total complexity exceeds the specified maximum. | |
Reports methods that have too many branch points. | |
Reports classes that reference too many other classes. | |
Reports methods that reference too many other classes. | |
Reports array initializer expressions for primitive arrays that contain too many elements. | |
Reports lambda expressions whose number of statements exceeds the specified maximum. | |
Reports methods whose number of statements exceeds the specified maximum. | |
Reports methods whose body contain too deeply nested statements. | |
Reports type casts that are overly strong. | |
Reports calls to overridable methods of the current class during object construction. | |
Reports any calls to overridden methods of the current class during object construction. | |
Reports code that overwrites a Map key, a Set element, or an array element in a sequence of add/put calls or using a Java 9 factory method like Set.of (which will result in runtime exception). | |
Reports packages whose names are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports non-empty packages that are present in several modules. | |
Reports packages whose classes can be separated into mutually independent subsets. | |
Reports packages that contain fewer classes than the specified minimum. | |
Reports packages that contain too many classes. | |
Reports fields that are declared without any access modifier (also known as package-private). | |
Reports nested classes that are declared without any access modifier (also known as package-private). | |
Reports method parameters named identically to a field of a surrounding class. | |
Parameter name differs from parameter in overridden or overloaded method | Reports parameters whose names differ from the corresponding parameters of the methods they override or overload. |
Reports parameter types of a subclass method that have the same name as the parameter type of the corresponding super method but belong to a different package. | |
Reports JUnit 4 parameterized test classes that are annotated with @RunWith(Parameterized.class) but either do not include a data provider method annotated with @Parameterized.Parameters or this method has an incorrect signature. | |
Reports when a @Pattern annotation is applied to an element with a type other than String. | |
Reports local variable declarations that can be replaced with pattern variables, which are usually more compact. | |
Reports pattern variables named identically to a field of a surrounding class. | |
Reports unnecessary comparisons with .indexOf() expressions. | |
Reports pointless bitwise expressions. | |
Reports unnecessary or overly complicated boolean expressions. | |
Reports methods with variable arity, which can be annotated as @SafeVarargs. | |
Reports compound assignments if the type of the right-hand operand is not assignment compatible with the type of the variable. | |
Reports instance methods with the same name and the same number of parameters as a method in a superclass, but where at least one of the parameters is of a different incompatible type. | |
Reports usages of Preview Feature APIs, i.e. | |
Reports private methods which are only called from an inner class of the class containing the method. | |
Reports catch clauses that catch an inappropriate exception. | |
Reports methods that declare an inappropriate exception in their throws clause. | |
Reports throw statements that throw an inappropriate exception. | |
Reports calls of setter methods with the same object getter as a value. | |
Reports protected fields. | |
Reports protected nested classes. | |
Reports public constructors of abstract classes. | |
Reports variables, methods, or classes with questionable, not really descriptive names. | |
Reports generic classes with omitted type parameters. | |
Reports reassigned variables, which complicate reading and understanding the code. | |
Reports record classes and suggests converting them to ordinary classes. | |
Reports patterns that can be replaced with record patterns. | |
Reports unnecessarily complex collection operations which have simpler alternatives. | |
Reports Collection.addAll() and Map.putAll() calls immediately after an instantiation of a collection using a no-arg constructor. | |
Reports redundant File creation in one of the following constructors when only String path can be used: FileInputStream, FileOutputStream, FileReader, FileWriter, PrintStream, PrintWriter, Formatter. | |
Reports redundant calls to String constructors and methods like toString() or substring() that can be replaced with a simpler expression. | |
Reports unnecessary calls to close() at the end of a try-with-resources block and suggests removing them. | |
Reports comparisons in which the compare method is superfluous. | |
Reports redundant else keywords in if—else statements and statement chains. | |
Reports redundant calls of java.lang.Class methods. | |
Reports constant new array expressions that can be replaced with an array initializer. | |
Reports redundant requires directives in Java Platform Module System module-info.java files. | |
Reports exceptions that are declared in a method's signature but never thrown by the method itself or its implementations and overriding methods. | |
Reports usages of @ApiStatus.ScheduledForRemoval annotation without inVersion attribute in code which targets Java 9 or newer version. | |
Reports arrays that are created specifically to be passed as a varargs parameter. | |
Reports unnecessary array length checks followed by array iteration. | |
Reports calls to methods like format() and printf() that can be safely removed or simplified. | |
Reports redundant embedded expressions in STR templates, such as trivial literals or empty expressions. | |
Reports redundant escapes in the replacement string of regex methods. | |
Reports fields explicitly initialized to their default values. | |
Reports interfaces in a class' implements list or an interface's extends list that are already implemented by a superclass or extended by a superinterface. | |
Reports lambda formal parameter types that are redundant because they can be inferred from the context. | |
Reports unnecessary constructors. | |
Reports redundant operations on empty collections, maps or arrays. | |
Reports redundant constructors declared inside Java records. | |
Reports redundant Stream or Optional calls like map(x -> x), filter(x -> true) or redundant sorted() or distinct() calls. | |
Reports unnecessary cast expressions. | |
Reports redundant calls to unmodifiable collection wrappers from the Collections class. | |
Reports references to variables that are checked for nullability in the condition of an if statement or conditional expression but not used inside that if statement. | |
Reference to empty collection field can be replaced with method call | Reports usages of java.util.Collections fields: EMPTY_LIST, EMPTY_MAP or EMPTY_SET. |
Reports any references to classes from the default package in JSP files. | |
Reports Class.forName() and ClassLoader.loadClass() calls which try to access classes that aren't visible in the current scope due to Java 9 module accessibility rules. | |
Reports attempts to reflectively check for the presence of a non-runtime annotation. | |
Reflective access to non-existent or not visible class member | Reports reflective access to fields and methods that don't exist or aren't visible. |
Reports cases in which the arguments provided to Method.invoke() and Constructor.newInstance() do not match the signature specified in Class.getMethod() and Class.getConstructor(). | |
Reports calls to the String methods replace(), replaceAll() or replaceFirst() that have no effect. | |
Reports resource methods with multiple HTTP method annotations (@GET, @POST, @PUT, and so on). | |
Reports increment or decrement expressions that are nested inside other expressions. | |
Reports method calls whose result is ignored. | |
Reports return statements with null return values. | |
Reports methods returning this. | |
Reports return statements that return an instance of an anonymous, local, or inner class. | |
Reports numeric values returned from methods that don't conform to the declared method return range. | |
Same file subclasses are missing from permits clause of a sealed class | Reports sealed classes without an explicit permits list. |
Reports any variable declarations that can be moved to a smaller scope. | |
Reports collection API method calls that can be simplified using SequencedCollection methods. | |
Serializable non-static inner class without 'serialVersionUID' | Reports classes that may be serialized or deserialized. |
Reports Serializable classes whose closest non-serializable ancestor doesn't have a no-argument constructor. | |
Serializable non-static inner class without 'serialVersionUID' | Reports Serializable classes that do not implement readObject() and writeObject() methods. |
Serializable non-static inner class without 'serialVersionUID' | 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' | Reports non-static inner classes that implement java.io.Serializable, but do not define a serialVersionUID field. |
Reports shift operations where the shift value is a constant outside the reasonable range. | |
Reports common usage patterns of java.util.Map and suggests replacing them with: getOrDefault(), computeIfAbsent(), putIfAbsent(), merge(), or replaceAll(). | |
Reports annotations that can be simplified to their single-element or marker shorthand form. | |
Reports any assert calls that can be replaced with simpler and equivalent calls. | |
Reports boolean expressions that can be simplified. | |
Reports collectors that can be simplified. | |
Reports conditional expressions and suggests simplifying them. | |
Reports forEach() calls that can be replaced with a more concise method or from which intermediate steps can be extracted. | |
Reports calls to String.startsWith() and String.endsWith() where single character string literals are passed as an argument. | |
Reports single character strings being used as an argument in String.indexOf() and String.lastIndexOf() calls. | |
Reports concatenation with string literals that consist of one character. | |
Reports import statements that import single classes (as opposed to entire packages). | |
Reports singleton classes. | |
Reports socket resources that are not safely closed. | |
Reports construction of sorted collections, for example TreeSet, that rely on natural ordering, whose element type doesn't implement the Comparable interface. | |
Reports methods and constructors in which constant charset String literal (for example, "UTF-8") can be replaced with the predefined StandardCharsets.UTF_8 code. | |
Reports bitwise operations that can be replaced with a call to the Long.hashCode() or Double.hashCode() methods. | |
Reports variables with 'standard' names that do not correspond to their types. | |
Statement can be replaced with 'assert' or 'Objects.requireNonNull' | Reports if statements that throw only java.lang.Throwable from a then branch and do not have an else branch. |
Reports switch statements that can be automatically replaced with enhanced switch statements or expressions. | |
Reports lambda expressions with code block bodies when expression-style bodies can be used instead. | |
Reports static fields of a Collection type. | |
Reports static variables that may be uninitialized upon class initialization. | |
Reports accesses to static fields where the call is qualified by a subclass of the declaring class, rather than by the declaring class itself. | |
Reports static variables that are read before initialization. | |
Reports import static statements. | |
Reports interfaces that are implemented only to provide access to constants. | |
Reports classes that refer to their subclasses in static initializers or static fields. | |
Reports @GuardedBy annotations on static fields or methods in which the guard is either a non-static field or this. | |
Reports static methods and fields that are only used from a class other than the containing class. | |
Reports static method calls where the call is qualified by a subclass of the declaring class, rather than by the declaring class itself. | |
Reports Stream API chains, Iterable.forEach(), and Map.forEach() calls that can be automatically converted into classical loops. | |
Reports stream API call chains that can be simplified. | |
Reports code that uses of == or != to compare strings. | |
Reports String concatenations. | |
String concatenation as argument to 'MessageFormat.format()' call | Reports non-constant string concatenations used as an argument to a call to MessageFormat.format(). |
String concatenation as argument to 'StringBuilder.append()' call | Reports String concatenation used as the argument to StringBuffer.append(), StringBuilder.append() or Appendable.append(). |
Reports non-constant string concatenations used as a format string argument. | |
Reports String concatenation in loops. | |
Reports String.equals() or String.equalsIgnoreCase() calls with a string literal argument. | |
Reports string template expressions using the STR processor and offers a quick-fix to migrate back to a plain string concatenation. | |
Reports String concatenations that can be simplified by replacing them with a string template. | |
Reports loops that can be replaced with a single String.repeat() method (available since Java 11). | |
Reports calls to StringBuffer and StringBuilder constructors with char as the argument. | |
Reports fields in a derived class that are named identically a field of a superclass. | |
Detects transformations outside a Stream API chain that could be incorporated into it. | |
Reports subtraction in compareTo() methods and methods implementing java.util.Comparator.compare(). | |
Reports calls to non-generic-array manipulation methods like Arrays.fill() with mismatched argument types. | |
Reports getClass() methods that are called on a java.lang.Class instance. | |
Reports suspicious calls to Collection.toArray(). | |
Reports problems in Comparator.compare() and Comparable.compareTo() implementations. | |
Reports implementations of InvocationHandler that do not proxy standard Object methods like hashCode(), equals(), and toString(). | |
Reports list.remove(index) calls inside an ascending counted loop. | |
Reports suspicious calls to System.arraycopy(). | |
Reports suspicious array casts. | |
Reports expressions of byte type returned from a method implementing the InputStream.read() method. | |
Reports method calls on parameterized collections, where the actual argument type does not correspond to the collection's elements type. | |
Reports date format patterns that are likely used by mistake. | |
Reports getter or setter methods that access a field that is not expected by its name. | |
Suspicious indentation after control statement without braces | Reports suspicious indentation of statements after a control statement without braces. |
Reports assignments whose right side is a division that shouldn't be truncated to integer. | |
Reports odd-even checks of the following form: x % 2 == 1. | |
Reports calls to String.replaceAll() or String.split() where the first argument is a single regex meta character argument. | |
Reports vararg method calls that use a ternary operator with mixed array and non-array branches. | |
Reports decimal number literals that use the underscore numeric separator with groups where the number of digits is not three. | |
Reports comparisons of the result of Comparator.compare() or Comparable.compareTo() calls with non-zero constants. | |
Reports synchronization on a call to getClass(). | |
Reports synchronization on static fields. | |
Reports synchronization on this or class expressions. | |
Reports synchronized blocks that lock on an instance of java.util.concurrent.locks.Lock. | |
Reports synchronized statement lock expressions that consist of a non-final field reference. | |
Reports synchronized blocks that lock on an object initialized with a literal. | |
Reports synchronization on a local variable or parameter. | |
Reports references from a nested class to non-constant private members of an outer class. | |
Reports annotations with a SOURCE or CLASS retention policy that are supposed to be used by JUnit 5. | |
Asserts your TestNG tests with Javadoc annotations and converts them to JDK annotations. | |
Reports text blocks that can be replaced with regular string literals. | |
Reports String concatenations that can be simplified by replacing them with text blocks. | |
Reports Supplier lambdas in Optional.orElseThrow() calls that throw an exception, instead of returning it. | |
Reports type casts that can be removed if the variable type is narrowed to the cast type. | |
Reports text blocks with trailing whitespace characters. | |
Reports transient fields in classes that do not implement java.io.Serializable. | |
Reports transient fields that are initialized during normal object construction, but whose class does not have a readObject method. | |
Reports functional interface methods calls that are directly invoked on the definition of the lambda, method reference, or anonymous class. | |
Reports variable and method return types that can be changed to a more abstract (weaker) type. | |
Reports type parameters and wildcard type arguments that are explicitly declared to extend java.lang.Object. | |
Reports type parameters declared to extend a final class. | |
Reports type parameters that have the same names as the visible types in the current scope. | |
Reports usages of the + unary operator. | |
Reports subclasses of java.lang.RuntimeException. | |
Reports declaration of an unchecked exception (java.lang.RuntimeException or one of its subclasses) in the throws clause of a method. | |
Reports code on which an unchecked warning will be issued by the javac compiler. | |
Reports wait() being called unconditionally within a synchronized context. | |
Reports test classes that are not registered in testing.xml. | |
Reports undefined group names passed to the dependsOnGroups or groups attributes in the @Test annotation. | |
Reports numeric literals with underscores and suggests removing them with a quick-fix. | |
Reports accesses of fields declared as @GuardedBy that are not guarded by an appropriate synchronization structure. | |
Reports @GuardedBy annotations in which the specified guarding field is unknown. | |
Reports when the ID of the language used in a @Language annotation is unknown. | |
Reports unnecessarily escaped characters in String and optionally char literals. | |
Reports any references to inner classes that are unnecessarily qualified with the name of the enclosing class. | |
Reports usages of static members unnecessarily qualified with the class name. | |
Reports usage of statically imported members qualified with their containing class name. | |
Reports any unnecessary break statements. | |
Reports enum switch statements or expression with default branches which can never be taken, because all possible values are covered by a case branch. | |
Reports local variables or parameters unnecessarily declared final. | |
Reports comparisons to null that are followed by a call to equals() with a constant argument. | |
Reports null checks followed by a method call that will definitely return false when null is passed (e.g. | |
Reports unnecessary super qualifiers in method calls and field references. | |
Reports unnecessary this qualifier. | |
Reports Javadoc comments that contain only an {@inheritDoc} tag. | |
Reports Javadoc @see, {@link}, and {@linkplain} tags that refer to the method owning the comment, the super method of the method owning the comment, or the class containing the comment. | |
Reports explicit boxing, that is wrapping of primitive values in objects. | |
Reports calls to Throwable.initCause() where an exception constructor also takes a Throwable cause argument. | |
Reports calls to no-arg superclass constructors during object construction. | |
Reports calls to toString() that are used in the following cases: In string concatenations In the java.lang.StringBuilder#append() or java.lang.StringBuffer#append() methods In the methods of java.io.PrintWriter or java.io.PrintStream in the methods org.slf4j.Logger In these cases, conversion to string will be handled by the underlying library methods, and the explicit call to toString() is not needed. | |
Reports code blocks that are redundant to the semantics of the program and can be replaced with their contents. | |
Reports unnecessary calls to static methods that convert their parameters to a string, e.g. | |
Reports primitive numeric casts that would be inserted implicitly by the compiler. | |
Reports unneeded final modifiers before val. | |
Reports import statements that refer to the java.lang package. | |
Reports import statements that refer to the same package as the containing file. | |
Reports redundant modifiers and suggests to remove them. | |
Reports unnecessary qualification of this or super. | |
Reports unnecessary creation of temporary objects when converting from String to primitive types. | |
Reports unnecessary creation of temporary objects when converting from a primitive type to String. | |
Reports unnecessary unary minuses. | |
Reports unboxing, that is explicit unwrapping of wrapped primitive values. | |
Reports unnecessary unicode escape sequences. | |
Reports allocations of arrays with known lengths of zero when there is a constant for that in the class of the array's element type. | |
Reports calls to BigDecimal constructors that accept a double value. | |
Reports references to inner classes that are not qualified with the name of the enclosing class. | |
Reports usage of static members that is not qualified with the class name. | |
Reports long numeric literals without underscores and suggests adding them. | |
Reports calls to java.lang.Class.newInstance(). | |
Reports static variables that are lazily initialized in a non-thread-safe manner. | |
Reports non-synchronized methods overriding synchronized methods. | |
Reports labels that are not targets of any break or continue statements. | |
Reports usages of Kotlin internal declarations in Java code that is located in a different module. | |
Reports any calls to methods from the junit.framework.Assert class. | |
Reports situations in which a service is loaded with java.util.ServiceLoader but it isn't declared with the uses clause in the module-info.java file and suggests inserting it. | |
Reports variables, methods, and classes with dollar signs ($) in their names. | |
Reports any uses of java.sql.DriverManager to acquire a JDBC connection. | |
Reports calls to the following methods on java.util.Properties objects: put() putIfAbsent() putAll() get() For historical reasons, java.util.Properties inherits from java.util.Hashtable, but using these methods is discouraged to prevent pollution of properties with values of types other than String. | |
Reports usages of the StringTokenizer class. | |
Reports usages of System.out or System.err. | |
Reports implementations of, and calls to, the clone() method and uses of the java.lang.Cloneable interface. | |
Reports uses of java.lang.ProcessBuilder, which might be unportable between operating systems because paths to executables, environment variables, command-line arguments and their escaping might vary depending on the OS. | |
Reports uses of classes from the sun.* hierarchy. | |
Reports uses of AWT peer classes. | |
Reports uses of Optional.ofNullable() where always null or always not-null argument is passed. | |
Reports uses of specific JDBC driver classes. | |
Reports usages of concrete classes, rather than interfaces. | |
Reports attempts to access column 0 of java.sql.ResultSet or java.sql.PreparedStatement. | |
Reports usages of java.util.Vector, java.util.Hashtable and java.util.Stack. | |
Reports usages of java.util.Date, java.util.Calendar, java.util.GregorianCalendar, java.util.TimeZone, and java.util.SimpleTimeZone. | |
Reports expressions that seem to use an inappropriate method for determining array equality or calculating their hashcode. | |
Reports any usages of variables which are known to be constant. | |
Reports calls to java.util.Random.nextDouble() that are used to create a positive integer number by multiplying the call by a factor and casting to an integer. | |
Reports instanceof with patterns and suggests converting them to ordinary instanceof with casts. | |
Using PsiElement string representation to generate new expression is incorrect | Reports direct usage of PsiElement and PsiType in strings. |
Reports usages of static imports for Lombok's generated methods. | |
Reports utility classes. | |
Reports utility classes that can be converted to enums. | |
Reports utility classes that aren't final or abstract. | |
Reports utility classes with public constructors. | |
Reports utility classes without private constructors. | |
Reports expressions passed as arguments for @Pattern parameters and returned from @Pattern-annotated methods that do not match the specified pattern. | |
Reports redundant method parameters that can be replaced with local variables. | |
Reports attempts to synchronize on an instance of a value-based class that produce compile-time warnings and raise run-time exceptions starting from Java 16. | |
Reports methods that accept an arbitrary number of parameters (also known as varargs methods). | |
Reports local variables of the var type that can be replaced with an explicit type. | |
Reports array fields that are declared volatile. | |
Reports string concatenations with missing whitespaces, that is where the left-hand side ends with a Unicode letter or digit and the right-hand side starts with a Unicode letter or digit. | |
Reports local variables of wrapper type that are mostly used as primitive types. | |
Reports objects that are modified but never queried. | |
Detects package statements that do not correspond to the project directory structure. | |
Reports allocations of arrays with known lengths of zero. |
JavaScript
Name | Description |
---|---|
Reports a usage of await in a function that was possibly intended to be async but is actually missing the async modifier. | |
Reports a break statements. | |
Reports a labeled break statement. | |
Reports a break or continue statement inside a finally block. | |
Reports a continue statement. | |
Reports a labeled continue statement. | |
Reports a debugger statement used for interaction with the Javascript debuggers. | |
Reports a switch statement where the default case comes before another case instead of being the very last case, which may cause confusion. | |
Reports a for loop that contains neither initialization nor an update component. | |
'for' loop where update or condition does not use loop variable | Reports a for loop where the condition or update does not use the for loop variable. |
Reports a usage of a for..in loop on an array. | |
Reports an if statement with identical then and else branches. | |
Reports an if statement with too many branches. | |
Reports a let declaration that can be made const. | |
Reports a module.export statement. | |
Reports a require() statement. | |
Reports a return statement inside a finally block. | |
Reports a switch statement on a variable of the type enum or union when the statement doesn't cover some value options from the type. | |
Reports a switch statement without a default clause when some possible values are not enumerated. | |
Reports a switch statement with an empty body, or with only one case branch, or with a default branch only. | |
Reports a switch statement without default branches in CoffeeScript content. | |
Reports a this expression outside an object literal or a constructor body. | |
Reports s throw statement inside a finally block. | |
Reports a comparison of a typeof expression with a literal string which is not one of the standard types: undefined, object, boolean, number, string, function, or symbol. | |
Checks that declarations of local variables declared with var are at the top of a function scope. | |
Reports a var declaration that is used instead of let or const. | |
Reports a void expression. | |
Reports a with statements. | |
Reports an anonymous function. | |
Reports an assignment operation that can be replaced by an operator assignment to make your code shorter and probably clearer. | |
Reports an assignment to a variable declared as a for loop parameter. | |
Reports an assignment to a function parameter, including increment and decrement operations. | |
Reports an assignment that is used as the condition of an if, while, for, or do statement. | |
Reports reassigning a value to a constant or a readonly variable. | |
Reports an expression that includes and with zero, or by zero, or shifting by zero. | |
Reports a suspicious usage of a bitwise AND ("&") or OR ("|") operator. | |
Reports a method call to document.write() or document.writeln(). | |
Reports a chained equality comparison (i.e. | |
Reports a function call whose target is another function call, for example, foo().bar(). | |
Reports methods, classes and files whose coverage is below a certain threshold. | |
Reports a class or a function that is annotated with a JSDoc @constructor or @class tag whose names are too short, too long, or do not follow the specified regular expression pattern. | |
Reports a comma expression. | |
Reports a comparison with operands of incompatible types or an operand with a type without possible common values. | |
Reports a comparison with NaN. | |
Reports a ternary conditional expression. | |
Reports a ternary conditional expression with identical then and else branches. | |
Reports any floating point number that does not have a decimal point, or any numbers before the decimal point, or and numbers after the decimal point. | |
Reports a suspicious combination of + or - characters in JavaScript code (for example, a+++b. | |
Reports a consecutive comma in an array literal. | |
Reports a conditional expression in the format true? result1: result2 or false? result1: result2. | |
Reports a comparison operation with a constant value in the left-hand side. | |
Reports a comparison operation with a constant in the right-hand side. | |
Reports a usage of a deprecated function variable. | |
Reports multiple destructuring properties with identical keys. | |
Reports division by zero or a remainder by zero. | |
Reports a duplicated case label on a switch statement, which normally indicates an error. | |
Reports duplicate conditions in different branches of an if statement. | |
Reports multiple declarations in a scope. | |
Reports basic syntax issues and inconsistencies with language specification, such as invalid usages of keywords, usages of incompatible numeric format, or multiple parameters to getters/setters. | |
Reports a discrepancy detected by the ESLint linter. | |
Reports an empty catch block. | |
Reports an empty finally block, which usually indicates an error. | |
Reports an empty try block, which usually indicates an error. | |
Reports a throw statement whose exceptions are always caught by the containing try statement. | |
Reports a call of the eval(), setTimeout(), or setInterval() function or an allocation of a Function object. | |
Reports an expression statement that is neither an assignment nor a call. | |
Reports a switch statement where control can proceed from a branch to the next one. | |
Reports errors from Flow. | |
Reports a function expression. | |
Reports a function whose name is too short, too long, or does not follow the specified regular expression pattern. | |
Reports a function parameter whose name is too short, too long, or doesn't follow the specified regular expression pattern. | |
Checks an argument in a CoffeeScript call expression that doesn't match the signature of the referenced function, including types, the number, and the order of arguments. | |
Reports a function that returns a value in some cases while in other cases no value is returned. | |
Reports a function with three or more negation operations (! or !=). | |
Reports a function with multiple loop statements. | |
Reports a function with multiple return points. | |
Reports a function with too many parameters. | |
Reports a failed method call or an assertion in a test. | |
Reports a non-ASCII symbol in a name. | |
Reports an implicit declaration of a global variable. | |
Reports an ES6 import whose from part can be shortened. | |
Reports a reference to a JavaScript member that is marked with a @private or @protected tag but does not comply with visibility rules that these tags imply. | |
Reports a common JavaScript pattern for detecting the browser or operating system in which the script is run. | |
Reports common JavaScript DOM patterns which may present problems with XHTML documents. | |
Reports a bitwise mask expression which for sure evaluates to true or false. | |
Reports warnings implied by Google Closure Compiler annotations including correct use of @abstract, @interface, and @implements tags. | |
Reports an indexed for loop used on an array. | |
Reports a for, while, or do statement which can only exit by throwing an exception. | |
Reports a function which must either recurse infinitely or throw an exception. | |
Detects HTML elements in JSX files which are not nested properly according to the DOM specification. | |
Reports a potential error in a file path ('basePath', 'files') for a Karma configuration file, for example, karma.conf.js. | |
Reports a duplicated jQuery selector that can be cached or a usage of an attribute or a pseudo-selector (optional). | |
Reports a problem detected by the JSHint linter. | |
Reports a usage of a JSX tag in JavaScript code. | |
Reports a labeled statement. | |
Reports a local variable whose name is too short, too long, or doesn't follow the specified regular expression pattern. | |
Reports a for, while, or do statement whose bodies are guaranteed to execute at most once. | |
Reports a "magic number" that is a numeric literal used without being named by a constant declaration. | |
Reports a class method that can be safely made static. | |
Reports mismatch between the names and the number of parameters within a JSDoc comment and the actual parameters of a function. | |
Reports a collection of fields or variables whose contents are either queried and not updated or updated and not queried. | |
Reports a usage of a JSX construction without importing namespace. | |
Reports an async function call without an expected await prefix inside an async function. | |
Reports a module from a require() call or an import statement that is not installed or is not listed in package.json dependencies. | |
Reports a not installed module and suggests running the importmap:require or importmap:install command. | |
Reports if statements which have an else branch and a negated condition. | |
Reports a conditional expression whose condition is negated. | |
Reports a switch statement that is nested in another switch statement. | |
Reports an assignment expression nested inside another expression, for example, a = b = 1. | |
Reports a ternary conditional expression within another ternary condition. | |
Reports a function nested inside another function. | |
Reports a function call that is used as an argument in another function call, for example, foo(bar()). | |
Reports a JavaScript file that is not in the strict mode. | |
Reports an error caused by invoking a method, accessing a property, or calling a function on an object that is undefined or null. | |
Reports an object literal expression that is invoked as if it were a function. | |
Reports a deprecated octal integer literal prefixed with 0 instead of 0o. | |
Reports an arithmetic expression with too many terms. | |
Reports a boolean expression with too many terms. | |
Reports a function with too many branching points in a function (too high cyclomatic complexity). | |
Reports an overly long function. | |
Reports a function whose body contains statements that are too deeply nested within other statements. | |
Reports an arithmetic expression that include adding or subtracting zero, multiplying by zero or one, division by one, and shift by zero. | |
Reports a pointless or pointlessly complicated boolean expression or statement. | |
Reports a potentially invalid indexed property access, for example, Array[1]. | |
Reports a usage of a potentially invalid constructor function, for example: a function that is not a constructor after new, using a constructor's prototype or calling a constructor without new. | |
Reports a this in closure that is used for referencing properties of outer context. | |
Potentially invalid reference to 'this' of a class from closure | Reports an attempt to reference a member of an ECMAScript class via the this. |
Reports an improper usage of a wrapper for primitive types or a property of a primitive type being modified, as in the latter case the assigned value will be lost. | |
Reports an object property that can be converted to ES6 shorthand style and provides a quick-fix to do it. | |
Reports a redundant usage of await, such as await await, or awaiting a non-promise result. | |
Reports an if statement that can be simplified to a single assignment or a return statement. | |
Reports an arrow function whose body only consists of braces and exactly one statement. | |
Reports a conditional expression of the form condition ? true : false condition ? false : true These expressions may be safely converted to condition !condition. | |
Reports an unnecessary local variable that does not make a function more comprehensible: a local variable that is immediately returned a local variable that is immediately assigned to another variable and is not used anymore a local variable that always has the same value as another local variable or parameter. | |
Reports nested instances of a string or a template literal. | |
Reports a usage of a Universal Module Definition (UMD) global variable if the current file is a module (ECMAScript or CommonJS). | |
Reports access to outer mutable variables from functions. | |
Reports a JavaScript reserved word used as a name. | |
Reports an assignment expression where the result of the assignment is used in the containing expression. | |
Reports an increment (++) or decrement (--) expression where the result of the assignment is used in a containing expression. | |
Reports a function call that returns a Promise that is not used later. | |
Reports object allocation where the result of the allocated object is ignored, for example, new Error(); as a statement, without any assignment. | |
Reports reusing a local variable and overwriting its value with a new value that is not related to the original variable usage. | |
Reports a shift operation where the second operand is a constant outside the reasonable range, for example, an integer shift operation outside the range 0..31, shifting by negative or overly large values. | |
Reports a JavaScript call expression where the arguments do not match the signature of the referenced function, including the types of arguments and their number. | |
Reports a discrepancy detected by the JavaScript Standard Style linter. | |
Reports a if, while, for, or with statements whose body is not a block statement. | |
Reports an if, while, for, or with statement with an empty body. | |
Reports a string concatenation. | |
Reports a string literal that contains a </ sequence. | |
Reports an assignment in the form a =+ b. | |
Reports bind used together with an arrow function. | |
Reports an assignment or a function call where the name of the target variable or the function parameter does not match the name of the value assigned to it. | |
Reports a syntax discrepancy in a documentation comment. | |
Reports a tail recursion, that is, when a function calls itself as its last action before returning. | |
Reports a labeled statement inside a switch statement, which often results from a typo. | |
Reports a usage of a top-level await expression. | |
Checks used URL imports in the JavaScript language. | |
Reports usages of undefined Action Cable channels. | |
Reports an assignment to a property that is not defined in the type of a variable. | |
Reports unfiltered for-in loops. | |
Reports an unnecessary continue statement at the end of a loop. | |
Reports an unnecessary return statement, that is, a return statement that returns no value and occurs just before the function would have "fallen through" the bottom. | |
Reports a block statement that is not used as the body of if, for, while, do, with, or try statements, or as the body of a function declaration. | |
Reports an unused label. | |
Reports a labeled break statement whose labels may be removed without changing the flow of control. | |
Reports a labeled continue statement whose labels may be removed without changing the flow of control. | |
Reports redundant parentheses. | |
Reports an unneeded semicolon. | |
Reports a usage of a trailing comma in an array literal. | |
Reports usages of a trailing comma in object literals. | |
Reports an unreachable case branch of a switch statement. | |
Reports code that can never be executed, which almost certainly indicates an error. | |
Reports an Ext JS xtype reference that doesn't have a corresponding class. | |
Reports an unresolved reference to a JSX component. | |
Suggests configuring coding assistance for Node.js, for example, require and/or core modules ('path', 'http', 'fs', etc.). | |
Reports an unresolved file reference in a JavaScript file, including CommonJS and AMD modules references. | |
Reports an unresolved reference in JavaScript code. | |
Reports a typeof or instanceof unsound type guard check. | |
Reports a statement without a semicolon or a newline at the end. | |
Reports a catch parameter that is not used in the corresponding block. | |
Reports a variable whose value is never used after assignment. | |
Reports an unused globally accessible public function, variable, class, or property. | |
Reports a redundant import statement. | |
Reports an unused locally accessible parameter, local variable, function, class, or private member declaration. | |
Reports a usage of the caller property in a JavaScript function. | |
Reports a JavaScript access to DOM nodes as text using the innerHTML property. | |
Reports any assignment of the form x = x in CoffeeScript content. | |
Variable declaration can be merged with the first assignment to the variable | Reports a variable that is declared without an initializer and is used much further in the code or in a single nested scope. |
Reports an assignment in the form x = x. | |
Variable is declared and being used in different 'case' clauses | Reports a variable that is declared in one case clause of a switch statement but is used in another case clause of the same statement. |
Reports a return value of a function that doesn't return anything. | |
Reports usages of Vulnerable APIs of imported dependencies. | |
Validates options in webpack config files (which name should start with `webpack`, e.g. |
Jpaql
Name | Description |
---|---|
Reports the following errors inside Persistence QL queries: Mismatching expression types Incorrect parameters Empty or constant conditions Unresolved symbols Example queries: SELECT OBJECT(e) FROM JavaEntity e WHERE TRUE // Warning: constant condition SELECT OBJECT(e) FROM JavaEntity e WHERE e.id BETWEEN 0 AND '2' // Error: expected a numeric value but got a string SELECT e from JavaEntity e where e.id=?1 and e.name=?3 // Error: there are only 2 actual query parameters. |
Json
Name | Description |
---|---|
Suggests using the ng add command to install the dependency. | |
Reports Auth configuration the following problems in HTTP Client environment files: Missing properties in Auth configuration Auth/Security configuration placed in private environment file. | |
Reports inconsistence between a JSON file and the JSON schema that is assigned to it. | |
Reports the following discrepancies of a JSON file with the language specification: A line or block comment (configurable). | |
Reports a deprecated property in a JSON file. | |
Reports a duplicate key in an object literal. | |
Reports duplicate package entries in the require and require-dev sections of composer.json. | |
Reports inconsistency of a paths, checkJs, or extends property in a tsconfig.json file. | |
Reports missing and deprecated properties, unresolved references, and invalid values in the additional-spring-configuration-metadata.json configuration file. | |
Reports a dependency from package.json that is not installed or doesn't match the specified version range. | |
Reports possible requests in injected JSON body where request separator ### is missing. | |
Reports the Composer packages that are required in composer.json but are not installed. | |
Highlights the quality tools' entries in composer.json in case the corresponding code inspections are disabled. | |
Reports unknown inspection ids in metaInformation.json files. | |
RIDER-83134. | |
Reports an unresolved $ref or $schema path in a JSON schema. | |
Suggests to upgrade your package.json dependencies to the latest versions, ignoring specified versions. | |
. |
Json5
Name | Description |
---|---|
Reports inconsistency with the language specification in a JSON5 file. |
Jsonpath
Name | Description |
---|---|
Reports an unknown name in a JSONPath function call instead of known standard function names: concat, keys, length, min, max, avg, stddev, sum. | |
Reports an unknown operator on a JSONPath expression instead of one of the standard ones: in, nin, subsetof, anyof, noneof, size, empty, contains. | |
Reports a key in a JSONPath expression that is missing in the source JSON document to evaluate. |
Jupyter
Name | Description |
---|---|
Reports cases when the jupyter package is not installed for the selected Python interpreter. |
Kotlin
Name | Description |
---|---|
Reports function calls with the Deferred result type if the return value is not used. | |
'@JvmOverloads' annotation cannot be used on constructors of annotation classes since 1.4 | Reports @JvmOverloads on constructors of annotation classes because it's meaningless. |
'Enum.values()' is recommended to be replaced by 'Enum.entries' since 1.9 | Reports calls from Kotlin to values() method in enum classes that can be replaced with entries property read. |
Reports hashMapOf function or HashMap constructor calls that can be replaced with an EnumMap constructor call. | |
Reports String.format calls that can be replaced with string templates. | |
'StringBuilder.append(CharArray, offset, len)' call on the JVM | Reports a StringBuilder.append(CharArray, offset, len) function call on the JVM platform that should be replaced with a StringBuilder.appendRange(CharArray, startIndex, endIndex) function call. |
Reports arrayOf calls that can be replaced with array literals [...]. | |
Reports assert calls that check a not null value of the declared variable. | |
'associate' can be replaced with 'associateBy' or 'associateWith' | Reports calls to associate() and associateTo() that can be replaced with associateBy() or associateWith(). |
Reports catch blocks that are empty or may ignore an exception. | |
'copy' method of data class is called without named arguments | Reports calls to a data class' copy() method without named arguments. |
Reports calls of the Kotlin standard library function filterIsInstance with a class literal argument. | |
Reports isEmpty, isBlank, isNotEmpty, or isNotBlank calls in an if statement to assign a default value. | |
'inline fun' extension receiver can be explicitly nullable until Kotlin 1.2 | Reports inline functions with non-nullable extension receivers which don't use the fact that extension receiver is not nullable. |
Reports potentially unsafe calls of inline functions with flexible nullable (platform type with unknown nullability) extension receivers. | |
'kotlin.browser' and 'kotlin.dom' packages are deprecated since 1.4 | Reports usages of kotlin.dom and kotlin.browser packages. |
Reports lateinit var properties that override other lateinit var properties. | |
Reports map.get()!! that can be replaced with map.getValue(), map.getOrElse(), and so on. | |
Reports map.put function calls that can be replaced with indexing operator ([]). | |
'protected' visibility is effectively 'private' in a final class | Reports protected visibility used inside of a final class. |
Reports calls to rangeTo or the . | |
Reports calls to rangeTo or the . | |
Reports calls to readLine() that can be replaced with readln() or readlnOrNull(). | |
Reports calls like s.substring(0, s.length - x) that can be replaced with s.dropLast(x). | |
Reports calls like s.substring(s.indexOf(x)) that can be replaced with s.substringAfter(x). | |
Reports calls like s.substring(0, s.indexOf(x)) that can be replaced with s.substringBefore(x). | |
Reports calls like s.substring(0, x) that can be replaced with s.take(x). | |
Reports calls like "abc".substring(0, 1) that can be replaced with "abc"[0]. | |
Reports to function calls that can be replaced with the infix form. | |
Reports when expressions with only an else branch that can be simplified. | |
Reports a when expression that can be simplified by introducing a subject argument. | |
Reports deprecated functions and properties that do not have the kotlin.ReplaceWith argument in its kotlin.deprecated annotation and suggests to add one based on their body. | |
Accessor call that can be replaced with property access syntax | Reports Java get and set method calls that can be replaced with the Kotlin synthetic properties. |
Ambiguous coroutineContext due to CoroutineScope receiver of suspend function | Reports calls and accesses of CoroutineScope extensions or members inside suspend functions with CoroutineScope receiver. |
Reports ambiguous logical expressions in when branches which cause compilation errors in Kotlin 1.8 and later. | |
Reports break or continue usages inside of lambdas of loop-like functions. | |
Reports an unary operator followed by a dot qualifier such as -1.inc(). | |
Detects the function calls that could work faster with an argument converted to Set. | |
Reports properties with an Array type in a data class without overridden equals() or hashCode(). | |
Reports usages of == or != operator for arrays that should be replaced with contentEquals(). | |
Reports calls to assertTrue() and assertFalse() that can be replaced with assert equality functions. | |
Augmented assignment creates a new collection under the hood | Reports augmented assignment (+=) expressions on a read-only Collection. |
Reports call arguments with Boolean type without explicit parameter names specified. | |
Reports boxed Range.start and Range.endInclusive properties. | |
Call chain on collection could be converted into 'Sequence' to improve performance | Reports call chain on a Collection that should be converted into Sequence. |
Reports two-call chains replaceable by a single call. | |
Reports toString function calls that can be replaced with a string template. | |
Reports Java mutator methods calls (like fill, reverse, shuffle, sort) on an immutable Kotlin collection. | |
Reports usages of print or println. | |
Reports function calls that can be replaced with binary operators, in particular comparison-related ones. | |
Reports function literal expressions that can be replaced with function references. | |
Reports a function reference expression that can be replaced with a function literal (lambda). | |
Reports if statements with three or more branches that can be replaced with the when expression. | |
Reports declarations that can be made private to follow the encapsulation principle. | |
Reports calls to Collection<T>.count(). | |
Reports incorrect companion objects' usage in extensions. | |
Reports if expressions that have true or false constant literal condition and can be simplified. | |
Reports const property names that do not follow the recommended naming conventions. | |
Reports non-trivial conditions and values that are statically known to be always true, false, null or zero. | |
Reports constructors with a non-null self-reference parameter. | |
Reports primary constructor parameters that can have val or var removed. | |
Reports if, while, do or for statements with empty bodies. | |
Reports object that can be converted to data object. | |
Reports a Pair constructor invocation that can be replaced with a to() infix function call. | |
Reports an equality check with Float.NaN or Double.NaN that should be replaced with an isNaN() check. | |
Reports a secondary constructor that can be replaced with a more concise primary constructor. | |
Reports a try-finally block with resource.close() in finally which can be converted to a resource.use() call. | |
Reports interface delegation to a var property. | |
Reports 'declaringClass' property calls on Enum that will lead to compilation error since 1.9. | |
Reports suppressions with old diagnostic names, for example @Suppress("HEADER_WITHOUT_IMPLEMENTATION"). | |
Do not propagate method deprecation through overrides since 1.9 | Reports a declarations that are propagated by @Deprecated annotation that will lead to compilation error since 1.9. |
Reports enum entry names that do not follow the recommended naming conventions. | |
Equality check can be used instead of elvis for nullable boolean check | Reports cases when an equality check should be used instead of the elvis operator. |
Reports property setters that don't update the backing field. | |
Reports code that uses experimental coroutines. | |
Reports explicit calls to get or set functions which can be replaced by an indexing operator []. | |
Reports expressions that will be of type Int, thus causing compilation errors in Kotlin 1.9 and later. | |
Reports return expressions (one-liners or when) that can be replaced with expression body syntax. | |
Reports extension properties that conflict with synthetic ones that have been automatically produced from Java get or set methods. | |
Reports non-nullable boolean properties in external interface. | |
Reports not var properties in external interface. | |
Reports floating-point literals that cannot be represented with the required precision using IEEE 754 Float and Double types. | |
Reports a constructor calls on functional supertypes that will lead to compilation error since 1.9. | |
Reports inappropriate usages of methods in Kotlin coroutines, which uses threading context (annotated with @RequiresBlockingContext). | |
Fully qualified name can be replaced with existing import alias | Reports fully qualified names that can be replaced with an existing import alias. |
Reports functions and properties that have a platform type. | |
Reports a function that matches one of the operator conventions but lacks the operator keyword. | |
Reports functions with = { .. | |
Reports absent of implementation for the entity. | |
Reports guard clauses that can be replaced with a function call. | |
Reports an if expression that checks variable being null or not right after initializing it that can be converted into an elvis operator in the initializer. | |
Reports if-then expressions that can be folded into safe-access (?.) expressions. | |
Reports if-then expressions that can be folded into elvis (?:) expressions. | |
Reports variables and functions with the implicit Nothing? type. | |
Reports usages of implicit this. | |
Reports expressions with a dynamic type in the specified inspection scope that are implicitly cast to another type. | |
Reports incomplete destructuring declaration. | |
Reports inconsistent parameter names for Java method calls specified in a comment block. | |
Reports for infix function calls that can be replaced with dot-qualified function calls. | |
Reports inline classes that are deprecated and cause compilation warnings in Kotlin 1.5 and later. | |
Reports forEach loops that do not use iterable values. | |
Java Collections static method call can be replaced with Kotlin stdlib | Reports a Java Collections static method call that can be replaced with Kotlin stdlib. |
Java Map.forEach method call should be replaced with Kotlin's forEach | Reports a Java Map.forEach method call that can be replaced with Kotlin's forEach. |
Reports a Java method call that can be replaced with a Kotlin function, for example, System.out.println(). | |
Reports property declarations that can be joined with the following assignment. | |
Reports Kotlin objects that are registered as plugin extensions. | |
Reports unresolved references in Kotlin code. | |
Reports lambda expressions in parentheses which can be moved outside. | |
Reports unsafe operations with this during object construction including: Accessing a non-final property during class initialization: from a constructor or property initialization Calling a non-final function during class initialization Using this as a function argument in a constructor of a non-final class If other classes inherit from the given class, they may not be fully initialized at the moment when an unsafe operation is carried out. | |
Reports library function calls which could be replaced by simplified one. | |
Reports local variables declared with the var keyword that are never modified. | |
Reports local variables with type parameters. | |
Reports for loops that can be replaced with a sequence of stdlib operations (like map, filter, and so on). | |
Reports IntProgression.fromClosedRange() and LongProgression.fromClosedRange() with MIN_VALUE step. | |
Reports when a main function does not have a return type of Unit. | |
Reports main function with an unused single parameter. | |
Manually incremented index variable can be replaced with use of 'withIndex()' | Reports for loops with a manually incremented index variable. |
Reports meaningless annotation targets on superclasses since Kotlin 1.4. | |
Reports top-level val properties in objects that might be declared as const for better performance and Java interoperability. | |
Reports public declarations that do not have KDoc comments. | |
Reports negated boolean expressions that can be simplified. | |
Reports negation isEmpty() and isNotEmpty() for collections and String, or isBlank() and isNotBlank() for String. | |
Reports nested lambdas with shadowed implicit parameters. | |
Reports modifiers that do not follow the order recommended by the style guide. | |
Non-exhaustive 'when' statements will be prohibited since 1.7 | Reports a non-exhaustive when statements that will lead to compilation error since 1.7. |
Reports non-external classifier extending State or Props. | |
Reports non-idiomatic is type checks for an object. | |
Reports not-null assertion (!!) calls that can be replaced with the elvis operator and return (?: return). | |
Reports chained null-checks that can be replaced with safe-calls. | |
Reports anonymous object literals implementing a Java interface with a single abstract method that can be converted into a call with a lambda expression. | |
Reports properties that do not follow the naming conventions. | |
Reports properties that do not follow the naming conventions. | |
Reports existence of the obsolete implementation for the entity. | |
Reports local variables' explicitly given types which are obvious and thus redundant, like val f: Foo = Foo(). | |
Reports that there is no OpenAPI documentation for the current Ktor module. | |
Reports optionally expected annotations without actual annotation in some platform modules. | |
Reports package directives that do not match the location of the file. | |
Private data class constructor is exposed via the 'copy' method | Reports the private primary constructor in data classes. |
Reports private property names that do not follow the recommended naming conventions. | |
Reports overloaded function calls where an argument requires an explicit cast to resolve to a proper declaration. | |
Reports properties that are explicitly assigned to primary constructor parameters. | |
Reports property names that do not follow the recommended naming conventions. | |
Reports public and protected functions and properties that have an implicit return type. | |
Reports until and rangeTo operators that can be replaced with Collection.indices or iteration over collection inside for loop. | |
Reports ranges that are empty because the start value is greater than the endInclusive value. | |
Reports recursive equals(==) calls. | |
Reports recursive property accessor calls which can end up with a StackOverflowError. | |
Reports redundant ?: return null. | |
Reports redundant Companion reference. | |
Reports redundant Unit expressions. | |
Reports a redundant Unit return type which can be omitted. | |
Reports redundant asSequence() call that can never have a positive performance effect. | |
Reports a redundant 'constructor' keyword on primary constructors. | |
Reports redundant else in if with return. | |
Reports the inner modifier on a class as redundant if it doesn't reference members of its outer class. | |
Reports redundant requireNotNull or checkNotNull call on non-nullable expressions. | |
Reports redundant return labels outside of lambda expressions. | |
Reports runCatching calls that are immediately followed by getOrThrow. | |
Reports suspend modifier as redundant if no other suspending functions are called inside. | |
Reports redundant with function calls that don't access anything from the receiver. | |
Reports SAM (Single Abstract Method) constructor usages which can be replaced with lambdas. | |
Reports a redundant argument-based let call. | |
Reports redundant backticks in references. | |
Reports redundant calls to conversion methods (for example, toString() on a String or toDouble() on a Double). | |
Reports calls to toString() in string templates that can be safely removed. | |
Reports empty bodies of secondary constructors. | |
Reports lambdas or anonymous functions that are created and used immediately. | |
Reports usages of curly braces in string templates around simple identifiers. | |
Reports usages of @Suppress annotations that can be safely removed because the compiler diagnostic they affect is no longer applicable in this context. | |
Reports redundant double negations. | |
Reports redundant empty initializer blocks. | |
Reports empty primary constructors when they are implicitly available anyway. | |
Reports redundant constructor invocation on an enum entry. | |
Reports an explicit this when it can be omitted. | |
Reports redundant labels which cause compilation errors since Kotlin 1.4. | |
Reports labeled returns used on the last expressions in lambdas. | |
Reports redundant lambda arrows in lambdas without parameters. | |
Reports the modality modifiers that match the default modality of an element (final for most elements, open for members with an override). | |
Reports functions and variables with nullable return type which never return or become null. | |
Reports redundant overriding declarations. | |
Reports redundant property getters. | |
Reports redundant property setters. | |
Reports redundant qualifiers (or their parts) on class names, functions, and properties. | |
Reports redundant receiver-based let calls. | |
Reports explicitly specified parameter types in property setters. | |
Reports the use of a redundant spread operator for a family of arrayOf function calls. | |
Reports single-expression string templates that can be safely removed. | |
Reports arguments that are equal to the default values of the corresponding parameters. | |
Reports visibility modifiers that match the default visibility of an element (public for most elements, protected for members that override a protected member). | |
Reports redundant empty parentheses in annotation entries. | |
Reports the repeated use of a non-@Repeatable annotation on property accessors. | |
Reports a mapIndexed call that can be replaced by List generator. | |
Reports until that can be replaced with ..< operator. | |
Reports declarations of classes and objects with an empty body. | |
Reports if, when, and try statements that can be converted to expressions by lifting the return statement or an assignment out. | |
Reports runBlocking builders that can be reached from coroutines. | |
Safe cast with 'return' should be replaced with 'if' type check | Reports safe cast with return that can be replaced with if type check. |
Reports scope functions (let, run, apply, also) that can be converted between each other. | |
Reports forEach functions in the scope functions such as also or apply that can be simplified. | |
Reports direct inheritors of sealed classes that have no state and overridden equals() method. | |
Reports objects (data object including) that implement java.io.Serializable but don't implement readResolve. | |
Reports case-insensitive comparisons that can be replaced with equals(..., ignoreCase = true). | |
Reports when expressions with the constant true or false branches. | |
Reports size checks of Collections/Array/String that should be replaced with isNotEmpty(). | |
Reports size == 0 checks on Collections/Array/String that should be replaced with isEmpty(). | |
String concatenation that can be converted to string template | Reports string concatenation that can be converted to a string template. |
Reports usages of asDynamic function on a receiver of dynamic type. | |
Suspicious 'var' property: its setter does not influence its getter result | Reports var properties with default setter and getter that do not reference backing field. |
Reports lambda expressions with one callable reference. | |
Reports == and === comparisons that are both used on the same variable within a single expression. | |
Reports labels that don't points to a functions. | |
Reports test function names that do not follow the recommended naming conventions. | |
Reports instantiations of Throwable or its subclasses, when the created Throwable is never actually thrown. | |
Reports trailing commas that do not follow the recommended style guide. | |
Reports two consecutive comparisons that can be converted to a range check. | |
Reports type parameters that can have in or out variance. | |
Reports unlabeled return expressions inside inline lambda. | |
Reports unnecessary opt-in annotations that can be safely removed. | |
Reports redundant empty parentheses of function calls where the only parameter is a lambda that's outside the parentheses. | |
Reports super member calls with redundant supertype qualification. | |
Reports function calls with type arguments that can be automatically inferred. | |
Reports unresolved references in KDoc comments. | |
Detects unsupported var fields in the inheritors of WorkspaceEntity interface Interface implementing WorkspaceEntity have to have only val fields because it's immutable. | |
Reports main function with an unused single parameter. | |
Reports unused equals(==) expressions. | |
Reports redundant import statements. | |
Reports for loops iterating over a collection using the withIndex() function and not using the index variable. | |
Reports receiver parameter of extension functions and properties that is not used. | |
Reports calls to data class copy function without using its result. | |
Unused return value of a function with lambda expression body | Reports calls with an unused return value when the called function returns a lambda from an expression body. |
Reports symbols that are not used or not reachable from entry points. | |
Reports unary operators for number types on unused expressions. | |
Usage of redundant or deprecated syntax or deprecated symbols | Reports obsolete language features and unnecessarily verbose code constructs during the code cleanup operation (Code | Code Cleanup). |
Reports usages of Process.waitFor() and Process.onExit() in coroutine context. | |
Reports declarations that can be destructured. | |
Reports filter… calls from the standard library on already filtered collections. | |
Reports calls on not-null receiver that make sense only for nullable receiver. | |
Reports variable declarations that can be moved inside a when expression. | |
Variable in destructuring declaration uses name of a wrong data class property | Reports entries of destructuring declarations that match the name of a different property of the destructured data class. |
Reports combination of null and emptiness checks that can be simplified into a single check. |
Less
Name | Description |
---|---|
Reports a reference to a variable or mixin that is declared in another file, which is not explicitly imported in the current file. | |
Reports a reference to a Less mixin that is not resolved. | |
Reports a reference to a Less variable that is not resolved. |
Makefile
Name | Description |
---|---|
Reports unresolved target prerequisites. |
Manifest
Name | Description |
---|---|
Reports if manifest files do not end with a final newline as required by the JAR file specification. | |
Reports any unknown and probably misspelled header names and provides possible variants. |
Markdown
Name | Description |
---|---|
Checks if table is correctly formatted. | |
Ordered list items are expected to have straight numeration starting from 1. | |
To ensure consistency between different tools, file links should not contain spaces. | |
Checks if a particular table of contents section corresponds to the actual structure of the document. | |
Checks whether the textual topic content follows the style guidelines. | |
Checks if table has correct side borders. | |
Detects top-level headers in Writerside Markdown topics that will be converted to chapter headers in the generated documentation. | |
Detects references in Markdown images that do not match their expected media type, e.g., links to local video files. | |
Reports unresolved references in Markdown links. | |
Reports unresolved file references in Markdown files. | |
Reports unresolved header references in Markdown files. | |
Reports unresolved link labels in Markdown files. |
Micronautel
Name | Description |
---|---|
Incorrect Micronaut Expression Language (MicronautEl) syntax | Reports syntax errors in the Micronaut Expression Language (MicronautEL) code, such as unresolved references. |
Mongojs
Name | Description |
---|---|
Reports statements that can cause side effects while the data source is in read-only mode. |
Mongojsext
Name | Description |
---|---|
Reports usages of deprecated methods in MongoDB and JavaScript code. | |
Reports unresolved references in MongoDB and JavaScript code. |
Msbuild
Name | Description |
---|---|
RIDER-83136. |
Multiple
Name | Description |
---|---|
Reports issues essential to this file (e.g., syntax errors) in the result of a batch code inspection run. | |
Reports mismatches between the argument identifier name and the formal parameter name. | |
Reports array or pointer variable access expressions where index may be out of bounds of an array or allocated buffer. | |
Reports various issues related to The C++ Core Guidelines, Modernize, Readability and Performance. | |
Reports C/C++ errors and warnings from clangd. | |
Reports the Qt-related compiler warnings, ranging from unneeded memory allocations to the misused API. | |
Reports the functions where the return value is always the same constant. | |
Reports function parameters that always have the same value. | |
Reports the issues found by the context-sensitive data flow analyser. | |
Custom Regex Inspection. | |
Reports the usages of the pointers that refer to the memory already deleted by the delete operator or the free(void* ptr) function. | |
Reports duplicated blocks of code from the selected scope: the same file or the entire project. | |
Reports empty declarations and statements that can be removed safely. | |
Reports empty directories. | |
Reports the for, while, do while, and goto statements that exit only by throwing an exception. | |
Checks that current file encoding matches the encoding defined in "charset" property of .editorconfig file. | |
Reports an error detected by the output filters from a File Watcher. | |
Reports grammar mistakes in your text. | |
Reports the functions that hide non-virtual functions with the same signature declared in the base class. | |
Reports access to invisible (private or protected) component member or directive input from an Angular template. | |
Reports the names that don't match the naming convention for that kind of symbol. | |
Reports modules which depend on other modules with a higher language level. | |
Reports files with line separators different from the ones that are specified in the project's settings. | |
Reports formatting issues that appear if your code doesn't follow your project's code style settings. | |
Reports methods and functions with infinite recursion. | |
Reports unresolved references injected by Language Injections. | |
Reports lines that are longer than the Hard wrap at parameter specified in Settings | Editor | Code Style | General. | |
Reports the links that use unencrypted protocols (such as HTTP), which can expose your data to man-in-the-middle attacks. | |
Reports the references to local values that escape the function Example: int *escapeLocalScope() { int lv = 100; return &lv; }. | |
Reports the loop conditions that are not updated inside the loop. | |
Reports characters that cannot be displayed because of the current document encoding. | |
Reports various issues defined by the MISRA C 2012 and MISRA C++ 2008 guidelines. | |
Reports malicious NPM and PyPI dependencies declared in your project. | |
Reports the allocations of memory (either new operator or malloc() function) that were not released before they become non-accessible. | |
Reports gemsets in '.rbenv-gemsets' that can't be found in the project SDK, and local gemsets that can't be found in the project root. | |
Detects Cargo packages with missing cargo features in some of their dependency packages. | |
Reports an invalid selector property of a component or directive. | |
Detects natural languages and suggests enabling corresponding grammar and spelling checks. | |
Reports code elements that use non-ASCII symbols in an unusual context. | |
Reports the functions that were declared in a class but have no implementations. | |
Reports the fields that may have not been initialized before their usage. | |
Reports dereferences of the pointers that may contain nullptr. | |
Reports coding style problems detected by PHP_CodeSniffer. | |
Detects Terraform Template files without the standard extension (*.tftpl) that do not have an associated data language and suggests choosing one from the list of possible candidates. | |
Reports the mismatches between the preprocessor #endif comments and macro names. | |
Reports the following problems: Tabs used for indentation when the code style is configured to use only spaces. | |
Reports cases when no python setup.py develop command was executed for the Pyramid project. | |
Reports files that were explicitly re-assigned to Plain Text File Type. | |
Reports usages of the following elements that can be safely removed because the inspection they affect is no longer applicable in this context: @SuppressWarning annotation, or // noinspection line comment, or /** noinspection */ JavaDoc comment Example: public class C { // symbol is already private, // but annotation is still around @SuppressWarnings({"WeakerAccess"}) private boolean CONST = true; void f() { CONST = false; } }. | |
Reports issues essential to this file like syntax errors, unresolved methods and variables, etc... | |
Reports the statements that can be simplified, such as constant conditions, identical if branches, redundant boolean expressions, and others. | |
Allows configuring Structural Search/Structural Replace templates that you can apply to the file you are editing. | |
Reports TODO comments in your code. | |
Reports typos and misspellings in your code, comments, and literals and fixes them with one click. | |
Reports cases where an expression constrained by a concept is assigned to a variable declared as auto and suggests adding a type constraint. | |
Reports exceptions that are thrown by top-level JSP scriptlets. | |
Reports dependencies on modules that are not used. | |
Reports the functions which calls are never used. | |
Reports the code pieces that are never executed in any control flow and can be removed safely. | |
Reports packages mentioned in requirements files (for example, requirements.txt or Pipfile) but not installed, or imported but not mentioned in requirements files. | |
Reports Objective-C classes and protocols that are never used. | |
Reports the concepts that are never used and can be removed safely. | |
Reports the global function and variable declarations that are never used and can be removed safely. | |
Reports the include directives that are not used or not required and can be removed safely. | |
Reports the instance variables that are never accessed or written. | |
Reports the local variables that are declared but never accessed for reading. | |
Reports the macro definitions that are never used and can be removed safely. | |
Reports the methods that are never called, for example, in send message expressions, @selector expressions, and other places like XIB files. | |
Reports the parameters that are declared but never accessed for reading and can be removed safely. | |
Reports the properties that are never accessed or written, neither in qualified expressions nor in accessor method calls. | |
Reports the classes and structures that are never used and can be removed safely. | |
Reports the template parameters that are never used and can be removed safely. | |
Reports the statements that are never used and can be removed safely. | |
Reports the variable values that are never used after being assigned. | |
Reports an unused named pattern (define) in a RELAX-NG file (XML or Compact Syntax). | |
Reports libraries attached to the specified inspection scope that are not used directly in code. | |
Reports virtual member function calls from constructors or destructors. | |
Reports vulnerabilities in Gradle, Maven, NPM and PyPI dependencies declared in your project. | |
Reports vulnerabilities in Gradle and Maven dependencies imported into your project. |
Mysql
Name | Description |
---|---|
Whitespace between the function name and the open parenthesis | Reports any whitespace in a function call between the function name and the open parenthesis, which is not supported by default. |
Mysql based
Name | Description |
---|---|
Reports paths that start with the tilde character in LOAD statements. | |
Reports invalid usages of UNION in queries. |
Objectivec
Name | Description |
---|---|
Interprocedural summary-based static code analysis. |
Oracle
Name | Description |
---|---|
Reports declarations of procedures and functions that are missing their implementation in code. | |
Reports package and object type specifications that are missing body declarations. | |
Reports invalid cases of subprogram overloading in Oracle. |
PHP
Name | Description |
---|---|
Reports the methods and functions that are returning arrays with known non-trivial keys. | |
Reports the functions that are non-trivially pure. | |
'Closure::fromCallable()' can be converted to the first-class callable syntax | Reports the callable creation expressions that use Closure::fromCallable but can be replaced with first-class callable syntax f(...) available since PHP 8.1. |
Reports the usages of __toString that may throw an exception, which is not allowed for PHP language level lower than 7.4. | |
Reports the array_fill() calls that can be replaced with foreach loops. | |
Reports the array_filter() calls that can be replaced with foreach loops. | |
Reports the array_map() calls that can be replaced with foreach loops. | |
Reports the array_push() calls that are used to add a single element to an array. | |
Reports the array_search() calls that are only used for checking whether an element exists in array, that is, the expressions like if (array_search($a, $b) === false) {}. | |
Reports the PHPUnit assertTrue() calls whose arguments are of incompatible types. | |
Reports the continue statements that are targeting switch statements. | |
Reports the keys and values in foreach loops that are assigned a non-primitive value before the foreach loop and are accessed after it. | |
Reports the func_get_arg() calls that can be replaced with direct parameter access. | |
Reports the get_class() calls and suggests replacing them with ::class when PHP Language level is set to 8.0 or later. | |
Reports the if statements that are followed by elseif or other if statements having the same bodies. | |
Reports the if statements inside if-elseif-else constructs that use strict comparisons (===) and could be replaced with match expressions. | |
Reports the if statements with duplicated common parts. | |
Reports the in_array() calls that are provided with a single-element array as the $haystack argument. | |
'instanceof' checks in 'catch' block can be replaced with specific catches | Reports the instanceof checks in single catch blocks that could be replaced with multiple catch blocks specific for each exception instance. |
Reports the conditions using isset that can be safely replaced with expressions using the ?? null coalesce operator. | |
'isset' can check nested array access and sub properties directly | Reports constructions like isset($a['a']) && isset($a['a']['b']) && isset($b) && isset($b->b) that can be replaced with isset($a['a']['b']) && isset($b->b). |
'json_decode()' and 'json_last_error()' can be converted to 'json_validate()' | In PHP 8.3 and later, suggests converting `json_decode()` and `json_last_error() === JSON_ERROR_NONE` to `json_validate()`. |
Reports the match expressions that can be replaced with switch statements. | |
Reports the match expressions containing a default arm and a single non-default arm. | |
'match' expression has only default arm and should be simplified | Reports the match expressions only containing a default arm. |
Reports 'mixed' return types that can be narrowed down to more concrete types. | |
Reports the mixed[] usages in PHPDoc blocks that can be safely replaced with array. | |
Reports n PCRE modifier, that can be replaced with usage of non-capturing groups instead of capturing in regexp pattern. | |
Reports the functions with the never return type hint that may return some value. | |
Reports the variables that are initialised via passing them by reference to a parameter incompatible with null. | |
Reports the pow() calls that can be replaced with the ** operator, which adds no overhead of calling a function. | |
Reports the preg_match() calls with pattern arguments that don't use any regexp facilities. | |
Reports the preg_match() calls that are provided with a string argument starting with ^ (Start of String anchor) and ending with $ (End of String anchor). | |
Reports the preg_replace() calls with empty replacement. | |
Reports preg_split() calls that can be replaced with explode(). | |
Reports readonly modifiers applied to properties in read-only classes. | |
Reports the strpos and substr functions calls that can be replaced with the str_* functions calls (introduced in PHP 8.0). | |
Reports 'switch' statements that could be replaced with 'match' expression. | |
Reports the 'switch' statements with duplicated common parts. | |
Reports the switch statements that only contain a single case statement. | |
'var_export' or 'print_r' call is used without 'return' argument | Reports var_export() and print_r() calls without the return argument when their results are explicitly used. |
Reports the static member access expressions used on traits. | |
Reports arguments of 'instanceof' that are not objects or strings. | |
Reports arguments with name identifiers. | |
Reports arguments without name identifiers. | |
Reports arithmetic and bitwise expressions with unsupported operands. | |
Reports the array access expressions inside foreach loops that can be replaced with a foreach value. | |
Reports the write expressions on array indexes which are immediately overwritten before being accessed. | |
Reports the reset($array) calls on arrays whose internal pointer is already set on the first element. | |
Reports the iterated/accessed arrays that are known to be empty at the point of access. | |
Reports the array keys that do not match the keys specified via the #[ArrayShape] attribute. | |
Reports the array offset access expressions that are used on illegal types. | |
Reports array to string conversions, that is, the arrays that are provided in the contexts where a string is expected. | |
Reports local arrays that are only updated, but never queried. | |
Reports the array write access expressions that are not used in code afterwards. | |
Reports the assertTrue/assertFalse usages that can be replaced with assertEmpty/assertNotEmpty in PHPUnit tests. | |
Reports the assertEquals() calls with the true/false arguments in PHPUnit tests. | |
Reports the assertTrue()/assertFalse() calls with the false/true arguments in PHPUnit tests. | |
Reports assertion call to be replaced with more specific analogue. | |
Reports the assignments that can be replaced with incrementing (++) or decrementing (--) operations. | |
Reports the assignments that can be replaced with combined operator assignments (for example, +=). | |
Reports the assignments that are used in conditional expressions. | |
Reports the methods' and parameters' attributes that can be propagated to overriding methods/parameters. | |
Reports automatic conversions of false values to arrays. | |
Reports Behat doc tags that can be replaced with attribute version. | |
Reports $entityManager->createQueryBuilder()->from($model, $expr) when PhpStorm cannot resolve $model to a class. | |
Reports the usages of functions, methods, classes, and namespaces that do not match the case used in their declarations. | |
Reports the arguments of enum's from method calls that are not found in target enum classes. | |
Reports methods, classes and files whose coverage is below a certain threshold. | |
Reports classes which contain only readonly properties. | |
Reports the classes that are implementing the Traversable interface alone, not as part of Iterator or IteratorAggregate interfaces. | |
Reports the attributes that are resolved to a class not annotated with #[Attribute]. | |
Reports the non-final class constants that are not redefined in child classes. | |
Reports reference to a class constant via child class which gets this constant from the parent class by inheritance and does not override it within its own scope. | |
In PHP 8.3 and later, reports a class constant that is missing a type declaration. | |
Reports the classes that have too many properties or methods. | |
Checks the classes' hierarchy: abstract methods implementation, the compatibility of implementing/overriding methods with their declarations in parent classes, and properties' types redeclarations. | |
Reports the classes' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports the classes with the filepath not following the PSR-0/PSR-4 project structure. | |
Reports references to static methods and fields via a class instance rather than the class itself. | |
Reports the anonymous functions that can be transformed to short arrow functions. | |
Reports the inline comments before arguments in function calls that only contain the name of the parameter and thus serve as hints. | |
Reports line comments starting with #[. | |
Reports the classes that are too complex. | |
Reports the functions or methods that are too complex. | |
Reports the usages of compound namespaces whose depth exceeds two levels. | |
Reports the .= concatenation assignments performed right after assignment to an empty string literal. | |
Reports the string concatenation expressions that are used together with +, -, <<, and >> operators. | |
Reports the conditions that are already covered by earlier conditions and thus have no effect as well as the variables that are always true (or always false) when reached. | |
Reports the conditions that perform manual min/max calculation instead of calling min/max functions. | |
Condition inside logical expression checked by subsequent condition | Reports the conditions inside logical binary expressions that are covered by subsequent conditions and are therefore redundant. |
Reports the define constructs in which the constant's FQN starts with a leading slash. | |
Reports the constants' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports reassignments of constants. | |
Reports the control structures (such as loops or conditionals) whose bodies are not enclosed in braces. | |
Reports the references to functions/methods in the @covers PHPDoc tags that are not prepended with the scope resolution operator (::). | |
Reports the usages of curly brace syntax for accessing array elements and string offsets. | |
Reports dangerous array initializations (such as $arr[] = value). | |
Declaration of overridden method should be compatible with parent class | Reports the overridden methods declarations that are not compatible with the parent class. |
Reports the define() calls that can be replaced with const syntax. | |
Reports the usages of deprecated entities. | |
Reports ${var} and ${expr} interpolations in strings. | |
Reports the usages of deprecated Serializable interface. | |
Reports the __autoload() function declarations. | |
Reports the assert() function declarations. | |
Reports the deprecated assertContains() and assertNotContains() calls with the string $needle and $ignoreCase arguments. | |
Reports deprecated usages of the assertEquals and assertNotEquals functions with $delta, $maxDepth, $canonicalize, and $ignoreCase parameters. | |
Reports the deprecated usages of the assertFileEquals, assertFileNotEquals, assertStringEqualsFile, and assertStringNotEqualsFile functions with the $canonicalize and $ignoreCase parameters. | |
Reports deprecated usage of the implode and join functions. | |
Reports the @covers and @uses PHPUnit doc tags that are using ClassName::<*>. | |
Reports the calls to Standard PHP Library functions that are deprecated starting from PHP 8.1. | |
Reports deprecated cast expressions: (unset) cast expressions, which are deprecated in PHP 7.2 and later. | |
Reports the usages of the following deprecated PHPUnit doc tags: @expectedException @expectedExceptionMessage @expectedExceptionCode @expectedExceptionMessageRegExp. | |
Reports deprecated usages of expectException(). | |
Reports deprecated usage of callables that are supported by call_user_func($callable), but not by $callable(). | |
Reports the references to functions/methods in the @dataProvider PHPDoc tag that are resolved to non-static or non-public methods. | |
Reports the usages of classes, functions, and constants, for which the stubs for the corresponding PHP interpreter extensions are disabled. | |
Suggests replacing Doctrine annotations with attributes. | |
Reports duplicate bodies in match arms. | |
Reports duplicate keys in array declarations. | |
Reports catch statements with duplicated bodies. | |
Reports the switch statements containing the same code in different branches. | |
Reports duplicate case expressions in switch statements. | |
Reports duplicate characters provided in the characters argument of functions like ltrim or str_words_counts. | |
Reports duplicate conditions in match expressions. | |
Reports duplicate operands in binary expressions (+, -, *, /, &&, ||, and .) that are in turn used inside comparison expressions. | |
Reports static calls to dynamic class methods. | |
Reports the references to dynamic class properties declarations. | |
Reports the usages of entities which were introduced in PHP version later than configured one. | |
Reports the usages of the else if constructs specified in two words. | |
Reports the usages of empty index operator ([]) on strings. | |
Reports the elements without a PHPDoc comment or with a PHPDoc comment only containing the @noinspection tag. | |
Reports the catch statements that only rethrow a caught exception, which is located in a class hierarchy different from the subsequent exception types. | |
Reports the values in assignment and comparison expressions that should be replaced with one of the expected values (that is, the values specified via the #[ExpectedValues] attribute). | |
Reports the variables in return statements that are always null. | |
Reports the expressions that are calculated, but the calculation result is not used anywhere. | |
Reports potentially ambiguous expressions and proposes enclosing them in clarifying parentheses. | |
Reports the usages of classes, functions, and constants from the PHP extensions not specified in composer.json. | |
Reports reference to a property whose name does not match the name specified via an #[ObjectShape] attribute or in the PHPDoc comment. | |
Reports the variables that are used in a foreach loop as both an array expression and an array's key or value (for example, foreach ($items as $items) {}). | |
Reports the foreach statements that iterate over an array literal containing a single element. | |
Reports the sprintf() and vsprintf() calls with a single argument. | |
Reports the arguments of a format function (such as printf or sprintf) that are not mapped to any parameters or specification conversions. | |
Reports the fully qualified class names that can be shortened by adding the use statement. | |
Reports the parameters in function calls whose types are not compatible with the ones defined via Closure. | |
Reports the methods that have high cyclomatic complexity and can probably be simplified. | |
Reports the functions' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports the goto labels that are located inside loops or switch statements. | |
Reports the methods with high Halstead Complexity metric. | |
Reports the binary expression operands that do not change the expression result (such as + 0 or . | |
Reports the class alias declarations that are ignored by the IDE because the actual class declaration with the same FQN exists. | |
Reports the array keys that are of illegal type, such as objects or arrays. | |
Reports the usages of non-integer offsets in string access expressions such as $str[42]. | |
Highlights write access references to properties, for which the write access scope declared via #[Immutable] is stricter than the reference scope. | |
Reports the implicit octal literals such as 071 that could be replaced with explicit ones such as 0o71. | |
Reports inappropriate @inheritDoc usages: On non-class members On class members without any super members having a doc comment. | |
Reports the return statements whose return value type is not compatible with the one declared for a function/method. | |
Reports inconsistencies in function/method exit points. | |
Reports incompatible magic methods signatures. | |
Reports the methods and classes that are incorrectly mocked in Mockery tests. | |
Reports the methods and classes that are incorrectly mocked in PHPUnit tests. | |
Reports the foreach constructs used on variables of the string, float, int, or boolean type. | |
Reports invalid delimiters in regular expressions in two cases: 1. | |
Reports the usages of a void or never function's return value. | |
Reports the magic methods that are not declared as public or are declared as static. | |
Reports invalid string offset usages that will result in a runtime error. | |
Reports unpacked function arguments and array elements whose type is neither array nor Traversable. | |
Reports the classes that have high Lack of Cohesion metric value, which represents the degree of cohesiveness of a class. | |
Reports the language features used in source code that are not supported for the selected language level. | |
Reports the coding style problems detected by Laravel Pint. | |
Reports the variable assignments to new objects that are used only for writing the object's properties without observable side effects. | |
Reports the expressions that use the same operands, but should rather use different operands (for example, $var == $var). | |
Reports the for loops that can be replaced with array_fill() calls. | |
Reports the foreach loops that can be replaced with array_filter() calls. | |
Reports the foreach loops that can be replaced with array_map() calls. | |
Reports the foreach loops that can be safely replaced with implode() calls. | |
Loop can be replaced with 'in_array()' or 'array_key_exists()' call | Reports the foreach loops that can be safely replaced with in_array() or array_key_exists() calls. |
Reports the for loops that can be safely replaced with str_repeat() calls. | |
Reports the loop statements whose bodies will execute at most once. | |
Suggests adding the #[Override] attribute to the methods that override same name methods in the parent class or any of the implemented interfaces. | |
Reports the class methods and properties that should be pulled up to the parent class or interface. | |
Reports method reference chains that are too long for IDE to analyze. | |
Reports the attempts to convert the objects having no __toString method implementation to string. | |
Reports the __toString methods that do not return string. | |
Method 'assertArrayHasKey/assertArrayNotHasKey' can be used instead | Reports the assertTrue() and assertNotTrue() methods calls that are provided with an array_key_exists() call as an argument. |
Method declaration in parent class is incompatible with implemented interface | Reports the methods declarations in parent classes that are incompatible with implemented interfaces. |
Checks that the overridden method exists. | |
Reports the "Feature Envy" code smell. | |
Reports the calls to the PHPUnit assertion methods that are removed in PHPUnit 10. | |
Reports calls to the PHPUnit test case methods that are removed in PHPUnit 11. | |
Reports the methods' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Checks that the methods don't override visibility. | |
Reports the private methods returning the values that are not used. | |
Reports the rand($min, $max) family function calls in which the max argument is less than min. | |
Reports the calls to PHPUnit equality assertion methods (such as assertEquals(), assertNotEquals(), assertSame(), and so on) that have a non-literal as the expected result argument and a literal as the actual result argument. | |
Reports the case clauses in switch statements that do not end with a break or a return statement. | |
Reports the file header DocBlocks that do not contain the @copyright and @license tags required by the Joomla! DocBlocks standard. | |
Reports the class, class property, and class method DocBlocks that do not contain the @since tag required by the Joomla! DocBlocks standard. | |
Reports missing PHPDoc @throws tags for exceptions thrown by functions or methods. | |
Reports non-fully typed elements without a PHPDoc comment or with a PHPDoc comment only containing the @noinspection tag. | |
Reports missing parameter lists in a classes' instantiations. | |
Reports the parameters that have no type declaration specified. | |
Reports the constructors that do not call their parent constructor. | |
Reports the magic methods that do not call their parent magic method. | |
Reports the methods that do not call their parent method. | |
Reports the properties that have no type declaration. | |
Reports the functions that have no return type declaration specified. | |
Detects the missing declare(strict_types=1) directive in the file. | |
Reports the test classes and methods, for which no corresponding production classes or methods were found. | |
Reports the properties, constants, and methods that are declared without visibility definition. | |
Modification of the array returned from function by value won't have any effect | Reports call to a function that returns array by value, which makes the assignment operation non-working. |
Reports the modulo expressions % that always evaluate to 0 or 1. | |
Reports multiple isset() checks that can be replaced with a single one. | |
Reports the references to classes that have multiple declarations in project files. | |
Reports multiple class declarations in a single file, which violates the PSR-0/PSR-4 standards. | |
Reports multiple expectations that can be converted to chainable calls. | |
Reports the named arguments in method calls that might be unresolved depending on a specific class instance within the hierarchy. | |
Reports named argument with order that does not match parameter order. | |
Nested 'dirname()' call can be replaced with 'levels' parameter usage | Reports the nested dirname() calls that can be omitted by using the levels parameter instead. |
Reports nested min/max calls. | |
Reports nested ternary expressions, which are deprecated starting from PHP 7.4. | |
Reports the variables that are used as a key or value both by the inner and outer foreach loops. | |
Reports function without #[NoReturn] that are always halting their execution by calling other exitPoint functions attribute. | |
Reports the attributes that do not have the appropriate Attribute::TARGET_* flag in their arguments declaration. | |
Reports the PHPDoc tags that have elements listed in non-canonical order. | |
Reports repeated attributes without the Attribute::IS_REPEATABLE flag in their arguments declaration. | |
Reports the usages of the comparison operator (==) for comparing object variables. | |
Reports the null-checking conditional expressions that can be safely replaced with the ?-> nullsafe operator. | |
Reports the assignments and return statements whose arguments do not match the expected ranges specified via int<min, max> PHPDoc syntax. | |
Reports public properties of an object with specified types. | |
Reports old-style constructor declarations (ClassName()) and suggests replacing them with new-style constructors (__construct()). | |
Reports the cases of several traits being imported via a single use statement. | |
Reports the <?php echo usages that can be replaced with a short tag <?=. | |
Reports the optional parameters that appear before the required parameters in a function/method declaration. | |
Reports visibility modifiers that are specified in the incorrect order. | |
Reports override of method or extending of class with @final in the PHPDoc. | |
Reports coding style problems detected by PHP CS Fixer. | |
Reports coding style problems detected by PHP Mess Detector. | |
Reports the parameters' names and types in a PHPDoc comment that do not match the ones in the function/method declaration. | |
Reports the PHPDoc comments that contain at least one @param or @return tag but are missing some of the @param or @return tags for parameters or return types specified in the function/method declaration. | |
Runs PHPStan to find code problems. | |
PHPUnit annotation is deprecated in PHPUnit 11 and can be replaced with attribute | Suggests replacing PHPUnit annotations with attributes. |
Reports the parameters passed to a function call, whose types do not match the ones specified in the function definition via type declaration or the PHPDoc @param tag. | |
Reports the methods' parameters whose names differ from the same parameters defined in parent methods. | |
Reports the parameters in private methods that have the same value across all method calls. | |
Reports the function/method calls that take more parameters than specified in their declaration. | |
Reports the unpaired parentheses in string literals that produce blade parser errors. | |
Reports the arguments in a function/method call that cannot be passed by reference. | |
Reports the boolean expressions inside if conditions that contain $expr == true or $expr == false. | |
Reports polymorphic code usages. | |
Private method may be inaccessible during late static binding call | Reports the late static binding method calls (that is, performed via static::) that may be resolved to inaccessible private methods from child classes. |
Reports the private properties that are used only in a single method. | |
Reports properties declared through promoted constructor parameters. | |
Reports the private promoted properties that are never written to. | |
Reports the properties that can be replaced with promoted versions. | |
Reports the write expressions on properties which are immediately overwritten before being accessed. | |
Reports the properties' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports the private properties that are: written but never read read but never written. | |
Runs Psalm to find code problems. | |
Reports the #[Pure] annotations used on functions that may produce side effects. | |
Reports the redeclaration of standard library functions. | |
Redundant 'array_values' call on a value iterated in 'foreach' | Reports the array_values() calls inside foreach loops in which the iterated value is used without a key. |
Reports the redundant 1 argument of continue and break statements. | |
Reports static usages inside final class. | |
Reports @throws tags for exceptions that are not thrown by the function or method. | |
Reports the @var tags for variables whose type is already inferred from source code. | |
Reports PHPDoc comments or their parts that contain the information already provided in declarations. | |
Reports the assignment statements, in which both sides are equal. | |
Reports redundant assignments to class properties that duplicate automatic assignments performed through promoted constructor parameters. | |
Reports the (bool)/(boolean) casts and boolval() calls that are redundant since casting to bool is performed implicitly. | |
Reports the (string) casts and strval() calls that are redundant since casting to string is performed implicitly. | |
Reports the catch clauses with exceptions that are never thrown from the corresponding try block. | |
Reports redundant leading and trailing '.*' in pattern for `preg_match` function. | |
Reports the intersection type declarations that contain redundant types, for example, an intersection type that contains both the parent class and its subclass. | |
Reports the overriding methods that only consist of a single call to the parent method. | |
Reports the i (case insensitivity) modifiers that are used in regular expression patterns containing no letters. | |
Reports redundant arguments that match the corresponding default values for optional parameters. | |
Reports empty arguments lists in attributes. | |
Reports the fields with default initializers that are always overwritten in the class constructor. | |
Reports the instanceof expressions whose argument is within the hierarchy of the checked variable. | |
Return type in PHPDoc comment does not match the actual return type | Reports the return types in PHPDoc comments that do not match the actual return type of a function. |
Reports reassignments of readonly properties. | |
Reports usages of long form type keywords. | |
Reports short PHP echo tag <?= usages. | |
Reports short PHP opening tag <? usages. | |
Reports the control structures (such as loops or conditionals) whose bodies are enclosed in braces but only contain a single child statement. | |
Reports the match expressions that don't cover all enum cases in match arm conditions. | |
Reports the statements that have empty bodies. | |
Reports the static methods that are declared as abstract. | |
Reports dynamic calls to static class methods. | |
Reports the === or !== strict comparisons used on operands with incompatible types. | |
Reports violations of the strict type checking rules. | |
Reports the assignments and function calls where the name of the variable or parameter probably doesn't match the name of the assigned or passed value. | |
Reports the switch statements without a default branch. | |
Suggests replacing Symfony annotations with attributes. | |
Reports the ternary expressions specified as condition ? true : false that can be safely replaced with just condition. | |
Reports the ?: ternary expressions in which the condition and the true statement are matching. | |
Reports a non-existent Pest dataset. | |
Reports the function/method declarations with the number of parameters exceeding the specified limit. | |
Reports traditional array syntax (array()) usages in array literals and suggests replacing them with short array syntax ([]). | |
Reports the class references that are resolved to traits but are specified outside use statements. | |
Trait use rule resolved to method with different containing class | Reports the trait method use rules that are resolved to methods from a different containing class rather than the one specified in the use declaration. |
Reports duplicate types in PHPDoc comments. | |
Reports the type cast operators used on the values that are already of the corresponding type. | |
Reports the type casts that can be evaluated in place and suggests replacing them with actual computed values. | |
Reports union type declarations that contain redundant types, for example, a union type that contains both the class alias and the original class. | |
Reports the properties' types in PHPDoc @var tags that do not match the declared type of a property. | |
Type hint 'array|Traversable' can be replaced with 'iterable' | Reports the array|Traversable type hints that can be replaced with iterable. |
Reports type violations in properties assignments. | |
Reports the PHPDoc type tags (@var,@type,@param) that are provided without a specified variable/parameter name. | |
Reports the attempts to read from an uninitialized typed property. | |
Reports the references to functions/methods in the @dataProvider PHPDoc tag that are not resolved. | |
Reports the functions, methods, properties, or classes that are referenced from a callback but are not found. | |
Reports the references to classes whose declarations are not found in the project files, configured include paths, or among the PHP predefined classes. | |
Reports the references to class constants that are not declared. | |
Reports the references to constants that are not found in the project files, configured include paths, or among the PHP predefined constants. | |
Reports the references to functions that are not defined in the project files, configured include paths, or among the PHP predefined functions. | |
Reports the goto labels that are not found in the current scope. | |
Reports the references to class methods that are not defined. | |
Reports the references to a namespace that is not found. | |
Reports the references to class properties that are not declared. | |
Produces two types of warnings: Undefined variable: the variable's definition is not found in the project files, configured include paths, or among the PHP predefined variables. | |
Reports the exceptions that are neither enclosed in a try-catch block nor documented via the @throws tag. | |
Reports the else branches in if statements whose bodies always execute a terminating statement such as return or throw. | |
Reports unnecessary return and continue statements that can be safely removed. | |
Reports unnecessary { and } used for interpolating variables in string literals. | |
Reports double-quoted string literals that do not contain string interpolation, escape sequences, or single quotes. | |
Reports the usages of fully qualified class names, which can be shortened without adding the use statement. | |
Reports the use statements with an unnecessary leading \. | |
Reports the local variables that are used in exit statements, such as throw, return, or yield, immediately after assignment. | |
Reports the variables that are passed by reference to a function/method but are not modified in the function/method body. | |
Reports the usages of the spread operator (...) on array literals in function call arguments that may be safely unwrapped. | |
Reports the use statements that contain non-fully qualified class names and thus have no effect. | |
Unpacking arrays with string keys is forbidden for PHP < 8.1 | Reports array unpacking with string keys in PHP < 8.1 See Array unpacking with string keys for details. |
Reports the statements that cannot be reached. | |
Reports non-resolved include, include_once, require, and require_once expressions. | |
Reports the usages of the e modifier in regular expression patterns. | |
Reports the conditions in match expressions that will never be matched. | |
Reports the branches in switch statements that do not belong to the set of enum cases and as a result are never executed. | |
Reports the variables that are considered unused in the following cases: The value of the variable is not used anywhere or is overwritten immediately. | |
Reports the parameters that are considered unused in the following cases: The parameter is passed by value, and the value is not used anywhere or is overwritten immediately. | |
Reports the private methods that are never used. | |
Reports the private properties that are never used. | |
Usage 'assertCount/assertSameSize' methods instead of assertEquals | Reports alternative usage of the assertEquals and assertNotEquals methods with count function as a parameter See Usage of the assertCount for details. |
Reports the usages of the silence operator (@), which is highly discouraged. | |
Reports the usages of variable variables (dynamic variable names such as $$a). | |
Reports the usages of the entities that are marked as @internal and are located in different source roots. | |
Reports the usages of the var keyword for declaring class properties. | |
Reports the trailing commas in parameters lists and closures' use lists that do not bring any benefit. | |
Reports the count($array) calls that are used as an array index for appending an element to the array: $array[count($array)] = 42. | |
Reports variables in closures' use list that are only used inside closure. | |
Reports the variables' names that are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports invalid names for pest dataset cases. | |
Reports invalid names for pest test cases. | |
Write access to 'readonly' property outside of declaration scope | Reports the write accesses to readonly properties that are made outside the declaration scope. |
Reports the write access expressions on variables that are still referencing the array value previously used in a foreach statement. | |
Reports the exceptions that are already caught by a preceding exception and the exceptions that are caught twice. | |
Reports the attempts to concatenate strings by using the + operator instead of the dot (.) concatenation operator. |
Pointcutexpression
Name | Description |
---|---|
Reports AspectJ pointcut designators which are not supported by Spring. | |
Reports issues in AOP pointcut expressions. |
Postcss
Name | Description |
---|---|
Reports a syntax error in a PostCSS Custom Media query. | |
Reports a syntax error in PostCSS Custom Selector. | |
Checks range context syntax, which may alternatively be used for media features with a 'range' type. | |
Reports a nested style rule whose syntax doesn't comply with the PostCSS Nested or the PostCSS Nesting specification. | |
Reports an unresolved reference to a CSS Module Value (@value declaration). |
Properties
Name | Description |
---|---|
Reports duplicate property keys with different values, duplicate keys, or duplicate property values. | |
Reports problems in the properties files contained in the resource bundle. | |
Reports syntax errors, type errors, deprecated and unresolvable keys and values in Quarkus .properties configuration files. | |
Reports unresolved and deprecated configuration keys and invalid values in Spring Boot application .properties configuration files, which can lead to runtime errors. | |
Reports the following MessageFormat problems in property values: Unknown format types MessageFormat supports only these format types: number date time choice Other format types will be reported. | |
Reports deprecated configuration keys and invalid values in Micronaut application .properties configuration files. | |
Reports properties values that look like java.text.MessageFormat format strings but do not use some the parameters of the {xx} kind. | |
Properties file or resource bundle is alphabetically unsorted | Reports alphabetically unsorted resource bundles or .properties files. |
Property key/value delimiter doesn't match code style settings | Reports properties in which key or value delimiters do not match code style settings. |
Reports locales with language codes that are not supported by Java. | |
Reports three "dot" characters which are used instead of the ellipsis character for UTF-8 properties files. | |
Reports properties whose keys or values end with a whitespace. | |
Unresolved file or class reference in a spring.handlers or spring.schemas file | Reports unresolved class and file references in spring.handlers and spring.schemas files. |
Reports properties that are not referenced outside of the .properties file they are contained in. |
Protobuf
Name | Description |
---|---|
Reports effectively equivalent import statements. |
Puppet
Name | Description |
---|---|
Reports the use of the syntax deprecated since Puppet 3, such as import statements. | |
Reports the use of the syntax deprecated since Puppet 4, such as: The class name for classes Uppercase variable names Qualified variables with underscores Note that these constructions work properly in Puppet 3.x and earlier. | |
Reports resource instances with two or more HashSet parameters (* =>). | |
Reports unresolved symbols in Puppet files. |
Python
Name | Description |
---|---|
Reports characters in byte literals that are outside ASCII range. | |
Reports cases when a protected member is accessed outside the class, a descendant of the class where it is defined, or a module. | |
Reports a problem when instance attribute definition is outside __init__ method. | |
Reports problems if there is no Python interpreter configured for the project or if the interpreter is invalid. | |
Reports cases when an assignment is done on a function that does not return anything. | |
Reports assignments that can be replaced with augmented assignments. | |
Reports the cases when you rewrite a loop variable with an inner loop. | |
Reports a problem when you are trying to call objects that are not callable, like, for example, properties:. | |
Reports methods, classes and files whose coverage is below a certain threshold. | |
Reports cases in Python 2 when a class has no __init__ method, neither its parent classes. | |
Reports cases when not all abstract properties or methods are defined in a subclass. | |
Reports usages of @classmethod or @staticmethod decorators in methods outside a class. | |
Reports classic style classes usage. | |
Reports incompatibility with the specified versions of Python. | |
Reports usages of Python functions, or methods that are marked as deprecated and raise the DeprecationWarning or PendingDeprecationWarning warning. | |
Reports using the same value as the dictionary key twice. | |
Reports situations when you can rewrite dictionary creation by using a dictionary literal. | |
Reports several methods that may not be called due to some ORM reasons. | |
Reports errors in string formatting operations. | |
Reports cases when a custom exception class is raised but does not inherit from the builtin Exception class. | |
Reports cases in Python 2 when a file contains non-ASCII characters and does not have an encoding declaration at the top. | |
Reports cases when the first parameter, such as self or cls, is reassigned in a method. | |
Reports if a fixture is used without being passed to test function parameters or to @pytest.mark.usefixtures decorator. | |
Reports calls to the set function that can be replaced with the set literal. | |
Reports problems when a variable defined through the global statement is not defined in the module scope. | |
Reports methods that lack the first parameter that is usually named self. | |
Reports from __future__ import statements that are used not at the beginning of a file. | |
Reports cases when properties are accessed inappropriately: Read-only properties are set Write-only properties are read Non-deletable properties are deleted Example: class MyClass: @property def read_only(self): return None def __write_only_setter(self, value): pass write_only = property(None, __write_only_setter) a = MyClass() a.read_only = 10 # property cannot be set del a.read_only # property cannot be deleted print(a.write_only) # property cannot be read. | |
Reports incompatible signatures of the __new__ and __init__ methods. | |
Reports stub packages that do not support the version of the corresponding runtime package. | |
Reports inconsistent indentation in Python source files when, for example, you use a mixture of tabs and spaces in your code. | |
Reports incorrect usages of Python Behave BDD framework:. | |
Reports functions that are decorated with @pytest.mark.parametrize but do not have arguments to accept parameters of the decorator. | |
Reports incorrect arguments in step definition functions. | |
Reports discrepancies between declared parameters and actual arguments, as well as incorrect arguments, for example, duplicate named arguments, and incorrect argument order. | |
Reports mismatched parameters in a docstring. | |
Reports problems with the arguments of property() and functions annotated with @property. | |
Reports type errors in function call expressions, targets, and return values. | |
Reports invalid definition and usage of TypedDict. | |
Reports invalid definitions and usages of classes created with dataclasses or attr modules. | |
Reports invalid definition of a typing.NamedTuple. | |
Reports invalid definitions and usages of protocols introduced in PEP-544. | |
Reports invalid usages of type hints. | |
Reports invalid usages of ClassVar annotations. | |
Reports invalid usage of PEP 695 type parameter syntax. | |
Reports when a method decorated with @override doesn't have a matching method in its ancestor classes. | |
Reports invalid usages of a class with __slots__ definitions. | |
Reports invalid usages of final classes, methods and variables. | |
Reports redundant list in list(Series.values) statement for pandas and polars libraries. | |
Reports any methods that do not require a class instance creation and can be made static. | |
Method signature does not match signature of overridden method | Reports inconsistencies in overriding method signatures. |
Reports cases when a call to the super constructor in a class is missed. | |
Reports coroutines that were called without using the await syntax. | |
Reports missing and empty docstrings. | |
Reports missing type hints for function declaration in one of the two formats: parameter annotations or a type comment. | |
Reports a missing encoding comment in Python 2. | |
Reports cases when a list declaration can be rewritten with a list literal. | |
Reports occurrences of new-style class features in old-style classes. | |
Reports cases when overloads in regular Python files are placed after the implementation or when their signatures are not compatible with the implementation. | |
Reports violations of the PEP 8 coding style guide by running the bundled pycodestyle.py tool. | |
Reports violations of the PEP8 naming conventions. | |
Reports problems with nesting decorators. | |
Reports trailing semicolons in statements. | |
Reports unconditional redeclarations of names without being used in between. | |
Reports equality comparison with a boolean literal. | |
Reports shadowing built-in names, such as len or list. | |
Reports shadowing names defined in outer scopes. | |
Reports docstrings that do not adhere to the triple double-quoted string format. | |
Reports statements that have no effect. | |
Reports availability of stub packages. | |
Reports usages of relative imports inside plain directories, for example, directories neither containing __init__.py nor explicitly marked as namespace packages. | |
Reports a problem when a mutable value as a list or dictionary is detected in a default value for an argument. | |
The function argument is equal to the default parameter value | Reports a problem when an argument passed to the function is equal to the default parameter value. |
Reports chained comparisons that can be simplified. | |
Reports cases when the number of expressions on the right-hand side and targets on the left-hand side are not the same. | |
Reports assignments to a tuple item. | |
Reports types in docstring that do not match dynamically inferred types. | |
Reports local variables referenced before assignment. | |
Reports exception clauses that do not provide specific information about the problem. | |
Reports backslashes in places where line continuation is implicit inside (), [], and {}. | |
Reports local variables, parameters, and functions that are locally defined, but not used name in a function. | |
Reports comparisons with None. | |
Reports cases when any call to super(A, B) does not meet the following requirements:. | |
Reports cases when except clauses are not in the proper order, from the more specific to the more generic, or one exception class is caught twice. | |
Reports occurrences of return statements with a return value inside __init__ methods of classes. |
Regexp
Name | Description |
---|---|
Reports anonymous capturing groups and numeric back references in a RegExp. | |
Reports ^ or \A anchors not at the beginning of the pattern and $, \Z or \z anchors not at the end of the pattern. | |
Reports multiple consecutive spaces in a RegExp. | |
Reports duplicate branches in a RegExp alternation. | |
Reports duplicate characters inside a RegExp character class. | |
Reports the elements in regular expression character classes that are already covered by another element in the same class. | |
Reports empty branches in a RegExp alternation. | |
Reports escaped meta characters. | |
Reports octal escapes, which are easily confused with back references. | |
Reports the alphabetic ranges or characters in regular expression character classes that only adjust the already existing ranges. | |
Reports redundant \d or [:digit:] that are used in one class with \w or [:word:] (\D with \W) and can be removed. | |
Reports redundant character escape sequences that can be replaced with unescaped characters preserving the meaning. | |
Reports unnecessary nested character classes. | |
Reports regular expressions that can be simplified. | |
Reports single char alternation in a RegExp. | |
Reports back references that will not be resolvable at runtime. | |
Reports unnecessary non-capturing groups, which have no influence on the match result. |
Requirements
Name | Description |
---|---|
Reports packages mentioned in requirements files (for example, requirements.txt, or dependencies section in pyproject.toml files) but not installed, or imported but not mentioned in requirements files. |
Rest
Name | Description |
---|---|
Reports undefined roles in reStructuredText files. |
Ruby
Name | Description |
---|---|
Reports case statements without else blocks. | |
Reports usages of find or find_by in a view or view helper. | |
Reports possible nil dereferences. | |
Reports super calls outside of methods or in classes that have no superclass defined. | |
Reports redundant then keywords in multiline if/unless blocks. | |
Reports unless statements used with else. | |
Reports arrays of string literals that can be replaced with %w. | |
Reports usages of assignment expressions in conditionals. | |
Reports blocks that can be replaced with method references. | |
Reports issues from the Brakeman scanner. | |
Reports the use of class variables. | |
Reports classes/modules with too many instance variables. | |
Reports classes/modules with too many methods. | |
Reports chained calls that can be simplified with the safe navigation operator (&.). | |
Reports conditional expressions with parentheses inside if, elsif, unless, while, and until statements. | |
Reports usages of deprecated methods and constants. | |
Reports the use of the syntax deprecated from Ruby 1.9. | |
Reports duplicate keys in hashes, method definitions, and calls. | |
Reports duplicated Cucumber step definitions. | |
Reports dynamic constant assignment. | |
Reports empty else blocks. | |
Reports empty rescue blocks. | |
Reports boolean expressions that can be simplified. | |
Reports expression substitutions #{...} in single-quoted strings. | |
Reports method calls that attempt to modify frozen objects. | |
Reports hashes with strings as keys. | |
Reports improperly constructed Hash[...] calls. | |
Reports method calls where: The number of arguments passed to the method doesn't match the number of parameters A required block is missing. | |
Reports the incorrect use of control flow jump statements, such as return, retry, redo, break, and continue. | |
Reports method definitions with the incorrect parentheses style. | |
Reports duplicated @param tags and undefined parameters in @param YARD tags. | |
Reports interpolated variables (instance or global) without braces in expression substitutions. | |
Reports invalid calls to protected/private methods. | |
Reports hashes which use the hash rocket style that can be converted to the ruby 1.9+ style. | |
Reports mailboxes that are missing the process method. | |
Reports mailboxes that have no routes pointing to them. | |
Reports method and yield calls with arguments whose inferred types don't match the parameter's expected type. | |
Reports constant assignments whose inferred types don't match the constant's expected type. | |
Reports global variable assignments whose inferred types don't match the global variable's expected type. | |
Reports default method and block parameter assignments whose inferred types don't match the parameter's expected type. | |
Reports method and block return values whose inferred types don't match the method's expected return type. | |
Reports instance and class variable assignments whose inferred types don't match the variable's expected type. | |
Reports method parameters without @param tags. | |
Reports methods that are not annotated with a @return tag. | |
Reports missing gems from the current SDK. | |
Reports missing type signatures for classes, modules, constants, global/instance/class variables, methods, and aliases. | |
Reports control flow statements with negative conditions. | |
Reports nested ternary operators. | |
Reports when the current project has no Ruby interpreter configured, or an invalid interpreter configured. | |
Reports step definitions where the number of step name parameters does not match the number of parameters of the Ruby block. | |
Reports redundant return keywords and statements. | |
Reports no-arg method calls with parentheses. | |
Reports the use of the safe navigation operator (&.) with a non-nil receiver, which can be omitted. | |
Reports variables used as return values. | |
Reports issues from the RuboCop linter. | |
Reports Shoulda tests with incorrect file names. | |
Reports if statements that can be replaced with case statements. | |
Reports blocks of code with unbalanced brackets. | |
Reports usages of for loops. | |
Reports class methods with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports class variables with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports classes and modules with names that are either too short, too long or don't match the specified regular expression pattern. | |
Reports any constants whose names are either too short, too long, or do not follow the specified regular expression pattern. | |
Reports global variables with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports instance methods with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports instance variables with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports local variables with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports parameters with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports unexpected parameter values in method calls. | |
Reports double-quoted strings that can be converted to single-quoted. | |
Reports usages of i18n property keys which are missing translations. | |
Reports local variable or parameter declarations and assignments that are unused. | |
Reports the use of local variables or parameters that may be unsafe: Implicit or explicit variables or parameters that shadow an outer variable or parameter Uninitialized variables or parameters Redundant variable declarations inside blocks. | |
Reports method calls (including yield) with whitespace before its parentheses. |
Ruby.rbs
Name | Description |
---|---|
Reports type arguments passed to generic types which do not subtype the expected upper bound. | |
Reports conflicting partial container declarations due to a mismatch between the number of type variables. | |
Reports type variables whose variance (in, out, or unchecked) conflicts with another declaration. | |
Reports cyclic declarations of class or module aliases. | |
Reports duplicate keyword parameters in methods, blocks, and proc types. | |
Reports inconsistent declarations of class and module aliases. | |
Reports inclusion calls (include, prepend and extend) that reference a class. | |
Reports references to generic types with the incorrect number of type arguments. | |
Reports type arguments used in an inheritance statement (a superclass clause, self-type, or an inclusion call) which have incorrect variances. | |
Reports invalid method overloads (...). | |
Reports type variables used as arguments in locations that their variance does not allow, so long as they are not marked as unchecked. | |
Reports references to the classes NilClass, TrueClass, and FalseClass in type signatures. | |
Reports modules used in superclass clauses. | |
Reports usages of true | false that can be replaced with bool. | |
Reports interfaces with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports type aliases with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports type variables with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports use aliases with names that are either too short, too long, or don't match the specified regular expression pattern. | |
Reports unnecessary qualifiers within references. | |
Reports interfaces that are unused within the project. | |
Reports type aliases that are unused within the project. | |
Reports container, method, and type alias type variables that are unused within the project. | |
Reports use clauses that are unused or unnecessary within the file. |
Rust
Name | Description |
---|---|
Reports incorrect use of the literal `crate` in a path. | |
Reports a non-constant value or function call used in a constant expression. | |
Reports trait objects with additional non-auto traits. | |
Reports the use of anonymous parameters in functions that do not allow it. | |
Reports hard coded numeric constants such as std::f64::consts::PI. | |
Checks if function and method argument names follow the Rust naming convention. | |
Checks if associated type names follow the Rust naming convention. | |
Reports trait objects declared without a single trait, as well as trait objects with multiple lifetime bounds. | |
When calling somethings, checks that it is function or method. | |
Reports issues with attributes including misuse, redundancy, formatting errors, invalid entries, outdated syntax, and more. | |
Detects incomplete attributes that require parentheses. | |
Highlights . | |
Detects usages of blocking thread::sleep() function in async contexts. | |
Detects boolean expressions that can be safely simplified like a || true. | |
Reports basic borrow checker errors. | |
Reports cases where the `Copy` trait is implemented along with `Drop`, which is considered unsafe and currently not allowed in the Rust language. | |
C-variadic function should use a compatible calling convention | Reports C-variadic function that don't have a compatible calling convention. |
Detects as casts that can be replaced with literal suffixes. | |
Reports invalid place expression, for example: invalid left-hand of assignment. | |
Reports circular module declarations with the #path attribute. | |
Reports trait bounds for a single type that are separated with a comma instead of a `+` sign. | |
Reports code that uses unavailable compiler features. | |
Reports incorrect use of patterns in functions. | |
Reports const generic argument expressions with missing braces. | |
Checks if constant names follow the Rust naming convention. | |
Detects constant variables that refer to static variables. | |
Detects suspiciously looking else if-statements split by new lines. | |
Reports the use of default parameter values, which are not supported in Rust. | |
Report incorrect usage of default type parameters. | |
Reports invalid use of defaults for const parameters. | |
Reports the use of `...` deprecated syntax. | |
Reports members that do not implement the traits being derived. | |
Detects files that are not attached to any Rust module. | |
Detects expressions of the form --x which might be mistook for pre-decrements. | |
Reports duplicate items (such as field declarations, type parameters, etc.). | |
Reports duplicate keys when creating hash maps. | |
Checks duplicated patterns in macro definitions. | |
Checks duplicated parameter names of abstract trait methods. | |
Reports captures of a dynamic environment in a `fn` item. | |
Checks if the entry point of the program was marked as async. | |
Checks if enum names follow the Rust naming convention. | |
Checks if enum variant names follow the Rust naming convention. | |
Detect assert!(a == b) (and assert!(a != b)) macro call that can be simplified into assert_eq!(a, b) (or assert_ne!(a, b)). | |
Some unstable experimental checks which are disabled by default. | |
Reports explicit calls to `drop`. | |
This inspection runs external linter to check for rustc or clippy errors. | |
Reports failed function calls or assertions in tests. | |
Checks if field names follow the Rust naming convention. | |
Reports implementations of foreign traits (traits defined outside the current crate) for arbitrary types. | |
Reports errors in the use of macros that support formatting. | |
Forward-declared identifier for parameter with default value | Reports generic parameters with default values that use forward-declared identifiers. |
Reports functions that cannot be declared variadic. | |
Generic arguments must be specified before the first constraint | Reports generic arguments specified after the first constraint. |
Reports format! calls with missing format arguments. | |
Detects immutable bindings reassignments. | |
Reports inclusive ranges without a specified end bound (`..=b` or `a..=b`). | |
Reports incorrect const syntax. | |
Reports incorrect function syntax. | |
Reports incorrectly ordered lifetime, type, and const parameters. | |
Reports incorrect type alias syntax. | |
Reports incorrect visibility restrictions. | |
Checks type of index expression. | |
Detects path statements with no effect. | |
Reports inherent `impl` blocks defined for items other than structs, enums, unions, or trait objects. | |
Reports inherent type implementations defined outside the type's original crate. | |
Reports inherent implementations for dynamic auto traits. | |
Reports invalid usages of break and continue in loops. | |
Reports incorrect usage of the #[start] attribute. | |
Reports incorrect usage of the ? operator. | |
Reports invalid `Copy` implementations. | |
Reports invalid `Drop` implementations. | |
Reports invalid `self` imports. | |
Reports char literal with incorrect length. | |
Check if the crate name is valid, namely the crate name must not be empty, and must only contain Unicode alphanumeric or _ (U+005F) characters. | |
Reports incorrect field use in struct literals. | |
Reports invalid fields in struct and tuple struct patterns. | |
Reports labels with invalid names. | |
Reports lifetimes with invalid names. | |
Reports literals with invalid suffixes. | |
Reports errors when calling macros. | |
Reports invalid fragment specifier of a macro variable. | |
Reports invalid attempts to access private fields or methods. | |
Reports structs, enums, macro definitions and traits placed inside other structs, enums, macro definitions or traits. | |
Reports lifetime bounds in parentheses. | |
Checks if lifetime names follow the Rust naming convention. | |
Check if a numerical value is out of the range of the receiver. | |
Reports unused local variables and parameters. | |
Checks if macro names follow the Rust naming convention. | |
Checks if the main function exists in the binary crates. | |
Reports manual implementations of `Fn`, `FnMut`, and `FnOnce` traits. | |
Reports match expressions that can be replaced with a method call. | |
Checks if method names follow the Rust naming convention. | |
Generic arguments were not provided in the same order as the corresponding generic parameters are declared. | |
Reports variadic functions where `...` is not positioned as the last argument. | |
Checks if trait objects are explicitly specified with dyn keyword. | |
Detects suspiciously looking if-statements with potentially missing elses. | |
Reports chained comparison operators with missing parentheses. | |
Reports struct fields declared without a type. | |
Reports constant declarations with missing types. | |
Reports module declarations in files other than mod.rs. | |
Checks if module names follow the Rust naming convention. | |
Reports type parameters with multiple relaxed default bounds. | |
Reports the use of nested `impl Trait`. | |
Reports where clauses containing nested quantification over lifetimes, which is not supported. | |
Reports recursion used in async functions without boxing. | |
Reports module declarations with no corresponding file found. | |
Checks that match expression is exhaustive, i.e. | |
Reports attempts to access non-existent fields. | |
Reports non-inline modules declared inside a block and missing the path attribute. | |
Reports cases where field initialization shorthand (RFC 1682) can be used. | |
Detects using Struct { x: x } instead of Struct { x } in a pattern. | |
Reports non-string ABI literals. | |
Reports the use of non-structural-match types for const generic parameters. | |
Reports function parameters whose types are unknown at compile time. | |
Reports the use of #[proc_macro], #[proc_macro_attribute], and #[proc_macro_derive] attributes in non-procedural macro crates. | |
Reports public items located in the root of a procedural macro crate and not marked with a #[proc_macro], #[proc_macro_attribute], or #[proc_macro_derive] attribute. | |
Reports private items that were re-exported publicly. | |
Checks for a #[must_use] attribute without further information on functions and methods that return a type already marked as #[must_use]. | |
Reports redundant ::. | |
Detects else-statements preceded by irrefutable patterns. | |
Detects unnecessary trailing semicolons. | |
Reports calls to std::mem::drop with a reference instead of an owned value. | |
Reports discriminant values that are present more than once in a single enum. | |
Reports identifiers bound more than once in the same pattern. | |
Reports the use of reserved keywords. | |
Reports the use of reserved lifetime names. | |
Reports the use of keywords reserved in Rust 2018 edition, as well as features unavailable in Rust 2018 edition. | |
Reports the use of keywords reserved in Rust 2024 edition, as well as features unavailable in Rust 2024 edition. | |
Checks some naming conventions for methods. | |
Checks if static constant names follow the Rust naming convention. | |
Reports struct inheritance, which is not supported in Rust. | |
Checks if struct names follow the Rust naming convention. | |
Reports missing supertrait implementations. | |
Detects use of the non-existent =*, =! and =- operators that are probably typos. | |
Reports non-trait items referenced as traits. | |
Reports errors in trait implementation like "Missing members", "Unknown member", etc. | |
Checks if trait names follow the Rust naming convention. | |
Reports mismatches between the safety of a trait's definition and its implementation. | |
Reports union declarations with tuple syntax. | |
Checks if type alias names follow the Rust naming convention. | |
The Rust type checker. | |
The Rust type checker (experimental). | |
Reports the use of types that do not implement the necessary traits. | |
Reports the use of types that do not implement the necessary traits. | |
A type mismatched an associated type of a trait. | |
Checks if type parameter names follow the Rust naming convention. | |
Reports the use of type placeholders (_) in an item's signature. | |
Reports unclosed text literals. | |
Reports undeclared labels. | |
Reports undeclared lifetimes. | |
Checks that union expr has exactly one field. | |
Detects an unknown crate type found in a crate_type attribute. | |
Reports the use of `break`/`continue` keywords without labels in `while` loop conditions. | |
Reports the use of unlabeled `break`/`continue` statements inside labeled blocks. | |
Detects unnecessary as casts. | |
Checks for lifetime annotations which can be removed by relying on lifetime elision. | |
Detects unnecessarily qualified paths. | |
Reports unnecessary return statements at the end of a block. | |
Reports unnecessary visibility qualifiers. | |
Reports unreachable labels. | |
Checks that match expression doesn't have unreachable patterns. | |
Reports unresolved method references. | |
Reports unresolved method references. | |
Reports unresolved path references. | |
Reports unresolved path references. | |
Detects unsafe usage of CString. | |
Reports inherent implementations marked as unsafe. | |
Reports the use of unsafe items in a safe context. | |
Reports modules declared as unsafe. | |
Reports the use of unstable items. | |
Reports `let` expressions in places where they are unsupported. | |
Detects unused result of a type flagged as #[must_use]. | |
Detects unnecessary mut qualifiers. | |
Detects labels that are never used. | |
Reports calls to `unwrap()` that can be replaced with `?`. | |
Reports the use of `dyn` and `impl Trait` in type parameter bounds. | |
Reports the use of `++` and `--` operators, which are not supported in Rust. | |
Checks if variable names follow the Rust naming convention. | |
Checks if correct associated type arguments were used for a type or a trait reference. | |
Checks if the right number of generic arguments was used for a type, trait, function call or method call. | |
Checks if the right number of lifetime parameters was used for a type or trait. | |
Checks if an attempted implementation of a trait method or an associated type has the right number of type or const parameters. | |
Reports usages of dbg! macro. | |
Reports `derive` attributes applied to items other than structs, enums, or unions. | |
Reports `inline` attributes applied to items other than functions or closures. | |
Reports enums that require a `#[repr(inttype)]` attribute. | |
Reports calls to std::mem::drop with values that derive the Copy trait. | |
Reports explicit implementations of the `Sized` and `Unsized` traits. | |
Detects implementations of ToString trait which, as its documentation states, shouldn't be implemented directly and Display trait should be implemented instead. | |
Reports invalid use of underscores (`_`) in expressions: they are only allowed on the left-hand side of an assignment. | |
Reports the use of `async` non-`move` closures with parameters, which are not supported. | |
Highlights `compile_error!()` macro invocation. | |
Reports the use of `break`/`continue` keywords outside `loop`/`while` blocks. | |
Reports `crate` used in paths. | |
Reports invalid `default` keyword placement. | |
Reports `extern crate self` that is not followed by `as <name>`. | |
Reports if expressions that have true or false constant literal condition and can be simplified. | |
Reports incorrect use of `impl Trait`. | |
Checks if members in the impl have a same order as in the trait. | |
Reports `main` functions defined with generic parameters. | |
Detects usages of println!("") which can be simplified to println!() since from Rust 1.14.0. | |
Reports if and match statements that can be converted to expressions by lifting a return out. | |
Reports `return;` statements contained in functions whose return type is not `()`. | |
Reports the use of `self` as a function parameter in case it is not allowed. | |
Reports the use of the `self` keyword in static methods. | |
Reports the use of `self` in contexts where it is not available. | |
Reports the use of `self` and `super` keywords not at the beginning of the path. | |
Detects usage of thread_rng().gen() that can be replaced with random() from rand crate. | |
Finds usages of the try! macro which can be replaced with ? operator starting from Rust 1.13.0. | |
Detects while loops which can be replaced with loop. | |
Detects usages of LocalKey::with() method that can be replaced with stable thread local methods. |
SQL
Name | Description |
---|---|
Reports attempts to create NOT NULL columns without DEFAULT values. | |
Reports invalid usages of SQL aggregate functions. | |
Reports columns that have identical names but belong to different tables. | |
Reports tables that contain two columns with an automatic increment. | |
Reports truncations of string arguments in ISNULL functions. | |
Reports columns in the USING clause that does not exist in both tables. | |
Reports SELECT aliases with names that match column names in the FROM clause. | |
Reports columns that are not in the GROUP BY clause or inside an aggregate function call. | |
Reports conditions and expressions that are always true, false or null. | |
Reports schemas and databases in the current session that are not introspected. | |
Reports usages of DELETE or UPDATE statements without WHERE clauses. | |
Reports usages of types that are deprecated and might disappear in future versions of DBMS. | |
Reports duplicated names of column aliases in SELECT lists. | |
Reports derived tables without aliases. | |
Reports signature issues for built-in functions. | |
Reports situations when you use SQL reserved keywords as identifier names in your query. | |
Reports illegal cursor states inside SQL routines. | |
Reports variables that exceed the defined length in characters. | |
Reports cases when you try to drop columns from indexed tables. | |
Reports cases when you insert NULL values into columns that accept only NOT NULL values. | |
Reports INSERT statements that assign values to generated columns. | |
Reports ambiguous references in SQL code. | |
Reports queries without explicit aliases in output expressions (for example, in the SELECT statement). | |
Reports functions that have no RETURN statements. | |
Reports usages of multiple row limiting clauses in a single query. | |
Reports arguments that are used without names in routine calls. | |
Reports the absence of data sources in the Database tool window (View | Tool Windows | Database). | |
Reports comparisons with NULL that can be replaced with IS NULL or IS NOT NULL operators. | |
Reports usages when the ORDER BY clause is used without TOP, OFFSET, or FOR XML in views, inline functions, derived tables, subqueries, and common table expressions. | |
Reports situations when you make SELECT from a function or a DBLINK without an alias with a type (for example, AS t1(s VARCHAR)). | |
Reports redundant ELSE NULL clauses. | |
Reports alias expressions that duplicate names of columns in tables and might be redundant. | |
Reports all the arguments except for the first expression that does not evaluate to NULL in COALESCE functions. | |
Reports redundant ordering directions like ASC and DESC in ORDER BY clauses. | |
Reports redundant row limiting clauses like FETCH and LIMIT in queries. | |
Reports the misconfigured dbt project (Settings | Languages & Frameworks | dbt). | |
Reports situations when a dialect is not assigned to an SQL file. | |
Reports situations when source code of a database object has been changed. | |
Reports incorrect usages of transition table variables in triggers. | |
Reports type-related errors. | |
Reports string literals that use national characters without the N prefix. | |
Reports missing conditional checks for statements that might modify the whole database. | |
Reports unused common table expressions (CTE) inside the query. | |
Reports columns, aliases, and other subquery items that are not referenced in the outer query expression. | |
Reports unused arguments, variables, or parameters. | |
Reports usages of backward GOTO statements and GOTO statements used to exit a loop. | |
Reports usages of transaction management statements like COMMIT or ROLLBACK in trigger bodies. | |
Reports situations when CASE and COALESCE calls are interchangeable. | |
Reports situations when CASE and IF are interchangeable. | |
Reports calls in which positional arguments go after the named ones. | |
Reports situations when a number of parameters in VALUES does not match a number of columns in a target table. |
Scss
Name | Description |
---|---|
Reports an unresolved Sass/SCSS placeholder selector reference. |
Shell script
Name | Description |
---|---|
Reports shell script bugs detected by the integrated ShellCheck static analysis tool. |
Spel
Name | Description |
---|---|
Reports syntax errors in the Spring Expression Language (SpEL) code, such as unresolved references and invalid locations. |
Spring-mongodb-json
Name | Description |
---|---|
Reports unresolved document fields specified inside of org.springframework.data.mongodb.repository.Query annotation. |
Sqldatetime
Name | Description |
---|---|
Reports errors in date and time literals. |
Text
Name | Description |
---|---|
Reports ButtonGroup instances that contain only one JRadioButton. | |
Reports components that have duplicated mnemonic characters. | |
Reports any instances of hardcoded strings in your UI forms. | |
Reports unresolved references to .properties files. | |
Reports focusable components with the text property or labels with the assigned labelFor property that do not have a mnemonic character. | |
Reports components that do not have any static text and do not have any label marked with setLabelFor for this component. | |
Reports JRadioButton components that are not placed in ButtonGroup. | |
Reports Scrollable components, except for JTextField, that are not placed in JScrollPane. | |
Reports typos and misspelling in your UI forms (for example, in a JLabel text or JPanel title) and fixes them with one click. |
Tftpl
Name | Description |
---|---|
Reports Terraform Template files with no data language selected. |
Thymeleafexpressions
Name | Description |
---|---|
Reports incorrect elements in Thymeleaf Dialect Extension <dialect> files:. | |
Reports unresolved message resource keys. | |
Reports unresolved references and invalid Thymeleaf expressions. |
Toml
Name | Description |
---|---|
Reports any unknown crates listed in Cargo.toml. | |
Detects features that depend on themselves. | |
Reports duplicated keys within the same section of a Cargo.toml file. | |
Reports invalid crate versions in Cargo.toml. | |
Checks the categories field in the [package] section of Cargo.toml against the crates.io rules: The categories must be chosen from the list of valid category slugs A maximum of 5 categories is allowed. | |
Reports outdated crate versions in Cargo.toml. | |
Reports outdated versions of packages in [tool.poetry.dependencies] and [tool.poetry.dev-dependencies] sections of pyproject.toml. | |
Reports errors in Cargo.toml related to structure, constraints, and data types. | |
Reports string literals that are missing a closing quote. | |
Detects unused keys in TOML descriptors of version catalogs. |
TypeScript
Name | Description |
---|---|
Reports a public constructor of an abstract class and suggests making it protected (because it is useless to have it public). | |
Reports a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. | |
Reports a duplicate type inside a union or intersection. | |
Reports a usage of equality operators may cause unexpected type coercions. | |
Reports a type annotation that doesn't match the current code style for explicit types. | |
Reports a private field that can be made readonly (for example, if the field is assigned only in the constructor). | |
Reports a component that doesn’t have an associated template or uses both template and templateUrl properties. | |
Reports an invalid type argument in a function, interface, or class declaration. | |
Reports an invalid Angular component specified in the module’s bootstrap or entryComponents property. | |
Reports any symbol that is declared, imported or exported by an Angular module or standalone component that is not a module, component, directive, or pipe or can’t be used in the context of the property. | |
Reports usages of imports property in non-standalone component decorators. | |
Reports a usage from augmentation module without an explicit import. | |
Reports a TypeScript library file that is required for a symbol but is not listed under the lib compiler option in tsconfig.json. | |
Missing or invalid component, directive or pipe declaration in a module | Reports a non-standalone Angular component, directive, or pipe that is not declared in any module or is declared in multiple modules. |
Reports a usage that requires an explicit option in tsconfig.json. | |
Reports a usage of a variable where the variable type is narrowed by a type guard. | |
Recursive import or export of an Angular module or a standalone component | Reports a cyclic dependency between Angular modules or standalone components. |
Reports a type argument that is equal to the default one and can be removed. | |
Reports a discrepancy detected by the TSLint linter. | |
Reports a parameter, return value, or assigned expression of incorrect type. | |
Reports an export of an undeclared or unimported component, directive, or pipes from an Angular module. | |
Reports an unresolved reference in TypeScript code. | |
Reports an unresolved name or binding in an import declaration in TypeScript code. |
UAST
Name | Description |
---|---|
Reports when parent and child classes in a JUnit test hierarchy are annotated with @RunWith. | |
Reports ProcessCanceledExceptions handled in an incorrect way. | |
Reports missing or redundant hints in UastHintedVisitorAdapter creation. | |
Reports calls to assertion methods where the "expected" and "actual" arguments are of incompatible types. | |
Reports JUnit assertEquals() calls with arguments of an array type. | |
Reports JUnit assertEquals() calls that can be replaced with an equivalent assertSame() call. | |
Using @Cacheable: In proxy mode (which is the default), only external method calls coming in through the proxy are intercepted. | |
Reports warnings on incorrectly used proxy methods. | |
Reports @Interceptor classes without binding types. | |
@PreFilter/@PreAuthorize/@PostFilter self-invocation method calls | Using @PreFilter/@PostFilter/@PreAuthorize: In proxy mode (which is the default), only external method calls coming in through the proxy are intercepted. |
Using @Transactional: In proxy mode (which is the default), only external method calls coming in through the proxy are intercepted. | |
Reports classes that can be marked as light services using the @com.intellij.openapi.components.Service annotation instead of being registered as services in plugin.xml A service that is not intended for overriding is not required to be registered in the plugin.xml file. | |
Reports declarations marked with @ApiStatus.ScheduledForRemoval that should have been removed in the current version of the declaring library. | |
Reports Swing components that do not provide accessibility context. | |
Application service assigned to a static final field or immutable property | Reports assignments of application services to static final fields / immutable properties. |
Detects incorrect use of @Column annotation for association attributes with @OneToOne and @ManyToOne annotations. | |
Reports classes with multiple stereotypes in different scopes or if a scope is not specified. | |
Reports managed beans with public instance fields that are not in the default @Dependent scope. | |
Reports BootstrapConfiguration included into the Spring Boot application context via a component scan where it might not be needed. | |
Reports @Cache* annotations on interfaces. | |
Reports the usage of method System.getProperty(str) and suggests a fix in 2 cases: System.getProperty("path.separator") -> File.pathSeparator System.getProperty("line.separator") -> System.lineSeparator() The second one is not only less error-prone but is likely to be faster, as System.lineSeparator() returns cached value, while System.getProperty("line.separator") each time calls to Properties (Hashtable or CHM depending on implementation). | |
Reports calls to run() on java.lang.Thread or any of its subclasses. | |
Reports hashCode() and equals() calls on java.net.URL objects and calls that add URL objects to maps and sets. | |
Reports subscribe() calls in "reactive" methods. | |
Calling method should be annotated with @RequiresBlockingContext | Highlights calls of method annotated with @RequiresBlockingMethod inside non-annotated method. |
Calling transformation function on receiver with Mono<Void> type | Reports transform operations called on Mono<Void> value inside a Reactor chain. |
Reports loops, forEach-like methods, and ContainerUtil.process() with missing cancellation checks. | |
Reports methods and classes whose coverage is below a certain threshold. | |
Reports classes that directly implement the Publisher interface. | |
Reports classes that directly implement the Subscriber interface. | |
Reports classes, interfaces and methods that extend, implement, or override API elements marked with @ApiStatus.NonExtendable. | |
Reports incorrect registration of plugin components (Actions and Components). | |
(Gradle 4.9+) Detects usage of API that interacts with tasks eagerly. | |
Reports usages of deprecated classes, fields, and methods. | |
Detects usage of configuration methods that were deprecated. | |
Reports disposer methods without the corresponding producer method. | |
Reports any actions that are registered in the plugin.xml file and instantiate the com.intellij.openapi.actionSystem.Presentation object in their constructors. | |
Reports empty methods that can be removed. | |
Checks for associations that are not marked with corresponding annotations. | |
Checks for multiple id attributes in one entity. | |
Reports the following JPA specification errors:. | |
Reports entity listener classes without any entity listener methods. | |
Checks that equals() method checks class of its parameter. | |
Reports extension implementation being additionally registered as a service/component. | |
Reports fields in LocalQuickFix and IntentionAction implementations that prevent intention preview action from functioning properly. | |
Reports usages of java.io.File.equals()/hashCode()/compareTo() methods. | |
Reports cases when your code prevents a class from being subclassed by some framework (for example, Spring or Hibernate) at runtime. | |
Checks for @ManyToMany associations with the CascadeType.REMOVE attribute. | |
Reports any instances of hardcoded String literals. | |
Reports illegal dependencies between scopes according to the dependency rules given. | |
Reports incorrect @Decorator bean definitions. | |
Reports incorrect usages of the @Specializes annotation. | |
Reports incorrect @Stereotype annotation classes:. | |
Reports @Typed annotation usages that violate the following rules:. | |
Reports incorrect MIME types (for example, in Content-Type strings) for HTTP servers and clients. | |
Reports autowiring problems on injection points of Spring beans @Component, @Service, and so on. | |
Reports incorrect bean scopes:. | |
Reports incorrect injection points: fields, methods, and parameters annotated with @Inject that violate the CDI specification. | |
Reports incorrect disposer methods. | |
Reports incorrect bean definition rules. | |
Reports incorrect observer method definitions. | |
Reports using Application or Project as a parent Disposable in plugin code. | |
Reports Micronaut Data repository methods that do not match the query pattern criteria. | |
Reports incorrect Micronaut Data repository method parameter types. | |
Reports incorrect Micronaut Data repository method return types. | |
Reports incorrect @Cache* annotation names. | |
Reports the following problems when retrieving services: Attempts to retrieve an unregistered service. | |
Reports strings in method parameters and return values annotated with @Nls and having the capitalization parameter to conform to capitalization rules existing in most platform UI guidelines. | |
Incorrect usage of @CachePut and @Cacheable on the same method | Reports @CachePut and @Cacheable annotations declared on the same method. |
Reports incorrect usages of bean types that cannot be proxied. | |
Reports Hibernate @Find annotation errors. | |
Reports incorrect @EventListener methods. | |
Reports incorrect @Profile expressions:. | |
Reports injection points in bean classes that have ambiguous dependencies. | |
Reports inspections that are missing an HTML description file, i.e. | |
Reports comments or annotations suppressing inspections. | |
Reports intentions that are missing an HTML description file, before.template file or after.template file. | |
Invalid 'PlatformTransactionManager' declaration in @Transactional component | Reports PlatformTransactionManager classes that are not correctly defined in the application context for the current @Transactional component. |
Reports invalid prefixes defined in the @ConfigurationProperties annotations:. | |
Reports incorrect Spring context configurations. | |
Reports unresolved file references in the scripts attributes of the @Sql annotation and the corresponding aliased attributes of the @Sql meta annotations. | |
Reports @SpringBootApplication in the default package and redundant @EnableAutoConfiguration or @ComponentScan annotations. | |
Reports invalid and deprecated value for icon attribute in com.intellij.ide.presentation.Presentation annotation. | |
Reports unresolved packages in @ComponentScan annotations and corresponding aliased attributes of @ComponentScan meta annotations. | |
Checks for the presence of @Converter annotation on JPA converter. | |
JUnit 3 'super.tearDown()' is not called from 'finally' block | Reports calls of the JUnit 3's super.tearDown() method that are not performed inside a finally block. |
Reports JUnit 3 test classes that can be converted to JUnit 4 test classes. | |
Reports JUnit 4 tests that can be automatically migrated to JUnit 5. | |
Reports any calls to methods from the junit.framework.Assert, org.junit.Assert, or org.junit.Assume classes inside JUnit 5 tests. | |
Reports calls to Assert.assertEquals(), Assert.assertTrue(), etc. | |
Reports JUnit test member declarations that are malformed and are likely not recognized by the JUnit test framework. | |
Reports usages of JUnit 4's @Ignore or JUnit 5's @Disabled annotations. | |
Reports listener implementations that implement com.intellij.openapi.Disposable. | |
Reports is log enabled for conditions of if statements that do not match the log level of the contained logging call. | |
Reports logging calls that are not surrounded by a guard condition. | |
Reports logging calls surrounded with a guard condition. | |
Checks that all-args constructor exists for @lombok.Builder in JPA entities. | |
Reports using Language or FileType as a map key in plugin code. | |
Reports methods and method hierarchies that always return the same constant. | |
Reports calls to API methods marked with @ApiStatus.OverrideOnly. | |
Reports method parameters that always have the same constant value. | |
Reports createOptionsPanel() methods in inspection implementation, which can be automatically converted to getOptionsPane(). | |
Reports @PathVariable parameters that are declared in the method signature but are absent in the URL path or vice versa. | |
Missing '@Deprecated' annotation on scheduled for removal API | Reports declarations marked with @ApiStatus.ScheduledForRemoval without @Deprecated. |
Missing or empty 'prefix' attribute value in the '@ConfigMapping' annotation | Reports missing or empty prefix attribute value in the @io.smallrye.config.ConfigMapping annotation. |
Reports non-default constructor in serializable classes. | |
Reports extension/service class having a non-default (empty) constructor. | |
Reports SLF4J, Log4j2 logging calls in one class, such as logger.info("message: {}", key) with similar log messages. | |
Reports TokenSet field declarations referencing non-platform element types in ParserDefinition classes. | |
Reports cases when a non-safe object is passed to a method with a parameter marked with @Untainted annotations, returned from annotated methods or assigned to annotated fields, parameters, or local variables. | |
Reports cases for Java and Kotlin languages when a non-safe string is passed to a method as a SQL query. | |
Number of placeholders does not match number of arguments in logging call | Reports SLF4J, Log4j2 and akka.event.LoggingAdapter logging calls, such as logger.info("{}: {}", key) where the number of {} placeholders in the logger message doesn't match the number of other arguments to the logging call. |
Reports the following JPA specification errors:. | |
Reports property type mismatch for JPA attributes. | |
Reports missing identification property persistence objects. | |
Reports incorrectly defined persistent object classes in the following cases:. | |
Detects disallowed statements before 'plugins {}' block. | |
Reports thread-blocking method calls in code fragments where threads should not be blocked. | |
Detects possibly misplaced calls to Gradle methods. | |
Reports postfix templates missing an HTML description file, before.template file or after.template file. | |
Verifies that a Pageable parameter is present in queries returning Page. | |
QuickFix's getFamilyName() implementation must not depend on a specific context | Reports QuickFix.getFamilyName() using contextual information. |
Reports read and write actions run from the scope of service initialization: service constructors and initialization blocks (including static) service companion object's initialization blocks (Kotlin) service methods used in initialization blocks and fields initialization PersistentStateComponent initialization lifecycle methods: loadState noStateLoaded initializeComponent Running a read or write action during service initialization may cause deadlocks. | |
Return null or something nullable from a lambda in transformation method | Reports transform operations that may return null inside a Reactive Stream chain. |
Reports classes that implement Serializable and do not declare a serialVersionUID field. | |
Reports service getting calls that can be replaced with a calls to an existing static getInstance() or getInstance(Project) methods. | |
Checks for the non-owning side of the @OneToOne associations with the FetchType.Lazy attribute. | |
Reports Spring Data CRUD repository methods for which the Spring Data Query builder cannot generate the corresponding query. | |
Reports Spring Data CRUD repository method parameters with incorrect types. | |
Reports Spring Data CRUD repository methods with incorrect return types. | |
Reports extensions and quick-fixes holding potentially leaking state. | |
Reports static initialization in extension point implementations. | |
Reports inconsistency errors in stream handler methods. | |
Reports string templates that are used as arguments to SLF4J and Log4j 2 logging methods. | |
Reports the usage of Hooks.onOperatorDebug() when ReactorDebugAgent.init() is called. | |
Reports non-abstract test cases without any test methods. | |
Reports test classes and test methods that are located in production source trees. | |
Reports test methods that do not contain any assertions. | |
Reports @TestOnly- and @VisibleForTesting-annotated methods and classes that are used in production code. | |
Reports test cases with initialization logic in their constructors. | |
Reports threading and concurrency issues in code using information from com.intellij.util.concurrency.annotations annotations. | |
Reports throw expressions in the Reactor/RxJava operator code. | |
Reports long Reactive Streams transformation chains. | |
Reports usage of UAST UElement as PsiElement. | |
Reports endpoint methods without the @Produces or @Consumes annotations. | |
Reports usages of undesirable classes (mostly Swing components). | |
Reports missing StepVerifier terminal calls. | |
Reports unknown HTTP headers that do not match any publicly known headers. | |
Reports unresolved method references on initMethod and destroyMethod parameters of the @Bean annotation. | |
Reports redundant ReactorDebugAgent.init() calls. | |
Detects incorrect dependency notations. | |
Reports @PathParam parameters that are declared in a method signature and missing in the URL path or visa versa. | |
Reports @PathVariable parameters that are declared in a method signature and missing in the URL path or vise versa. | |
Reports Micronaut Cache annotations where the value of the parameters attribute contains names of undefined method parameters. | |
Reports references inside the following Persistence ORM annotations if they cannot be resolved within the configured datasource:. | |
Reports the following unresolved attributes inside EntityGraph-related annotations:. | |
Reports unresolved files and directories in locations attributes of @ImportResource annotations and the corresponding aliased attributes of the @ImportResource meta annotations. | |
Unresolved file references in @PropertySource and @TestPropertySource locations | Reports unresolved files or directories in @PropertySource and @TestPropertySource annotations. |
Reports unresolved channel attributes in @StreamListener, @SendTo, @Output, and @Input annotations. | |
Reports unresolved references to plugin configuration elements. | |
Reports unresolved symbols in named and native queries and related API methods: Unknown named query Unknown query parameter Example: @Entity @NamedQuery(name = "SelectByConditionQuery", query = "...") public class JavaEntity { .. | |
Reports unresolved symbols in the following JPA annotations and API methods:. | |
Reports unresolved Spring MVC View references. | |
Reports usage of VirtualFile.getChildren() inside recursive methods. | |
Reports unsafe use of JavaRecursiveElementVisitor.visitReturnStatement(). | |
Reports passing unspecified place parameter for ActionManager.createActionToolbar() and ActionManager.createActionPopupMenu(). | |
Reports usages of an API marked with one of the annotations as unstable. | |
Reports declarations of classes, methods, and fields that reference an unstable API type in the signature, but are not marked with the same unstable annotation. | |
Reports unused Publisher instances. | |
Checks that delete/update queries are annotated with the @Modifying annotation. | |
Reports usages of deprecated APIs (classes, fields, and methods) that are marked for removal with @Deprecated(forRemoval=true). | |
Reports usages of IntelliJ Platform API introduced in a version newer than the one specified in <idea-version> @since-build in plugin.xml. | |
Usages of API which isn't available at the configured language level | Reports usages of the API that is unavailable at the configured language level. |
Reports declarations (classes, methods, fields) annotated as @ApiStatus.Obsolete. | |
Reports comparing PluginId instances using ==. | |
Reports comparing PsiPrimitiveType instances using ==. | |
Reports comparing VirtualFile instances using ==. | |
Reports usages of javax.swing.border.EmptyBorder and JBUI.Borders.emptyXyz() that can be simplified. | |
Reports usages of java.awt.Insets and JBUI.insetsXyz() that can be simplified. | |
Reports usages of java.awt.Color. | |
Checks that @lombok.AllArgsConstructor used in JPA entities. | |
Using @Builder for JPA entities without defined no-argument constructor breaks JPA specification. | Checks that @lombok.Builder used in JPA entities. |
Reports usages of java.awt.Color to create gray colors. | |
Reports vetoed @Alternative beans. | |
Reports injected fields, observer methods, and bean constructors with private access. | |
Reports zip operations that contains arguments with Mono<Void> return value inside a Reactor chain. |
VTL
Name | Description |
---|---|
Reports illegal values or argument types of Velocity directives. | |
Reports if Velocity file references in #include and #parse directives are resolved incorrectly. | |
Reports if Velocity references are resolved incorrectly. | |
Reports if binary and unary expressions have operands with incorrect types. | |
Reports illegal usages of formal notation within #macro and #set directives. |
Vue
Name | Description |
---|---|
Reports a Vue component data property that is not a function. | |
Reports multiple usages of the template or script tag in a Vue file. | |
Reports Vue components, which require to be imported in Vue templates. | |
Reports an unrecognized Vue directive. | |
Reports an unrecognized Vue slot. |
Webhelpxml
Name | Description |
---|---|
Detects available-only-for attributes in <topic>, <chapter>, and <procedure> elements. | |
Detects empty files referenced via src in code blocks. | |
Detects elements that can be combined. | |
Detects the misuse of markup elements based on rules from the XML schema. | |
Detects any XML-like code inside the code tag. | |
Detects text outside of paragraphs. | |
Detects content filters that are shadowed by filters of parent elements. | |
Highlights elements that don't have the id attribute. | |
Checks the <format> element style and color validity. | |
Checks if there is an MP4 video to replace an animation with. | |
Detects problems caused by improper image dimension settings. | |
Detects the simultaneous use of the thumbnail and animated attribute. | |
Detects includes with the filter attribute. | |
Reports problematic filter declarations that may result in unexpected behavior: Explicit empty values in filter attributes Redundant or misplaced negation ! operators. | |
Detects large images without a thumbnail and suggests making them expandable. | |
Detects links without the `type` attribute inside the spotlight element on a section starting page. | |
Detects links pointing to an existing topic that is not in the current help instance tree. | |
Detects <img> elements without the alt attribute. | |
Detects attribute values that reference non-existent entities. | |
Detects the absence of whitespace characters around tags. | |
Checks for missing title attribute in chapter, def, and tab elements. | |
Detects non-Latin characters in attribute values. | |
Detects usage of tags other that step inside the procedure. | |
Detects occurences of plain procedures (without numbered steps or bulleted choices). | |
Detects links to topics where the topic title matches the link text. | |
Detects missing or incorrect topic IDs in XML files. | |
Checks whether the textual topic content follows the style guidelines. | |
Warns you when the topic currently open in the editor is not in the current help instance. | |
Detects unreachable URLs to external images. | |
Detects unreachable external links. | |
Detects unreachable URLs to external videos. | |
Detects snippets that are not included anywhere. | |
Warns you when the topic file is not used anywhere. | |
Detects videos without a preview image. | |
Detects code blocks with long lines. |
XML
Name | Description |
---|---|
Reports absolute paths in JSP files. | |
Detects overridden anchors in XML <a href> links. | |
Reports RGB color components that are out of the valid range. | |
Reports configuration conflicts on <bean> attributes. | |
Debug mode is activated in the Spring Security configuration | Reports activated <debug> that may expose sensitive information. |
Reports usages of deprecated classes and methods in XML files. | |
Reports deprecated maven dependency. | |
Reports a deprecated XML element or attribute. | |
Reports a duplicate id attribute in XML. | |
Reports duplicate dependencies. | |
Detects non-unique sort order values of <seealso> categories in c.list. | |
Detects duplicate changeset id attributes within one file. | |
Reports the duplication of the plugin declaration in pom.xml. | |
Detects duplicate redirects. | |
Detects topics that are added to the TOC more than once. | |
Reports duplicate bean names defined in the application context. | |
Reports XML elements without contents. | |
Reports empty tags that do not work in some browsers. | |
Reports event handler issues, including incompatible argument types, ambiguous event handler methods, and incorrect return types. | |
Reports extensions which are instantiated by the IntelliJ Platform, but are declared as Kotlin objects. | |
Reports a discrepancy in an XML file with the specified DTD or schema detected by the Xerces validator. | |
Reports missing Hibernate XML configuration files. | |
Reports inactive profiles in the Spring XML application contexts. | |
Incompatible kotlinx.coroutines dependency is used with Kotlin 1.3+ in Maven | Reports kotlinx.coroutines library dependencies in Maven that should be updated in order to be compatible with Kotlin 1.3 and later. |
Reports inconsistent tags and attributes on injection points in XML application contexts. | |
Reports incorrectly configured JDK-proxied bean types. | |
Reports incorrect advices and advisor elements if there are no pointcut or pointcut-ref attributes. | |
Reports incorrect aspects and pointcuts. | |
Reports issues with the Spring Framework XML-based application context:. | |
Reports issues with the Spring Integration XML-based application context:. | |
Reports issues with the Spring Security XML-based context:. | |
Reports configuration errors in WADL files. | |
Reports incorrect autowiring of Spring beans configured in XML application contexts. | |
Reports incorrect bean definitions in beans.xml configuration files. | |
Reports Spring <bean> using constructor-based dependency injection. | |
Reports duplicate declarations and illegal identifiers in XSLT variables, parameters, and named templates:. | |
Incorrect elements in Bean Validation <constraint-mappings> files | Reports incorrect elements in Bean Validation <constraint-mappings> files:. |
Incorrect elements in Bean Validation <validation-config> files | Reports incorrect elements in Bean Validation <validation-config> files:. |
Reports incorrect types of custom schema bean injections defined in the XML application context. | |
Incorrect non-public method referenced in "factory-method" attribute | Reports non-public methods referenced in the factory-method attributes of <bean> elements. |
Reports referenced abstract beans. | |
Reports incorrect files referenced in the XML application context. | |
Reports missing arguments, passing arguments that are not declared, and passing arguments for parameters more than once in named XSLT template invocations. | |
Incorrectly configured 'util' schema beans defined in XML application context | Reports incorrect schema beans defined in XML application contexts. |
Reports incorrect <lookup-method> for a bean in XML application contexts. | |
Incorrectly defined method referenced in "factory-method" attribute | Reports incorrect method references in the factory-method attribute of the <bean> element. |
Injection value in XML application context violates conventions | Reports properties configured via <value> or <ref> sub-elements and offers to replace them with the corresponding attributes. |
Reports Hibernate XML configuration DB-related mapping errors including:. | |
Reports Hibernate XML configuration errors including:. | |
Reports Hibernate XML configuration mapping errors including:. | |
Reports inconsistent <filter> definitions in <component-scan> of XML application contexts. | |
Reports instantiation errors on interface/abstract class <bean> declarations. | |
Reports incorrect JBoss-specific XML deployment descriptors:. | |
Reports the following problems inside `application.xml` configuration files:. | |
Reports properties in .fxml files (both attributes and tags) that have the default values and therefore are redundant. | |
Reports unused imports in .fxml files. | |
Reports JSP import directives without a URI or tagdir attributes. | |
Reports unresolved properties from *.properties files. | |
Reports kotlin-maven-plugin configuration issues. | |
Reports different Kotlin stdlib and compiler versions. | |
Reports hardcoded text in live template description. | |
Lets you control MIME type name validity. | |
Reports contents of script tags that are invalid XML. | |
Reports resolution problems in a Maven model. | |
Reports that Maven plugin version isn't properly supported in the current IDE plugin. | |
Reports a width and height attribute value of a img tag that is different from the actual width and height of the referenced image. | |
Missing @Required property injections in the spring xml bean declaration | Reports @Required setter bean properties that are not injected or autowired. |
Reports a form element (input, textarea, or select) without an associated label. | |
Reports possible requests in injected XML/HTML body where request separator ### is missing. | |
Reports a missing alt attribute in a img or applet tag or in a area element of an image map. | |
Reports a missing lang (or xml:lang) attribute in a html tag. | |
Reports a missing summary attribute in a table tag. | |
Reports a missing title attribute frame, iframe, dl, and a tags. | |
Reports a missing title element inside a head section. | |
Reports a missing mandatory attribute in an XML/HTML tag. | |
Reports an obsolete HTML5 attribute. | |
Reports an obsolete HTML5 tag. | |
Reports unresolved references to any database objects inside `orm.xml` configuration files:. | |
Reports the absence of the parent version element for versions that do not support consumer POM feature. | |
Reports missing persistence.xml configuration files and suggests adding the file to the persistence facet. | |
Reports unresolved resource references in Phing build files. | |
Reports dynamic plugin problems. | |
Reports problems with extension registration in plugin.xml. | |
Reports hardcoded texts in plugin.xml. | |
Reports text capitalization problems in plugin.xml. | |
Reports problems in plugin.xml. | |
Reports a presentational HTML tag. | |
Detects redirects from web filenames of existing topics. | |
Detects TOC titles that match the topic title. | |
Reports a redundant assignment of the default value to an XML attribute. | |
Reports the unnecessary <groupId> definition since it is already defined in the parent pom.xml. | |
Reports invalid security role names. | |
Reports any include directives in a JSP file which refer to the containing JSP file. | |
Reports servlets without associated mappings. | |
Reports shadowed XSLT variables. | |
Reports XML elements deprecated in the current version of the Spring Integration XML-based application context. | |
Reports <bean> names that don't follow the bean naming conventions. | |
Reports JSP tag body content that does not conform to the TLD body-content specification. | |
Reports problems in JSP TLD files. | |
The value from properties file is incompatible with the attribute type | Reports attribute values defined in a .properties file that do not match the type of the attribute. |
Unassignable injection point type in XML application context | Reports invalid injection point types (properties and constructor arguments). |
Reports an unbound namespace prefix in XML. | |
Reports unknown values of the scope attribute in <bean> elements. | |
Reports autowire attributes in <bean> elements and suggests to explicitly inject bean properties if possible. | |
Reports redundant tags in .fxml files. | |
Reports unknown Spring bean types that have not yet been parsed or if a bean uses an unsupported tag for the custom namespace. | |
Detects external URLs in the table of contents that can't be reached. | |
Reports an unresolved id reference in XML. | |
Reports inconsistency in a DTD-specific reference, for example, in a reference to an XML entity or to a DTD element declaration. | |
Detects unresolved Liquibase property usages. | |
Reports Persistence ORM XML descriptors that cannot be resolved within the configured datasource and suggests refreshing the datasource or assigning a different one. | |
Reports an unresolved file in a link. | |
Reports an unresolved last part of an URL after the # sign. | |
Reports unresolved fx:id references. | |
Unresolved placeholders configured in the Spring XML application context | Reports unresolved placeholders configured in Spring XML contexts. |
Reports an unresolved references in XML. | |
Reports unresolved CSS style classes. | |
Reports an unresolved web link. | |
Reports an unused namespace declaration or location hint in XML. | |
Reports local variables and parameters that are never used. | |
Reports that the usage of properties in modules parent definition is prohibited. | |
Reports the following problems in descriptors that are used to deploy your Web Module to a server:. | |
Reports duplicated welcome-files listed in the descriptor for deploying a Web Module to a server. | |
Reports a root tag name different from the name specified in the <doctype> tag. | |
Reports XML validation problems in the results of a batch code inspection. | |
Reports usage of kotlin-test and junit dependency without kotlin-test-junit. | |
Reports the following problems inside XML configuration files:. |
Xpath
Name | Description |
---|---|
Reports comparisons of the name() function with a string that contains a colon (:). | |
Reports implicit conversions between the predefined XPath-types STRING, NUMBER, BOOLEAN, and NODESET. | |
Reports unnecessary type conversions. | |
Reports names of elements or attributes that are used in an XPath-expression but are missing in the associated XML files and are not defined in the referenced schemas. | |
Reports usages of 0 in a predicate index or in a comparison with the function position(). |
Yaml
Name | Description |
---|---|
Detects cyclic dependencies for jobs in GitHub workflow YML file. | |
Reports deprecated keys in Kubernetes resource files. | |
Report deprecated Kubernetes resource types. | |
Reports deprecated keys in YAML files. | |
Reports duplicate EnvVars in Kubernetes container definitions. | |
Reports duplicated keys in YAML files. | |
Reports unrecognized values in Chart.yaml and requirements.yaml. | |
Reports OpenRewrite YAML recipe problems. | |
Reports deprecated and unresolvable keys and values in Quarkus application YAML configuration files. | |
Reports unresolved and deprecated configuration keys and invalid values in Spring Boot application .yaml configuration files, which can lead to runtime errors. | |
Reports the absence of mandatory parameters that do not have a default value for an action. | |
Reports deprecated configuration keys and invalid values in Ktor application .yaml configuration files. | |
Reports deprecated configuration keys and invalid values in Micronaut application .yaml configuration files. | |
Reports missing required keys in Chart.yaml. | |
Reports missing required keys in Kubernetes resource files. | |
Reports missing required keys in Docker Compose files. | |
Reports possible requests in injected YAML body where request separator ### is missing. | |
Reports non-editable (read-only) keys in Kubernetes resource files. | |
Reports non-editable (read-only) Kubernetes resource types. | |
Reports that OpenAPI documentation for the current Ktor module is outdated. | |
Detects YAML files that can be interpreted as a part of OpenAPI/Swagger specification. | |
Reports recursion in YAML aliases. | |
Reports a mismatch between a scalar value type in YAML file and types of the values in the similar positions. | |
Reports the presence of parameters which are not defined in an action. | |
Detects unresolved action references in GitHub action and workflow files. | |
Detects dependencies to undefined Jobs in GitHub workflow YML file. | |
Reports unrecognized keys in Chart.yaml. | |
Reports unrecognized keys in Kubernetes resource files. | |
Reports invalid values in Kubernetes resource files. | |
Reports unrecognized Kubernetes resource types. | |
Reports unrecognized keys in Docker Compose files. | |
Reports unrecognized values in Docker Compose files. | |
Reports unquoted port mappings in Docker Compose files. | |
Reports unresolved aliases in YAML files. | |
Reports unused anchors. | |
Reports inconsistencies between a YAML file and a JSON Schema if the schema is specified. |
Go
Name | Description |
---|---|
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
Error string should not be capitalized or end with punctuation | . |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
Missing trailing comma before a newline in a composite literal | . |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. | |
. |