diff --git a/src/main/java/com/android/tools/r8/utils/structural/Ordered.java b/src/main/java/com/android/tools/r8/utils/structural/Ordered.java
index 4924205..a5ced99 100644
--- a/src/main/java/com/android/tools/r8/utils/structural/Ordered.java
+++ b/src/main/java/com/android/tools/r8/utils/structural/Ordered.java
@@ -61,7 +61,7 @@
     return compareTo(other) >= 0;
   }
 
-  default boolean betweenBothIncluded(T lower, T upper) {
+  default boolean isBetweenBothIncluded(T lower, T upper) {
     return isGreaterThanOrEqualTo(lower) && isLessThanOrEqualTo(upper);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LocaleDateGetEraTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LocaleDateGetEraTest.java
index 6aa9243..6798fb3 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LocaleDateGetEraTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LocaleDateGetEraTest.java
@@ -86,7 +86,7 @@
                   + " java.time.LocalDate.getEra()Ljava/time/chrono/IsoEra;"));
     } else if (parameters.getRuntime().isDex()
         && eraClass == IsoEra.class
-        && parameters.getApiLevel().betweenBothIncluded(AndroidApiLevel.O, AndroidApiLevel.S)
+        && parameters.getApiLevel().isBetweenBothIncluded(AndroidApiLevel.O, AndroidApiLevel.S)
         && libraryDesugaringSpecification == JDK8) {
       // No support for this desugaring in JDK8 desugared library.
       run.assertFailureWithErrorThatMatches(containsString("java.lang.NoSuchMethodError"));
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
index f59341e..fe478900 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11TimeAbstractTests.java
@@ -241,7 +241,9 @@
     // The bridge is always present with JDK11 due to partial desugaring between 26 and 33.
     // On JDK8 the bridge is absent in between 26 and 33.
     if (libraryDesugaringSpecification != JDK8
-        || !parameters.getApiLevel().betweenBothIncluded(AndroidApiLevel.O, AndroidApiLevel.Sv2)) {
+        || !parameters
+            .getApiLevel()
+            .isBetweenBothIncluded(AndroidApiLevel.O, AndroidApiLevel.Sv2)) {
       Collections.addAll(allTests, RAW_TEMPORAL_SUCCESSES_IF_BRIDGE);
     }
     return allTests.toArray(new String[0]);
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
index 9c109ec..2b9fc2d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTrivialKotlinStyleTest.java
@@ -115,11 +115,9 @@
                 lambdasInInput.getKStyleLambdaReferenceFromTypeName(
                     getTestName(), "MainKt$testStateless$12"));
             if (kotlinParameters
-                    .getCompilerVersion()
-                    .isLessThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_6_0)
-                && kotlinParameters
-                    .getCompilerVersion()
-                    .isGreaterThanOrEqualTo(KotlinCompilerVersion.KOTLINC_1_5_0)) {
+                .getCompilerVersion()
+                .isBetweenBothIncluded(
+                    KotlinCompilerVersion.KOTLINC_1_5_0, KotlinCompilerVersion.KOTLINC_1_6_0)) {
               group.add(
                   lambdasInInput.getKStyleLambdaReferenceFromTypeName(
                       getTestName(), "MainKt$testStateless$6"));
