diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 3c1c551..6a9ea52 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
 
   // This field is accessed from release scripts using simple pattern matching.
   // Therefore, changing this field could break our release scripts.
-  public static final String LABEL = "1.4.89";
+  public static final String LABEL = "1.4.90";
 
   private Version() {
   }
diff --git a/src/test/java/com/android/tools/r8/proguard/rules/NegatedClassMemberTest.java b/src/test/java/com/android/tools/r8/proguard/rules/NegatedClassMemberTest.java
index 27747f5..971aee5 100644
--- a/src/test/java/com/android/tools/r8/proguard/rules/NegatedClassMemberTest.java
+++ b/src/test/java/com/android/tools/r8/proguard/rules/NegatedClassMemberTest.java
@@ -11,8 +11,6 @@
 
 import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.TestBase;
-import com.android.tools.r8.TestParameters;
-import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.utils.StringUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -21,17 +19,6 @@
 @RunWith(Parameterized.class)
 public class NegatedClassMemberTest extends TestBase {
 
-  private final TestParameters parameters;
-
-  @Parameterized.Parameters(name = "{0}")
-  public static TestParametersCollection data() {
-    return getTestParameters().withNoneRuntime().build();
-  }
-
-  public NegatedClassMemberTest(TestParameters parameters) {
-    this.parameters = parameters;
-  }
-
   @Test
   public void testProguard() {
     try {
@@ -41,7 +28,6 @@
               NegatedClassMemberTestClassB.class,
               NegatedClassMemberTestClassC.class)
           .addKeepRules(getKeepRule())
-          .setMinApi(parameters.getRuntime())
           .compile();
 
       // For some reason, Proguard fails with "The output jar is empty". One likely explanation is
@@ -78,7 +64,8 @@
                       + ", Unexpected character '!': "
                       + "The negation character can only be used to negate access flags"),
               containsString(
-                  StringUtils.joinLines(
+                  StringUtils.join(
+                      "\n",
                       "-keepclasseswithmembers class ** { long x; !long y; }",
                       "                                           ^"))));
     }
