org.openrewrite.staticanalysis.IndexOfShouldNotCompareGreaterThanZero
Replaces String#indexOf(String) > 0
and List#indexOf(Object) > 0
with >=1
. Checking indexOf
against >0
ignores the first element, whereas >-1
is inclusive of the first element. For clarity, >=1
is used, because >0
and >=1
are semantically equal. Using >0
may appear to be a mistake with the intent of including all elements. If the intent is to check whether a value in included in a String
or List
, the String#contains(String)
or List#contains(Object)
methods may be better options altogether.
Tags
Recipe source
GitHub , Issue Tracker , Maven Central
groupId: org.openrewrite.recipe
artifactId: rewrite-static-analysis
Usage
This recipe has no required configuration options. It can be activated by adding a dependency on org.openrewrite.recipe:rewrite-static-analysis:1.5.0
in your build file or by running a shell command (in which case no build changes are needed):
Gradle Gradle init script Maven POM Maven Command Line Moderne CLI
Add the following to your build.gradle
file:
Copy plugins {
id( "org.openrewrite.rewrite" ) version( "6.12.0" )
}
rewrite {
activeRecipe( "org.openrewrite.staticanalysis.IndexOfShouldNotCompareGreaterThanZero" )
}
repositories {
mavenCentral()
}
dependencies {
rewrite( "org.openrewrite.recipe:rewrite-static-analysis:1.5.0" )
}
Run gradle rewriteRun
to run the recipe.
Create a file named init.gradle
in the root of your project.
Copy initscript {
repositories {
maven { url "https://plugins.gradle.org/m2" }
}
dependencies { classpath( "org.openrewrite:plugin:6.12.0" ) }
}
rootProject {
plugins . apply( org.openrewrite.gradle.RewritePlugin )
dependencies {
rewrite( "org.openrewrite.recipe:rewrite-static-analysis:1.5.0" )
}
rewrite {
activeRecipe( "org.openrewrite.staticanalysis.IndexOfShouldNotCompareGreaterThanZero" )
}
afterEvaluate {
if (repositories . isEmpty()) {
repositories {
mavenCentral()
}
}
}
}
Run gradle --init-script init.gradle rewriteRun
to run the recipe.
Add the following to your pom.xml
file:
Copy < project >
< build >
< plugins >
< plugin >
< groupId >org.openrewrite.maven</ groupId >
< artifactId >rewrite-maven-plugin</ artifactId >
< version >5.29.0</ version >
< configuration >
< activeRecipes >
< recipe >org.openrewrite.staticanalysis.IndexOfShouldNotCompareGreaterThanZero</ recipe >
</ activeRecipes >
</ configuration >
< dependencies >
< dependency >
< groupId >org.openrewrite.recipe</ groupId >
< artifactId >rewrite-static-analysis</ artifactId >
< version >1.5.0</ version >
</ dependency >
</ dependencies >
</ plugin >
</ plugins >
</ build >
</ project >
Run mvn rewrite:run
to run the recipe.
Copy mvn -U org.openrewrite.maven:rewrite-maven-plugin:run -Drewrite.recipeArtifactCoordinates=org.openrewrite.recipe:rewrite-static-analysis:RELEASE -Drewrite.activeRecipes=org.openrewrite.staticanalysis.IndexOfShouldNotCompareGreaterThanZero
You will need to have configured the Moderne CLI on your machine before you can run the following command.
Copy mod run . --recipe IndexOfShouldNotCompareGreaterThanZero
See how this recipe works across multiple open-source repositories
The community edition of the Moderne platform enables you to easily run recipes across thousands of open-source repositories.
Please contact Moderne for more information about safely running the recipes on your own codebase in a private SaaS.
Contributors
Aaron Gershman , Knut Wannheden , Jonathan Schneider , Sam Snyder , Tim te Beek