diff --git a/src/main/java/com/android/tools/r8/cf/code/CfFrame.java b/src/main/java/com/android/tools/r8/cf/code/CfFrame.java
index 11b4acc..78a350d 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfFrame.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfFrame.java
@@ -22,6 +22,7 @@
     this.locals = locals;
   }
 
+  @Override
   public void write(MethodVisitor visitor) {
     int type = F_NEW;
     int localsSize = locals.size();
diff --git a/src/main/java/com/android/tools/r8/ir/code/Position.java b/src/main/java/com/android/tools/r8/ir/code/Position.java
index 9b6ac1b..fa6532f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Position.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Position.java
@@ -9,7 +9,7 @@
 
 public class Position {
 
-  private static final Position NO_POSITION = new Position(-1, null, false, null, null);
+  private static final Position NO_POSITION = new Position(-1, null, null, null, false);
 
   public final int line;
   public final DexString file;
@@ -24,12 +24,12 @@
   public final Position callerPosition;
 
   public Position(int line, DexString file, DexMethod method, Position callerPosition) {
-    this(line, file, false, method, callerPosition);
+    this(line, file, method, callerPosition, false);
     assert line >= 0;
   }
 
   private Position(
-      int line, DexString file, boolean synthetic, DexMethod method, Position callerPosition) {
+      int line, DexString file, DexMethod method, Position callerPosition, boolean synthetic) {
     this.line = line;
     this.file = file;
     this.synthetic = synthetic;
@@ -41,7 +41,7 @@
 
   public static Position synthetic(int line, DexMethod method, Position callerPosition) {
     assert line >= 0;
-    return new Position(line, null, true, method, callerPosition);
+    return new Position(line, null, method, callerPosition, true);
   }
 
   public static Position none() {
@@ -53,7 +53,7 @@
   // it as the caller of the inlined Positions.
   public static Position noneWithMethod(DexMethod method, Position callerPosition) {
     assert method != null;
-    return new Position(-1, null, false, method, callerPosition);
+    return new Position(-1, null, method, callerPosition, false);
   }
 
   public boolean isNone() {
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
index 1486b7b..d4cc49c 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -288,7 +288,7 @@
   private void addFrame(Collection<StackValue> stack, Collection<Value> locals) {
     // TODO(zerny): Support having values on the stack on control-edges.
     assert stack.isEmpty();
-    Int2ReferenceSortedMap<DexType> mapping = new Int2ReferenceAVLTreeMap();
+    Int2ReferenceSortedMap<DexType> mapping = new Int2ReferenceAVLTreeMap<>();
     for (Value local : locals) {
       DexType type;
       switch (local.outType()) {
