From a331e5fd2c925134b8a457ded7c34f9558bb8e26 Mon Sep 17 00:00:00 2001 From: Smitty Date: Sun, 11 Jul 2021 11:33:39 -0400 Subject: [PATCH] Simplify leading zero checks --- library/std/src/net/parser.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/library/std/src/net/parser.rs b/library/std/src/net/parser.rs index df6bbdeab899..e233d605ce55 100644 --- a/library/std/src/net/parser.rs +++ b/library/std/src/net/parser.rs @@ -12,7 +12,7 @@ use crate::fmt; use crate::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; use crate::str::FromStr; -trait ReadNumberHelper: crate::marker::Sized + crate::cmp::PartialEq { +trait ReadNumberHelper: crate::marker::Sized { const ZERO: Self; fn checked_mul(&self, other: u32) -> Option; fn checked_add(&self, other: u32) -> Option; @@ -131,10 +131,7 @@ impl<'a> Parser<'a> { if digit_count == 0 { None - } else if !allow_zero_prefix - && has_leading_zero - && (result != T::ZERO || result == T::ZERO && digit_count > 1) - { + } else if !allow_zero_prefix && has_leading_zero && digit_count > 1 { None } else { Some(result)