Skip to content

Commit d6c97a3

Browse files
committed
Simplify unescape_{char,byte}.
The `usize` isn't needed in the error case.
1 parent 43d21b5 commit d6c97a3

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

compiler/rustc_lexer/src/unescape.rs

+5-9
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,15 @@ where
9494
}
9595

9696
/// Takes a contents of a char literal (without quotes), and returns an
97-
/// unescaped char or an error
98-
pub fn unescape_char(src: &str) -> Result<char, (usize, EscapeError)> {
99-
let mut chars = src.chars();
100-
unescape_char_or_byte(&mut chars, false).map_err(|err| (src.len() - chars.as_str().len(), err))
97+
/// unescaped char or an error.
98+
pub fn unescape_char(src: &str) -> Result<char, EscapeError> {
99+
unescape_char_or_byte(&mut src.chars(), false)
101100
}
102101

103102
/// Takes a contents of a byte literal (without quotes), and returns an
104103
/// unescaped byte or an error.
105-
pub fn unescape_byte(src: &str) -> Result<u8, (usize, EscapeError)> {
106-
let mut chars = src.chars();
107-
unescape_char_or_byte(&mut chars, true)
108-
.map(byte_from_char)
109-
.map_err(|err| (src.len() - chars.as_str().len(), err))
104+
pub fn unescape_byte(src: &str) -> Result<u8, EscapeError> {
105+
unescape_char_or_byte(&mut src.chars(), true).map(byte_from_char)
110106
}
111107

112108
/// What kind of literal do we parse.

compiler/rustc_lexer/src/unescape/tests.rs

+4-8
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ use super::*;
33
#[test]
44
fn test_unescape_char_bad() {
55
fn check(literal_text: &str, expected_error: EscapeError) {
6-
let actual_result = unescape_char(literal_text).map_err(|(_offset, err)| err);
7-
assert_eq!(actual_result, Err(expected_error));
6+
assert_eq!(unescape_char(literal_text), Err(expected_error));
87
}
98

109
check("", EscapeError::ZeroChars);
@@ -68,8 +67,7 @@ fn test_unescape_char_bad() {
6867
#[test]
6968
fn test_unescape_char_good() {
7069
fn check(literal_text: &str, expected_char: char) {
71-
let actual_result = unescape_char(literal_text);
72-
assert_eq!(actual_result, Ok(expected_char));
70+
assert_eq!(unescape_char(literal_text), Ok(expected_char));
7371
}
7472

7573
check("a", 'a');
@@ -149,8 +147,7 @@ fn test_unescape_str_good() {
149147
#[test]
150148
fn test_unescape_byte_bad() {
151149
fn check(literal_text: &str, expected_error: EscapeError) {
152-
let actual_result = unescape_byte(literal_text).map_err(|(_offset, err)| err);
153-
assert_eq!(actual_result, Err(expected_error));
150+
assert_eq!(unescape_byte(literal_text), Err(expected_error));
154151
}
155152

156153
check("", EscapeError::ZeroChars);
@@ -219,8 +216,7 @@ fn test_unescape_byte_bad() {
219216
#[test]
220217
fn test_unescape_byte_good() {
221218
fn check(literal_text: &str, expected_byte: u8) {
222-
let actual_result = unescape_byte(literal_text);
223-
assert_eq!(actual_result, Ok(expected_byte));
219+
assert_eq!(unescape_byte(literal_text), Ok(expected_byte));
224220
}
225221

226222
check("a", b'a');

0 commit comments

Comments
 (0)