diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
index b014dbf..b018ce7 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
@@ -1507,15 +1507,15 @@
   }
 
   public InstructionIterator iterator() {
-    return new BasicBlockInstructionIterator(this);
+    return new BasicBlockInstructionListIterator(this);
   }
 
   public InstructionListIterator listIterator() {
-    return new BasicBlockInstructionIterator(this);
+    return new BasicBlockInstructionListIterator(this);
   }
 
   public InstructionListIterator listIterator(int index) {
-    return new BasicBlockInstructionIterator(this, index);
+    return new BasicBlockInstructionListIterator(this, index);
   }
 
   /**
@@ -1526,7 +1526,7 @@
    * <code>previous</code> will return <code>instruction</code>.
    */
   public InstructionListIterator listIterator(Instruction instruction) {
-    return new BasicBlockInstructionIterator(this, instruction);
+    return new BasicBlockInstructionListIterator(this, instruction);
   }
 
   /**
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
similarity index 98%
rename from src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java
rename to src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
index a3d49bf..f0ed3fc 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
@@ -26,7 +26,7 @@
 import java.util.ListIterator;
 import java.util.Set;
 
-public class BasicBlockInstructionIterator implements InstructionListIterator {
+public class BasicBlockInstructionListIterator implements InstructionListIterator {
 
   protected final BasicBlock block;
   protected final ListIterator<Instruction> listIterator;
@@ -35,23 +35,23 @@
 
   private IRMetadata metadata;
 
-  BasicBlockInstructionIterator(BasicBlock block) {
+  BasicBlockInstructionListIterator(BasicBlock block) {
     this.block = block;
     this.listIterator = block.getInstructions().listIterator();
   }
 
-  BasicBlockInstructionIterator(BasicBlock block, int index) {
+  BasicBlockInstructionListIterator(BasicBlock block, int index) {
     this.block = block;
     this.listIterator = block.getInstructions().listIterator(index);
   }
 
-  BasicBlockInstructionIterator(BasicBlock block, Instruction instruction) {
+  BasicBlockInstructionListIterator(BasicBlock block, Instruction instruction) {
     this(block);
     nextUntil((x) -> x == instruction);
   }
 
   @Override
-  public BasicBlockInstructionIterator recordChangesToMetadata(IRMetadata metadata) {
+  public BasicBlockInstructionListIterator recordChangesToMetadata(IRMetadata metadata) {
     this.metadata = metadata;
     return this;
   }
