diff --git a/conformance/expected-failures.yaml b/conformance/expected-failures.yaml index 27af47e8..9055e245 100644 --- a/conformance/expected-failures.yaml +++ b/conformance/expected-failures.yaml @@ -27,13 +27,6 @@ kitchen_sink: standard_rules/repeated: - items/in/invalid - items/not_in/invalid -library/is_ip: - - version/6/invalid/ipv6/7h16_double_colon_1h16 - - version/6/invalid/ipv6/7h16_double_colon - - version/6/invalid/ipv6/double_colon_8h16 - - version/6/invalid/ipv6/1h16_double_colon_7h16 standard_rules/well_known_types/duration: - in/invalid - not in/invalid - - diff --git a/src/main/java/build/buf/protovalidate/Ipv6.java b/src/main/java/build/buf/protovalidate/Ipv6.java index 7e036292..b019cc01 100644 --- a/src/main/java/build/buf/protovalidate/Ipv6.java +++ b/src/main/java/build/buf/protovalidate/Ipv6.java @@ -209,7 +209,11 @@ private boolean addressPart() { break; } - return this.doubleColonSeen || this.pieces.size() == 8; + int totalPieces = this.pieces.size(); + if (this.doubleColonSeen) { + return totalPieces < 8; + } + return totalPieces == 8; } /**