Remove more warnings
Mostly missing @Overrides and missing generics.
Change-Id: I6161d53827eb68ea7146ddacd3ee32c3edd3ce3c
diff --git a/src/main/java/com/android/tools/r8/compatdx/CompatDx.java b/src/main/java/com/android/tools/r8/compatdx/CompatDx.java
index 09f3321..7da21b9 100644
--- a/src/main/java/com/android/tools/r8/compatdx/CompatDx.java
+++ b/src/main/java/com/android/tools/r8/compatdx/CompatDx.java
@@ -310,7 +310,7 @@
maxIndexNumber = options.valueOf(spec.maxIndexNumber);
}
- public static DxCompatOptions parse(String[] args) throws DxParseError {
+ public static DxCompatOptions parse(String[] args) {
Spec spec = new Spec();
return new DxCompatOptions(spec.parser.parse(args), spec);
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java b/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
index 9381c90..8d64cf4 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
@@ -21,10 +21,13 @@
}
// Make sure all concrete subclasses implements toString, hashCode, and equals.
+ @Override
abstract public String toString();
+ @Override
abstract public int hashCode();
+ @Override
abstract public boolean equals(Object other);
public abstract void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping);
@@ -35,6 +38,7 @@
public final int delta;
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_ADVANCE_PC);
writer.putUleb128(delta);
@@ -44,21 +48,24 @@
this.delta = delta;
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
assert delta >= 0;
builder.advancePC(delta);
}
-
+ @Override
public String toString() {
return "ADVANCE_PC " + delta;
}
+ @Override
public int hashCode() {
return Constants.DBG_ADVANCE_PC
+ delta * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof AdvancePC)
&& (delta == ((AdvancePC) other).delta);
@@ -70,23 +77,28 @@
SetPrologueEnd() {
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_SET_PROLOGUE_END);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.endPrologue();
}
+ @Override
public String toString() {
return "SET_PROLOGUE_END";
}
+ @Override
public int hashCode() {
return Constants.DBG_SET_PROLOGUE_END;
}
+ @Override
public boolean equals(Object other) {
return other instanceof SetPrologueEnd;
}
@@ -98,22 +110,27 @@
SetEpilogueBegin() {
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_SET_EPILOGUE_BEGIN);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.beginEpilogue();
}
+ @Override
public String toString() {
return "SET_EPILOGUE_BEGIN";
}
+ @Override
public int hashCode() {
return Constants.DBG_SET_EPILOGUE_BEGIN;
}
+ @Override
public boolean equals(Object other) {
return other instanceof SetEpilogueBegin;
}
@@ -127,24 +144,29 @@
this.delta = delta;
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_ADVANCE_LINE);
writer.putSleb128(delta);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.advanceLine(delta);
}
+ @Override
public String toString() {
return "ADVANCE_LINE " + delta;
}
+ @Override
public int hashCode() {
return Constants.DBG_ADVANCE_LINE
+ delta * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof AdvanceLine)
&& (delta == ((AdvanceLine) other).delta);
@@ -173,6 +195,7 @@
this(registerNum, local.name, local.type, local.signature);
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(signature == null
? Constants.DBG_START_LOCAL
@@ -194,14 +217,17 @@
}
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.startLocal(registerNum, name, type, signature);
}
+ @Override
public String toString() {
return "START_LOCAL " + registerNum;
}
+ @Override
public int hashCode() {
return Constants.DBG_START_LOCAL
+ registerNum * 7
@@ -210,6 +236,7 @@
+ (signature == null ? 0 : signature.hashCode()) * 19;
}
+ @Override
public boolean equals(Object other) {
if (!(other instanceof StartLocal)) {
return false;
@@ -236,24 +263,29 @@
this.registerNum = registerNum;
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_END_LOCAL);
writer.putUleb128(registerNum);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.endLocal(registerNum);
}
+ @Override
public String toString() {
return "END_LOCAL " + registerNum;
}
+ @Override
public int hashCode() {
return Constants.DBG_END_LOCAL
+ registerNum * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof EndLocal)
&& (registerNum == ((EndLocal) other).registerNum);
@@ -268,24 +300,29 @@
this.registerNum = registerNum;
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_RESTART_LOCAL);
writer.putUleb128(registerNum);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.restartLocal(registerNum);
}
+ @Override
public String toString() {
return "RESTART_LOCAL " + registerNum;
}
+ @Override
public int hashCode() {
return Constants.DBG_RESTART_LOCAL
+ registerNum * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof RestartLocal)
&& (registerNum == ((RestartLocal) other).registerNum);
@@ -308,6 +345,7 @@
this.fileName = fileName;
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(Constants.DBG_SET_FILE);
writer.putString(fileName);
@@ -318,19 +356,23 @@
fileName.collectIndexedItems(collection);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
builder.setFile(fileName);
}
+ @Override
public String toString() {
return "SET_FILE " + fileName.toString();
}
+ @Override
public int hashCode() {
return Constants.DBG_SET_FILE
+ fileName.hashCode() * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof SetFile)
&& fileName.equals(((SetFile) other).fileName);
@@ -346,10 +388,12 @@
this.value = value;
}
+ @Override
public void writeOn(DebugBytecodeWriter writer, ObjectToOffsetMapping mapping) {
writer.putByte(value);
}
+ @Override
public void addToBuilder(DexDebugEntryBuilder builder) {
int adjustedOpcode = value - Constants.DBG_FIRST_SPECIAL;
int line = Constants.DBG_LINE_BASE + (adjustedOpcode % Constants.DBG_LINE_RANGE);
@@ -367,15 +411,18 @@
return Constants.DBG_LINE_BASE + (adjustedOpcode % Constants.DBG_LINE_RANGE);
}
+ @Override
public String toString() {
return "DEFAULT " + value;
}
+ @Override
public int hashCode() {
return Constants.DBG_FIRST_SPECIAL
+ value * 7;
}
+ @Override
public boolean equals(Object other) {
return (other instanceof Default)
&& (value == ((Default) other).value);
diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java b/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
index 5236d12..ae669a2 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
@@ -32,12 +32,14 @@
return builder.build();
}
+ @Override
public int computeHashCode() {
return startLine
+ Arrays.hashCode(parameters) * 7
+ Arrays.hashCode(events) * 13;
}
+ @Override
public boolean computeEquals(Object other) {
if (other instanceof DexDebugInfo) {
DexDebugInfo o = (DexDebugInfo) other;
@@ -63,6 +65,7 @@
collection.add(this);
}
+ @Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("DebugInfo (line " + startLine + ") events: [\n");
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java b/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
index b421a9c..a8f41d6 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
@@ -33,6 +33,7 @@
assert false;
}
+ @Override
public String toString() {
return "Encoded annotation " + type + " " + Arrays.toString(elements);
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index 882bd99..3552cf7 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -137,7 +137,7 @@
return emitted - rhs.emitted;
}
}
- };
+ }
public void add(int original, int emitted) {
list.add(new Mapping(original, emitted));
@@ -281,6 +281,7 @@
code = builder.build(method.getArity());
}
+ @Override
public String toString() {
return "Encoded method " + method;
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexField.java b/src/main/java/com/android/tools/r8/graph/DexField.java
index 5616967..fa3d6ad 100644
--- a/src/main/java/com/android/tools/r8/graph/DexField.java
+++ b/src/main/java/com/android/tools/r8/graph/DexField.java
@@ -115,6 +115,7 @@
return clazz;
}
+ @Override
public String toSmaliString() {
return clazz.toSmaliString() + "->" + name + ":" + type.toSmaliString();
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java b/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
index 11a9396..7defdaa 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMemberAnnotation.java
@@ -38,7 +38,7 @@
return true;
}
if (other instanceof DexMemberAnnotation) {
- DexMemberAnnotation otherMember = (DexMemberAnnotation) other;
+ DexMemberAnnotation<?,?> otherMember = (DexMemberAnnotation<?,?>) other;
return item.equals(otherMember.item) && annotations.equals(otherMember.annotations);
}
return false;
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethod.java b/src/main/java/com/android/tools/r8/graph/DexMethod.java
index f8b3c8c..cc8e0db 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethod.java
@@ -50,12 +50,14 @@
return mapping.getOffsetFor(this);
}
+ @Override
public int computeHashCode() {
return holder.hashCode()
+ proto.hashCode() * 7
+ name.hashCode() * 31;
}
+ @Override
public boolean computeEquals(Object other) {
if (other instanceof DexMethod) {
DexMethod o = (DexMethod) other;
@@ -124,10 +126,12 @@
return holder + "." + name;
}
+ @Override
public String toSmaliString() {
return holder.toSmaliString() + "->" + name + proto.toSmaliString();
}
+ @Override
public String toSourceString() {
StringBuilder builder = new StringBuilder();
builder.append(proto.returnType.toSourceString());
diff --git a/src/main/java/com/android/tools/r8/graph/DexProto.java b/src/main/java/com/android/tools/r8/graph/DexProto.java
index 946eb6a..69eaeb5 100644
--- a/src/main/java/com/android/tools/r8/graph/DexProto.java
+++ b/src/main/java/com/android/tools/r8/graph/DexProto.java
@@ -18,12 +18,14 @@
this.parameters = parameters;
}
+ @Override
public int computeHashCode() {
return shorty.hashCode()
+ returnType.hashCode() * 7
+ parameters.hashCode() * 31;
}
+ @Override
public boolean computeEquals(Object other) {
if (other instanceof DexProto) {
DexProto o = (DexProto) other;
@@ -34,6 +36,7 @@
return false;
}
+ @Override
public String toString() {
return "Proto " + shorty + " " + returnType + " " + parameters;
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexString.java b/src/main/java/com/android/tools/r8/graph/DexString.java
index 75a6d35..73339f1 100644
--- a/src/main/java/com/android/tools/r8/graph/DexString.java
+++ b/src/main/java/com/android/tools/r8/graph/DexString.java
@@ -26,10 +26,12 @@
this.content = encode(string);
}
+ @Override
public int computeHashCode() {
return size * 7 + Arrays.hashCode(content);
}
+ @Override
public boolean computeEquals(Object other) {
if (other instanceof DexString) {
DexString o = (DexString) other;
diff --git a/src/main/java/com/android/tools/r8/graph/DexType.java b/src/main/java/com/android/tools/r8/graph/DexType.java
index 0d81ea4..60afb69 100644
--- a/src/main/java/com/android/tools/r8/graph/DexType.java
+++ b/src/main/java/com/android/tools/r8/graph/DexType.java
@@ -37,10 +37,12 @@
this.descriptor = descriptor;
}
+ @Override
public int computeHashCode() {
return descriptor.hashCode();
}
+ @Override
public boolean computeEquals(Object other) {
if (other instanceof DexType) {
return descriptor.equals(((DexType) other).descriptor);
@@ -218,6 +220,7 @@
return descriptor.toString();
}
+ @Override
public String toSourceString() {
if (toStringCache == null) {
// TODO(ager): Pass in a ProguardMapReader to map names back to original names.
diff --git a/src/main/java/com/android/tools/r8/graph/KeyedDexItem.java b/src/main/java/com/android/tools/r8/graph/KeyedDexItem.java
index ad852eb..066ca69 100644
--- a/src/main/java/com/android/tools/r8/graph/KeyedDexItem.java
+++ b/src/main/java/com/android/tools/r8/graph/KeyedDexItem.java
@@ -12,7 +12,7 @@
if (other == this) {
return true;
}
- return (other.getClass() == getClass()) && ((KeyedDexItem) other).getKey().equals(getKey());
+ return (other.getClass() == getClass()) && ((KeyedDexItem<?>) other).getKey().equals(getKey());
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/Add.java b/src/main/java/com/android/tools/r8/ir/code/Add.java
index 1577968..cfebbac 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Add.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Add.java
@@ -26,10 +26,12 @@
return true;
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt(int dest, int left, int right) {
return new AddInt(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong(int dest, int left, int right) {
// The dalvik jit had a bug where the long operations add, sub, or, xor and and would write
// the first part of the result long before reading the second part of the input longs.
@@ -40,34 +42,42 @@
return new AddLong(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat(int dest, int left, int right) {
return new AddFloat(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble(int dest, int left, int right) {
return new AddDouble(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt2Addr(int left, int right) {
return new AddInt2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong2Addr(int left, int right) {
return new AddLong2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat2Addr(int left, int right) {
return new AddFloat2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble2Addr(int left, int right) {
return new AddDouble2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit8(int dest, int left, int constant) {
return new AddIntLit8(dest, left, constant);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit16(int dest, int left, int constant) {
return new AddIntLit16(dest, left, constant);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java b/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
index 49adcb4..20a7580 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ArithmeticBinop.java
@@ -41,6 +41,7 @@
&& leftValue().isConstant() && rightValue().isConstant();
}
+ @Override
public boolean needsValueInRegister(Value value) {
assert !isSub(); // Constants in instructions for sub must be handled in subclass Sub.
// Always require the left value in a register. If left and right are the same value, then
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java
index 41db4d9..ff9e257 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionIterator.java
@@ -177,6 +177,7 @@
current.clearBlock();
}
+ @Override
public BasicBlock split(IRCode code, ListIterator<BasicBlock> blocksIterator) {
List<BasicBlock> blocks = code.blocks;
assert blocksIterator == null || IteratorUtils.peekPrevious(blocksIterator) == block;
@@ -217,6 +218,7 @@
return newBlock;
}
+ @Override
public BasicBlock split(int instructions, IRCode code, ListIterator<BasicBlock> blocksIterator) {
// Split at the current cursor position.
BasicBlock newBlock = split(code, blocksIterator);
@@ -333,6 +335,7 @@
}
}
+ @Override
public BasicBlock inlineInvoke(
IRCode code, IRCode inlinee, ListIterator<BasicBlock> blocksIterator,
List<BasicBlock> blocksToRemove, DexType downcast) {
diff --git a/src/main/java/com/android/tools/r8/ir/code/CatchHandlers.java b/src/main/java/com/android/tools/r8/ir/code/CatchHandlers.java
index d67c359..99ce3cc 100644
--- a/src/main/java/com/android/tools/r8/ir/code/CatchHandlers.java
+++ b/src/main/java/com/android/tools/r8/ir/code/CatchHandlers.java
@@ -69,7 +69,7 @@
if (!(o instanceof CatchHandlers)) {
return false;
}
- CatchHandlers that = (CatchHandlers) o;
+ CatchHandlers<?> that = (CatchHandlers<?>) o;
return guards.equals(that.guards) && targets.equals(that.targets);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
index c43ce44..bed6e99 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
@@ -50,6 +50,7 @@
return true;
}
+ @Override
public boolean identicalNonValueNonPositionParts(Instruction other) {
return other.asConstClass().clazz == clazz;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Div.java b/src/main/java/com/android/tools/r8/ir/code/Div.java
index 69541c1..872bc63 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Div.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Div.java
@@ -36,42 +36,52 @@
return false;
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt(int dest, int left, int right) {
return new DivInt(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong(int dest, int left, int right) {
return new DivLong(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat(int dest, int left, int right) {
return new DivFloat(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble(int dest, int left, int right) {
return new DivDouble(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt2Addr(int left, int right) {
return new DivInt2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong2Addr(int left, int right) {
return new DivLong2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat2Addr(int left, int right) {
return new DivFloat2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble2Addr(int left, int right) {
return new DivDouble2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit8(int dest, int left, int constant) {
return new DivIntLit8(dest, left, constant);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit16(int dest, int left, int constant) {
return new DivIntLit16(dest, left, constant);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Goto.java b/src/main/java/com/android/tools/r8/ir/code/Goto.java
index f88020d..eef666b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Goto.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Goto.java
@@ -67,6 +67,7 @@
return super.toString() + "block <unknown>";
}
+ @Override
public void print(CfgPrinter printer) {
super.print(printer);
printer.append(" B").append(getTarget().getNumber());
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRCodeInstructionsIterator.java b/src/main/java/com/android/tools/r8/ir/code/IRCodeInstructionsIterator.java
index 1bedf26..5da5eb6 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRCodeInstructionsIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRCodeInstructionsIterator.java
@@ -38,6 +38,7 @@
return instructionIterator.next();
}
+ @Override
public void add(Instruction instruction) {
instructionIterator.add(instruction);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
index b286544..bebbea1 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
@@ -88,6 +88,7 @@
return o.field == field && o.type == type;
}
+ @Override
public int compareNonValueParts(Instruction other) {
InstanceGet o = other.asInstanceGet();
int result = field.slowCompareTo(o.field);
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
index 0866205..25cb64b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
@@ -78,6 +78,7 @@
return o.field == field && o.type == type;
}
+ @Override
public int compareNonValueParts(Instruction other) {
InstancePut o = other.asInstancePut();
int result = field.slowCompareTo(o.field);
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstructionListIterator.java b/src/main/java/com/android/tools/r8/ir/code/InstructionListIterator.java
index 56a3e1f..fc7817b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstructionListIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstructionListIterator.java
@@ -49,6 +49,7 @@
* @return the instruction that matched the predicate or {@code null} if all instructions fails
* the predicate test
*/
+ @Override
default Instruction nextUntil(Predicate<Instruction> predicate) {
while (hasNext()) {
Instruction instruction = next();
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
index e0e816b..adbb602 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
@@ -83,10 +83,12 @@
return 0;
}
+ @Override
public boolean isInvokeCustom() {
return true;
}
+ @Override
public InvokeCustom asInvokeCustom() {
return this;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
index 428be6f..4840f23 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
@@ -58,6 +58,7 @@
addInvokeAndMoveResult(instruction, builder);
}
+ @Override
public boolean identicalNonValueNonPositionParts(Instruction other) {
if (!other.isInvokeSuper()) {
return false;
diff --git a/src/main/java/com/android/tools/r8/ir/code/LogicalBinop.java b/src/main/java/com/android/tools/r8/ir/code/LogicalBinop.java
index 770278a..3d6a3a0 100644
--- a/src/main/java/com/android/tools/r8/ir/code/LogicalBinop.java
+++ b/src/main/java/com/android/tools/r8/ir/code/LogicalBinop.java
@@ -55,6 +55,7 @@
}
}
+ @Override
public boolean needsValueInRegister(Value value) {
// Always require the left value in a register. If left and right are the same value, then
// both will use its register.
diff --git a/src/main/java/com/android/tools/r8/ir/code/Mul.java b/src/main/java/com/android/tools/r8/ir/code/Mul.java
index 42c7f09..9c676df 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Mul.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Mul.java
@@ -26,6 +26,7 @@
return true;
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt(int dest, int left, int right) {
// Flip arguments if dest and right are the same to work around x86 code generation bug on
// Android L. See https://android-review.googlesource.com/#/c/114932/ for the fix for Android
@@ -33,6 +34,7 @@
return dest == right ? new MulInt(dest, right, left) : new MulInt(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong(int dest, int left, int right) {
// Flip arguments if dest and right are the same to work around x86 code generation bug on
// Android L. See https://android-review.googlesource.com/#/c/114932/ for the fix for Android
@@ -40,6 +42,7 @@
return dest == right ? new MulLong(dest, right, left) : new MulLong(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat(int dest, int left, int right) {
// Flip arguments if dest and right are the same to work around x86 code generation bug on
// Android L. See https://android-review.googlesource.com/#/c/114932/ for the fix for Android
@@ -47,6 +50,7 @@
return dest == right ? new MulFloat(dest, right, left) : new MulFloat(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble(int dest, int left, int right) {
// Flip arguments if dest and right are the same to work around x86 code generation bug on
// Android L. See https://android-review.googlesource.com/#/c/114932/ for the fix for Android
@@ -54,26 +58,32 @@
return dest == right ? new MulDouble(dest, right, left) : new MulDouble(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt2Addr(int left, int right) {
return new MulInt2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong2Addr(int left, int right) {
return new MulLong2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat2Addr(int left, int right) {
return new MulFloat2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble2Addr(int left, int right) {
return new MulDouble2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit8(int dest, int left, int constant) {
return new MulIntLit8(dest, left, constant);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit16(int dest, int left, int constant) {
return new MulIntLit16(dest, left, constant);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Or.java b/src/main/java/com/android/tools/r8/ir/code/Or.java
index 24b8995..66eaaaa 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Or.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Or.java
@@ -77,10 +77,12 @@
return type.ordinal() - other.asOr().type.ordinal();
}
+ @Override
int foldIntegers(int left, int right) {
return left | right;
}
+ @Override
long foldLongs(long left, long right) {
return left | right;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Phi.java b/src/main/java/com/android/tools/r8/ir/code/Phi.java
index 22c8380..78c5c4e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Phi.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Phi.java
@@ -281,6 +281,7 @@
/**
* Determine if the only possible values for the phi are the integers 0 or 1.
*/
+ @Override
public boolean knownToBeBoolean() {
return knownToBeBoolean(new HashSet<>());
}
@@ -356,6 +357,7 @@
return false;
}
+ @Override
public boolean needsRegister() {
return true;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Rem.java b/src/main/java/com/android/tools/r8/ir/code/Rem.java
index 7232012..dc8213b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Rem.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Rem.java
@@ -36,42 +36,52 @@
return false;
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt(int dest, int left, int right) {
return new RemInt(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong(int dest, int left, int right) {
return new RemLong(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat(int dest, int left, int right) {
return new RemFloat(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble(int dest, int left, int right) {
return new RemDouble(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt2Addr(int left, int right) {
return new RemInt2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong2Addr(int left, int right) {
return new RemLong2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat2Addr(int left, int right) {
return new RemFloat2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble2Addr(int left, int right) {
return new RemDouble2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit8(int dest, int left, int constant) {
return new RemIntLit8(dest, left, constant);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit16(int dest, int left, int constant) {
return new RemIntLit16(dest, left, constant);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Sub.java b/src/main/java/com/android/tools/r8/ir/code/Sub.java
index 7bb1107..4bf7e66 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Sub.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Sub.java
@@ -31,10 +31,12 @@
return false;
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt(int dest, int left, int right) {
return new SubInt(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong(int dest, int left, int right) {
// The dalvik jit had a bug where the long operations add, sub, or, xor and and would write
// the first part of the result long before reading the second part of the input longs.
@@ -45,35 +47,43 @@
return new SubLong(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat(int dest, int left, int right) {
return new SubFloat(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble(int dest, int left, int right) {
return new SubDouble(dest, left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateInt2Addr(int left, int right) {
return new SubInt2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateLong2Addr(int left, int right) {
return new SubLong2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateFloat2Addr(int left, int right) {
return new SubFloat2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateDouble2Addr(int left, int right) {
return new SubDouble2Addr(left, right);
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit8(int dest, int left, int constant) {
// The sub instructions with constants are rsub, and is handled below.
throw new Unreachable("Unsupported instruction SubIntLit8");
}
+ @Override
public com.android.tools.r8.code.Instruction CreateIntLit16(int dest, int left, int constant) {
// The sub instructions with constants are rsub, and is handled below.
throw new Unreachable("Unsupported instruction SubIntLit16");
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index 2312320..b8324d9 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -187,7 +187,7 @@
}
}
- private void synthesizeLambdaClasses(Builder builder) throws ApiLevelException {
+ private void synthesizeLambdaClasses(Builder<?> builder) throws ApiLevelException {
if (lambdaRewriter != null) {
lambdaRewriter.adjustAccessibility();
lambdaRewriter.synthesizeLambdaClasses(builder);
@@ -195,7 +195,7 @@
}
private void desugarInterfaceMethods(
- Builder builder, InterfaceMethodRewriter.Flavor includeAllResources)
+ Builder<?> builder, InterfaceMethodRewriter.Flavor includeAllResources)
throws ApiLevelException {
if (interfaceMethodRewriter != null) {
interfaceMethodRewriter.desugarInterfaceMethods(builder, includeAllResources);
@@ -209,7 +209,7 @@
convertClassesToDex(application.classes(), executor);
// Build a new application with jumbo string info,
- Builder builder = application.builder();
+ Builder<?> builder = application.builder();
builder.setHighestSortingString(highestSortingString);
synthesizeLambdaClasses(builder);
@@ -346,7 +346,7 @@
}
// Build a new application with jumbo string info.
- Builder builder = application.builder();
+ Builder<?> builder = application.builder();
builder.setHighestSortingString(highestSortingString);
// Second inlining pass for dealing with double inline callers.
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 3be3466..64513c3 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
@@ -757,11 +757,11 @@
}
}
- private int[] getSwitchTargets(LabelNode dflt, List<LabelNode> labels) {
+ private int[] getSwitchTargets(LabelNode dflt, List labels) {
int[] targets = new int[1 + labels.size()];
targets[0] = getOffset(dflt);
for (int i = 1; i < targets.length; i++) {
- targets[i] = getOffset(labels.get(i - 1));
+ targets[i] = getOffset((LabelNode) labels.get(i - 1));
}
return targets;
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/JarState.java b/src/main/java/com/android/tools/r8/ir/conversion/JarState.java
index d211a03..67f6c93 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/JarState.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/JarState.java
@@ -649,6 +649,7 @@
// Printing helpers.
+ @Override
public String toString() {
return "locals: " + localsToString(Arrays.asList(locals)) + ", stack: " + stackToString(stack);
}
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
index 2c43bd7..31c6de1 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
@@ -224,7 +224,7 @@
* Move static and default interface methods to companion classes,
* add missing methods to forward to moved default methods implementation.
*/
- public void desugarInterfaceMethods(Builder builder, Flavor flavour) throws ApiLevelException {
+ public void desugarInterfaceMethods(Builder<?> builder, Flavor flavour) throws ApiLevelException {
// Process all classes first. Add missing forwarding methods to
// replace desugared default interface methods.
forwardingMethods.addAll(processClasses(builder, flavour));
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
index 357a813..f9a7f1f 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
@@ -201,7 +201,7 @@
}
/** Generates lambda classes and adds them to the builder. */
- public void synthesizeLambdaClasses(Builder builder) throws ApiLevelException {
+ public void synthesizeLambdaClasses(Builder<?> builder) throws ApiLevelException {
for (LambdaClass lambdaClass : knownLambdaClasses.values()) {
DexProgramClass synthesizedClass = lambdaClass.synthesizeLambdaClass();
converter.optimizeSynthesizedClass(synthesizedClass);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
index fd3e433..256194d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
@@ -251,6 +251,7 @@
super(position);
}
+ @Override
public SwitchBuilder self() {
return this;
}
@@ -313,6 +314,7 @@
this.code = code;
}
+ @Override
public IfBuilder self() {
return this;
}
@@ -478,7 +480,7 @@
if (current.size() == 1) {
outliers.add(previousKey);
} else {
- sequences.add(current);;
+ sequences.add(current);
}
current = new IntArrayList();
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java
index 543aba4..f58cadd 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java
@@ -45,6 +45,7 @@
this.target = target;
}
+ @Override
void appendOn(StringBuffer buffer) {
buffer.append("<< INLINED");
}
@@ -58,6 +59,7 @@
this.reason = reason;
}
+ @Override
public void appendOn(StringBuffer buffer) {
buffer.append("-- no inlining: ");
buffer.append(reason);
@@ -79,6 +81,7 @@
edges.add(new Edge(invoke.getType(), invoke.getInvokedMethod(), new NotInlining(reason)));
}
+ @Override
public String toString() {
StringBuffer buffer = new StringBuffer(method.method.toSourceString());
buffer.append(" {\n");
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
index 35d2e14..9385f11 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
@@ -670,6 +670,7 @@
super(method, block);
}
+ @Override
protected void handle(int start, int end, Outline outline) {
synchronized (candidates) {
candidates.computeIfAbsent(outline, k -> new ArrayList<>()).add(method);
@@ -695,6 +696,7 @@
this.toRemove = toRemove;
}
+ @Override
protected void handle(int start, int end, Outline outline) {
if (candidates.containsKey(outline)) {
DexMethod m = generatedOutlines.get(outline);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/SwitchUtils.java b/src/main/java/com/android/tools/r8/ir/optimize/SwitchUtils.java
index 0c33561..e95919b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/SwitchUtils.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/SwitchUtils.java
@@ -24,13 +24,13 @@
public final Instruction arrayGet;
public final Instruction staticGet;
public final Int2ReferenceMap<DexField> indexMap;
- public final Reference2IntMap ordinalsMap;
+ public final Reference2IntMap<DexField> ordinalsMap;
private EnumSwitchInfo(DexType enumClass,
Instruction ordinalInvoke,
Instruction arrayGet, Instruction staticGet,
Int2ReferenceMap<DexField> indexMap,
- Reference2IntMap ordinalsMap) {
+ Reference2IntMap<DexField> ordinalsMap) {
this.enumClass = enumClass;
this.ordinalInvoke = ordinalInvoke;
this.arrayGet = arrayGet;
@@ -89,7 +89,7 @@
// Due to member rebinding, only the fields are certain to provide the actual enums
// class.
DexType enumTyoe = indexMap.values().iterator().next().getHolder();
- Reference2IntMap ordinalsMap
+ Reference2IntMap<DexField> ordinalsMap
= EnumOrdinalMapCollector.getOrdinalsMapFor(enumTyoe, appInfo);
if (ordinalsMap == null) {
return null;
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
index 01dc4fd..7903463 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/LinearScanRegisterAllocator.java
@@ -167,6 +167,7 @@
/**
* Perform register allocation for the IRCode.
*/
+ @Override
public void allocateRegisters(boolean debug) {
// There are no linked values prior to register allocation.
assert noLinkedValues();
diff --git a/src/main/java/com/android/tools/r8/naming/NamingLens.java b/src/main/java/com/android/tools/r8/naming/NamingLens.java
index 604190c..69c165d 100644
--- a/src/main/java/com/android/tools/r8/naming/NamingLens.java
+++ b/src/main/java/com/android/tools/r8/naming/NamingLens.java
@@ -74,6 +74,7 @@
// Intentionally left empty.
}
+ @Override
public boolean checkTargetCanBeTranslated(DexMethod item) {
return true;
}
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
index 0b683e2..415b8a7 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
@@ -416,6 +416,7 @@
this.msg = msg;
}
+ @Override
public String toString() {
return "Parse error [" + lineNo + ":" + lineOffset + "] " + msg;
}
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index da89ff1..31a81f9 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -807,10 +807,11 @@
.entrySet()) {
allLive.addAll(entry.getValue().getItems());
}
- Set reachableNotLive = Sets.difference(allLive, liveMethods.getItems());
+ Set<DexEncodedMethod> reachableNotLive = Sets.difference(allLive, liveMethods.getItems());
Log.debug(getClass(), "%s methods are reachable but not live", reachableNotLive.size());
Log.info(getClass(), "Only reachable: %s", reachableNotLive);
- Set liveButNotInstantiated = Sets.difference(liveTypes, instantiatedTypes.getItems());
+ Set<DexType> liveButNotInstantiated =
+ Sets.difference(liveTypes, instantiatedTypes.getItems());
Log.debug(getClass(), "%s classes are live but not instantiated",
liveButNotInstantiated.size());
Log.info(getClass(), "Live but not instantiated: %s", liveButNotInstantiated);
diff --git a/src/main/java/com/android/tools/r8/shaking/KeepReason.java b/src/main/java/com/android/tools/r8/shaking/KeepReason.java
index 4e2f0b2..a6ce411 100644
--- a/src/main/java/com/android/tools/r8/shaking/KeepReason.java
+++ b/src/main/java/com/android/tools/r8/shaking/KeepReason.java
@@ -79,6 +79,7 @@
abstract String getKind();
+ @Override
public void print(ReasonFormatter formatter) {
formatter.addReason("is " + getKind() + " " + method.toSourceString());
formatter.addMethodReferenceReason(method);
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceFile.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceFile.java
index 058c14f..f3bb3d9 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceFile.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceFile.java
@@ -17,10 +17,12 @@
this.path = path;
}
+ @Override
public String get() throws IOException{
return new String(Files.readAllBytes(path), StandardCharsets.UTF_8);
}
+ @Override
public Path getBaseDirectory() {
Path baseDirectory = path.getParent();
if (baseDirectory == null) {
@@ -31,6 +33,7 @@
return baseDirectory;
}
+ @Override
public String getName() {
return path.toString();
}
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceStrings.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceStrings.java
index ac5f0ab..a4c89e0 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceStrings.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationSourceStrings.java
@@ -17,14 +17,17 @@
this.config = config;
}
+ @Override
public String get() throws IOException{
return Strings.join(config, "\n");
}
+ @Override
public Path getBaseDirectory() {
return Paths.get(".");
}
+ @Override
public String getName() {
return "<no file>";
}
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 9b06a2f..e50a1e3 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
@@ -25,6 +25,7 @@
public abstract boolean matches(DexType type);
+ @Override
public abstract String toString();
public boolean isTripleDotPattern() {
diff --git a/src/main/java/com/android/tools/r8/shaking/TreePruner.java b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
index 10716bd..8995259 100644
--- a/src/main/java/com/android/tools/r8/shaking/TreePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
@@ -58,7 +58,7 @@
return result;
}
- private DexApplication.Builder removeUnused(DexApplication application) {
+ private DexApplication.Builder<?> removeUnused(DexApplication application) {
return application.builder()
.replaceProgramClasses(getNewProgramClasses(application.classes()));
}
diff --git a/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLiteExtension.java b/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLiteExtension.java
index b217194..ceff21e 100644
--- a/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLiteExtension.java
+++ b/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLiteExtension.java
@@ -82,6 +82,7 @@
return superMethods;
}
+ @Override
boolean isSetterThatNeedsProcessing(DexEncodedMethod method) {
return method.accessFlags.isPrivate()
&& method.method.name.beginsWith(setterNamePrefix)
diff --git a/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java b/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java
index 9ccdedc..7773e11 100644
--- a/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/protolite/ProtoLitePruner.java
@@ -111,6 +111,7 @@
&& fieldName.startsWith("bitField");
}
+ @Override
boolean isSetterThatNeedsProcessing(DexEncodedMethod method) {
// The pruner does not need to process setters, so this method always returns false.
return false;
diff --git a/src/main/java/com/android/tools/r8/utils/SimpleHashMap.java b/src/main/java/com/android/tools/r8/utils/SimpleHashMap.java
index 05481c5..73f607a 100644
--- a/src/main/java/com/android/tools/r8/utils/SimpleHashMap.java
+++ b/src/main/java/com/android/tools/r8/utils/SimpleHashMap.java
@@ -37,6 +37,7 @@
return size;
}
+ @Override
public String toString() {
return this.getClass().getName() + ", " + size + "(length " + length() + ")";
}
diff --git a/src/main/java/com/android/tools/r8/utils/Timing.java b/src/main/java/com/android/tools/r8/utils/Timing.java
index 0fa316e..ff2aa68 100644
--- a/src/main/java/com/android/tools/r8/utils/Timing.java
+++ b/src/main/java/com/android/tools/r8/utils/Timing.java
@@ -46,6 +46,7 @@
return stop_time - start_time;
}
+ @Override
public String toString() {
return title + ": " + (duration() / 1000000) + "ms.";
}