Allow unused -dontwarn rules in Chrome and YouTube
Fixes: 178235883
Change-Id: I621e7c0cabeaa6ed8e757a2b447be00b381be52b
diff --git a/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java b/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java
index 9b2dab4..e96cb83 100644
--- a/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java
+++ b/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java
@@ -10,7 +10,6 @@
import com.android.tools.r8.shaking.ProguardClassFilter;
import com.android.tools.r8.shaking.ProguardClassNameList;
import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.Sets;
import java.util.IdentityHashMap;
import java.util.List;
@@ -71,19 +70,19 @@
for (ProguardClassNameList dontWarnPattern : dontWarnPatterns) {
assert !dontWarnPattern.hasWildcards()
|| matchedDontWarnPatterns.getOrDefault(dontWarnPattern, emptySet()).size() != 1
- : dontWarnPattern.toString()
- + " only matched: "
- + StringUtils.join(
- ", ",
- matchedDontWarnPatterns.getOrDefault(dontWarnPattern, emptySet()),
- DexType::getTypeName);
+ : "Unexpected unnecessary wildcard in -dontwarn "
+ + dontWarnPattern.toString()
+ + " (only matches "
+ + matchedDontWarnPatterns.get(dontWarnPattern).iterator().next().getTypeName()
+ + ")";
}
return true;
}
public boolean validateNoUnusedDontWarnPatterns() {
for (ProguardClassNameList dontWarnPattern : dontWarnPatterns) {
- assert matchedDontWarnPatterns.containsKey(dontWarnPattern) : dontWarnPattern.toString();
+ assert matchedDontWarnPatterns.containsKey(dontWarnPattern)
+ : "Unexpected unused rule -dontwarn " + dontWarnPattern.toString();
}
return true;
}
diff --git a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
index 166fb60..12236fc 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/ChromeProtoRewritingTest.java
@@ -45,6 +45,7 @@
keepDynamicMethodSignatureRule(),
keepNewMessageInfoSignatureRule())
.addDontWarn("android.content.pm.IPackageManager")
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProtoShrinking(false)
.setMinApi(AndroidApiLevel.N)
diff --git a/src/test/java/com/android/tools/r8/internal/proto/YouTubeV1508ProtoRewritingTest.java b/src/test/java/com/android/tools/r8/internal/proto/YouTubeV1508ProtoRewritingTest.java
index 5596fc7..7cdab46 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/YouTubeV1508ProtoRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/YouTubeV1508ProtoRewritingTest.java
@@ -31,6 +31,7 @@
public YouTubeV1508ProtoRewritingTest(TestParameters parameters) {
super(15, 8);
+ parameters.assertNoneRuntime();
}
@Test
@@ -55,6 +56,7 @@
.addMainDexRuleFiles(getMainDexRuleFiles())
.allowCheckDiscardedErrors(true)
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.setMinApi(AndroidApiLevel.H_MR2)
.compile()