Rollup merge of #128641 - Konippi:standardize-duplicate-processes-in-… · patricklam/verify-rust-std@68e6537 (original) (raw)

`@@ -112,18 +112,18 @@ impl<'a> Parser<'a> {

`

112

112

`max_digits: Option,

`

113

113

`allow_zero_prefix: bool,

`

114

114

`) -> Option {

`

115

``

`` -

// If max_digits.is_some(), then we are parsing a u8 or u16 and

``

116

``

`` -

// don't need to use checked arithmetic since it fits within a u32.

``

117

``

`-

if let Some(max_digits) = max_digits {

`

118

``

`-

// u32::MAX = 4_294_967_295u32, which is 10 digits long.

`

119

``

`` -

// max_digits must be less than 10 to not overflow a u32.

``

120

``

`-

debug_assert!(max_digits < 10);

`

121

``

-

122

``

`-

self.read_atomically(move |p| {

`

123

``

`-

let mut result = 0_u32;

`

124

``

`-

let mut digit_count = 0;

`

125

``

`-

let has_leading_zero = p.peek_char() == Some('0');

`

``

115

`+

self.read_atomically(move |p| {

`

``

116

`+

let mut digit_count = 0;

`

``

117

`+

let has_leading_zero = p.peek_char() == Some('0');

`

``

118

+

``

119

`` +

// If max_digits.is_some(), then we are parsing a u8 or u16 and

``

``

120

`` +

// don't need to use checked arithmetic since it fits within a u32.

``

``

121

`+

let result = if let Some(max_digits) = max_digits {

`

``

122

`+

// u32::MAX = 4_294_967_295u32, which is 10 digits long.

`

``

123

`` +

// max_digits must be less than 10 to not overflow a u32.

``

``

124

`+

debug_assert!(max_digits < 10);

`

126

125

``

``

126

`+

let mut result = 0_u32;

`

127

127

`while let Some(digit) = p.read_atomically(|p| p.read_char()?.to_digit(radix)) {

`

128

128

` result *= radix;

`

129

129

` result += digit;

`

`@@ -134,35 +134,27 @@ impl<'a> Parser<'a> {

`

134

134

`}

`

135

135

`}

`

136

136

``

137

``

`-

if digit_count == 0 {

`

138

``

`-

None

`

139

``

`-

} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {

`

140

``

`-

None

`

141

``

`-

} else {

`

142

``

`-

result.try_into().ok()

`

143

``

`-

}

`

144

``

`-

})

`

145

``

`-

} else {

`

146

``

`-

self.read_atomically(move |p| {

`

``

137

`+

result.try_into().ok()

`

``

138

`+

} else {

`

147

139

`let mut result = T::ZERO;

`

148

``

`-

let mut digit_count = 0;

`

149

``

`-

let has_leading_zero = p.peek_char() == Some('0');

`

150

140

``

151

141

`while let Some(digit) = p.read_atomically(|p| p.read_char()?.to_digit(radix)) {

`

152

142

` result = result.checked_mul(radix)?;

`

153

143

` result = result.checked_add(digit)?;

`

154

144

` digit_count += 1;

`

155

145

`}

`

156

146

``

157

``

`-

if digit_count == 0 {

`

158

``

`-

None

`

159

``

`-

} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {

`

160

``

`-

None

`

161

``

`-

} else {

`

162

``

`-

Some(result)

`

163

``

`-

}

`

164

``

`-

})

`

165

``

`-

}

`

``

147

`+

Some(result)

`

``

148

`+

};

`

``

149

+

``

150

`+

if digit_count == 0 {

`

``

151

`+

None

`

``

152

`+

} else if !allow_zero_prefix && has_leading_zero && digit_count > 1 {

`

``

153

`+

None

`

``

154

`+

} else {

`

``

155

`+

result

`

``

156

`+

}

`

``

157

`+

})

`

166

158

`}

`

167

159

``

168

160

`/// Reads an IPv4 address.

`