Include number of include/exclude patterns in R8 partial metadata
Bug: b/365934833
Change-Id: I7e3c4418db8f6d71aad3610c775d9fcf692d2f40
diff --git a/src/main/java/com/android/tools/r8/metadata/R8PartialCompilationMetadata.java b/src/main/java/com/android/tools/r8/metadata/R8PartialCompilationMetadata.java
index 541a2d5..bcb025d 100644
--- a/src/main/java/com/android/tools/r8/metadata/R8PartialCompilationMetadata.java
+++ b/src/main/java/com/android/tools/r8/metadata/R8PartialCompilationMetadata.java
@@ -9,5 +9,9 @@
List<String> getCommonIncludePatterns();
+ int getNumberOfExcludePatterns();
+
+ int getNumberOfIncludePatterns();
+
R8PartialCompilationStatsMetadata getStatsMetadata();
}
diff --git a/src/main/java/com/android/tools/r8/metadata/impl/R8PartialCompilationMetadataImpl.java b/src/main/java/com/android/tools/r8/metadata/impl/R8PartialCompilationMetadataImpl.java
index a5b2787..355c36f 100644
--- a/src/main/java/com/android/tools/r8/metadata/impl/R8PartialCompilationMetadataImpl.java
+++ b/src/main/java/com/android/tools/r8/metadata/impl/R8PartialCompilationMetadataImpl.java
@@ -35,12 +35,25 @@
private final List<String> commonIncludePatterns;
@Expose
+ @SerializedName("numberOfExcludePatterns")
+ private final int numberOfExcludePatterns;
+
+ @Expose
+ @SerializedName("numberOfIncludePatterns")
+ private final int numberOfIncludePatterns;
+
+ @Expose
@SerializedName("stats")
private final R8PartialCompilationStatsMetadata statsMetadata;
private R8PartialCompilationMetadataImpl(
- List<String> commonIncludePatterns, R8PartialCompilationStatsMetadata statsMetadata) {
+ List<String> commonIncludePatterns,
+ int numberOfExcludePatterns,
+ int numberOfIncludePatterns,
+ R8PartialCompilationStatsMetadata statsMetadata) {
this.commonIncludePatterns = commonIncludePatterns;
+ this.numberOfExcludePatterns = numberOfExcludePatterns;
+ this.numberOfIncludePatterns = numberOfIncludePatterns;
this.statsMetadata = statsMetadata;
}
@@ -48,6 +61,8 @@
if (options.partialCompilationConfiguration.isEnabled()) {
return new R8PartialCompilationMetadataImpl(
createCommonIncludePatterns(options.partialCompilationConfiguration),
+ options.partialCompilationConfiguration.getExcludePredicates().size(),
+ options.partialCompilationConfiguration.getIncludePredicates().size(),
options.getR8PartialR8SubCompilationOptions().getStatsMetadataBuilder().build());
}
return null;
@@ -73,6 +88,16 @@
}
@Override
+ public int getNumberOfExcludePatterns() {
+ return numberOfExcludePatterns;
+ }
+
+ @Override
+ public int getNumberOfIncludePatterns() {
+ return numberOfIncludePatterns;
+ }
+
+ @Override
public R8PartialCompilationStatsMetadata getStatsMetadata() {
return statsMetadata;
}
diff --git a/src/main/java/com/android/tools/r8/partial/predicate/R8PartialPredicateCollection.java b/src/main/java/com/android/tools/r8/partial/predicate/R8PartialPredicateCollection.java
index 7edc478..4322fe2 100644
--- a/src/main/java/com/android/tools/r8/partial/predicate/R8PartialPredicateCollection.java
+++ b/src/main/java/com/android/tools/r8/partial/predicate/R8PartialPredicateCollection.java
@@ -29,6 +29,10 @@
return predicates.iterator();
}
+ public int size() {
+ return predicates.size();
+ }
+
public boolean test(DexProgramClass clazz) {
DexString descriptor = clazz.getType().getDescriptor();
for (R8PartialPredicate predicate : predicates) {
diff --git a/src/test/java/com/android/tools/r8/metadata/R8BuildMetadataTest.java b/src/test/java/com/android/tools/r8/metadata/R8BuildMetadataTest.java
index efc5a86..7793781 100644
--- a/src/test/java/com/android/tools/r8/metadata/R8BuildMetadataTest.java
+++ b/src/test/java/com/android/tools/r8/metadata/R8BuildMetadataTest.java
@@ -203,6 +203,8 @@
assertEquals(
Lists.newArrayList("androidx.**", "kotlin.**", "kotlinx.**"),
partialCompilationMetadata.getCommonIncludePatterns());
+ assertEquals(0, partialCompilationMetadata.getNumberOfExcludePatterns());
+ assertEquals(3, partialCompilationMetadata.getNumberOfIncludePatterns());
R8PartialCompilationStatsMetadata partialCompilationStatsMetadata =
partialCompilationMetadata.getStatsMetadata();