mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-31 23:38:45 +00:00
Add test code for unescaping byte strings
This commit is contained in:
parent
bdf8547013
commit
2340d7059e
1 changed files with 25 additions and 0 deletions
|
@ -456,6 +456,31 @@ bcde", "abcde",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_byte_string_value<'a, const N: usize>(
|
||||||
|
lit: &str,
|
||||||
|
expected: impl Into<Option<&'a [u8; N]>>,
|
||||||
|
) {
|
||||||
|
assert_eq!(
|
||||||
|
ast::ByteString { syntax: make::tokens::literal(&format!("b\"{}\"", lit)) }
|
||||||
|
.value()
|
||||||
|
.as_deref(),
|
||||||
|
expected.into().map(|value| &value[..])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_byte_string_escape() {
|
||||||
|
check_byte_string_value(r"foobar", b"foobar");
|
||||||
|
check_byte_string_value(r"\foobar", None::<&[u8; 0]>);
|
||||||
|
check_byte_string_value(r"\nfoobar", b"\nfoobar");
|
||||||
|
check_byte_string_value(r"C:\\Windows\\System32\\", b"C:\\Windows\\System32\\");
|
||||||
|
check_byte_string_value(r"\x61bcde", b"abcde");
|
||||||
|
check_byte_string_value(
|
||||||
|
r"a\
|
||||||
|
bcde", b"abcde",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_value_underscores() {
|
fn test_value_underscores() {
|
||||||
check_float_value("3.141592653589793_f64", 3.141592653589793_f64);
|
check_float_value("3.141592653589793_f64", 3.141592653589793_f64);
|
||||||
|
|
Loading…
Reference in a new issue