Fix comments to keep rule processing
Change-Id: I98209a1a50b064190e11a0b5e04687aea51228ad
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/ConsumerRuleDiagnostic.java b/src/main/java/com/android/tools/r8/processkeeprules/ConsumerRuleDiagnostic.java
new file mode 100644
index 0000000..1a119a4
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/processkeeprules/ConsumerRuleDiagnostic.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2025, 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.processkeeprules;
+
+import com.android.tools.r8.Diagnostic;
+import com.android.tools.r8.keepanno.annotations.KeepForApi;
+import com.android.tools.r8.origin.Origin;
+import com.android.tools.r8.position.Position;
+
+@KeepForApi
+public abstract class ConsumerRuleDiagnostic implements Diagnostic {
+
+ private final Origin origin;
+ private final Position position;
+
+ public ConsumerRuleDiagnostic(Origin origin, Position position) {
+ this.origin = origin;
+ this.position = position;
+ }
+
+ @Override
+ public Origin getOrigin() {
+ return origin;
+ }
+
+ @Override
+ public Position getPosition() {
+ return position;
+ }
+}
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/GlobalLibraryConsumerRuleDiagnostic.java b/src/main/java/com/android/tools/r8/processkeeprules/GlobalLibraryConsumerRuleDiagnostic.java
index 3921207..bc1a21d 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/GlobalLibraryConsumerRuleDiagnostic.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/GlobalLibraryConsumerRuleDiagnostic.java
@@ -3,34 +3,20 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.processkeeprules;
-import com.android.tools.r8.Diagnostic;
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.position.Position;
@KeepForApi
-public class GlobalLibraryConsumerRuleDiagnostic implements Diagnostic {
- private final Origin origin;
- private final Position position;
+public class GlobalLibraryConsumerRuleDiagnostic extends ConsumerRuleDiagnostic {
private final String rule;
public GlobalLibraryConsumerRuleDiagnostic(Origin origin, Position position, String rule) {
- this.origin = origin;
- this.position = position;
+ super(origin, position);
this.rule = rule;
}
@Override
- public Origin getOrigin() {
- return origin;
- }
-
- @Override
- public Position getPosition() {
- return position;
- }
-
- @Override
public String getDiagnosticMessage() {
return rule + " not allowed in library consumer rules.";
}
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/KeepAttributeLibraryConsumerRuleDiagnostic.java b/src/main/java/com/android/tools/r8/processkeeprules/KeepAttributeLibraryConsumerRuleDiagnostic.java
index c7c1c1a..c1f3d5a 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/KeepAttributeLibraryConsumerRuleDiagnostic.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/KeepAttributeLibraryConsumerRuleDiagnostic.java
@@ -3,36 +3,22 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.processkeeprules;
-import com.android.tools.r8.Diagnostic;
import com.android.tools.r8.keepanno.annotations.KeepForApi;
import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.position.Position;
@KeepForApi
-public class KeepAttributeLibraryConsumerRuleDiagnostic implements Diagnostic {
+public class KeepAttributeLibraryConsumerRuleDiagnostic extends ConsumerRuleDiagnostic {
- private final Origin origin;
- private final Position position;
private final String attribute;
public KeepAttributeLibraryConsumerRuleDiagnostic(
Origin origin, Position position, String attribute) {
- this.origin = origin;
- this.position = position;
+ super(origin, position);
this.attribute = attribute;
}
@Override
- public Origin getOrigin() {
- return origin;
- }
-
- @Override
- public Position getPosition() {
- return position;
- }
-
- @Override
public String getDiagnosticMessage() {
return "Illegal attempt to keep the attribute '" + attribute + "' in library consumer rules.";
}
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRules.java b/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRules.java
index 158894d..d8c92ca 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRules.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRules.java
@@ -17,7 +17,7 @@
command.getReporter(),
() -> {
// This is the only valid form of keep rule processing for now.
- assert command.getValidateLibraryConsumerRules();
+ assert command.isValidateLibraryConsumerRules();
DexItemFactory dexItemFactory = new DexItemFactory();
ProguardConfigurationParserConsumer configurationConsumer =
new ValidateLibraryConsumerRulesKeepRuleProcessor(command.getReporter());
diff --git a/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRulesCommand.java b/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRulesCommand.java
index 81f18f2..4a7ca10 100644
--- a/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRulesCommand.java
+++ b/src/main/java/com/android/tools/r8/processkeeprules/ProcessKeepRulesCommand.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.utils.Reporter;
import java.nio.file.Path;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@@ -49,7 +50,7 @@
return reporter;
}
- boolean getValidateLibraryConsumerRules() {
+ boolean isValidateLibraryConsumerRules() {
return validateLibraryConsumerRules;
}
@@ -81,6 +82,10 @@
return this;
}
+ public Builder addKeepRuleFiles(Path... paths) {
+ return addKeepRuleFiles(Arrays.asList(paths));
+ }
+
public Builder setLibraryConsumerRuleValidation(boolean enable) {
validateLibraryConsumerRules = enable;
return this;