diff options
author | Stephan Herhut <herhut@google.com> | 2017-10-25 13:59:55 +0200 |
---|---|---|
committer | Stephan Herhut <herhut@google.com> | 2017-10-25 13:59:55 +0200 |
commit | eeae1e814d489c39da7b3b01538c0ac5b790d48a (patch) | |
tree | c7db42bbee39af49adc5b1e25269270cab5b20ab | |
parent | 05c52553a7e587306dc771529efddaf96417f20a (diff) | |
download | r8-eeae1e814d489c39da7b3b01538c0ac5b790d48a.tar.gz |
Enable more ErrorProne checks.
Bug:
Change-Id: I1c16b0485a1549d251d9d900b7afca98a57fea15
9 files changed, 30 insertions, 10 deletions
diff --git a/build.gradle b/build.gradle index e189e578d..9299592c7 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,16 @@ def errorProneConfiguration = [ '-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 93b1b249b..356451a86 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 @@ public class CompatDexBuilder { 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 ef17aa761..463d4843f 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 class Marker { 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 4d97764cd..042232b82 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 @@ public class DexBuilder { 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 18622775f..3cd2b5799 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 @@ public class JarSourceCode implements SourceCode { 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 2d9154a89..9a5baafa8 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 @@ public class GenericSignatureParser<T> { 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 40b759810..d24a3578f 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 @@ public class ProguardConfigurationParser { 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 f3e6c6f33..121641b69 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 @@ public class ProguardMemberRule { if (method.isClassInitializer()) { break; } + // Fall through for all other methods. case ALL: // Access flags check. if (!method.accessFlags.containsAllOf(getAccessFlags()) || @@ -319,6 +320,7 @@ public class ProguardMemberRule { 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 e50a1e389..ef149f74f 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 @@ public abstract class ProguardTypeMatcher { 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() { |