diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
index 4ccdf3f..c32e383 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
@@ -20,7 +20,6 @@
 import com.google.devtools.build.lib.runtime.BlazeRuntime;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.List;
 import java.util.Properties;
 
 /**
@@ -36,7 +35,7 @@
    * <p>Example: To make the "standalone" execution strategy the default for spawns, put it after
    * all the other modules that provider spawn strategies (e.g. WorkerModule and SandboxModule).
    */
-  public static final List<Class<? extends BlazeModule>> BAZEL_MODULES =
+  public static final ImmutableList<Class<? extends BlazeModule>> BAZEL_MODULES =
       ImmutableList.of(
           com.google.devtools.build.lib.runtime.mobileinstall.MobileInstallModule.class,
           com.google.devtools.build.lib.bazel.BazelWorkspaceStatusModule.class,
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 1fbc07d..eeacba5 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -445,24 +445,19 @@
       }
     }
 
-    /**
-     * List of required attributes for normal rules, name and type.
-     */
-    public static final List<Attribute> REQUIRED_ATTRIBUTES_FOR_NORMAL_RULES = ImmutableList.of(
-        attr("tags", Type.STRING_LIST).build()
-    );
+    /** List of required attributes for normal rules, name and type. */
+    public static final ImmutableList<Attribute> REQUIRED_ATTRIBUTES_FOR_NORMAL_RULES =
+        ImmutableList.of(attr("tags", Type.STRING_LIST).build());
 
-    /**
-     * List of required attributes for test rules, name and type.
-     */
-    public static final List<Attribute> REQUIRED_ATTRIBUTES_FOR_TESTS = ImmutableList.of(
-        attr("tags", Type.STRING_LIST).build(),
-        attr("size", Type.STRING).build(),
-        attr("timeout", Type.STRING).build(),
-        attr("flaky", Type.BOOLEAN).build(),
-        attr("shard_count", Type.INTEGER).build(),
-        attr("local", Type.BOOLEAN).build()
-    );
+    /** List of required attributes for test rules, name and type. */
+    public static final ImmutableList<Attribute> REQUIRED_ATTRIBUTES_FOR_TESTS =
+        ImmutableList.of(
+            attr("tags", Type.STRING_LIST).build(),
+            attr("size", Type.STRING).build(),
+            attr("timeout", Type.STRING).build(),
+            attr("flaky", Type.BOOLEAN).build(),
+            attr("shard_count", Type.INTEGER).build(),
+            attr("local", Type.BOOLEAN).build());
 
     private String name;
     private final RuleClassType type;
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
index 5135dd3..d7ee319 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
@@ -44,7 +44,7 @@
 
   // Characters that can come immediately prior to an '=' character to generate
   // a different token
-  private static final Map<Character, TokenKind> EQUAL_TOKENS =
+  private static final ImmutableMap<Character, TokenKind> EQUAL_TOKENS =
       ImmutableMap.<Character, TokenKind>builder()
           .put('=', TokenKind.EQUALS_EQUALS)
           .put('!', TokenKind.NOT_EQUALS)
