Disallow unused dont warn rules during testing
Fixes: 176080545
Fixes: 176080546
Change-Id: Ib772e2bbae36687afef3c79c9b02cbb120d634a8
diff --git a/src/main/java/com/android/tools/r8/PrintSeeds.java b/src/main/java/com/android/tools/r8/PrintSeeds.java
index 7f11da5..4be995a 100644
--- a/src/main/java/com/android/tools/r8/PrintSeeds.java
+++ b/src/main/java/com/android/tools/r8/PrintSeeds.java
@@ -94,9 +94,7 @@
.run(executor);
Enqueuer enqueuer =
EnqueuerFactory.createForInitialTreeShaking(appView, executor, subtypingInfo);
- AppInfoWithLiveness appInfo =
- enqueuer.traceApplication(
- rootSet, options.getProguardConfiguration().getDontWarnPatterns(), executor, timing);
+ AppInfoWithLiveness appInfo = enqueuer.traceApplication(rootSet, executor, timing);
RootSetBuilder.writeSeeds(
appInfo, System.out, type -> descriptors.contains(type.toDescriptorString()));
} catch (ExecutionException e) {
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 0a5ef6e..a1435fc 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -329,7 +329,7 @@
.rebuildWithClassHierarchy(
MissingClasses.builderForInitialMissingClasses()
.addNewMissingClasses(new SubtypingInfo(appView).getMissingClasses())
- .reportMissingClasses(options)));
+ .reportMissingClasses(appView)));
}
// Add synthesized -assumenosideeffects from min api if relevant.
@@ -687,7 +687,6 @@
appView.setAppInfo(
enqueuer.traceApplication(
appView.rootSet(),
- options.getProguardConfiguration().getDontWarnPatterns(),
executorService,
timing));
// Rerunning the enqueuer should not give rise to any method rewritings.
@@ -927,6 +926,8 @@
options,
ProguardMapSupplier.create(classNameMapper, options));
+ assert appView.getDontWarnConfiguration().validate(options);
+
options.printWarnings();
} catch (ExecutionException e) {
throw unwrapExecutionException(e);
@@ -1018,7 +1019,6 @@
appView.setAppInfo(
enqueuer.traceApplication(
appView.rootSet(),
- options.getProguardConfiguration().getDontWarnPatterns(),
executorService,
timing));
NestedGraphLens lens = enqueuer.buildGraphLens();
@@ -1081,7 +1081,6 @@
appView, executorService, subtypingInfo, whyAreYouKeepingConsumer);
enqueuer.traceApplication(
rootSet,
- options.getProguardConfiguration().getDontWarnPatterns(),
executorService,
timing);
}
diff --git a/src/main/java/com/android/tools/r8/errors/dontwarn/DontWarnConfiguration.java b/src/main/java/com/android/tools/r8/errors/dontwarn/DontWarnConfiguration.java
new file mode 100644
index 0000000..ff4a73d
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/errors/dontwarn/DontWarnConfiguration.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.errors.dontwarn;
+
+import com.android.tools.r8.graph.DexClass;
+import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.shaking.ProguardConfiguration;
+import com.android.tools.r8.utils.InternalOptions;
+import java.util.Set;
+
+public abstract class DontWarnConfiguration {
+
+ public static DontWarnConfiguration create(ProguardConfiguration proguardConfiguration) {
+ if (proguardConfiguration != null && proguardConfiguration.hasDontWarnPatterns()) {
+ return new NonEmptyDontWarnConfiguration(
+ proguardConfiguration.getDontWarnPatterns(new Witness()));
+ }
+ return empty();
+ }
+
+ public static EmptyDontWarnConfiguration empty() {
+ return new EmptyDontWarnConfiguration();
+ }
+
+ public abstract Set<DexType> getNonMatches(Set<DexType> types);
+
+ public final boolean matches(DexClass clazz) {
+ return matches(clazz.getType());
+ }
+
+ public abstract boolean matches(DexType type);
+
+ public abstract boolean validate(InternalOptions options);
+
+ // Witness that can only be instantiated by the DontWarnConfiguration, to ensure that the dont
+ // warn patterns are only accessed via the DontWarnConfiguration.
+ public static class Witness {
+
+ private Witness() {}
+ }
+}
diff --git a/src/main/java/com/android/tools/r8/errors/dontwarn/EmptyDontWarnConfiguration.java b/src/main/java/com/android/tools/r8/errors/dontwarn/EmptyDontWarnConfiguration.java
new file mode 100644
index 0000000..e115168
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/errors/dontwarn/EmptyDontWarnConfiguration.java
@@ -0,0 +1,27 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.errors.dontwarn;
+
+import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.utils.InternalOptions;
+import java.util.Set;
+
+public class EmptyDontWarnConfiguration extends DontWarnConfiguration {
+
+ @Override
+ public Set<DexType> getNonMatches(Set<DexType> types) {
+ return types;
+ }
+
+ @Override
+ public boolean matches(DexType type) {
+ return false;
+ }
+
+ @Override
+ public boolean validate(InternalOptions options) {
+ return true;
+ }
+}
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
new file mode 100644
index 0000000..9b2dab4
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/errors/dontwarn/NonEmptyDontWarnConfiguration.java
@@ -0,0 +1,90 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.errors.dontwarn;
+
+import static java.util.Collections.emptySet;
+
+import com.android.tools.r8.graph.DexType;
+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;
+import java.util.Map;
+import java.util.Set;
+
+public class NonEmptyDontWarnConfiguration extends DontWarnConfiguration {
+
+ private final List<ProguardClassNameList> dontWarnPatterns;
+ private final Map<ProguardClassNameList, Set<DexType>> matchedDontWarnPatterns =
+ new IdentityHashMap<>();
+
+ NonEmptyDontWarnConfiguration(ProguardClassFilter dontWarnPatterns) {
+ assert dontWarnPatterns != null;
+ assert !dontWarnPatterns.isEmpty();
+ this.dontWarnPatterns = dontWarnPatterns.getPatterns();
+ }
+
+ @Override
+ public Set<DexType> getNonMatches(Set<DexType> types) {
+ Set<DexType> nonMatches = Sets.newIdentityHashSet();
+ for (DexType type : types) {
+ if (!matches(type)) {
+ nonMatches.add(type);
+ }
+ }
+ return nonMatches;
+ }
+
+ @Override
+ public boolean matches(DexType type) {
+ for (ProguardClassNameList dontWarnPattern : dontWarnPatterns) {
+ if (dontWarnPattern.matches(type)) {
+ recordMatch(dontWarnPattern, type);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void recordMatch(ProguardClassNameList dontWarnPattern, DexType type) {
+ if (InternalOptions.assertionsEnabled()) {
+ matchedDontWarnPatterns
+ .computeIfAbsent(dontWarnPattern, ignore -> Sets.newIdentityHashSet())
+ .add(type);
+ }
+ }
+
+ @Override
+ public boolean validate(InternalOptions options) {
+ assert options.testing.allowUnnecessaryDontWarnWildcards
+ || validateNoUnnecessaryDontWarnWildcards();
+ assert options.testing.allowUnusedDontWarnRules || validateNoUnusedDontWarnPatterns();
+ return true;
+ }
+
+ public boolean validateNoUnnecessaryDontWarnWildcards() {
+ 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);
+ }
+ return true;
+ }
+
+ public boolean validateNoUnusedDontWarnPatterns() {
+ for (ProguardClassNameList dontWarnPattern : dontWarnPatterns) {
+ assert matchedDontWarnPatterns.containsKey(dontWarnPattern) : dontWarnPattern.toString();
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/com/android/tools/r8/graph/AppServices.java b/src/main/java/com/android/tools/r8/graph/AppServices.java
index c0c3976..bb61928 100644
--- a/src/main/java/com/android/tools/r8/graph/AppServices.java
+++ b/src/main/java/com/android/tools/r8/graph/AppServices.java
@@ -342,8 +342,7 @@
}
private void warn(String message, DexType type, Origin origin) {
- if (options.getProguardConfiguration() == null
- || !options.getProguardConfiguration().getDontWarnPatterns().matches(type)) {
+ if (!appView.getDontWarnConfiguration().matches(type)) {
options.reporter.warning(new StringDiagnostic(message, origin));
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/AppView.java b/src/main/java/com/android/tools/r8/graph/AppView.java
index 531c78a..489d0b6 100644
--- a/src/main/java/com/android/tools/r8/graph/AppView.java
+++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.graph;
+import com.android.tools.r8.errors.dontwarn.DontWarnConfiguration;
import com.android.tools.r8.features.ClassToFeatureSplitMap;
import com.android.tools.r8.graph.DexValue.DexValueString;
import com.android.tools.r8.graph.GraphLens.NonIdentityGraphLens;
@@ -57,6 +58,7 @@
private T appInfo;
private AppInfoWithClassHierarchy appInfoForDesugaring;
private AppServices appServices;
+ private final DontWarnConfiguration dontWarnConfiguration;
private final WholeProgramOptimizations wholeProgramOptimizations;
private GraphLens graphLens;
private InitClassLens initClassLens;
@@ -107,6 +109,7 @@
PrefixRewritingMapper mapper) {
assert appInfo != null;
this.appInfo = appInfo;
+ this.dontWarnConfiguration = DontWarnConfiguration.create(options().getProguardConfiguration());
this.wholeProgramOptimizations = wholeProgramOptimizations;
this.graphLens = GraphLens.getIdentityLens();
this.initClassLens = InitClassLens.getDefault();
@@ -251,6 +254,10 @@
this.appServices = appServices;
}
+ public DontWarnConfiguration getDontWarnConfiguration() {
+ return dontWarnConfiguration;
+ }
+
public boolean isClassEscapingIntoLibrary(DexType type) {
assert type.isClassType();
return classesEscapingIntoLibrary.test(type);
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 0c27a75..d2225e6 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
@@ -71,7 +71,6 @@
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.IterableUtils;
-import com.android.tools.r8.utils.ObjectUtils;
import com.android.tools.r8.utils.Pair;
import com.android.tools.r8.utils.StringDiagnostic;
import com.android.tools.r8.utils.collections.SortedProgramMethodSet;
@@ -1278,11 +1277,8 @@
|| missing.isD8R8SynthesizedClassType()
|| isCompanionClassType(missing)
|| emulatedInterfaces.containsValue(missing)
- || ObjectUtils.getBooleanOrElse(
- options.getProguardConfiguration(),
- configuration -> configuration.getDontWarnPatterns().matches(missing),
- false)
- || options.desugaredLibraryConfiguration.getCustomConversions().containsValue(missing);
+ || options.desugaredLibraryConfiguration.getCustomConversions().containsValue(missing)
+ || appView.getDontWarnConfiguration().matches(missing);
}
void warnMissingInterface(DexClass classToDesugar, DexClass implementing, DexType missing) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java
index 5d79d0e..13865a0 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java
@@ -223,7 +223,7 @@
// methods (which is bad for memory), or we would need to analyze the called methods
// before inlining them. The latter could be good solution, since we are going to build IR
// for the methods that need to be inlined anyway.
- assert appView.options().testing.allowClassInlinerGracefulExit;
+ assert false;
anyInlinedMethods = true;
}
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 7578839..5ec2137 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -222,7 +222,6 @@
private SubtypingInfo subtypingInfo;
private final InternalOptions options;
private RootSet rootSet;
- private ProguardClassFilter dontWarnPatterns;
private final EnqueuerUseRegistryFactory useRegistryFactory;
private AnnotationRemover.Builder annotationRemoverBuilder;
private final EnqueuerDefinitionSupplier enqueuerDefinitionSupplier =
@@ -2156,7 +2155,7 @@
}
});
}
- if (dontWarnPatterns.matches(context.type)) {
+ if (appView.getDontWarnConfiguration().matches(context)) {
// Ignore.
return;
}
@@ -2330,7 +2329,7 @@
private void checkLambdaInterface(DexType itf, ProgramMethod context) {
DexClass clazz = definitionFor(itf, context);
if (clazz == null) {
- if (!options.getProguardConfiguration().getDontWarnPatterns().matches(itf)) {
+ if (!appView.getDontWarnConfiguration().matches(itf)) {
StringDiagnostic message =
new StringDiagnostic(
"Lambda expression implements missing interface `" + itf.toSourceString() + "`",
@@ -2338,7 +2337,7 @@
options.reporter.warning(message);
}
} else if (!clazz.isInterface()) {
- if (!options.getProguardConfiguration().getDontWarnPatterns().matches(itf)) {
+ if (!appView.getDontWarnConfiguration().matches(itf)) {
StringDiagnostic message =
new StringDiagnostic(
"Lambda expression expected to implement an interface, but found "
@@ -2991,12 +2990,10 @@
public AppInfoWithLiveness traceApplication(
RootSet rootSet,
- ProguardClassFilter dontWarnPatterns,
ExecutorService executorService,
Timing timing)
throws ExecutionException {
this.rootSet = rootSet;
- this.dontWarnPatterns = dontWarnPatterns;
// Translate the result of root-set computation into enqueuer actions.
if (appView.options().getProguardConfiguration() != null
&& !options.kotlinOptimizationOptions().disableKotlinSpecificOptimizations) {
@@ -3460,7 +3457,7 @@
appInfo.getMainDexClasses(),
deadProtoTypes,
appView.testing().enableExperimentalMissingClassesReporting
- ? missingClassesBuilder.reportMissingClasses(options)
+ ? missingClassesBuilder.reportMissingClasses(appView)
: missingClassesBuilder.ignoreMissingClasses(),
SetUtils.mapIdentityHashSet(liveTypes.getItems(), DexProgramClass::getType),
Enqueuer.toDescriptorSet(targetedMethods.getItems()),
diff --git a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
index d8dbca6..e296cd7 100644
--- a/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
+++ b/src/main/java/com/android/tools/r8/shaking/MissingClasses.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.shaking;
+import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.synthesis.CommittedItems;
@@ -90,12 +91,13 @@
return build();
}
- public MissingClasses reportMissingClasses(InternalOptions options) {
+ public MissingClasses reportMissingClasses(AppView<?> appView) {
+ InternalOptions options = appView.options();
Set<DexType> newMissingClassesWithoutDontWarn =
- options.getProguardConfiguration().getDontWarnPatterns().getNonMatches(newMissingClasses);
+ appView.getDontWarnConfiguration().getNonMatches(newMissingClasses);
newMissingClassesWithoutDontWarn.removeAll(alreadyMissingClasses);
newMissingClassesWithoutDontWarn.removeAll(
- getAllowedMissingClasses(options.dexItemFactory()));
+ getAllowedMissingClasses(appView.dexItemFactory()));
if (!newMissingClassesWithoutDontWarn.isEmpty()) {
MissingClassesDiagnostic diagnostic =
new MissingClassesDiagnostic.Builder()
@@ -123,7 +125,7 @@
dexItemFactory.stringConcatFactoryType);
}
- /** Intentionally private, use {@link Builder#reportMissingClasses(InternalOptions)}. */
+ /** Intentionally private, use {@link Builder#reportMissingClasses(AppView)}. */
private MissingClasses build() {
// Extend the newMissingClasses set with all other missing classes.
//
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardClassFilter.java b/src/main/java/com/android/tools/r8/shaking/ProguardClassFilter.java
index 88c13ec..2580817 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardClassFilter.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardClassFilter.java
@@ -4,14 +4,9 @@
package com.android.tools.r8.shaking;
-import static com.android.tools.r8.utils.PredicateUtils.not;
-
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.shaking.ProguardTypeMatcher.MatchSpecificType;
-import com.android.tools.r8.utils.TraversalContinuation;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
-import java.util.Set;
+import java.util.List;
public class ProguardClassFilter {
private static ProguardClassFilter EMPTY = new ProguardClassFilter(ImmutableList.of());
@@ -46,6 +41,10 @@
return EMPTY;
}
+ public List<ProguardClassNameList> getPatterns() {
+ return patterns;
+ }
+
public boolean isEmpty() {
return patterns.size() == 0;
}
@@ -58,47 +57,4 @@
}
return false;
}
-
- public Set<DexType> getNonMatches(Set<DexType> types) {
- Set<DexType> nonMatches = Sets.newIdentityHashSet();
- for (DexType type : types) {
- TraversalContinuation traversalContinuation = TraversalContinuation.CONTINUE;
- for (ProguardClassNameList pattern : patterns) {
- traversalContinuation =
- pattern.traverseTypeMatchers(
- matcher -> {
- if (matcher.matches(type)) {
- return TraversalContinuation.BREAK;
- }
- return TraversalContinuation.CONTINUE;
- },
- not(ProguardTypeMatcher::hasSpecificType));
- if (traversalContinuation.shouldBreak()) {
- break;
- }
- }
- if (traversalContinuation.shouldContinue()) {
- nonMatches.add(type);
- }
- }
- for (ProguardClassNameList pattern : patterns) {
- pattern.forEachTypeMatcher(
- matcher -> nonMatches.remove(matcher.getSpecificType()),
- ProguardTypeMatcher::hasSpecificType);
- }
- return nonMatches;
- }
-
- public void filterOutMatches(Set<DexType> types) {
- for (ProguardClassNameList pattern : patterns) {
- pattern.forEachTypeMatcher(matcher -> {
- if (matcher instanceof MatchSpecificType) {
- assert matcher.getSpecificType() != null;
- types.remove(matcher.getSpecificType());
- } else {
- types.removeIf(matcher::matches);
- }
- });
- }
- }
}
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
index 7d8d88a..8fdd330 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.shaking;
+import com.android.tools.r8.errors.dontwarn.DontWarnConfiguration;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.naming.DictionaryReader;
import com.android.tools.r8.origin.Origin;
@@ -627,7 +628,12 @@
return keepPackageNamesPatterns;
}
- public ProguardClassFilter getDontWarnPatterns() {
+ public boolean hasDontWarnPatterns() {
+ return !dontWarnPatterns.isEmpty();
+ }
+
+ public ProguardClassFilter getDontWarnPatterns(DontWarnConfiguration.Witness witness) {
+ assert witness != null;
return dontWarnPatterns;
}
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
index 7f18fff..33bfc85 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -1727,11 +1727,7 @@
}
private void generateAssumeNoSideEffectsWarnings() {
- ProguardClassFilter dontWarnPatterns =
- options.getProguardConfiguration() != null
- ? options.getProguardConfiguration().getDontWarnPatterns()
- : ProguardClassFilter.empty();
- if (dontWarnPatterns.matches(options.itemFactory.objectType)) {
+ if (appView.getDontWarnConfiguration().matches(options.itemFactory.objectType)) {
// Don't report any warnings since we don't apply -assumenosideeffects rules to notify() or
// wait() anyway.
return;
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 78957e7..9230427 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1312,9 +1312,9 @@
!Version.isDevelopmentVersion()
|| System.getProperty("com.android.tools.r8.allowTypeErrors") != null;
public boolean allowInvokeErrors = false;
+ public boolean allowUnnecessaryDontWarnWildcards = true;
+ public boolean allowUnusedDontWarnRules = true;
public boolean disableL8AnnotationRemoval = false;
- public boolean allowClassInlinerGracefulExit =
- System.getProperty("com.android.tools.r8.disallowClassInlinerGracefulExit") == null;
public boolean reportUnusedProguardConfigurationRules = false;
public boolean alwaysUseExistingAccessInfoCollectionsInMemberRebinding = true;
public boolean alwaysUsePessimisticRegisterAllocation = false;
diff --git a/src/test/java/com/android/tools/r8/ProguardTestBuilder.java b/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
index 0e65de1..7aacf12 100644
--- a/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
+++ b/src/test/java/com/android/tools/r8/ProguardTestBuilder.java
@@ -53,6 +53,11 @@
}
@Override
+ public boolean isProguardTestBuilder() {
+ return true;
+ }
+
+ @Override
ProguardTestBuilder self() {
return this;
}
diff --git a/src/test/java/com/android/tools/r8/R8TestBuilder.java b/src/test/java/com/android/tools/r8/R8TestBuilder.java
index e831d72..909d45e 100644
--- a/src/test/java/com/android/tools/r8/R8TestBuilder.java
+++ b/src/test/java/com/android/tools/r8/R8TestBuilder.java
@@ -244,10 +244,6 @@
return self();
}
- public T allowClassInlinerGracefulExit() {
- return addOptionsModification(options -> options.testing.allowClassInlinerGracefulExit = true);
- }
-
/**
* Allow info, warning, and error diagnostics.
*
@@ -314,6 +310,10 @@
return self();
}
+ public T allowUnusedDontWarnPatterns() {
+ return addOptionsModification(options -> options.testing.allowUnusedDontWarnRules = true);
+ }
+
public T allowUnusedProguardConfigurationRules() {
return allowUnusedProguardConfigurationRules(true);
}
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 533cbe4..f6846b4 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -49,7 +49,6 @@
import com.android.tools.r8.shaking.MainDexClasses;
import com.android.tools.r8.shaking.NoStaticClassMergingRule;
import com.android.tools.r8.shaking.NoVerticalClassMergingRule;
-import com.android.tools.r8.shaking.ProguardClassFilter;
import com.android.tools.r8.shaking.ProguardClassNameList;
import com.android.tools.r8.shaking.ProguardConfiguration;
import com.android.tools.r8.shaking.ProguardConfigurationRule;
@@ -770,7 +769,7 @@
appView.setRootSet(rootSet);
AppInfoWithLiveness appInfoWithLiveness =
EnqueuerFactory.createForInitialTreeShaking(appView, executor, subtypingInfo)
- .traceApplication(rootSet, ProguardClassFilter.empty(), executor, Timing.empty());
+ .traceApplication(rootSet, executor, Timing.empty());
// We do not run the tree pruner to ensure that the hierarchy is as designed and not modified
// due to liveness.
return appView.setAppInfo(appInfoWithLiveness);
diff --git a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
index 27033d8..a79cbcf 100644
--- a/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestCompilerBuilder.java
@@ -45,7 +45,8 @@
public static final Consumer<InternalOptions> DEFAULT_OPTIONS =
options -> {
- options.testing.allowClassInlinerGracefulExit = false;
+ options.testing.allowUnusedDontWarnRules = false;
+ options.testing.allowUnnecessaryDontWarnWildcards = false;
options.testing.enableExperimentalMissingClassesReporting = true;
options.testing.reportUnusedProguardConfigurationRules = true;
options.horizontalClassMergerOptions().enable();
diff --git a/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java b/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
index 9ac6cdb..b28a51f 100644
--- a/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
+++ b/src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
@@ -42,6 +42,10 @@
super(state, builder, backend);
}
+ public boolean isProguardTestBuilder() {
+ return false;
+ }
+
@Override
public boolean isTestShrinkerBuilder() {
return true;
@@ -118,14 +122,35 @@
}
@Deprecated
+ public T addDontWarnCompanionClass(Class<?> clazz) {
+ return addDontWarn(clazz.getTypeName() + COMPANION_CLASS_NAME_SUFFIX);
+ }
+
+ @Deprecated
public T addDontWarnCompanionClasses() {
return addDontWarn("**" + COMPANION_CLASS_NAME_SUFFIX);
}
@Deprecated
public T addDontWarnCompilerSynthesizedAnnotations() {
- return addDontWarn("com.android.tools.r8.annotations.SynthesizedClass")
- .addDontWarn("com.android.tools.r8.annotations.SynthesizedClassMap");
+ return addDontWarnCompilerSynthesizedClassAnnotation()
+ .addDontWarnCompilerSynthesizedClassMapAnnotation();
+ }
+
+ @Deprecated
+ public T addDontWarnCompilerSynthesizedClassAnnotation() {
+ return addDontWarn("com.android.tools.r8.annotations.SynthesizedClass");
+ }
+
+ @Deprecated
+ public T addDontWarnCompilerSynthesizedClassMapAnnotation() {
+ return addDontWarn("com.android.tools.r8.annotations.SynthesizedClassMap");
+ }
+
+ // TODO(b/176143558): Should not report missing classes for compiler synthesized classes.
+ @Deprecated
+ public T addDontWarnEmulatedLibraryClass(Class<?> clazz) {
+ return addDontWarn(clazz.getTypeName() + "$-EL");
}
// TODO(b/176143558): Should not report missing classes for compiler synthesized classes.
@@ -142,10 +167,18 @@
return addDontWarn("javax.**");
}
+ public T addDontWarnJavaxNullableAnnotation() {
+ return addDontWarn("javax.annotation.Nullable");
+ }
+
public T addDontWarnJavaLangInvoke() {
return addDontWarn("java.lang.invoke.*");
}
+ public T addDontWarnJavaLangInvoke(String className) {
+ return addDontWarn("java.lang.invoke." + className);
+ }
+
public T addDontWarnJavaNioFile() {
return addDontWarn("java.nio.file.**");
}
@@ -157,7 +190,15 @@
}
public T addDontWarnJetBrainsAnnotations() {
- return addDontWarn("org.jetbrains.annotations.NotNull", "org.jetbrains.annotations.Nullable");
+ return addDontWarnJetBrainsNotNullAnnotation().addDontWarnJetBrainsNullableAnnotation();
+ }
+
+ public T addDontWarnJetBrainsNotNullAnnotation() {
+ return addDontWarn("org.jetbrains.annotations.NotNull");
+ }
+
+ public T addDontWarnJetBrainsNullableAnnotation() {
+ return addDontWarn("org.jetbrains.annotations.Nullable");
}
// TODO(b/176133676): Should not report missing classes for Kotlin classes.
@@ -184,6 +225,11 @@
return addDontWarn("j$.retarget.$r8$retargetLibraryMember**");
}
+ @Deprecated
+ public T addDontWarnRetargetLibraryMember(String suffix) {
+ return addDontWarn("j$.retarget.$r8$retargetLibraryMember$" + suffix);
+ }
+
// TODO(b/154849103): Should not warn about SerializedLambda.
@Deprecated
public T addDontWarnSerializedLambda() {
@@ -198,6 +244,11 @@
// TODO(b/176144018): Should not report compiler synthesized references as missing.
@Deprecated
+ public T addDontWarnVivifiedClass(Class<?> clazz) {
+ return addDontWarn("$-vivified-$." + clazz.getTypeName());
+ }
+
+ @Deprecated
public T addDontWarnVivifiedClasses() {
return addDontWarn("$-vivified-$.**");
}
diff --git a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
index 84d55b4..98421ae 100644
--- a/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
+++ b/src/test/java/com/android/tools/r8/annotations/SourceDebugExtensionTest.java
@@ -66,7 +66,7 @@
.addProgramFiles(kotlinSources)
.addKeepAttributes(ProguardKeepAttributes.SOURCE_DEBUG_EXTENSION)
.addKeepAllClassesRule()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMode(CompilationMode.RELEASE)
.setMinApi(parameters.getApiLevel())
.compile()
diff --git a/src/test/java/com/android/tools/r8/cf/PrintSeedsWithDeserializeLambdaMethodTest.java b/src/test/java/com/android/tools/r8/cf/PrintSeedsWithDeserializeLambdaMethodTest.java
index ed9277a..ee7ff0f 100644
--- a/src/test/java/com/android/tools/r8/cf/PrintSeedsWithDeserializeLambdaMethodTest.java
+++ b/src/test/java/com/android/tools/r8/cf/PrintSeedsWithDeserializeLambdaMethodTest.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.TestShrinkerBuilder;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
@@ -53,7 +54,7 @@
.addProgramClasses(getClasses())
.setMinApi(parameters.getApiLevel())
.addKeepMainRule(getMainClass())
- .addDontWarnSerializedLambda()
+ .applyIf(parameters.isDexRuntime(), TestShrinkerBuilder::addDontWarnSerializedLambda)
.addPrintSeeds()
.allowStdoutMessages()
.noMinification()
diff --git a/src/test/java/com/android/tools/r8/classlookup/LibraryClassExtendsProgramClassTest.java b/src/test/java/com/android/tools/r8/classlookup/LibraryClassExtendsProgramClassTest.java
index 363008d..1b68052 100644
--- a/src/test/java/com/android/tools/r8/classlookup/LibraryClassExtendsProgramClassTest.java
+++ b/src/test/java/com/android/tools/r8/classlookup/LibraryClassExtendsProgramClassTest.java
@@ -195,9 +195,11 @@
public void testWithDontWarn() throws Exception {
testForR8(parameters.getBackend())
.setMinApi(parameters.getApiLevel())
+ .addProgramClasses(TestClass.class)
.addProgramClassFileData(junitClasses)
.addKeepAllClassesRule()
- .addKeepRules("-dontwarn android.test.**")
+ .applyIf(
+ libraryContainsJUnit(), builder -> builder.addKeepRules("-dontwarn android.test.**"))
.addOptionsModification(options -> options.lookupLibraryBeforeProgram = false)
.compile()
.assertNoMessages();
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
index 8397b6d..2494871 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/BufferedReaderTest.java
@@ -174,7 +174,11 @@
configurationAlternative3(options, false, parameters))
.addInnerClasses(BufferedReaderTest.class)
.addKeepMainRule(TestClass.class)
- .addDontWarnRetargetLibraryMembers()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder ->
+ builder.addDontWarnRetargetLibraryMember(
+ "virtualDispatch$BufferedReader$lines$dispatchHolder"))
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.enableInliningAnnotations()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionForwardingTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionForwardingTest.java
index 1d08bfa..33d3f35 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionForwardingTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionForwardingTest.java
@@ -5,6 +5,8 @@
package com.android.tools.r8.desugar.desugaredlibrary;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestShrinkerBuilder;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import java.util.ArrayList;
@@ -62,7 +64,9 @@
.addKeepMainRule(Executor.class)
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
- .addDontWarnEmulatedLibraryClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ TestShrinkerBuilder::addDontWarnEmulatedLibraryClasses)
.compile()
.addDesugaredCoreLibraryRunClassPath(
this::buildDesugaredLibrary,
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionInterfaceSuperTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionInterfaceSuperTest.java
index e26c8c3..7206b75 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionInterfaceSuperTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionInterfaceSuperTest.java
@@ -7,6 +7,7 @@
import static org.junit.Assume.assumeTrue;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import java.util.Collection;
@@ -80,8 +81,12 @@
testForR8(parameters.getBackend())
.addInnerClasses(CustomCollectionInterfaceSuperTest.class)
.addKeepMainRule(Main.class)
- .addDontWarnEmulatedLibraryClasses()
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder ->
+ builder
+ .addDontWarnEmulatedLibraryClass(Collection.class)
+ .addDontWarnVivifiedClass(Predicate.class))
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionSuperCallsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionSuperCallsTest.java
index 6d78e52..1455d77 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionSuperCallsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionSuperCallsTest.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.D8TestRunResult;
import com.android.tools.r8.R8TestRunResult;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import java.nio.file.Path;
import java.util.ArrayList;
@@ -106,7 +107,9 @@
testForR8(parameters.getBackend())
.addInnerClasses(CustomCollectionSuperCallsTest.class)
.addKeepMainRule(Executor.class)
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnVivifiedClasses())
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
index cd832f4..9212761 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/CustomCollectionTest.java
@@ -133,8 +133,9 @@
.addInnerClasses(CustomCollectionTest.class)
.setMinApi(parameters.getApiLevel())
.addKeepClassAndMembersRules(Executor.class)
- .addDontWarnEmulatedLibraryClasses()
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ requiresEmulatedInterfaceCoreLibDesugaring(parameters),
+ builder -> builder.addDontWarnEmulatedLibraryClasses().addDontWarnVivifiedClasses())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
.inspect(this::assertCustomCollectionCallsCorrect)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/FeatureSplitTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/FeatureSplitTest.java
index 16377244..aee313b 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/FeatureSplitTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/FeatureSplitTest.java
@@ -247,7 +247,9 @@
SplitterTestBase.simpleSplitProvider(
builder, feature2Path, temp, FeatureClass2.class))
.addKeepAllClassesRule()
- .addDontWarnEmulatedLibraryClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnEmulatedLibraryClasses())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
.writeToZip(basePath);
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
index e030d3f..c5b73a6 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
@@ -264,7 +264,9 @@
testForR8(parameters.getBackend())
.addInnerClasses(JavaTimeTest.class)
.addKeepMainRule(TestClass.class)
- .addDontWarnRetargetLibraryMembers()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.O),
+ builder -> builder.addDontWarnRetargetLibraryMembers())
.enableNoVerticalClassMergingAnnotations()
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MinimalInterfaceSuperTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MinimalInterfaceSuperTest.java
index 1e2a8e8..6c443af 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MinimalInterfaceSuperTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/MinimalInterfaceSuperTest.java
@@ -6,6 +6,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
import java.util.AbstractCollection;
import java.util.Collection;
@@ -45,7 +46,9 @@
testForR8(parameters.getBackend())
.addInnerClasses(MinimalInterfaceSuperTest.class)
.addKeepMainRule(Main.class)
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnVivifiedClass(Predicate.class))
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel())
.compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoForwardingMethodsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoForwardingMethodsTest.java
index b8f2a9f..da41454 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoForwardingMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/NoForwardingMethodsTest.java
@@ -7,6 +7,7 @@
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import java.util.ArrayList;
@@ -65,7 +66,9 @@
.setMinApi(parameters.getApiLevel())
.addKeepClassAndMembersRules(Executor.class)
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
- .addDontWarnEmulatedLibraryClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnEmulatedLibraryClass(Collection.class))
.compile()
.inspect(this::assertNoForwardingStreamMethod)
.addDesugaredCoreLibraryRunClassPath(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/RetargetOverrideTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/RetargetOverrideTest.java
index bacc4ec..3eb81ed 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/RetargetOverrideTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/RetargetOverrideTest.java
@@ -5,6 +5,7 @@
package com.android.tools.r8.desugar.desugaredlibrary;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import java.time.Instant;
import java.time.ZonedDateTime;
@@ -62,9 +63,13 @@
testForR8(Backend.DEX)
.addKeepMainRule(Executor.class)
.addInnerClasses(RetargetOverrideTest.class)
- .addDontWarnRetargetLibraryMembers()
- .addDontWarnTimeConversions()
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.O),
+ builder ->
+ builder
+ .addDontWarnRetargetLibraryMembers()
+ .addDontWarnTimeConversions()
+ .addDontWarnVivifiedClasses())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.setMinApi(parameters.getApiLevel())
.compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SynchronizedCollectionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SynchronizedCollectionTest.java
index b1234ab..df9d84e 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SynchronizedCollectionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/SynchronizedCollectionTest.java
@@ -7,6 +7,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestRuntime.CfVm;
import com.android.tools.r8.ToolHelper;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.StringUtils;
import java.nio.file.Path;
@@ -79,7 +80,9 @@
testForR8(parameters.getBackend())
.addProgramFiles(INPUT_JAR)
.addKeepMainRule(MAIN_CLASS)
- .addDontWarnEmulatedLibraryClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnEmulatedLibraryClasses())
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/CallBackConversionTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/CallBackConversionTest.java
index 71e690e..42997cb 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/CallBackConversionTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/CallBackConversionTest.java
@@ -172,7 +172,9 @@
.setMinApi(parameters.getApiLevel())
.addProgramClasses(Impl.class)
.addLibraryClasses(CustomLibClass.class)
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnVivifiedClass(Consumer.class))
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
.inspect(this::assertLibraryOverridesThere)
@@ -190,7 +192,7 @@
.setMinApi(parameters.getApiLevel())
.addProgramClasses(Impl.class)
.addLibraryClasses(CustomLibClass.class)
- .addDontWarnVivifiedClasses()
+ .addDontWarnVivifiedClass(Consumer.class)
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
.inspect(this::assertLibraryOverridesThere)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionIntroduceInterfaceMethodTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionIntroduceInterfaceMethodTest.java
index d769448..1298096 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionIntroduceInterfaceMethodTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/ConversionIntroduceInterfaceMethodTest.java
@@ -154,7 +154,10 @@
opt.desugaredLibraryConfiguration =
configurationWithSupportAllCallbacksFromLibrary(
opt, false, parameters, supportAllCallbacksFromLibrary))
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N)
+ && supportAllCallbacksFromLibrary,
+ builder -> builder.addDontWarnVivifiedClass(Consumer.class))
.compile()
.inspect(this::assertDoubleForEach)
.inspect(this::assertWrapperMethodsPresent)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/DuplicateAPIProgramTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/DuplicateAPIProgramTest.java
index 4b8c213..8fa7780 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/DuplicateAPIProgramTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/conversiontests/DuplicateAPIProgramTest.java
@@ -84,7 +84,9 @@
.addKeepMainRule(Executor.class)
.addProgramClasses(Executor.class, MyMap.class)
.addLibraryClasses(CustomLibClass.class)
- .addDontWarnVivifiedClasses()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.N),
+ builder -> builder.addDontWarnVivifiedClass(BiConsumer.class))
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
.compile()
.inspect(this::assertDupMethod)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GetGenericInterfaceTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GetGenericInterfaceTest.java
index 1ba5416..0e66723 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GetGenericInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GetGenericInterfaceTest.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase;
+import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.BooleanUtils;
import dalvik.system.PathClassLoader;
import java.sql.SQLDataException;
@@ -73,7 +74,11 @@
testForR8(Backend.DEX)
.addInnerClasses(GetGenericInterfaceTest.class)
.addKeepMainRule(Executor.class)
- .addDontWarnRetargetLibraryMembers()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.O),
+ builder ->
+ builder.addDontWarnRetargetLibraryMember(
+ "virtualDispatch$Date$toInstant$dispatchInterface"))
.noMinification()
.setMinApi(parameters.getApiLevel())
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
index 45e6af7..d5a6637 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonAllMapsTest.java
@@ -61,6 +61,7 @@
.addProgramFiles(GSON_2_8_1_JAR)
.addKeepMainRule(AllMapsTestClass.class)
.addKeepRuleFiles(GSON_CONFIGURATION)
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.allowDiagnosticMessages()
.enableCoreLibraryDesugaring(parameters.getApiLevel(), keepRuleConsumer)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
index d3fd68a..62cf8d2 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/gson/GsonOptionalTest.java
@@ -56,6 +56,7 @@
.addProgramFiles(GSON_2_8_1_JAR)
.addKeepMainRule(OptionalTestClass.class)
.addKeepRuleFiles(GSON_CONFIGURATION)
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.addOptionsModification(opt -> opt.ignoreMissingClasses = true)
.allowDiagnosticMessages()
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8BootstrapTest.java b/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8BootstrapTest.java
index ee5b311..5a788bf 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8BootstrapTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8BootstrapTest.java
@@ -68,8 +68,6 @@
.addKeepRuleFiles(MAIN_KEEP)
.addOptionsModification(
options -> options.testing.enableForceNestBasedAccessDesugaringForTest = desugar)
- .addDontWarnGoogle()
- .addDontWarnJavax()
.compile()
.inspect(inspector -> assertNests(inspector, desugar))
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8CompilationTest.java b/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8CompilationTest.java
index eecd15c..bf9a226 100644
--- a/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8CompilationTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/nestaccesscontrol/Java11R8CompilationTest.java
@@ -51,8 +51,10 @@
.addProgramFiles(ToolHelper.R8_WITH_RELOCATED_DEPS_11_JAR)
.addKeepRuleFiles(MAIN_KEEP)
// TODO(b/177967938): Investigate why this is needed.
- .addDontWarnJavaLangInvoke()
- .addDontWarnJavaNioFile()
+ .applyIf(
+ parameters.getApiLevel().isLessThan(AndroidApiLevel.O),
+ builder -> builder.addDontWarnJavaLangInvoke().addDontWarnJavaNioFile(),
+ builder -> builder.addDontWarnJavaLangInvoke("StringConcatFactory"))
.addOptionsModification(opt -> opt.ignoreMissingClasses = true)
.compile()
.inspect(this::assertNotEmpty)
diff --git a/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderOnlyReferencedFromDynamicMethodTest.java b/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderOnlyReferencedFromDynamicMethodTest.java
index 6405047..d603cc1 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderOnlyReferencedFromDynamicMethodTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderOnlyReferencedFromDynamicMethodTest.java
@@ -49,6 +49,7 @@
.addKeepRuleFiles(PROTOBUF_LITE_PROGUARD_RULES)
.allowAccessModification()
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProtoShrinking()
.setMinApi(parameters.getApiLevel())
diff --git a/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderShrinkingTest.java b/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderShrinkingTest.java
index 1375f54..868c061 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderShrinkingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/Proto2BuilderShrinkingTest.java
@@ -74,6 +74,7 @@
.addKeepRuleFiles(PROTOBUF_LITE_PROGUARD_RULES)
.allowAccessModification()
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableInliningAnnotations()
.enableProtoShrinking()
diff --git a/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java b/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
index d88e281..2d2e79f 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/Proto2ShrinkingTest.java
@@ -87,6 +87,7 @@
.addNoHorizontalClassMergingRule(PARTIALLY_USED + "$Enum$1")
.allowAccessModification(allowAccessModification)
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProguardTestOptions()
.enableProtoShrinking()
@@ -356,6 +357,7 @@
.addKeepRules(keepDynamicMethodSignatureRule(), keepNewMessageInfoSignatureRule())
.allowAccessModification(allowAccessModification)
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProtoShrinking()
.minification(enableMinification)
diff --git a/src/test/java/com/android/tools/r8/internal/proto/Proto3ShrinkingTest.java b/src/test/java/com/android/tools/r8/internal/proto/Proto3ShrinkingTest.java
index 429c340..a3c0705 100644
--- a/src/test/java/com/android/tools/r8/internal/proto/Proto3ShrinkingTest.java
+++ b/src/test/java/com/android/tools/r8/internal/proto/Proto3ShrinkingTest.java
@@ -60,6 +60,7 @@
.addKeepRuleFiles(PROTOBUF_LITE_PROGUARD_RULES)
.allowAccessModification(allowAccessModification)
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProtoShrinking()
.minification(enableMinification)
@@ -108,6 +109,7 @@
.addKeepRules(keepDynamicMethodSignatureRule(), keepNewMessageInfoSignatureRule())
.allowAccessModification(allowAccessModification)
.allowDiagnosticMessages()
+ .allowUnusedDontWarnPatterns()
.allowUnusedProguardConfigurationRules()
.enableProtoShrinking()
.minification(enableMinification)
diff --git a/src/test/java/com/android/tools/r8/ir/InlineTest.java b/src/test/java/com/android/tools/r8/ir/InlineTest.java
index 4d8926c..18f15fd 100644
--- a/src/test/java/com/android/tools/r8/ir/InlineTest.java
+++ b/src/test/java/com/android/tools/r8/ir/InlineTest.java
@@ -21,7 +21,6 @@
import com.android.tools.r8.ir.code.InstructionListIterator;
import com.android.tools.r8.shaking.Enqueuer;
import com.android.tools.r8.shaking.EnqueuerFactory;
-import com.android.tools.r8.shaking.ProguardClassFilter;
import com.android.tools.r8.shaking.ProguardConfiguration;
import com.android.tools.r8.shaking.ProguardKeepRule;
import com.android.tools.r8.shaking.RootSetBuilder;
@@ -77,9 +76,7 @@
Timing timing = Timing.empty();
Enqueuer enqueuer =
EnqueuerFactory.createForInitialTreeShaking(appView, executorService, subtypingInfo);
- appView.setAppInfo(
- enqueuer.traceApplication(
- appView.rootSet(), ProguardClassFilter.empty(), executorService, timing));
+ appView.setAppInfo(enqueuer.traceApplication(appView.rootSet(), executorService, timing));
return new TestApplication(appView, method, additionalCode);
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
index f272406..0abfe16 100644
--- a/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
+++ b/src/test/java/com/android/tools/r8/kotlin/AbstractR8KotlinTestBase.java
@@ -270,7 +270,6 @@
.enableProguardTestOptions()
.noMinification()
.apply(configuration)
- .addDontWarnJetBrainsAnnotations()
.compile()
.assertAllWarningMessagesMatch(
containsString("Resource 'META-INF/MANIFEST.MF' already exists."))
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
index 293caa8..19c0b89 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassInlinerTest.java
@@ -90,6 +90,7 @@
testBuilder
// TODO(jsjeon): Introduce @NeverInline to kotlinR8TestResources
.addKeepRules("-neverinline class * { void test*State*(...); }")
+ .addDontWarnJetBrainsNotNullAnnotation()
.noClassInlining())
.inspect(
inspector -> {
@@ -110,7 +111,8 @@
testBuilder ->
testBuilder
// TODO(jsjeon): Introduce @NeverInline to kotlinR8TestResources
- .addKeepRules("-neverinline class * { void test*State*(...); }"))
+ .addKeepRules("-neverinline class * { void test*State*(...); }")
+ .addDontWarnJetBrainsNotNullAnnotation())
.inspect(
inspector -> {
Predicate<DexType> lambdaCheck = createLambdaCheck(inspector);
@@ -156,6 +158,7 @@
"-neverinline class * { void test*State*(...); }",
"-neverinline class * { void testBigExtraMethod(...); }",
"-neverinline class * { void testBigExtraMethodReturningLambda(...); }")
+ .addDontWarnJetBrainsAnnotations()
.noClassInlining())
.inspect(
inspector -> {
@@ -197,9 +200,10 @@
testBuilder
// TODO(jsjeon): Introduce @NeverInline to kotlinR8TestResources
.addKeepRules(
- "-neverinline class * { void test*State*(...); }",
- "-neverinline class * { void testBigExtraMethod(...); }",
- "-neverinline class * { void testBigExtraMethodReturningLambda(...); }"))
+ "-neverinline class * { void test*State*(...); }",
+ "-neverinline class * { void testBigExtraMethod(...); }",
+ "-neverinline class * { void testBigExtraMethodReturningLambda(...); }")
+ .addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
Predicate<DexType> lambdaCheck = createLambdaCheck(inspector);
@@ -280,7 +284,10 @@
public void testDataClass() throws Exception {
assumeTrue("Only work with -allowaccessmodification", allowAccessModification);
final String mainClassName = "class_inliner_data_class.MainKt";
- runTestWithDefaults("class_inliner_data_class", mainClassName)
+ runTestWithDefaults(
+ "class_inliner_data_class",
+ mainClassName,
+ builder -> builder.addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject clazz = inspector.clazz(mainClassName);
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java
index ec1793d..e5d0d09 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinClassStaticizerTest.java
@@ -74,6 +74,10 @@
return runTest(
folder,
mainClass,
- testBuilder -> testBuilder.noClassInlining().noClassStaticizing(noClassStaticizing));
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .noClassInlining()
+ .noClassStaticizing(noClassStaticizing));
}
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
index 5d41673..eb1ca57 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinIntrinsicsInlineTest.java
@@ -58,7 +58,7 @@
StringUtils.lines(
"-keepclasseswithmembers class " + MAIN + "{", " public static *** *(...);", "}"))
.allowAccessModification(allowAccessModification)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.noMinification()
.setMinApi(parameters.getRuntime())
.compile()
@@ -103,7 +103,7 @@
"-keepclasseswithmembers class " + MAIN + "{",
" public static *** " + methodName + "(...);",
"}"))
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.allowAccessModification(allowAccessModification)
.noMinification()
.setMinApi(parameters.getRuntime())
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java
index b59d98c..5e25b92 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedArgumentsInLambdasTest.java
@@ -10,6 +10,7 @@
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler;
+import com.android.tools.r8.TestShrinkerBuilder;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
@@ -36,7 +37,10 @@
@Test
public void testMergingKStyleLambdasAfterUnusedArgumentRemoval() throws Exception {
final String mainClassName = "unused_arg_in_lambdas_kstyle.MainKt";
- runTest("unused_arg_in_lambdas_kstyle", mainClassName)
+ runTest(
+ "unused_arg_in_lambdas_kstyle",
+ mainClassName,
+ TestShrinkerBuilder::addDontWarnJetBrainsAnnotations)
.inspect(
inspector ->
inspector.forAllClasses(
@@ -57,7 +61,10 @@
@Test
public void testMergingJStyleLambdasAfterUnusedArgumentRemoval() throws Exception {
final String mainClassName = "unused_arg_in_lambdas_jstyle.MainKt";
- runTest("unused_arg_in_lambdas_jstyle", mainClassName)
+ runTest(
+ "unused_arg_in_lambdas_jstyle",
+ mainClassName,
+ TestShrinkerBuilder::addDontWarnJetBrainsAnnotations)
.inspect(
inspector ->
inspector.forAllClasses(
diff --git a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java
index c358325..6a8e196 100644
--- a/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/KotlinUnusedSingletonTest.java
@@ -11,6 +11,7 @@
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.KotlinCompilerTool.KotlinCompiler;
+import com.android.tools.r8.TestShrinkerBuilder;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.codeinspector.ClassSubject;
@@ -45,7 +46,10 @@
public void b110196118() throws Exception {
final String mainClassName = "unused_singleton.MainKt";
final String moduleName = "unused_singleton.TestModule";
- runTest("unused_singleton", mainClassName)
+ runTest(
+ "unused_singleton",
+ mainClassName,
+ TestShrinkerBuilder::addDontWarnJetBrainsNotNullAnnotation)
.inspect(
inspector -> {
ClassSubject main = inspector.clazz(mainClassName);
diff --git a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
index cd17827..b80d89f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinReflectionLibTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.KotlinTargetVersion;
import com.android.tools.r8.shaking.ProguardKeepAttributes;
-import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -38,75 +37,75 @@
this.parameters = parameters;
}
- private void test(Collection<String> rules) throws Exception {
- test(rules, null);
- }
-
- private void test(
- Collection<String> rules, ThrowableConsumer<R8FullTestBuilder> consumer) throws Exception {
+ private void test(ThrowableConsumer<R8FullTestBuilder> consumer) throws Exception {
testForR8(parameters.getBackend())
.addLibraryFiles(
ToolHelper.getMostRecentAndroidJar(), ToolHelper.getKotlinStdlibJar(kotlinc))
.addProgramFiles(ToolHelper.getKotlinReflectJar(kotlinc))
- .addKeepRules(rules)
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrains()
.apply(consumer)
.compile();
}
@Test
public void testAsIs() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontoptimize", "-dontobfuscate"));
+ test(
+ builder ->
+ builder.addDontWarnJetBrains().noMinification().noOptimization().noTreeShaking());
}
@Test
public void testDontShrinkAndDontOptimize() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontoptimize"));
+ test(builder -> builder.addDontWarnJetBrains().noOptimization().noTreeShaking());
}
@Test
public void testDontShrinkAndDontOptimizeDifferently() throws Exception {
- test(
- ImmutableList.of("-keep,allowobfuscation class **.*KClasses*"),
- tb -> {
- tb.noTreeShaking();
- tb.addOptionsModification(o -> {
- // Randomly choose a couple of optimizations.
- o.enableVerticalClassMerging = false;
- o.enableClassStaticizer = false;
- o.outline.enabled = false;
- });
- });
+ test(
+ builder ->
+ builder
+ .addKeepRules("-keep,allowobfuscation class **.*KClasses*")
+ .addDontWarnJetBrains()
+ .noTreeShaking()
+ .addOptionsModification(
+ o -> {
+ // Randomly choose a couple of optimizations.
+ o.enableVerticalClassMerging = false;
+ o.enableClassStaticizer = false;
+ o.outline.enabled = false;
+ }));
}
@Test
public void testDontShrinkAndDontObfuscate() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontobfuscate"));
+ test(builder -> builder.addDontWarnJetBrains().noMinification().noTreeShaking());
}
@Test
public void testDontShrink() throws Exception {
- test(ImmutableList.of("-dontshrink"));
+ test(builder -> builder.addDontWarnJetBrains().noTreeShaking());
}
@Test
public void testDontShrinkDifferently() throws Exception {
test(
- ImmutableList.of("-keep,allowobfuscation class **.*KClasses*"),
- tb -> tb.noTreeShaking());
+ builder ->
+ builder
+ .addKeepRules("-keep,allowobfuscation class **.*KClasses*")
+ .addDontWarnJetBrains()
+ .noTreeShaking());
}
@Test
public void testDontOptimize() throws Exception {
- test(ImmutableList.of("-dontoptimize"));
+ test(builder -> builder.noOptimization());
}
@Test
public void testDontObfuscate() throws Exception {
- test(ImmutableList.of("-dontobfuscate"));
+ test(builder -> builder.noMinification());
}
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
index b335d4c..5c6c724 100644
--- a/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/ProcessKotlinStdlibTest.java
@@ -51,52 +51,57 @@
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
.apply(consumer)
.compile();
}
@Test
public void testAsIs() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontoptimize", "-dontobfuscate"));
+ test(
+ ImmutableList.of("-dontshrink", "-dontoptimize", "-dontobfuscate"),
+ builder -> builder.addDontWarnJetBrainsAnnotations());
}
@Test
public void testDontShrinkAndDontOptimize() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontoptimize"));
+ test(
+ ImmutableList.of("-dontshrink", "-dontoptimize"),
+ builder -> builder.addDontWarnJetBrainsAnnotations());
}
@Test
public void testDontShrinkAndDontOptimizeDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*Exception*"),
- tb -> {
- tb.noTreeShaking();
- tb.addOptionsModification(
- o -> {
- // Randomly choose a couple of optimizations.
- o.enableClassInlining = false;
- o.enableLambdaMerging = false;
- o.enableValuePropagation = false;
- });
- });
+ tb ->
+ tb.addDontWarnJetBrainsAnnotations()
+ .noTreeShaking()
+ .addOptionsModification(
+ o -> {
+ // Randomly choose a couple of optimizations.
+ o.enableClassInlining = false;
+ o.enableLambdaMerging = false;
+ o.enableValuePropagation = false;
+ }));
}
@Test
public void testDontShrinkAndDontObfuscate() throws Exception {
- test(ImmutableList.of("-dontshrink", "-dontobfuscate"));
+ test(
+ ImmutableList.of("-dontshrink", "-dontobfuscate"),
+ builder -> builder.addDontWarnJetBrainsAnnotations());
}
@Test
public void testDontShrink() throws Exception {
- test(ImmutableList.of("-dontshrink"));
+ test(ImmutableList.of("-dontshrink"), builder -> builder.addDontWarnJetBrainsAnnotations());
}
@Test
public void testDontShrinkDifferently() throws Exception {
test(
ImmutableList.of("-keep,allowobfuscation class **.*Exception*"),
- tb -> tb.noTreeShaking());
+ tb -> tb.addDontWarnJetBrainsAnnotations().noTreeShaking());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
index cd5d8b1..3e3b8a2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinAccessorTest.java
@@ -83,7 +83,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
"companionProperties_usePrimitiveProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass, R8TestBuilder::noClassStaticizing)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsNotNullAnnotation().noClassStaticizing())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -116,7 +119,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
"companionProperties_usePrivateProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass, R8TestBuilder::noClassStaticizing)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsNotNullAnnotation().noClassStaticizing())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -151,7 +157,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
"companionProperties_useInternalProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass, R8TestBuilder::noClassStaticizing)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsNotNullAnnotation().noClassStaticizing())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -185,7 +194,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionPropertiesKt",
"companionProperties_usePublicProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass, R8TestBuilder::noClassStaticizing)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsNotNullAnnotation().noClassStaticizing())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -219,7 +231,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_LATE_INIT_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
"companionLateInitProperties_usePrivateLateInitProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass, R8TestBuilder::noClassStaticizing)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsAnnotations().noClassStaticizing())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -252,7 +267,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_LATE_INIT_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
"companionLateInitProperties_useInternalLateInitProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -281,7 +299,10 @@
final TestKotlinCompanionClass testedClass = COMPANION_LATE_INIT_PROPERTY_CLASS;
String mainClass = addMainToClasspath("properties.CompanionLateInitPropertiesKt",
"companionLateInitProperties_usePublicLateInitProp");
- runTest(PROPERTIES_PACKAGE_NAME, mainClass)
+ runTest(
+ PROPERTIES_PACKAGE_NAME,
+ mainClass,
+ builder -> builder.addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -359,7 +380,7 @@
String mainClass =
addMainToClasspath(
"accessors.PropertyAccessorForInnerClassKt", "noUseOfPropertyAccessorFromInnerClass");
- runTest("accessors", mainClass)
+ runTest("accessors", mainClass, builder -> builder.addDontWarnJetBrainsNotNullAnnotation())
.inspect(
inspector -> {
// Class is removed because the instantiation of the inner class has no side effects.
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
index ef13161..3faf486 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinDataClassTest.java
@@ -66,7 +66,10 @@
"dataclass",
mainClassName,
testBuilder ->
- testBuilder.addKeepRules(extraRules).addOptionsModification(disableClassInliner))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
ClassSubject dataClass = checkClassIsKept(inspector, TEST_DATA_CLASS.getClassName());
@@ -107,7 +110,10 @@
"dataclass",
mainClassName,
testBuilder ->
- testBuilder.addKeepRules(extraRules).addOptionsModification(disableClassInliner))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
ClassSubject dataClass = checkClassIsKept(inspector, TEST_DATA_CLASS.getClassName());
@@ -147,7 +153,10 @@
"dataclass",
mainClassName,
testBuilder ->
- testBuilder.addKeepRules(extraRules).addOptionsModification(disableClassInliner))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
ClassSubject dataClass = checkClassIsKept(inspector, TEST_DATA_CLASS.getClassName());
@@ -187,7 +196,10 @@
"dataclass",
mainClassName,
testBuilder ->
- testBuilder.addKeepRules(extraRules).addOptionsModification(disableClassInliner))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
ClassSubject dataClass = checkClassIsKept(inspector, TEST_DATA_CLASS.getClassName());
@@ -207,7 +219,10 @@
"dataclass",
mainClassName,
testBuilder ->
- testBuilder.addKeepRules(extraRules).addOptionsModification(disableClassInliner))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableClassInliner))
.inspect(
inspector -> {
ClassSubject dataClass = checkClassIsKept(inspector, TEST_DATA_CLASS.getClassName());
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
index ea12c12..934ee16 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinIntrinsicsTest.java
@@ -47,7 +47,10 @@
"intrinsics",
"intrinsics.IntrinsicsKt",
testBuilder ->
- testBuilder.addKeepRules(extraRules).noHorizontalClassMerging(Intrinsics.class))
+ testBuilder
+ .addKeepRules(extraRules)
+ .addDontWarnJetBrainsAnnotations()
+ .noHorizontalClassMerging(Intrinsics.class))
.inspect(
inspector -> {
ClassSubject intrinsicsClass =
diff --git a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
index e04585c..d6d2477 100644
--- a/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/R8KotlinPropertiesTest.java
@@ -113,7 +113,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
checkClassIsRemoved(inspector, MUTABLE_PROPERTY_CLASS.getClassName());
@@ -127,7 +130,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -156,7 +162,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -184,7 +193,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -212,7 +224,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -240,7 +255,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -283,7 +301,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -310,7 +331,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -335,7 +359,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -358,7 +385,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject classSubject =
@@ -426,7 +456,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -459,7 +492,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -498,7 +534,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -531,7 +570,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -566,7 +608,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -603,7 +648,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -631,7 +679,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject outerClass =
@@ -659,7 +710,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -697,7 +751,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -729,7 +786,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -768,7 +828,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -807,7 +870,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -839,7 +905,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -865,7 +934,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -891,7 +963,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -922,7 +997,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -953,7 +1031,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -986,7 +1067,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -1018,7 +1102,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject fileClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -1049,7 +1136,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
@@ -1077,7 +1167,10 @@
runTest(
PACKAGE_NAME,
mainClass,
- testBuilder -> testBuilder.addOptionsModification(disableAggressiveClassOptimizations))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(disableAggressiveClassOptimizations))
.inspect(
inspector -> {
ClassSubject objectClass = checkClassIsKept(inspector, testedClass.getClassName());
diff --git a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
index 70fd115..64e3a80 100644
--- a/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/SimplifyIfNotNullKotlinTest.java
@@ -43,7 +43,10 @@
final String mainClassName = ex1.getClassName();
final String extraRules = neverInlineMethod(mainClassName, testMethodSignature);
- runTest(FOLDER, mainClassName, testBuilder -> testBuilder.addKeepRules(extraRules))
+ runTest(
+ FOLDER,
+ mainClassName,
+ testBuilder -> testBuilder.addKeepRules(extraRules).addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject clazz = checkClassIsKept(inspector, ex1.getClassName());
@@ -67,7 +70,10 @@
final String mainClassName = ex2.getClassName();
final String extraRules = neverInlineMethod(mainClassName, testMethodSignature);
- runTest(FOLDER, mainClassName, testBuilder -> testBuilder.addKeepRules(extraRules))
+ runTest(
+ FOLDER,
+ mainClassName,
+ testBuilder -> testBuilder.addKeepRules(extraRules).addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject clazz = checkClassIsKept(inspector, ex2.getClassName());
@@ -91,7 +97,10 @@
final String mainClassName = ex3.getClassName();
final String extraRules = neverInlineMethod(mainClassName, testMethodSignature);
- runTest(FOLDER, mainClassName, testBuilder -> testBuilder.addKeepRules(extraRules))
+ runTest(
+ FOLDER,
+ mainClassName,
+ testBuilder -> testBuilder.addKeepRules(extraRules).addDontWarnJetBrainsAnnotations())
.inspect(
inspector -> {
ClassSubject clazz = checkClassIsKept(inspector, ex3.getClassName());
diff --git a/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java b/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java
index f15fce0..4a05b76 100644
--- a/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java
+++ b/src/test/java/com/android/tools/r8/kotlin/coroutines/KotlinxCoroutinesTestRunner.java
@@ -80,7 +80,6 @@
.addKeepAllAttributes()
// The BASE_LIBRARY contains proguard rules that do not match.
.allowUnusedProguardConfigurationRules()
- .addDontWarnKotlinx()
.addDontWarn(
"edu.umd.cs.findbugs.annotations.SuppressFBWarnings",
"reactor.blockhound.BlockHound$Builder",
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KStyleKotlinLambdaMergingWithEnumUnboxingTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KStyleKotlinLambdaMergingWithEnumUnboxingTest.java
index 5f52b83..aea188c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KStyleKotlinLambdaMergingWithEnumUnboxingTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KStyleKotlinLambdaMergingWithEnumUnboxingTest.java
@@ -55,7 +55,7 @@
.addHorizontallyMergedLambdaClassesInspector(
inspector -> inspector.assertMerged(Lambda1.class, Lambda2.class))
.addEnumUnboxingInspector(inspector -> inspector.assertUnboxed(EnumUnboxingCandidate.class))
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.enableInliningAnnotations()
.enableNeverClassInliningAnnotations()
.enableNoHorizontalClassMergingAnnotations()
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java
index 22d66d3..4f78df2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergerValidationTest.java
@@ -57,7 +57,7 @@
.addLibraryFiles(ToolHelper.getKotlinStdlibJar(kotlinc))
.addProgramFiles(ktClasses)
.addKeepMainRule("**.B143165163Kt")
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.compile()
.addRunClasspathFiles(ToolHelper.getKotlinStdlibJar(kotlinc))
@@ -81,7 +81,7 @@
.addProgramFiles(ToolHelper.getKotlinStdlibJar(kotlinc))
.addProgramFiles(ktClasses)
.addKeepMainRule("**.B143165163Kt")
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.allowDiagnosticWarningMessages()
.setMinApi(parameters.getApiLevel())
.compile()
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
index 42e5bd8..9cee958 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
@@ -45,7 +45,7 @@
.setMode(CompilationMode.DEBUG)
.addProgramFiles(compiledJars.getForConfiguration(kotlinc, KotlinTargetVersion.JAVA_6))
.addProgramFiles(getJavaJarFile(FOLDER))
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.addKeepMainRule(MAIN_CLASS)
.allowDiagnosticWarningMessages()
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTest.java
index b9e0546..5a23bd3 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingTest.java
@@ -306,6 +306,7 @@
.addKeepRules(
"-keepunusedarguments class * extends kotlin.jvm.internal.Lambda {"
+ " invoke(int, short); }")
+ .addDontWarnJetBrainsNotNullAnnotation()
.addOptionsModification(this::configure))
.inspect(
inspector -> {
@@ -356,7 +357,10 @@
runTest(
"lambdas_kstyle_captures",
mainClassName,
- testBuilder -> testBuilder.addOptionsModification(this::configure))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(this::configure))
.inspect(
inspector -> {
if (enableUnusedInterfaceRemoval) {
@@ -390,7 +394,10 @@
runTest(
"lambdas_kstyle_generics",
mainClassName,
- testBuilder -> testBuilder.addOptionsModification(this::configure))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(this::configure))
.inspect(
inspector -> {
if (enableUnusedInterfaceRemoval) {
@@ -422,6 +429,7 @@
mainClassName,
testBuilder ->
testBuilder
+ .addDontWarnJetBrainsAnnotations()
.addKeepAttributeInnerClassesAndEnclosingMethod()
.addOptionsModification(this::configure))
.inspect(
@@ -458,6 +466,7 @@
// KEEP_SIGNATURE_INNER_ENCLOSING,
testBuilder ->
testBuilder
+ .addDontWarnJetBrainsAnnotations()
.addKeepAttributeInnerClassesAndEnclosingMethod()
.addKeepAttributeSignature()
.addOptionsModification(this::configure))
@@ -494,7 +503,10 @@
runTest(
"lambdas_jstyle_trivial",
mainClassName,
- testBuilder -> testBuilder.addOptionsModification(this::configure))
+ testBuilder ->
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(this::configure))
.inspect(
inspector -> {
Verifier verifier = new Verifier(inspector);
@@ -545,7 +557,10 @@
"lambdas_singleton",
mainClassName,
testBuilder ->
- testBuilder.addOptionsModification(this::configure).noHorizontalClassMerging())
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(this::configure)
+ .noHorizontalClassMerging())
.inspect(
inspector -> {
Verifier verifier = new Verifier(inspector);
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java
index b1b38b9..b8fb366 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithReprocessingTest.java
@@ -35,11 +35,13 @@
"reprocess_merged_lambdas_kstyle",
mainClassName,
testBuilder ->
- testBuilder.addOptionsModification(
- options -> {
- options.enableInlining = true;
- options.enableClassInlining = true;
- options.enableLambdaMerging = true;
- }));
+ testBuilder
+ .addDontWarnJetBrainsNotNullAnnotation()
+ .addOptionsModification(
+ options -> {
+ options.enableInlining = true;
+ options.enableClassInlining = true;
+ options.enableLambdaMerging = true;
+ }));
}
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java
index 1dcdcfb..5032ea2 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingWithSmallInliningBudgetTest.java
@@ -35,7 +35,8 @@
"lambdas_jstyle_runnable",
mainClassName,
testBuilder ->
- testBuilder.addOptionsModification(
- options -> options.inliningInstructionAllowance = 3));
+ testBuilder
+ .addDontWarnJetBrainsAnnotations()
+ .addOptionsModification(options -> options.inliningInstructionAllowance = 3));
}
}
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
index ca609ec..e9f4e46 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b148525512/B148525512.java
@@ -139,7 +139,7 @@
.setProgramConsumer(new ArchiveConsumer(featureCode, false))
.build())
.allowDiagnosticWarningMessages()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.assertAllWarningMessagesMatch(
equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaGroupGCLimitTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaGroupGCLimitTest.java
index 2538c24..c33d03b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaGroupGCLimitTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaGroupGCLimitTest.java
@@ -94,7 +94,7 @@
inspector.assertNoClassesMerged();
}
})
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile();
Path path = compileResult.writeToZip();
compileResult
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java
index 251880f..663c081 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/b159688129/LambdaSplitByCodeCorrectnessTest.java
@@ -71,7 +71,7 @@
options -> options.horizontalClassMergerOptions().disableKotlinLambdaMerging())
.setMinApi(parameters.getApiLevel())
.addKeepMainRule(PKG_NAME + ".SimpleKt")
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.applyIf(
splitGroup,
b ->
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAllowAccessModificationTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAllowAccessModificationTest.java
index 405cbcb..b6d7701 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAllowAccessModificationTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAllowAccessModificationTest.java
@@ -114,7 +114,7 @@
" void staticPrivate() -> staticPrivateReference",
" void staticInternal() -> staticInternalReference"))
.addKeepRuntimeVisibleAnnotations()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.allowAccessModification()
.compile()
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
index f08e2d3..a285149 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnnotationTest.java
@@ -121,7 +121,7 @@
ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS,
ProguardKeepAttributes.RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS,
ProguardKeepAttributes.RUNTIME_VISIBLE_TYPE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.compile()
.inspect(this::inspect)
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
index 45cf55a..8db1944 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteAnonymousTest.java
@@ -76,7 +76,7 @@
ProguardKeepAttributes.SIGNATURE,
ProguardKeepAttributes.INNER_CLASSES,
ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineAnonFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineAnonFunctionTest.java
index 94aacab..065d63f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineAnonFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineAnonFunctionTest.java
@@ -68,7 +68,7 @@
.addProgramFiles(libJars.getForConfiguration(kotlinc, targetVersion))
.addKeepAllClassesRule()
.addKeepAllAttributes()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.compile()
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineConcreteFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineConcreteFunctionTest.java
index f538a45..15f68ea 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineConcreteFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteCrossinlineConcreteFunctionTest.java
@@ -68,7 +68,7 @@
.addProgramFiles(libJars.getForConfiguration(kotlinc, targetVersion))
.addKeepAllClassesRule()
.addKeepAllAttributes()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.compile()
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
index 90badba..fbfc10f 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteFlexibleUpperBoundTest.java
@@ -88,7 +88,7 @@
ProguardKeepAttributes.SIGNATURE,
ProguardKeepAttributes.INNER_CLASSES,
ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
index 056719b..c7b9ea6 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInClasspathTypeTest.java
@@ -94,7 +94,7 @@
// to be called with Kotlin syntax from other kotlin code.
.addKeepRules("-keep class **.ImplKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
index 2059f24..bdcb905 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInCompanionTest.java
@@ -93,7 +93,7 @@
// To keep ...$Companion structure
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(codeInspector -> inspect(codeInspector, true))
.writeToZip();
@@ -136,7 +136,7 @@
// To keep ...$Companion structure
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(codeInspector -> inspect(codeInspector, false))
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
index 8a5a520..f9124bd 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionFunctionTest.java
@@ -92,7 +92,7 @@
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectMerged)
.writeToZip();
@@ -147,7 +147,7 @@
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
index 084acb0..c78cea1 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInExtensionPropertyTest.java
@@ -88,7 +88,7 @@
// to be called with Kotlin syntax from other kotlin code.
.addKeepRules("-keep class **.BKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectMerged)
.writeToZip();
@@ -152,7 +152,7 @@
// to be called with Kotlin syntax from other kotlin code.
.addKeepRules("-keep class **.BKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
index cd55724..5c8468d 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
@@ -86,7 +86,7 @@
// Keep the BKt method, which will be called from other kotlin code.
.addKeepRules("-keep class **.BKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectMerged)
.writeToZip();
@@ -148,7 +148,7 @@
// Keep the BKt method, which will be called from other kotlin code.
.addKeepRules("-keep class **.BKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
index b63d162..db348d0 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithDefaultValueTest.java
@@ -87,7 +87,7 @@
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
index cae6b9e..65207dd 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionWithVarargTest.java
@@ -89,7 +89,7 @@
.addKeepAttributes(ProguardKeepAttributes.SIGNATURE)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
index e10d738..f3c59d9 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInLibraryTypeTest.java
@@ -97,7 +97,7 @@
.addKeepMainRule(main)
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
.addDontWarn(PKG + ".**")
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.allowDiagnosticWarningMessages()
// -dontoptimize so that basic code structure is kept.
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
index e9c1a44..3949d6e 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInMultifileClassTest.java
@@ -91,7 +91,7 @@
.addKeepRules("-keep class **.UtilKt")
.addKeepRules("-keepclassmembers class * { ** comma*Join*(...); }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectMerged)
.writeToZip();
@@ -136,7 +136,7 @@
// Keep yet rename joinOf*(String).
.addKeepRules("-keepclassmembers,allowobfuscation class * { ** joinOf*(...); }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
index 78e5307..8bb4603 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInNestedClassTest.java
@@ -84,7 +84,6 @@
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
.addKeepAttributes(ProguardKeepAttributes.INNER_CLASSES)
.addKeepAttributes(ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
index e2c1191..f84fa48 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInParameterTypeTest.java
@@ -78,7 +78,7 @@
// Keep Itf, but allow minification.
.addKeepRules("-keep,allowobfuscation class **.Itf")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
index 15ee754..af4c9b6 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTest.java
@@ -84,7 +84,7 @@
.addKeepRules("-keep class **.Person { <init>(...); }")
.addKeepRules("-keepclassmembers class **.Person { *** get*(); }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectGetterOnly)
.writeToZip();
@@ -180,7 +180,7 @@
// Keep LibKt extension methods
.addKeepRules("-keep class **.LibKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectSetterOnly)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
index 3d16307..0113f19 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInPropertyTypeTest.java
@@ -76,7 +76,7 @@
// Keep non-private members of Impl
.addKeepRules("-keep public class **.Impl { !private *; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
index d6d8fc9..a4a3a68 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInRenamedTypeTest.java
@@ -68,7 +68,6 @@
.addProgramFiles(inputJarMap.getForConfiguration(kotlinc, targetVersion))
.addKeepRules(OBFUSCATE_RENAMED, KEEP_KEPT)
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
.compile()
.inspect(this::inspect);
}
@@ -82,7 +81,6 @@
.addProgramFiles(inputJarMap.getForConfiguration(kotlinc, targetVersion))
.addKeepRules(OBFUSCATE_RENAMED, KEEP_KEPT)
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
.compile()
.inspect(this::inspect);
}
@@ -99,7 +97,6 @@
.addKeepKotlinMetadata()
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
.allowDiagnosticWarningMessages()
- .addDontWarnJetBrainsAnnotations()
.compile()
.assertWarningMessageThatMatches(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
// TODO(b/155536535): Enable this assert.
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
index 6f2a2b1..c8144f4 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInReturnTypeTest.java
@@ -78,7 +78,7 @@
// Keep Itf, but allow minification.
.addKeepRules("-keep,allowobfuscation class **.Itf")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
index 008851a..ef43f6e 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSealedClassTest.java
@@ -153,7 +153,7 @@
// Keep the extension function
.addKeepRules("-keep class **.LibKt { <methods>; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspectInvalid)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
index b4cf3e6..9b0da43 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInSuperTypeTest.java
@@ -79,7 +79,6 @@
// Keep non-private members except for ones in `internal` definitions.
.addKeepRules("-keep public class !**.internal.**, * { !private *; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
.compile()
.inspect(this::inspectMerged)
.writeToZip();
@@ -127,7 +126,6 @@
// Keep `internal` definitions, but allow minification.
.addKeepRules("-keep,allowobfuscation class **.internal.** { *; }")
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
.compile()
.inspect(this::inspectRenamed)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
index 7725e83..e680d6e 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeAliasTest.java
@@ -129,7 +129,7 @@
ProguardKeepAttributes.SIGNATURE,
ProguardKeepAttributes.INNER_CLASSES,
ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
index 45f153f..acdda5b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInTypeArgumentsTest.java
@@ -133,7 +133,7 @@
ProguardKeepAttributes.SIGNATURE,
ProguardKeepAttributes.INNER_CLASSES,
ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInlinePropertyTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInlinePropertyTest.java
index 641edce..ac232d7 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInlinePropertyTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInlinePropertyTest.java
@@ -81,7 +81,7 @@
ProguardKeepAttributes.SIGNATURE,
ProguardKeepAttributes.INNER_CLASSES,
ProguardKeepAttributes.ENCLOSING_METHOD)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(this::inspect)
.writeToZip();
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteJvmStaticTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteJvmStaticTest.java
index e4e2705..0558ebc 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteJvmStaticTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteJvmStaticTest.java
@@ -89,7 +89,7 @@
.addProgramFiles(kotlincLibJar.getForConfiguration(kotlinc, targetVersion))
.addKeepAllClassesRule()
.addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.compile()
.inspect(this::inspect)
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteKeepPathTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteKeepPathTest.java
index 51f5fc9..056b18b 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteKeepPathTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteKeepPathTest.java
@@ -73,7 +73,7 @@
.addClasspathFiles(ToolHelper.getKotlinStdlibJar(kotlinc))
.addKeepRules("-keep class " + LIB_CLASS_NAME)
.addKeepRuntimeVisibleAnnotations()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(inspector -> inspect(inspector, true));
}
@@ -86,7 +86,7 @@
.addLibraryFiles(ToolHelper.getJava8RuntimeJar())
.addKeepRules("-keep class " + LIB_CLASS_NAME)
.addKeepRuntimeVisibleAnnotations()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compile()
.inspect(inspector -> inspect(inspector, true));
}
@@ -97,7 +97,7 @@
.addProgramFiles(libJars.getForConfiguration(kotlinc, targetVersion))
.addKeepRules("-keep class " + LIB_CLASS_NAME)
.addKeepRuntimeVisibleAnnotations()
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addDontWarnKotlin()
.compile()
.inspect(inspector -> inspect(inspector, true));
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePrunedObjectsTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePrunedObjectsTest.java
index 427c87d..3d3386c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePrunedObjectsTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewritePrunedObjectsTest.java
@@ -75,7 +75,6 @@
.addProgramFiles(libJars.getForConfiguration(kotlinc, targetVersion))
.addKeepRules("-keep class " + PKG_LIB + ".Sub { <init>(); *** kept(); }")
.addKeepRuntimeVisibleAnnotations()
- .addDontWarnJetBrainsAnnotations()
.addDontWarnKotlinMetadata()
.noMinification()
.compile()
diff --git a/src/test/java/com/android/tools/r8/kotlin/optimize/switches/KotlinEnumSwitchTest.java b/src/test/java/com/android/tools/r8/kotlin/optimize/switches/KotlinEnumSwitchTest.java
index 8b2b027..fe05714 100644
--- a/src/test/java/com/android/tools/r8/kotlin/optimize/switches/KotlinEnumSwitchTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/optimize/switches/KotlinEnumSwitchTest.java
@@ -46,7 +46,7 @@
options.enableEnumValueOptimization = enableSwitchMapRemoval;
options.enableEnumSwitchMapRemoval = enableSwitchMapRemoval;
})
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getRuntime())
.noMinification()
.compile()
diff --git a/src/test/java/com/android/tools/r8/kotlin/sealed/SealedClassTest.java b/src/test/java/com/android/tools/r8/kotlin/sealed/SealedClassTest.java
index b115bb7..92b6b97 100644
--- a/src/test/java/com/android/tools/r8/kotlin/sealed/SealedClassTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/sealed/SealedClassTest.java
@@ -76,7 +76,7 @@
.allowAccessModification()
.allowDiagnosticWarningMessages(parameters.isCfRuntime())
.addKeepMainRule(MAIN)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.compileWithExpectedDiagnostics(
diagnostics ->
diagnostics.assertAllWarningsMatch(
diff --git a/src/test/java/com/android/tools/r8/maindexlist/MainDexTracingTest.java b/src/test/java/com/android/tools/r8/maindexlist/MainDexTracingTest.java
index 172005c..ccaa66a 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/MainDexTracingTest.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/MainDexTracingTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestCompilerBuilder;
import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestShrinkerBuilder;
import com.android.tools.r8.ThrowableConsumer;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.references.Reference;
@@ -213,7 +214,8 @@
AndroidApiLevel.I,
builder ->
builder
- .addDontWarnCompilerSynthesizedAnnotations()
+ .applyIf(
+ backend.isDex(), TestShrinkerBuilder::addDontWarnCompilerSynthesizedAnnotations)
.addOptionsModification(options -> options.enableInlining = false));
}
diff --git a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
index d257b32..3d143a1 100644
--- a/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/KotlinIntrinsicsIdentifierTest.java
@@ -88,7 +88,7 @@
.addProgramFiles(compiledJars.getForConfiguration(kotlinc, targetVersion))
.addProgramFiles(getJavaJarFile(FOLDER))
.addKeepMainRule(mainClassName)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.allowDiagnosticWarningMessages()
.minification(minification)
.compile()
@@ -150,7 +150,7 @@
"-" + NoHorizontalClassMergingRule.RULE_NAME + " class **." + targetClassName,
"-" + NoStaticClassMergingRule.RULE_NAME + " class **." + targetClassName,
"-neverinline class **." + targetClassName + " { <methods>; }"))
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.allowDiagnosticWarningMessages()
.minification(minification)
.compile()
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
index fef2265..07487ec 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
@@ -171,7 +171,10 @@
.addProgramClassFileData(getTransformedClasses())
.setMinApi(parameters.getApiLevel())
.addKeepMainRule(Main.class)
- .addDontWarnCompanionClasses()
+ .applyIf(
+ !parameters.canUseDefaultAndStaticInterfaceMethods()
+ && !symbolicReferenceIsDefiningType,
+ builder -> builder.addDontWarnCompanionClass(J.class))
.run(parameters.getRuntime(), Main.class)
.apply(result -> checkExpectedResult(result, true));
}
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
index a715864..94e1e1a 100644
--- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionInSameFileRetraceTests.java
@@ -91,7 +91,7 @@
testForR8(parameters.getBackend())
.addProgramFiles(compilationResults.getForConfiguration(kotlinc, targetVersion))
.addProgramFiles(ToolHelper.getKotlinStdlibJar(kotlinc))
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.addKeepAttributes("SourceFile", "LineNumberTable")
.setMode(CompilationMode.RELEASE)
.addKeepMainRule(MAIN)
diff --git a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
index e018cdd..3827c26 100644
--- a/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/KotlinInlineFunctionRetraceTest.java
@@ -109,7 +109,7 @@
.allowDiagnosticWarningMessages()
.setMode(CompilationMode.RELEASE)
.addKeepMainRule(main)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.compile()
.assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
@@ -140,7 +140,7 @@
.allowDiagnosticWarningMessages()
.setMode(CompilationMode.RELEASE)
.addKeepMainRule(main)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.compile()
.assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
@@ -174,7 +174,7 @@
.allowDiagnosticWarningMessages()
.setMode(CompilationMode.RELEASE)
.addKeepMainRule(main)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.compile()
.assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
@@ -207,7 +207,7 @@
.allowDiagnosticWarningMessages()
.setMode(CompilationMode.RELEASE)
.addKeepMainRule(main)
- .addDontWarnJetBrainsAnnotations()
+ .addDontWarnJetBrainsNotNullAnnotation()
.setMinApi(parameters.getApiLevel())
.compile()
.assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."))
diff --git a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
index 4b924d5..0564197 100644
--- a/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/KeepAnnotatedMemberTest.java
@@ -202,7 +202,7 @@
.addKeepClassRules(PRESENT_ANNOTATION)
.addKeepRules("-keepclassmembers class * { @" + PRESENT_ANNOTATION + " *** *(...); }")
.addDontWarnGoogle()
- .addDontWarnJavax()
+ .addDontWarnJavaxNullableAnnotation()
.compile()
.graphInspector();
@@ -220,7 +220,7 @@
+ PRESENT_ANNOTATION
+ " *** *(...); }")
.addDontWarnGoogle()
- .addDontWarnJavax()
+ .addDontWarnJavaxNullableAnnotation()
.compile()
.graphInspector();
assertRetainedClassesEqual(referenceInspector, ifThenKeepClassMembersInspector, false, false);
@@ -239,7 +239,7 @@
+ PRESENT_ANNOTATION
+ " *** *(...); }")
.addDontWarnGoogle()
- .addDontWarnJavax()
+ .addDontWarnJavaxNullableAnnotation()
.compile()
.graphInspector();
assertRetainedClassesEqual(
@@ -261,7 +261,7 @@
+ PRESENT_ANNOTATION
+ " *** <2>(...); }")
.addDontWarnGoogle()
- .addDontWarnJavax()
+ .addDontWarnJavaxNullableAnnotation()
.compile()
.graphInspector();
// TODO(b/159418523): Should the reference be equal to the result with the conditional rule?
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index c15fb48..b479f43 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.TestParametersCollection;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.ProcessResult;
+import com.android.tools.r8.errors.dontwarn.DontWarnConfiguration;
import com.android.tools.r8.graph.ClassAccessFlags;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexType;
@@ -56,6 +57,7 @@
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
+import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.stream.Collectors;
@@ -268,7 +270,7 @@
}
private void testDontXXX(
- String xxx, Function<ProguardConfiguration, ProguardClassFilter> pattern) {
+ String xxx, Function<ProguardConfiguration, Predicate<DexType>> matcherFactory) {
DexItemFactory dexItemFactory = new DexItemFactory();
ProguardConfigurationParser parser =
new ProguardConfigurationParser(dexItemFactory, reporter);
@@ -276,19 +278,20 @@
parser.parse(createConfigurationForTesting(ImmutableList.of(configuration)));
verifyParserEndsCleanly();
ProguardConfiguration config = parser.getConfig();
- assertFalse(pattern.apply(config).matches(dexItemFactory.createType("Lboobaz;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lboobar;")));
- assertFalse(pattern.apply(config).matches(dexItemFactory.createType("Lfoobar;")));
+ Predicate<DexType> matcher = matcherFactory.apply(config);
+ assertFalse(matcher.test(dexItemFactory.createType("Lboobaz;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lboobar;")));
+ assertFalse(matcher.test(dexItemFactory.createType("Lfoobar;")));
}
@Test
public void testDontXXX() {
- testDontXXX("warn", ProguardConfiguration::getDontWarnPatterns);
- testDontXXX("note", ProguardConfiguration::getDontNotePatterns);
+ testDontXXX("warn", config -> DontWarnConfiguration.create(config)::matches);
+ testDontXXX("note", config -> config.getDontNotePatterns()::matches);
}
private void testDontXXXMultiple(
- String xxx, Function<ProguardConfiguration, ProguardClassFilter> pattern) {
+ String xxx, Function<ProguardConfiguration, Predicate<DexType>> matcherFactory) {
DexItemFactory dexItemFactory = new DexItemFactory();
ProguardConfigurationParser parser =
new ProguardConfigurationParser(dexItemFactory, reporter);
@@ -298,20 +301,21 @@
parser.parse(createConfigurationForTesting(configuration));
verifyParserEndsCleanly();
ProguardConfiguration config = parser.getConfig();
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lfoo/Bar;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lfoo/bar7Bar;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lbar/Foo;")));
+ Predicate<DexType> matcher = matcherFactory.apply(config);
+ assertTrue(matcher.test(dexItemFactory.createType("Lfoo/Bar;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lfoo/bar7Bar;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lbar/Foo;")));
}
}
@Test
public void testDontWarnMultiple() {
- testDontXXXMultiple("warn", ProguardConfiguration::getDontWarnPatterns);
- testDontXXXMultiple("note", ProguardConfiguration::getDontNotePatterns);
+ testDontXXXMultiple("warn", config -> DontWarnConfiguration.create(config)::matches);
+ testDontXXXMultiple("note", config -> config.getDontNotePatterns()::matches);
}
private void testDontXXXAllExplicitly(
- String xxx, Function<ProguardConfiguration, ProguardClassFilter> pattern) {
+ String xxx, Function<ProguardConfiguration, Predicate<DexType>> matcherFactory) {
DexItemFactory dexItemFactory = new DexItemFactory();
ProguardConfigurationParser parser =
new ProguardConfigurationParser(dexItemFactory, reporter);
@@ -319,19 +323,20 @@
parser.parse(createConfigurationForTesting(ImmutableList.of(dontwarnAll)));
verifyParserEndsCleanly();
ProguardConfiguration config = parser.getConfig();
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lboobaz;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lboobar;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lfoobar;")));
+ Predicate<DexType> matcher = matcherFactory.apply(config);
+ assertTrue(matcher.test(dexItemFactory.createType("Lboobaz;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lboobar;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lfoobar;")));
}
@Test
public void testDontWarnAllExplicitly() {
- testDontXXXAllExplicitly("warn", ProguardConfiguration::getDontWarnPatterns);
- testDontXXXAllExplicitly("note", ProguardConfiguration::getDontNotePatterns);
+ testDontXXXAllExplicitly("warn", config -> DontWarnConfiguration.create(config)::matches);
+ testDontXXXAllExplicitly("note", config -> config.getDontNotePatterns()::matches);
}
private void testDontXXXAllImplicitly(
- String xxx, Function<ProguardConfiguration, ProguardClassFilter> pattern) {
+ String xxx, Function<ProguardConfiguration, Predicate<DexType>> matcherFactory) {
DexItemFactory dexItemFactory = new DexItemFactory();
ProguardConfigurationParser parser =
new ProguardConfigurationParser(dexItemFactory, reporter);
@@ -339,15 +344,16 @@
String otherOption = "-keep class *";
parser.parse(createConfigurationForTesting(ImmutableList.of(dontwarnAll, otherOption)));
ProguardConfiguration config = parser.getConfig();
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lboobaz;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lboobar;")));
- assertTrue(pattern.apply(config).matches(dexItemFactory.createType("Lfoobar;")));
+ Predicate<DexType> matcher = matcherFactory.apply(config);
+ assertTrue(matcher.test(dexItemFactory.createType("Lboobaz;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lboobar;")));
+ assertTrue(matcher.test(dexItemFactory.createType("Lfoobar;")));
}
@Test
public void testDontWarnAllImplicitly() {
- testDontXXXAllImplicitly("warn", ProguardConfiguration::getDontWarnPatterns);
- testDontXXXAllImplicitly("note", ProguardConfiguration::getDontNotePatterns);
+ testDontXXXAllImplicitly("warn", config -> DontWarnConfiguration.create(config)::matches);
+ testDontXXXAllImplicitly("note", config -> config.getDontNotePatterns()::matches);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/shaking/annotations/LibraryAndMissingAnnotationsTest.java b/src/test/java/com/android/tools/r8/shaking/annotations/LibraryAndMissingAnnotationsTest.java
index 4e6adad..904c0cd 100644
--- a/src/test/java/com/android/tools/r8/shaking/annotations/LibraryAndMissingAnnotationsTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/annotations/LibraryAndMissingAnnotationsTest.java
@@ -107,7 +107,9 @@
.addKeepAttributes("*Annotation*")
.addLibraryFiles(runtimeJar(parameters))
.addKeepClassAndMembersRules(Foo.class)
- .addKeepRules("-dontwarn " + LibraryAndMissingAnnotationsTest.class.getTypeName())
+ .applyIf(
+ builder.isProguardTestBuilder(),
+ ignore -> builder.addDontWarn(LibraryAndMissingAnnotationsTest.class))
.addKeepMainRule(mainClass)
.setMinApi(parameters.getApiLevel());
if (includeOnLibraryPath) {
diff --git a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/keepinterface/CompatKeepInterfaceAsInstantiatedTest.java b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/keepinterface/CompatKeepInterfaceAsInstantiatedTest.java
index 7f4606c..38a6b4f 100644
--- a/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/keepinterface/CompatKeepInterfaceAsInstantiatedTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/keepinterface/CompatKeepInterfaceAsInstantiatedTest.java
@@ -127,7 +127,9 @@
throws Exception {
return builder
// Add -dontwarn to avoid PG failing since this test runner class is not present.
- .addKeepRules("-dontwarn " + CompatKeepInterfaceAsInstantiatedTest.class.getTypeName())
+ .applyIf(
+ builder.isProguardTestBuilder(),
+ b -> b.addDontWarn(CompatKeepInterfaceAsInstantiatedTest.class))
.noMinification()
.addProgramClasses(main, Foo.class)
.addKeepMainRule(main)
diff --git a/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java b/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
index 4dbb21e..94bdbf1 100644
--- a/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
@@ -47,8 +47,6 @@
.addProgramFiles(ToolHelper.R8_WITH_RELOCATED_DEPS_JAR)
.addKeepRuleFiles(MAIN_KEEP)
.addKeepRules(WHY_ARE_YOU_KEEPING_ALL)
- .addDontWarnGoogle()
- .addDontWarnJavax()
.collectStdout()
.compile()
.assertStdoutThatMatches(containsString("referenced in keep rule"))