Expose versions of Package.Builder#addRule and RuleClass#createRule that don't perform internal sanity checks.
--
MOS_MIGRATED_REVID=126073693
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 44d9e30..04a8ef4 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1205,9 +1205,13 @@
}
}
- void addRule(Rule rule) throws NameConflictException {
+ /**
+ * Same as {@link #addRule}, except with no name conflict checks.
+ *
+ * <p>Don't call this function unless you know what you're doing.
+ */
+ void addRuleUnchecked(Rule rule) {
Preconditions.checkArgument(rule.getPackage() == pkg);
- checkForConflicts(rule);
// Now, modify the package:
for (OutputFile outputFile : rule.getOutputFiles()) {
targets.put(outputFile.getName(), outputFile);
@@ -1225,6 +1229,11 @@
}
}
+ void addRule(Rule rule) throws NameConflictException {
+ checkForConflicts(rule);
+ addRuleUnchecked(rule);
+ }
+
private Builder beforeBuild() {
Preconditions.checkNotNull(pkg);
Preconditions.checkNotNull(filename);