Fix build warnings from unchecked casts and unsafe varargs
Change-Id: Ib9c3e25b9b86361dbc25abab6ccd375d328f0411
diff --git a/src/main/java/com/android/tools/r8/graph/GenericSignatureCorrectnessHelper.java b/src/main/java/com/android/tools/r8/graph/GenericSignatureCorrectnessHelper.java
index a7979f6..3401560 100644
--- a/src/main/java/com/android/tools/r8/graph/GenericSignatureCorrectnessHelper.java
+++ b/src/main/java/com/android/tools/r8/graph/GenericSignatureCorrectnessHelper.java
@@ -110,6 +110,7 @@
return result;
}
+ @SuppressWarnings("unchecked")
private <T extends DexDefinitionSignature<?>> SignatureEvaluationResult evaluate(
Supplier<T> getter, Function<T, SignatureEvaluationResult> evaluate, Consumer<T> setter) {
T signature = getter.get();
diff --git a/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java b/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
index 3de0abd..9d085af 100644
--- a/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
+++ b/src/test/java/com/android/tools/r8/TestDiagnosticMessages.java
@@ -13,126 +13,131 @@
import java.util.List;
import org.hamcrest.Matcher;
-public interface TestDiagnosticMessages {
+public abstract class TestDiagnosticMessages {
- List<Diagnostic> getInfos();
+ public abstract List<Diagnostic> getInfos();
- List<Diagnostic> getWarnings();
+ public abstract List<Diagnostic> getWarnings();
- default <D extends Diagnostic> D getWarning(int index) {
+ @SuppressWarnings("unchecked")
+ public final <D extends Diagnostic> D getWarning(int index) {
return (D) getWarnings().get(index);
}
- List<Diagnostic> getErrors();
+ public abstract List<Diagnostic> getErrors();
- default <D extends Diagnostic> D getError(int index) {
+ @SuppressWarnings("unchecked")
+ public final <D extends Diagnostic> D getError(int index) {
return (D) getErrors().get(index);
}
- TestDiagnosticMessages assertNoMessages();
+ public abstract TestDiagnosticMessages assertNoMessages();
- TestDiagnosticMessages assertHasWarnings();
+ public abstract TestDiagnosticMessages assertHasWarnings();
- TestDiagnosticMessages assertOnlyInfos();
+ public abstract TestDiagnosticMessages assertOnlyInfos();
- TestDiagnosticMessages assertOnlyWarnings();
+ public abstract TestDiagnosticMessages assertOnlyWarnings();
- TestDiagnosticMessages assertOnlyErrors();
+ public abstract TestDiagnosticMessages assertOnlyErrors();
- TestDiagnosticMessages assertInfosCount(int count);
+ public abstract TestDiagnosticMessages assertInfosCount(int count);
- TestDiagnosticMessages assertWarningsCount(int count);
+ public abstract TestDiagnosticMessages assertWarningsCount(int count);
- TestDiagnosticMessages assertErrorsCount(int count);
+ public abstract TestDiagnosticMessages assertErrorsCount(int count);
- default TestDiagnosticMessages assertNoInfos() {
+ public final TestDiagnosticMessages assertNoInfos() {
return assertInfosCount(0);
}
- default TestDiagnosticMessages assertNoWarnings() {
+ public final TestDiagnosticMessages assertNoWarnings() {
return assertWarningsCount(0);
}
- default TestDiagnosticMessages assertNoErrors() {
+ public final TestDiagnosticMessages assertNoErrors() {
return assertErrorsCount(0);
}
// Match exact.
- default TestDiagnosticMessages assertDiagnosticsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertDiagnosticsMatch(Matcher<Diagnostic> matcher) {
return assertDiagnosticsMatch(Collections.singletonList(matcher));
}
- TestDiagnosticMessages assertDiagnosticsMatch(Collection<Matcher<Diagnostic>> matchers);
+ public abstract TestDiagnosticMessages assertDiagnosticsMatch(
+ Collection<Matcher<Diagnostic>> matchers);
- default TestDiagnosticMessages assertInfosMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertInfosMatch(Matcher<Diagnostic> matcher) {
return assertInfosMatch(Collections.singletonList(matcher));
}
- TestDiagnosticMessages assertInfosMatch(Collection<Matcher<Diagnostic>> matchers);
+ public abstract TestDiagnosticMessages assertInfosMatch(Collection<Matcher<Diagnostic>> matchers);
- default TestDiagnosticMessages assertWarningsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertWarningsMatch(Matcher<Diagnostic> matcher) {
return assertWarningsMatch(Collections.singletonList(matcher));
}
- @SuppressWarnings("unchecked")
- default TestDiagnosticMessages assertWarningsMatch(Matcher<Diagnostic>... matchers) {
+ @SafeVarargs
+ public final TestDiagnosticMessages assertWarningsMatch(Matcher<Diagnostic>... matchers) {
return assertWarningsMatch(Arrays.asList(matchers));
}
- TestDiagnosticMessages assertWarningsMatch(Collection<Matcher<Diagnostic>> matchers);
+ public abstract TestDiagnosticMessages assertWarningsMatch(
+ Collection<Matcher<Diagnostic>> matchers);
- default TestDiagnosticMessages assertErrorsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertErrorsMatch(Matcher<Diagnostic> matcher) {
return assertErrorsMatch(Collections.singletonList(matcher));
}
- TestDiagnosticMessages assertErrorsMatch(Collection<Matcher<Diagnostic>> matchers);
+ public abstract TestDiagnosticMessages assertErrorsMatch(
+ Collection<Matcher<Diagnostic>> matchers);
// Match one.
- TestDiagnosticMessages assertDiagnosticThatMatches(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertDiagnosticThatMatches(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertInfoThatMatches(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertInfoThatMatches(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertWarningThatMatches(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertWarningThatMatches(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertErrorThatMatches(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertErrorThatMatches(Matcher<Diagnostic> matcher);
// Consider removing this helper.
- default TestDiagnosticMessages assertWarningMessageThatMatches(Matcher<String> matcher) {
+ public final TestDiagnosticMessages assertWarningMessageThatMatches(Matcher<String> matcher) {
return assertWarningThatMatches(diagnosticMessage(matcher));
}
// Consider removing this helper.
- default TestDiagnosticMessages assertErrorMessageThatMatches(Matcher<String> matcher) {
+ public final TestDiagnosticMessages assertErrorMessageThatMatches(Matcher<String> matcher) {
return assertErrorThatMatches(diagnosticMessage(matcher));
}
// Match all.
- TestDiagnosticMessages assertAllDiagnosticsMatch(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertAllDiagnosticsMatch(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertAllInfosMatch(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertAllInfosMatch(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertAllWarningsMatch(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertAllWarningsMatch(Matcher<Diagnostic> matcher);
- TestDiagnosticMessages assertAllErrorsMatch(Matcher<Diagnostic> matcher);
+ public abstract TestDiagnosticMessages assertAllErrorsMatch(Matcher<Diagnostic> matcher);
// Match none.
- default TestDiagnosticMessages assertNoDiagnosticsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertNoDiagnosticsMatch(Matcher<Diagnostic> matcher) {
return assertAllDiagnosticsMatch(not(matcher));
}
- default TestDiagnosticMessages assertNoInfosMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertNoInfosMatch(Matcher<Diagnostic> matcher) {
return assertAllInfosMatch(not(matcher));
}
- default TestDiagnosticMessages assertNoWarningsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertNoWarningsMatch(Matcher<Diagnostic> matcher) {
return assertAllWarningsMatch(not(matcher));
}
- default TestDiagnosticMessages assertNoErrorsMatch(Matcher<Diagnostic> matcher) {
+ public final TestDiagnosticMessages assertNoErrorsMatch(Matcher<Diagnostic> matcher) {
return assertAllErrorsMatch(not(matcher));
}
}
diff --git a/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java b/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
index 9dae093..b52db8d 100644
--- a/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
+++ b/src/test/java/com/android/tools/r8/TestDiagnosticMessagesImpl.java
@@ -20,7 +20,8 @@
import java.util.function.BiFunction;
import org.hamcrest.Matcher;
-public class TestDiagnosticMessagesImpl implements DiagnosticsHandler, TestDiagnosticMessages {
+public class TestDiagnosticMessagesImpl extends TestDiagnosticMessages
+ implements DiagnosticsHandler {
private final List<Diagnostic> infos = new ArrayList<>();
private final List<Diagnostic> warnings = new ArrayList<>();
private final List<Diagnostic> errors = new ArrayList<>();
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/ConcurrentHashMapFileSerializationTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/ConcurrentHashMapFileSerializationTest.java
index b38eac1..db361d4 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/ConcurrentHashMapFileSerializationTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/ConcurrentHashMapFileSerializationTest.java
@@ -94,6 +94,7 @@
chmTest();
}
+ @SuppressWarnings("unchecked")
private static void chmTest() throws IOException, ClassNotFoundException {
ConcurrentHashMap<String, String> map = new ConcurrentHashMap<>();
map.put("k1", "v1");
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/MyMapFileSerializationTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/MyMapFileSerializationTest.java
index 623cfd0..42844c1 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/MyMapFileSerializationTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/MyMapFileSerializationTest.java
@@ -88,6 +88,8 @@
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
static class Executor {
+
+ @SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
MyMap<String, String> map = new MyMap<>();
map.put("k1", "v1");