2025-07-01 18:24:12 +05:00
|
|
|
|
//! Tests various forms of raw string literals
|
|
|
|
|
|
|
2019-07-27 00:54:25 +03:00
|
|
|
|
//@ run-pass
|
2025-07-01 18:24:12 +05:00
|
|
|
|
|
|
|
|
|
|
// ignore-tidy-tab: Raw strings deliberately contain tabs
|
|
|
|
|
|
// ignore-tidy-linelength: Long pattern string for vim syntax test
|
2014-02-05 16:33:10 -06:00
|
|
|
|
|
2013-10-02 02:43:19 +02:00
|
|
|
|
pub fn main() {
|
|
|
|
|
|
assert_eq!(r"abc", "abc");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r#"abc"#, "abc");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r"###", "###");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r"\", "\\");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r#"\""#, "\\\"");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r#"#"\n""#, "#\"\\n\"");
|
|
|
|
|
|
|
|
|
|
|
|
assert_eq!(r##"a"#"b"##, "a\"#\"b");
|
|
|
|
|
|
|
|
|
|
|
|
// from rust.vim
|
2025-07-01 18:24:12 +05:00
|
|
|
|
assert_eq!(
|
|
|
|
|
|
r#""%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn?]\|\[\^\=.[^]]*\]\)""#,
|
|
|
|
|
|
"\"%\\(\\d\\+\\$\\)\\=[-+' #0*]*\\(\\d*\\|\\*\\|\\*\\d\\+\\$\\)\\(\\.\\(\\d*\\|\\*\\|\\*\\d\\+\\$\\)\\)\\=\\([hlLjzt]\\|ll\\|hh\\)\\=\\([aAbdiuoxXDOUfFeEgGcCsSpn?]\\|\\[\\^\\=.[^]]*\\]\\)\""
|
|
|
|
|
|
);
|
2013-10-02 02:43:19 +02:00
|
|
|
|
|
2025-07-01 18:24:12 +05:00
|
|
|
|
assert_eq!(
|
|
|
|
|
|
r"newline:'
|
2013-10-02 02:43:19 +02:00
|
|
|
|
', tab:' ', unicode:'●', null:' |