Enable more ErrorProne checks.
Bug:
Change-Id: I1c16b0485a1549d251d9d900b7afca98a57fea15
diff --git a/build.gradle b/build.gradle
index e189e57..9299592 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,7 +22,16 @@
'-Xep:MissingOverride:WARN',
'-Xep:OvershadowingSubclassFields:WARN',
'-Xep:IntLongMath:WARN',
- '-Xep:EqualsHashCode:WARN']
+ '-Xep:EqualsHashCode:WARN',
+ '-Xep:ArrayHashCode:WARN',
+ '-Xep:EqualsIncompatibleType:WARN',
+ '-Xep:NonOverridingEquals:WARN',
+ '-Xep:FallThrough:WARN',
+ '-Xep:MissingCasesInEnumSwitch:WARN',
+ '-Xep:MissingDefault:WARN',
+ '-Xep:MultipleTopLevelClasses:WARN',
+ '-Xep:NarrowingCompoundAssignment:WARN',
+ '-Xep:BoxedPrimitiveConstructor:WARN']
apply from: 'copyAdditionalJctfCommonFiles.gradle'
diff --git a/src/main/java/com/android/tools/r8/compatdexbuilder/CompatDexBuilder.java b/src/main/java/com/android/tools/r8/compatdexbuilder/CompatDexBuilder.java
index 93b1b24..356451a 100644
--- a/src/main/java/com/android/tools/r8/compatdexbuilder/CompatDexBuilder.java
+++ b/src/main/java/com/android/tools/r8/compatdexbuilder/CompatDexBuilder.java
@@ -75,6 +75,9 @@
case "--nolocals":
noLocals = true;
break;
+ default:
+ System.err.println("Unsupported option: " + flag);
+ System.exit(1);
}
}
diff --git a/src/main/java/com/android/tools/r8/dex/Marker.java b/src/main/java/com/android/tools/r8/dex/Marker.java
index ef17aa7..463d484 100644
--- a/src/main/java/com/android/tools/r8/dex/Marker.java
+++ b/src/main/java/com/android/tools/r8/dex/Marker.java
@@ -53,7 +53,7 @@
public Marker put(String key, int value) {
// value is converted to Long ensuring equals works with the parsed json string.
- return internalPut(key, new Long(value));
+ return internalPut(key, Long.valueOf(value));
}
public Marker put(String key, String value) {
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
index 4d97764..042232b 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
@@ -1219,6 +1219,8 @@
throw new Unreachable("Unexpected type: " + move.outType());
}
break;
+ default:
+ throw new Unreachable("Unexpected size: " + size);
}
instruction.setOffset(getOffset());
instructions.add(instruction);
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/JarSourceCode.java b/src/main/java/com/android/tools/r8/ir/conversion/JarSourceCode.java
index 1862277..3cd2b57 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/JarSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/JarSourceCode.java
@@ -2600,9 +2600,9 @@
case Type.METHOD:
return new DexValue.DexValueMethodType(
application.getProto(((Type) value).getDescriptor()));
+ default:
+ throw new Unreachable("Type sort is not supported: " + type.getSort());
}
- throw new Unreachable("Type sort is not supported: " + type.getSort());
-
} else if (value instanceof Handle) {
return new DexValue.DexValueMethodHandle(getMethodHandle(application, (Handle) value));
} else {
diff --git a/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureParser.java b/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureParser.java
index 2d9154a..9a5baaf 100644
--- a/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureParser.java
+++ b/src/main/java/com/android/tools/r8/naming/signature/GenericSignatureParser.java
@@ -360,8 +360,9 @@
case '<':
case '.':
return true;
+ default:
+ return false;
}
- return false;
}
// PRE: symbol is the first char of the identifier.
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
index 40b7598..d24a357 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -683,6 +683,8 @@
flags.setVolatile();
}
break;
+ default:
+ // Intentionally left empty.
}
}
}
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardMemberRule.java b/src/main/java/com/android/tools/r8/shaking/ProguardMemberRule.java
index f3e6c6f..121641b 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardMemberRule.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardMemberRule.java
@@ -203,6 +203,7 @@
if (method.isClassInitializer()) {
break;
}
+ // Fall through for all other methods.
case ALL:
// Access flags check.
if (!method.accessFlags.containsAllOf(getAccessFlags()) ||
@@ -319,6 +320,7 @@
case METHOD:
result.append(getType());
result.append(' ');
+ // Fall through for rest of method signature.
case CONSTRUCTOR:
case INIT: {
result.append(getName());
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java b/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
index e50a1e3..ef149f7 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
@@ -48,12 +48,13 @@
return MatchClassTypes.LEGACY_MATCH_CLASS_TYPES;
case MATCH_BASIC_PATTERN:
return MatchBasicTypes.MATCH_BASIC_TYPES;
+ default:
+ if (!pattern.contains("*") && !pattern.contains("%") && !pattern.contains("?")) {
+ return new MatchSpecificType(
+ dexItemFactory.createType(DescriptorUtils.javaTypeToDescriptor(pattern)));
+ }
+ return new MatchTypePattern(pattern, kind);
}
- if (!pattern.contains("*") && !pattern.contains("%") && !pattern.contains("?")) {
- return new MatchSpecificType(
- dexItemFactory.createType(DescriptorUtils.javaTypeToDescriptor(pattern)));
- }
- return new MatchTypePattern(pattern, kind);
}
public static ProguardTypeMatcher defaultAllMatcher() {