Don't drop middle zero components in DottedVersions parsed from strings.
RELNOTES: None.
PiperOrigin-RevId: 245067134
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
index aa7689c..b4cc5ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java
@@ -145,10 +145,13 @@
int numOriginalComponents = components.size();
- // Remove trailing (but not the first) zero components for easier comparison and hashcoding.
+ // Remove trailing (but not the first or middle) zero components for easier comparison and
+ // hashcoding.
for (int i = components.size() - 1; i > 0; i--) {
if (components.get(i).equals(ZERO_COMPONENT)) {
components.remove(i);
+ } else {
+ break;
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
index 4dca484..4be08ce 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/apple/DottedVersionTest.java
@@ -42,6 +42,9 @@
.addEqualityGroup(DottedVersion.fromString("1.2beta12.1"))
.addEqualityGroup(DottedVersion.fromString("1.2.0"), DottedVersion.fromString("1.2"))
.addEqualityGroup(DottedVersion.fromString("1.20"))
+ .addEqualityGroup(DottedVersion.fromString("10"), DottedVersion.fromString("10.0"))
+ .addEqualityGroup(DottedVersion.fromString("10.0.0.10A255"))
+ .addEqualityGroup(DottedVersion.fromString("10.2"))
.addEqualityGroup(DottedVersion.fromString("10.2.0.10P99q"))
.testCompare();
}