diff options
150 files changed, 427 insertions, 49 deletions
diff --git a/crates/ra_syntax/src/tests.rs b/crates/ra_syntax/src/tests.rs index f79dc4f93..fb22b9e54 100644 --- a/crates/ra_syntax/src/tests.rs +++ b/crates/ra_syntax/src/tests.rs | |||
@@ -1,19 +1,28 @@ | |||
1 | use std::{ | 1 | use std::{ |
2 | fmt::Write, | 2 | fmt::Write, |
3 | path::{Component, PathBuf}, | 3 | path::{Component, Path, PathBuf}, |
4 | }; | 4 | }; |
5 | 5 | ||
6 | use test_utils::{collect_tests, dir_tests, project_dir, read_text}; | 6 | use test_utils::{collect_tests, dir_tests, project_dir, read_text}; |
7 | 7 | ||
8 | use crate::{fuzz, SourceFile}; | 8 | use crate::{fuzz, tokenize, Location, SourceFile, SyntaxError, TextRange, Token}; |
9 | 9 | ||
10 | #[test] | 10 | #[test] |
11 | fn lexer_tests() { | 11 | fn lexer_tests() { |
12 | dir_tests(&test_data_dir(), &["lexer"], |text, _| { | 12 | // FIXME: |
13 | // FIXME: add tests for errors (their format is up to discussion) | 13 | // * Add tests for unicode escapes in byte-character and [raw]-byte-string literals |
14 | let (tokens, _errors) = crate::tokenize(text); | 14 | // * Add tests for unescape errors |
15 | dump_tokens(&tokens, text) | 15 | |
16 | }) | 16 | dir_tests(&test_data_dir(), &["lexer/ok"], |text, path| { |
17 | let (tokens, errors) = tokenize(text); | ||
18 | assert_errors_are_absent(&errors, path); | ||
19 | dump_tokens_and_errors(&tokens, &errors, text) | ||
20 | }); | ||
21 | dir_tests(&test_data_dir(), &["lexer/err"], |text, path| { | ||
22 | let (tokens, errors) = tokenize(text); | ||
23 | assert_errors_are_present(&errors, path); | ||
24 | dump_tokens_and_errors(&tokens, &errors, text) | ||
25 | }); | ||
17 | } | 26 | } |
18 | 27 | ||
19 | #[test] | 28 | #[test] |
@@ -33,18 +42,13 @@ fn parser_tests() { | |||
33 | dir_tests(&test_data_dir(), &["parser/inline/ok", "parser/ok"], |text, path| { | 42 | dir_tests(&test_data_dir(), &["parser/inline/ok", "parser/ok"], |text, path| { |
34 | let parse = SourceFile::parse(text); | 43 | let parse = SourceFile::parse(text); |
35 | let errors = parse.errors(); | 44 | let errors = parse.errors(); |
36 | assert_eq!( | 45 | assert_errors_are_absent(&errors, path); |
37 | errors, | ||
38 | &[] as &[crate::SyntaxError], | ||
39 | "There should be no errors in the file {:?}", | ||
40 | path.display(), | ||
41 | ); | ||
42 | parse.debug_dump() | 46 | parse.debug_dump() |
43 | }); | 47 | }); |
44 | dir_tests(&test_data_dir(), &["parser/err", "parser/inline/err"], |text, path| { | 48 | dir_tests(&test_data_dir(), &["parser/err", "parser/inline/err"], |text, path| { |
45 | let parse = SourceFile::parse(text); | 49 | let parse = SourceFile::parse(text); |
46 | let errors = parse.errors(); | 50 | let errors = parse.errors(); |
47 | assert!(!errors.is_empty(), "There should be errors in the file {:?}", path.display()); | 51 | assert_errors_are_present(&errors, path); |
48 | parse.debug_dump() | 52 | parse.debug_dump() |
49 | }); | 53 | }); |
50 | } | 54 | } |
@@ -76,7 +80,7 @@ fn self_hosting_parsing() { | |||
76 | .into_iter() | 80 | .into_iter() |
77 | .filter_entry(|entry| { | 81 | .filter_entry(|entry| { |
78 | !entry.path().components().any(|component| { | 82 | !entry.path().components().any(|component| { |
79 | // Get all files which are not in the crates/ra_syntax/tests/data folder | 83 | // Get all files which are not in the crates/ra_syntax/test_data folder |
80 | component == Component::Normal(OsStr::new("test_data")) | 84 | component == Component::Normal(OsStr::new("test_data")) |
81 | }) | 85 | }) |
82 | }) | 86 | }) |
@@ -102,15 +106,47 @@ fn test_data_dir() -> PathBuf { | |||
102 | project_dir().join("crates/ra_syntax/test_data") | 106 | project_dir().join("crates/ra_syntax/test_data") |
103 | } | 107 | } |
104 | 108 | ||
105 | fn dump_tokens(tokens: &[crate::Token], text: &str) -> String { | 109 | fn assert_errors_are_present(errors: &[SyntaxError], path: &Path) { |
110 | assert!(!errors.is_empty(), "There should be errors in the file {:?}", path.display()); | ||
111 | } | ||
112 | fn assert_errors_are_absent(errors: &[SyntaxError], path: &Path) { | ||
113 | assert_eq!( | ||
114 | errors, | ||
115 | &[] as &[SyntaxError], | ||
116 | "There should be no errors in the file {:?}", | ||
117 | path.display(), | ||
118 | ); | ||
119 | } | ||
120 | |||
121 | fn dump_tokens_and_errors(tokens: &[Token], errors: &[SyntaxError], text: &str) -> String { | ||
106 | let mut acc = String::new(); | 122 | let mut acc = String::new(); |
107 | let mut offset = 0; | 123 | let mut offset = 0; |
108 | for token in tokens { | 124 | for token in tokens { |
109 | let len: u32 = token.len.into(); | 125 | let token_len = token.len.to_usize(); |
110 | let len = len as usize; | 126 | let token_text = &text[offset..offset + token_len]; |
111 | let token_text = &text[offset..offset + len]; | 127 | offset += token_len; |
112 | offset += len; | 128 | writeln!(acc, "{:?} {} {:?}", token.kind, token_len, token_text).unwrap(); |
113 | write!(acc, "{:?} {} {:?}\n", token.kind, token.len, token_text).unwrap() | 129 | } |
130 | for err in errors { | ||
131 | let err_range = location_to_range(err.location()); | ||
132 | writeln!( | ||
133 | acc, | ||
134 | "> error{:?} token({:?}) msg({})", | ||
135 | err.location(), | ||
136 | &text[err_range], | ||
137 | err.kind() | ||
138 | ) | ||
139 | .unwrap(); | ||
140 | } | ||
141 | return acc; | ||
142 | |||
143 | // FIXME: copy-pasted this from `ra_ide/src/diagnostics.rs` | ||
144 | // `Location` will be refactored soon in new PR, see todos here: | ||
145 | // https://github.com/rust-analyzer/rust-analyzer/issues/223 | ||
146 | fn location_to_range(location: Location) -> TextRange { | ||
147 | match location { | ||
148 | Location::Offset(offset) => TextRange::offset_len(offset, 1.into()), | ||
149 | Location::Range(range) => range, | ||
150 | } | ||
114 | } | 151 | } |
115 | acc | ||
116 | } | 152 | } |
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index 445e3b3e4..8a5f0e4b7 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs | |||
@@ -94,6 +94,12 @@ impl From<rustc_lexer::unescape::EscapeError> for SyntaxErrorKind { | |||
94 | } | 94 | } |
95 | 95 | ||
96 | pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> { | 96 | pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> { |
97 | // FIXME: | ||
98 | // * Add validation of character literal containing only a single char | ||
99 | // * Add validation of `crate` keyword not appearing in the middle of the symbol path | ||
100 | // * Add validation of doc comments are being attached to nodes | ||
101 | // * Remove validation of unterminated literals (it is already implemented in `tokenize()`) | ||
102 | |||
97 | let mut errors = Vec::new(); | 103 | let mut errors = Vec::new(); |
98 | for node in root.descendants() { | 104 | for node in root.descendants() { |
99 | match_ast! { | 105 | match_ast! { |
diff --git a/crates/ra_syntax/test_data/lexer/0010_comments.rs b/crates/ra_syntax/test_data/lexer/0010_comments.rs deleted file mode 100644 index 71bdd1f9c..000000000 --- a/crates/ra_syntax/test_data/lexer/0010_comments.rs +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | // hello | ||
3 | //! World | ||
diff --git a/crates/ra_syntax/test_data/lexer/0010_comments.txt b/crates/ra_syntax/test_data/lexer/0010_comments.txt deleted file mode 100644 index 3c997de3f..000000000 --- a/crates/ra_syntax/test_data/lexer/0010_comments.txt +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | SHEBANG 19 "#!/usr/bin/env bash" | ||
2 | WHITESPACE 1 "\n" | ||
3 | COMMENT 8 "// hello" | ||
4 | WHITESPACE 1 "\n" | ||
5 | COMMENT 9 "//! World" | ||
6 | WHITESPACE 1 "\n" | ||
diff --git a/crates/ra_syntax/test_data/lexer/0014_unclosed_char.rs b/crates/ra_syntax/test_data/lexer/0014_unclosed_char.rs deleted file mode 100644 index 9c0007077..000000000 --- a/crates/ra_syntax/test_data/lexer/0014_unclosed_char.rs +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | '1 \ No newline at end of file | ||
diff --git a/crates/ra_syntax/test_data/lexer/0014_unclosed_char.txt b/crates/ra_syntax/test_data/lexer/0014_unclosed_char.txt deleted file mode 100644 index 737a300ee..000000000 --- a/crates/ra_syntax/test_data/lexer/0014_unclosed_char.txt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | LIFETIME 2 "\'1" | ||
diff --git a/crates/ra_syntax/test_data/lexer/0015_unclosed_string.rs b/crates/ra_syntax/test_data/lexer/0015_unclosed_string.rs deleted file mode 100644 index d771a26d4..000000000 --- a/crates/ra_syntax/test_data/lexer/0015_unclosed_string.rs +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | "hello | ||
diff --git a/crates/ra_syntax/test_data/lexer/0015_unclosed_string.txt b/crates/ra_syntax/test_data/lexer/0015_unclosed_string.txt deleted file mode 100644 index 728c40b66..000000000 --- a/crates/ra_syntax/test_data/lexer/0015_unclosed_string.txt +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | STRING 7 "\"hello\n" | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.rs new file mode 100644 index 000000000..ad2823b48 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt new file mode 100644 index 000000000..f24e1fd32 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 1 "\'" | ||
2 | > error[0; 1) token("\'") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.rs new file mode 100644 index 000000000..e264a4152 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
'🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt new file mode 100644 index 000000000..bd08cfc44 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 5 "\'🦀" | ||
2 | > error[0; 5) token("\'🦀") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.rs new file mode 100644 index 000000000..cf74b4dad --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
'\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt new file mode 100644 index 000000000..0ee22912d --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 5 "\'\\x7f" | ||
2 | > error[0; 5) token("\'\\x7f") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.rs new file mode 100644 index 000000000..50be91f68 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
'\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt new file mode 100644 index 000000000..96fac42ce --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 9 "\'\\u{20AA}" | ||
2 | > error[0; 9) token("\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.rs new file mode 100644 index 000000000..309ecfe47 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.rs | |||
@@ -0,0 +1 @@ | |||
' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt new file mode 100644 index 000000000..2059f3f81 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 2 "\' " | ||
2 | > error[0; 2) token("\' ") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.rs new file mode 100644 index 000000000..6ba258b10 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
'\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt new file mode 100644 index 000000000..7dd376e59 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 2 "\'\\" | ||
2 | > error[0; 2) token("\'\\") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.rs new file mode 100644 index 000000000..78bef7e3e --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
'\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt new file mode 100644 index 000000000..ef7a0a147 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 3 "\'\\n" | ||
2 | > error[0; 3) token("\'\\n") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.rs b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.rs new file mode 100644 index 000000000..a0e722065 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.rs | |||
@@ -0,0 +1 @@ | |||
'\' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt new file mode 100644 index 000000000..13fc5ea9a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | CHAR 3 "\'\\\'" | ||
2 | > error[0; 3) token("\'\\\'") msg(Missing trailing `'` symbol to terminate the character literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.rs new file mode 100644 index 000000000..795dc7e25 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
b' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt new file mode 100644 index 000000000..269d68c74 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 2 "b\'" | ||
2 | > error[0; 2) token("b\'") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.rs new file mode 100644 index 000000000..c9230dc24 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
b'🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt new file mode 100644 index 000000000..91a76e479 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 6 "b\'🦀" | ||
2 | > error[0; 6) token("b\'🦀") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.rs new file mode 100644 index 000000000..d146a8090 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
b'\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt new file mode 100644 index 000000000..b8c804a18 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 6 "b\'\\x7f" | ||
2 | > error[0; 6) token("b\'\\x7f") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.rs new file mode 100644 index 000000000..a3dec7c25 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
b'\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt new file mode 100644 index 000000000..dfca22a59 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 10 "b\'\\u{20AA}" | ||
2 | > error[0; 10) token("b\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.rs new file mode 100644 index 000000000..93b7f9c87 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.rs | |||
@@ -0,0 +1 @@ | |||
b' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt new file mode 100644 index 000000000..51a1cceab --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 3 "b\' " | ||
2 | > error[0; 3) token("b\' ") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.rs new file mode 100644 index 000000000..abffa5037 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
b'\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt new file mode 100644 index 000000000..24e835c27 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 3 "b\'\\" | ||
2 | > error[0; 3) token("b\'\\") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.rs new file mode 100644 index 000000000..4f46836a9 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
b'\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt new file mode 100644 index 000000000..f1e39a41b --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 4 "b\'\\n" | ||
2 | > error[0; 4) token("b\'\\n") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.rs b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.rs new file mode 100644 index 000000000..645b641ee --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.rs | |||
@@ -0,0 +1 @@ | |||
b'\' \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt new file mode 100644 index 000000000..f8ffe815d --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE 4 "b\'\\\'" | ||
2 | > error[0; 4) token("b\'\\\'") msg(Missing trailing `'` symbol to terminate the byte literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.rs new file mode 100644 index 000000000..9d68933c4 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt new file mode 100644 index 000000000..823daaf6f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 1 "\"" | ||
2 | > error[0; 1) token("\"") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.rs new file mode 100644 index 000000000..d439b8d2a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
"🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt new file mode 100644 index 000000000..164580eb3 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 5 "\"🦀" | ||
2 | > error[0; 5) token("\"🦀") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.rs new file mode 100644 index 000000000..56186a344 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
"\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt new file mode 100644 index 000000000..4453827c3 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 5 "\"\\x7f" | ||
2 | > error[0; 5) token("\"\\x7f") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.rs new file mode 100644 index 000000000..ed24095c3 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
"\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt new file mode 100644 index 000000000..aa614f304 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 9 "\"\\u{20AA}" | ||
2 | > error[0; 9) token("\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.rs new file mode 100644 index 000000000..72cdc841f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.rs | |||
@@ -0,0 +1 @@ | |||
" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt new file mode 100644 index 000000000..b7db1236f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 2 "\" " | ||
2 | > error[0; 2) token("\" ") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.rs new file mode 100644 index 000000000..00a258400 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
"\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt new file mode 100644 index 000000000..9d3df3799 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 2 "\"\\" | ||
2 | > error[0; 2) token("\"\\") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.rs new file mode 100644 index 000000000..a0c29b8cf --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
"\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt new file mode 100644 index 000000000..e3eb672b6 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 3 "\"\\n" | ||
2 | > error[0; 3) token("\"\\n") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.rs b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.rs new file mode 100644 index 000000000..403c2d6dd --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.rs | |||
@@ -0,0 +1 @@ | |||
"\" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt new file mode 100644 index 000000000..041d7fb6e --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | STRING 3 "\"\\\"" | ||
2 | > error[0; 3) token("\"\\\"") msg(Missing trailing `"` symbol to terminate the string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.rs new file mode 100644 index 000000000..36f4f4321 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
b" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt new file mode 100644 index 000000000..be7970a83 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 2 "b\"" | ||
2 | > error[0; 2) token("b\"") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.rs new file mode 100644 index 000000000..3c23a0372 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
b"🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt new file mode 100644 index 000000000..bf9aab132 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 6 "b\"🦀" | ||
2 | > error[0; 6) token("b\"🦀") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.rs new file mode 100644 index 000000000..836c112c1 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
b"\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt new file mode 100644 index 000000000..76e16d7d3 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 6 "b\"\\x7f" | ||
2 | > error[0; 6) token("b\"\\x7f") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.rs new file mode 100644 index 000000000..1c6df1d00 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
b"\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt new file mode 100644 index 000000000..09adffa16 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 10 "b\"\\u{20AA}" | ||
2 | > error[0; 10) token("b\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.rs new file mode 100644 index 000000000..d6898541e --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.rs | |||
@@ -0,0 +1 @@ | |||
b" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt new file mode 100644 index 000000000..fcb7253c8 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 3 "b\" " | ||
2 | > error[0; 3) token("b\" ") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.rs new file mode 100644 index 000000000..cce661538 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
b"\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt new file mode 100644 index 000000000..0a1b3e269 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 3 "b\"\\" | ||
2 | > error[0; 3) token("b\"\\") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.rs new file mode 100644 index 000000000..5e680aabb --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
b"\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt new file mode 100644 index 000000000..1fb89d2b6 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 4 "b\"\\n" | ||
2 | > error[0; 4) token("b\"\\n") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.rs b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.rs new file mode 100644 index 000000000..f2ff58ba9 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.rs | |||
@@ -0,0 +1 @@ | |||
b"\" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt new file mode 100644 index 000000000..718d36992 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | BYTE_STRING 4 "b\"\\\"" | ||
2 | > error[0; 4) token("b\"\\\"") msg(Missing trailing `"` symbol to terminate the byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.rs new file mode 100644 index 000000000..557c59b62 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
r##" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt new file mode 100644 index 000000000..93348f548 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 4 "r##\"" | ||
2 | > error[0; 4) token("r##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.rs new file mode 100644 index 000000000..bd046e4bb --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
r##"🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt new file mode 100644 index 000000000..42c70dfe8 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 8 "r##\"🦀" | ||
2 | > error[0; 8) token("r##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.rs new file mode 100644 index 000000000..5bec883dc --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
r##"\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt new file mode 100644 index 000000000..2bdeea0ff --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 8 "r##\"\\x7f" | ||
2 | > error[0; 8) token("r##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.rs new file mode 100644 index 000000000..bf05c3913 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
r##"\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt new file mode 100644 index 000000000..667d4d79f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 12 "r##\"\\u{20AA}" | ||
2 | > error[0; 12) token("r##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.rs new file mode 100644 index 000000000..f104bae4f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.rs | |||
@@ -0,0 +1 @@ | |||
r##" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt new file mode 100644 index 000000000..dd9597a1a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 5 "r##\" " | ||
2 | > error[0; 5) token("r##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.rs new file mode 100644 index 000000000..9242077b8 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
r##"\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt new file mode 100644 index 000000000..6ac6e3d62 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 5 "r##\"\\" | ||
2 | > error[0; 5) token("r##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.rs new file mode 100644 index 000000000..db1c16f2b --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
r##"\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt new file mode 100644 index 000000000..9d35443f5 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 6 "r##\"\\n" | ||
2 | > error[0; 6) token("r##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.rs new file mode 100644 index 000000000..ae5bae622 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
br##" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt new file mode 100644 index 000000000..81fa39ea5 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 5 "br##\"" | ||
2 | > error[0; 5) token("br##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.rs b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.rs new file mode 100644 index 000000000..9ef01207a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.rs | |||
@@ -0,0 +1 @@ | |||
br##"🦀 \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt new file mode 100644 index 000000000..c2503a4d0 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 9 "br##\"🦀" | ||
2 | > error[0; 9) token("br##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.rs b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.rs new file mode 100644 index 000000000..d50270afe --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.rs | |||
@@ -0,0 +1 @@ | |||
br##"\x7f \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt new file mode 100644 index 000000000..3bd3d8152 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 9 "br##\"\\x7f" | ||
2 | > error[0; 9) token("br##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.rs b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.rs new file mode 100644 index 000000000..90e299a1a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.rs | |||
@@ -0,0 +1 @@ | |||
br##"\u{20AA} \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt new file mode 100644 index 000000000..a512f0428 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 13 "br##\"\\u{20AA}" | ||
2 | > error[0; 13) token("br##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.rs b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.rs new file mode 100644 index 000000000..14c602fd2 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.rs | |||
@@ -0,0 +1 @@ | |||
br##" \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt new file mode 100644 index 000000000..dc616a623 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 6 "br##\" " | ||
2 | > error[0; 6) token("br##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.rs b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.rs new file mode 100644 index 000000000..0b3c015d7 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.rs | |||
@@ -0,0 +1 @@ | |||
br##"\ \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt new file mode 100644 index 000000000..debafe380 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 6 "br##\"\\" | ||
2 | > error[0; 6) token("br##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.rs b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.rs new file mode 100644 index 000000000..0d8b0e7ab --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.rs | |||
@@ -0,0 +1 @@ | |||
br##"\n \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt new file mode 100644 index 000000000..524e617b7 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 7 "br##\"\\n" | ||
2 | > error[0; 7) token("br##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.rs new file mode 100644 index 000000000..eddf8d080 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
r## \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt new file mode 100644 index 000000000..00b046840 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_STRING 3 "r##" | ||
2 | > error[0; 3) token("r##") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.rs new file mode 100644 index 000000000..7e8cadf4f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
br## \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt new file mode 100644 index 000000000..33b25e60f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | RAW_BYTE_STRING 4 "br##" | ||
2 | > error[0; 4) token("br##") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.rs b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.rs new file mode 100644 index 000000000..534668a9b --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.rs | |||
@@ -0,0 +1 @@ | |||
r## I lack a quote! \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt new file mode 100644 index 000000000..782dfd974 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt | |||
@@ -0,0 +1,10 @@ | |||
1 | RAW_STRING 4 "r## " | ||
2 | IDENT 1 "I" | ||
3 | WHITESPACE 1 " " | ||
4 | IDENT 4 "lack" | ||
5 | WHITESPACE 1 " " | ||
6 | IDENT 1 "a" | ||
7 | WHITESPACE 1 " " | ||
8 | IDENT 5 "quote" | ||
9 | EXCL 1 "!" | ||
10 | > error[0; 4) token("r## ") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.rs b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.rs new file mode 100644 index 000000000..d9b55455a --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.rs | |||
@@ -0,0 +1 @@ | |||
br## I lack a quote! \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt new file mode 100644 index 000000000..59c40cd65 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt | |||
@@ -0,0 +1,10 @@ | |||
1 | RAW_BYTE_STRING 5 "br## " | ||
2 | IDENT 1 "I" | ||
3 | WHITESPACE 1 " " | ||
4 | IDENT 4 "lack" | ||
5 | WHITESPACE 1 " " | ||
6 | IDENT 1 "a" | ||
7 | WHITESPACE 1 " " | ||
8 | IDENT 5 "quote" | ||
9 | EXCL 1 "!" | ||
10 | > error[0; 5) token("br## ") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.rs b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.rs new file mode 100644 index 000000000..22e83649f --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.rs | |||
@@ -0,0 +1 @@ | |||
/* \ No newline at end of file | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt new file mode 100644 index 000000000..5d04cdaa4 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | COMMENT 2 "/*" | ||
2 | > error[0; 2) token("/*") msg(Missing trailing `*/` symbols to terminate the block comment) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.rs b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.rs new file mode 100644 index 000000000..c45c2844d --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.rs | |||
@@ -0,0 +1 @@ | |||
/* comment | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt new file mode 100644 index 000000000..8c6b678e3 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | COMMENT 11 "/* comment\n" | ||
2 | > error[0; 11) token("/* comment\n") msg(Missing trailing `*/` symbols to terminate the block comment) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.rs b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.rs new file mode 100644 index 000000000..3fcfc9660 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.rs | |||
@@ -0,0 +1 @@ | |||
/* /* /* | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt new file mode 100644 index 000000000..250de34d9 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | COMMENT 9 "/* /* /*\n" | ||
2 | > error[0; 9) token("/* /* /*\n") msg(Missing trailing `*/` symbols to terminate the block comment) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.rs b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.rs new file mode 100644 index 000000000..26c898f01 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.rs | |||
@@ -0,0 +1 @@ | |||
/** /*! /* comment */ */ | |||
diff --git a/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt new file mode 100644 index 000000000..f97f2a8c7 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt | |||
@@ -0,0 +1,2 @@ | |||
1 | COMMENT 25 "/** /*! /* comment */ */\n" | ||
2 | > error[0; 25) token("/** /*! /* comment */ */\n") msg(Missing trailing `*/` symbols to terminate the block comment) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0055_empty_int.rs b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.rs new file mode 100644 index 000000000..aa2a9fdca --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.rs | |||
@@ -0,0 +1,17 @@ | |||
1 | 0b | ||
2 | 0o | ||
3 | 0x | ||
4 | |||
5 | 0b_ | ||
6 | 0o_ | ||
7 | 0x_ | ||
8 | |||
9 | 0bnoDigit | ||
10 | 0onoDigit | ||
11 | 0xnoDigit | ||
12 | |||
13 | 0xG | ||
14 | 0xg | ||
15 | |||
16 | 0x_g | ||
17 | 0x_G | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt new file mode 100644 index 000000000..2fe5bd950 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt | |||
@@ -0,0 +1,39 @@ | |||
1 | INT_NUMBER 2 "0b" | ||
2 | WHITESPACE 1 "\n" | ||
3 | INT_NUMBER 2 "0o" | ||
4 | WHITESPACE 1 "\n" | ||
5 | INT_NUMBER 2 "0x" | ||
6 | WHITESPACE 2 "\n\n" | ||
7 | INT_NUMBER 3 "0b_" | ||
8 | WHITESPACE 1 "\n" | ||
9 | INT_NUMBER 3 "0o_" | ||
10 | WHITESPACE 1 "\n" | ||
11 | INT_NUMBER 3 "0x_" | ||
12 | WHITESPACE 2 "\n\n" | ||
13 | INT_NUMBER 9 "0bnoDigit" | ||
14 | WHITESPACE 1 "\n" | ||
15 | INT_NUMBER 9 "0onoDigit" | ||
16 | WHITESPACE 1 "\n" | ||
17 | INT_NUMBER 9 "0xnoDigit" | ||
18 | WHITESPACE 2 "\n\n" | ||
19 | INT_NUMBER 3 "0xG" | ||
20 | WHITESPACE 1 "\n" | ||
21 | INT_NUMBER 3 "0xg" | ||
22 | WHITESPACE 2 "\n\n" | ||
23 | INT_NUMBER 4 "0x_g" | ||
24 | WHITESPACE 1 "\n" | ||
25 | INT_NUMBER 4 "0x_G" | ||
26 | WHITESPACE 1 "\n" | ||
27 | > error[0; 2) token("0b") msg(Missing digits after the integer base prefix) | ||
28 | > error[3; 5) token("0o") msg(Missing digits after the integer base prefix) | ||
29 | > error[6; 8) token("0x") msg(Missing digits after the integer base prefix) | ||
30 | > error[10; 13) token("0b_") msg(Missing digits after the integer base prefix) | ||
31 | > error[14; 17) token("0o_") msg(Missing digits after the integer base prefix) | ||
32 | > error[18; 21) token("0x_") msg(Missing digits after the integer base prefix) | ||
33 | > error[23; 32) token("0bnoDigit") msg(Missing digits after the integer base prefix) | ||
34 | > error[33; 42) token("0onoDigit") msg(Missing digits after the integer base prefix) | ||
35 | > error[43; 52) token("0xnoDigit") msg(Missing digits after the integer base prefix) | ||
36 | > error[54; 57) token("0xG") msg(Missing digits after the integer base prefix) | ||
37 | > error[58; 61) token("0xg") msg(Missing digits after the integer base prefix) | ||
38 | > error[63; 67) token("0x_g") msg(Missing digits after the integer base prefix) | ||
39 | > error[68; 72) token("0x_G") msg(Missing digits after the integer base prefix) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.rs b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.rs new file mode 100644 index 000000000..286584c88 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.rs | |||
@@ -0,0 +1,22 @@ | |||
1 | 0e | ||
2 | 0E | ||
3 | |||
4 | 42e+ | ||
5 | 42e- | ||
6 | 42E+ | ||
7 | 42E- | ||
8 | |||
9 | 42.e+ | ||
10 | 42.e- | ||
11 | 42.E+ | ||
12 | 42.E- | ||
13 | |||
14 | 42.2e+ | ||
15 | 42.2e- | ||
16 | 42.2E+ | ||
17 | 42.2E- | ||
18 | |||
19 | 42.2e+f32 | ||
20 | 42.2e-f32 | ||
21 | 42.2E+f32 | ||
22 | 42.2E-f32 | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt new file mode 100644 index 000000000..ab35e20a5 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt | |||
@@ -0,0 +1,62 @@ | |||
1 | FLOAT_NUMBER 2 "0e" | ||
2 | WHITESPACE 1 "\n" | ||
3 | FLOAT_NUMBER 2 "0E" | ||
4 | WHITESPACE 2 "\n\n" | ||
5 | FLOAT_NUMBER 4 "42e+" | ||
6 | WHITESPACE 1 "\n" | ||
7 | FLOAT_NUMBER 4 "42e-" | ||
8 | WHITESPACE 1 "\n" | ||
9 | FLOAT_NUMBER 4 "42E+" | ||
10 | WHITESPACE 1 "\n" | ||
11 | FLOAT_NUMBER 4 "42E-" | ||
12 | WHITESPACE 2 "\n\n" | ||
13 | INT_NUMBER 2 "42" | ||
14 | DOT 1 "." | ||
15 | IDENT 1 "e" | ||
16 | PLUS 1 "+" | ||
17 | WHITESPACE 1 "\n" | ||
18 | INT_NUMBER 2 "42" | ||
19 | DOT 1 "." | ||
20 | IDENT 1 "e" | ||
21 | MINUS 1 "-" | ||
22 | WHITESPACE 1 "\n" | ||
23 | INT_NUMBER 2 "42" | ||
24 | DOT 1 "." | ||
25 | IDENT 1 "E" | ||
26 | PLUS 1 "+" | ||
27 | WHITESPACE 1 "\n" | ||
28 | INT_NUMBER 2 "42" | ||
29 | DOT 1 "." | ||
30 | IDENT 1 "E" | ||
31 | MINUS 1 "-" | ||
32 | WHITESPACE 2 "\n\n" | ||
33 | FLOAT_NUMBER 6 "42.2e+" | ||
34 | WHITESPACE 1 "\n" | ||
35 | FLOAT_NUMBER 6 "42.2e-" | ||
36 | WHITESPACE 1 "\n" | ||
37 | FLOAT_NUMBER 6 "42.2E+" | ||
38 | WHITESPACE 1 "\n" | ||
39 | FLOAT_NUMBER 6 "42.2E-" | ||
40 | WHITESPACE 2 "\n\n" | ||
41 | FLOAT_NUMBER 9 "42.2e+f32" | ||
42 | WHITESPACE 1 "\n" | ||
43 | FLOAT_NUMBER 9 "42.2e-f32" | ||
44 | WHITESPACE 1 "\n" | ||
45 | FLOAT_NUMBER 9 "42.2E+f32" | ||
46 | WHITESPACE 1 "\n" | ||
47 | FLOAT_NUMBER 9 "42.2E-f32" | ||
48 | WHITESPACE 1 "\n" | ||
49 | > error[0; 2) token("0e") msg(Missing digits after the exponent symbol) | ||
50 | > error[3; 5) token("0E") msg(Missing digits after the exponent symbol) | ||
51 | > error[7; 11) token("42e+") msg(Missing digits after the exponent symbol) | ||
52 | > error[12; 16) token("42e-") msg(Missing digits after the exponent symbol) | ||
53 | > error[17; 21) token("42E+") msg(Missing digits after the exponent symbol) | ||
54 | > error[22; 26) token("42E-") msg(Missing digits after the exponent symbol) | ||
55 | > error[53; 59) token("42.2e+") msg(Missing digits after the exponent symbol) | ||
56 | > error[60; 66) token("42.2e-") msg(Missing digits after the exponent symbol) | ||
57 | > error[67; 73) token("42.2E+") msg(Missing digits after the exponent symbol) | ||
58 | > error[74; 80) token("42.2E-") msg(Missing digits after the exponent symbol) | ||
59 | > error[82; 91) token("42.2e+f32") msg(Missing digits after the exponent symbol) | ||
60 | > error[92; 101) token("42.2e-f32") msg(Missing digits after the exponent symbol) | ||
61 | > error[102; 111) token("42.2E+f32") msg(Missing digits after the exponent symbol) | ||
62 | > error[112; 121) token("42.2E-f32") msg(Missing digits after the exponent symbol) | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.rs b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.rs new file mode 100644 index 000000000..a7698a404 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.rs | |||
@@ -0,0 +1,2 @@ | |||
1 | '1 | ||
2 | '1lifetime | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt new file mode 100644 index 000000000..89b38bfac --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt | |||
@@ -0,0 +1,6 @@ | |||
1 | LIFETIME 2 "\'1" | ||
2 | WHITESPACE 1 "\n" | ||
3 | LIFETIME 10 "\'1lifetime" | ||
4 | WHITESPACE 1 "\n" | ||
5 | > error[0; 2) token("\'1") msg(Lifetime name cannot start with a number) | ||
6 | > error[3; 13) token("\'1lifetime") msg(Lifetime name cannot start with a number) | ||
diff --git a/crates/ra_syntax/test_data/lexer/0001_hello.rs b/crates/ra_syntax/test_data/lexer/ok/0001_hello.rs index 95d09f2b1..95d09f2b1 100644 --- a/crates/ra_syntax/test_data/lexer/0001_hello.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0001_hello.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0001_hello.txt b/crates/ra_syntax/test_data/lexer/ok/0001_hello.txt index 27a5940a9..27a5940a9 100644 --- a/crates/ra_syntax/test_data/lexer/0001_hello.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0001_hello.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0002_whitespace.rs b/crates/ra_syntax/test_data/lexer/ok/0002_whitespace.rs index 08fce1418..08fce1418 100644 --- a/crates/ra_syntax/test_data/lexer/0002_whitespace.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0002_whitespace.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0002_whitespace.txt b/crates/ra_syntax/test_data/lexer/ok/0002_whitespace.txt index 01d260918..01d260918 100644 --- a/crates/ra_syntax/test_data/lexer/0002_whitespace.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0002_whitespace.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0003_ident.rs b/crates/ra_syntax/test_data/lexer/ok/0003_ident.rs index c05c9c009..c05c9c009 100644 --- a/crates/ra_syntax/test_data/lexer/0003_ident.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0003_ident.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0003_ident.txt b/crates/ra_syntax/test_data/lexer/ok/0003_ident.txt index 4a0d5c053..4a0d5c053 100644 --- a/crates/ra_syntax/test_data/lexer/0003_ident.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0003_ident.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0004_numbers.rs b/crates/ra_syntax/test_data/lexer/ok/0004_numbers.rs index dc974b553..bc761c235 100644 --- a/crates/ra_syntax/test_data/lexer/0004_numbers.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0004_numbers.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | 0 0b 0o 0x 00 0_ 0. 0e 0E 0z | 1 | 0 00 0_ 0. 0z |
2 | 01790 0b1790 0o1790 0x1790aAbBcCdDeEfF 001279 0_1279 0.1279 0e1279 0E1279 | 2 | 01790 0b1790 0o1790 0x1790aAbBcCdDeEfF 001279 0_1279 0.1279 0e1279 0E1279 |
3 | 0..2 | 3 | 0..2 |
4 | 0.foo() | 4 | 0.foo() |
@@ -6,4 +6,4 @@ | |||
6 | 0.e+1 | 6 | 0.e+1 |
7 | 0.0E-2 | 7 | 0.0E-2 |
8 | 0___0.10000____0000e+111__ | 8 | 0___0.10000____0000e+111__ |
9 | 1i64 92.0f32 11__s \ No newline at end of file | 9 | 1i64 92.0f32 11__s |
diff --git a/crates/ra_syntax/test_data/lexer/0004_numbers.txt b/crates/ra_syntax/test_data/lexer/ok/0004_numbers.txt index 7bb89b8ae..e19fc5789 100644 --- a/crates/ra_syntax/test_data/lexer/0004_numbers.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0004_numbers.txt | |||
@@ -1,21 +1,11 @@ | |||
1 | INT_NUMBER 1 "0" | 1 | INT_NUMBER 1 "0" |
2 | WHITESPACE 1 " " | 2 | WHITESPACE 1 " " |
3 | INT_NUMBER 2 "0b" | ||
4 | WHITESPACE 1 " " | ||
5 | INT_NUMBER 2 "0o" | ||
6 | WHITESPACE 1 " " | ||
7 | INT_NUMBER 2 "0x" | ||
8 | WHITESPACE 1 " " | ||
9 | INT_NUMBER 2 "00" | 3 | INT_NUMBER 2 "00" |
10 | WHITESPACE 1 " " | 4 | WHITESPACE 1 " " |
11 | INT_NUMBER 2 "0_" | 5 | INT_NUMBER 2 "0_" |
12 | WHITESPACE 1 " " | 6 | WHITESPACE 1 " " |
13 | FLOAT_NUMBER 2 "0." | 7 | FLOAT_NUMBER 2 "0." |
14 | WHITESPACE 1 " " | 8 | WHITESPACE 1 " " |
15 | FLOAT_NUMBER 2 "0e" | ||
16 | WHITESPACE 1 " " | ||
17 | FLOAT_NUMBER 2 "0E" | ||
18 | WHITESPACE 1 " " | ||
19 | INT_NUMBER 2 "0z" | 9 | INT_NUMBER 2 "0z" |
20 | WHITESPACE 1 "\n" | 10 | WHITESPACE 1 "\n" |
21 | INT_NUMBER 5 "01790" | 11 | INT_NUMBER 5 "01790" |
@@ -64,3 +54,4 @@ WHITESPACE 1 " " | |||
64 | FLOAT_NUMBER 7 "92.0f32" | 54 | FLOAT_NUMBER 7 "92.0f32" |
65 | WHITESPACE 1 " " | 55 | WHITESPACE 1 " " |
66 | INT_NUMBER 5 "11__s" | 56 | INT_NUMBER 5 "11__s" |
57 | WHITESPACE 1 "\n" | ||
diff --git a/crates/ra_syntax/test_data/lexer/0005_symbols.rs b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.rs index 487569b5a..487569b5a 100644 --- a/crates/ra_syntax/test_data/lexer/0005_symbols.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0005_symbols.txt b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt index 469a90e42..469a90e42 100644 --- a/crates/ra_syntax/test_data/lexer/0005_symbols.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0005_symbols.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0006_chars.rs b/crates/ra_syntax/test_data/lexer/ok/0006_chars.rs index 454ee0a5f..454ee0a5f 100644 --- a/crates/ra_syntax/test_data/lexer/0006_chars.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0006_chars.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0006_chars.txt b/crates/ra_syntax/test_data/lexer/ok/0006_chars.txt index 950954fbc..950954fbc 100644 --- a/crates/ra_syntax/test_data/lexer/0006_chars.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0006_chars.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0007_lifetimes.rs b/crates/ra_syntax/test_data/lexer/ok/0007_lifetimes.rs index b764f1dce..b764f1dce 100644 --- a/crates/ra_syntax/test_data/lexer/0007_lifetimes.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0007_lifetimes.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0007_lifetimes.txt b/crates/ra_syntax/test_data/lexer/ok/0007_lifetimes.txt index 005c29100..005c29100 100644 --- a/crates/ra_syntax/test_data/lexer/0007_lifetimes.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0007_lifetimes.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0008_byte_strings.rs b/crates/ra_syntax/test_data/lexer/ok/0008_byte_strings.rs index b54930f5e..b54930f5e 100644 --- a/crates/ra_syntax/test_data/lexer/0008_byte_strings.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0008_byte_strings.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0008_byte_strings.txt b/crates/ra_syntax/test_data/lexer/ok/0008_byte_strings.txt index bc03b51a8..bc03b51a8 100644 --- a/crates/ra_syntax/test_data/lexer/0008_byte_strings.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0008_byte_strings.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0009_strings.rs b/crates/ra_syntax/test_data/lexer/ok/0009_strings.rs index 4ddb5bffc..4ddb5bffc 100644 --- a/crates/ra_syntax/test_data/lexer/0009_strings.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0009_strings.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0009_strings.txt b/crates/ra_syntax/test_data/lexer/ok/0009_strings.txt index 4cb4d711d..4cb4d711d 100644 --- a/crates/ra_syntax/test_data/lexer/0009_strings.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0009_strings.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.rs b/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.rs new file mode 100644 index 000000000..4b6653f9c --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.rs | |||
@@ -0,0 +1,12 @@ | |||
1 | #!/usr/bin/env bash | ||
2 | // hello | ||
3 | //! World | ||
4 | //!! Inner line doc | ||
5 | /// Outer line doc | ||
6 | //// Just a comment | ||
7 | |||
8 | // | ||
9 | //! | ||
10 | //!! | ||
11 | /// | ||
12 | //// | ||
diff --git a/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.txt b/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.txt new file mode 100644 index 000000000..98a3818c0 --- /dev/null +++ b/crates/ra_syntax/test_data/lexer/ok/0010_single_line_comments.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | SHEBANG 19 "#!/usr/bin/env bash" | ||
2 | WHITESPACE 1 "\n" | ||
3 | COMMENT 8 "// hello" | ||
4 | WHITESPACE 1 "\n" | ||
5 | COMMENT 9 "//! World" | ||
6 | WHITESPACE 1 "\n" | ||
7 | COMMENT 19 "//!! Inner line doc" | ||
8 | WHITESPACE 1 "\n" | ||
9 | COMMENT 18 "/// Outer line doc" | ||
10 | WHITESPACE 1 "\n" | ||
11 | COMMENT 19 "//// Just a comment" | ||
12 | WHITESPACE 2 "\n\n" | ||
13 | COMMENT 2 "//" | ||
14 | WHITESPACE 1 "\n" | ||
15 | COMMENT 3 "//!" | ||
16 | WHITESPACE 1 "\n" | ||
17 | COMMENT 4 "//!!" | ||
18 | WHITESPACE 1 "\n" | ||
19 | COMMENT 3 "///" | ||
20 | WHITESPACE 1 "\n" | ||
21 | COMMENT 4 "////" | ||
22 | WHITESPACE 1 "\n" | ||
diff --git a/crates/ra_syntax/test_data/lexer/0011_keywords.rs b/crates/ra_syntax/test_data/lexer/ok/0011_keywords.rs index 1e91bff4e..1e91bff4e 100644 --- a/crates/ra_syntax/test_data/lexer/0011_keywords.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0011_keywords.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0011_keywords.txt b/crates/ra_syntax/test_data/lexer/ok/0011_keywords.txt index 22c00eefb..22c00eefb 100644 --- a/crates/ra_syntax/test_data/lexer/0011_keywords.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0011_keywords.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/00012_block_comment.rs b/crates/ra_syntax/test_data/lexer/ok/0012_block_comment.rs index 708aac197..b880a59d9 100644 --- a/crates/ra_syntax/test_data/lexer/00012_block_comment.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0012_block_comment.rs | |||
@@ -1,4 +1,3 @@ | |||
1 | /* */ | 1 | /* */ |
2 | /**/ | 2 | /**/ |
3 | /* /* */ */ | 3 | /* /* */ */ |
4 | /* | ||
diff --git a/crates/ra_syntax/test_data/lexer/00012_block_comment.txt b/crates/ra_syntax/test_data/lexer/ok/0012_block_comment.txt index 9958b2518..2618e287e 100644 --- a/crates/ra_syntax/test_data/lexer/00012_block_comment.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0012_block_comment.txt | |||
@@ -4,4 +4,3 @@ COMMENT 4 "/**/" | |||
4 | WHITESPACE 1 "\n" | 4 | WHITESPACE 1 "\n" |
5 | COMMENT 11 "/* /* */ */" | 5 | COMMENT 11 "/* /* */ */" |
6 | WHITESPACE 1 "\n" | 6 | WHITESPACE 1 "\n" |
7 | COMMENT 3 "/*\n" | ||
diff --git a/crates/ra_syntax/test_data/lexer/0013_raw_strings.rs b/crates/ra_syntax/test_data/lexer/ok/0013_raw_strings.rs index e5ed0b693..e5ed0b693 100644 --- a/crates/ra_syntax/test_data/lexer/0013_raw_strings.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0013_raw_strings.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0013_raw_strings.txt b/crates/ra_syntax/test_data/lexer/ok/0013_raw_strings.txt index 9cf0957d1..9cf0957d1 100644 --- a/crates/ra_syntax/test_data/lexer/0013_raw_strings.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0013_raw_strings.txt | |||
diff --git a/crates/ra_syntax/test_data/lexer/0016_raw_ident.rs b/crates/ra_syntax/test_data/lexer/ok/0014_raw_ident.rs index b40a1b6a2..b40a1b6a2 100644 --- a/crates/ra_syntax/test_data/lexer/0016_raw_ident.rs +++ b/crates/ra_syntax/test_data/lexer/ok/0014_raw_ident.rs | |||
diff --git a/crates/ra_syntax/test_data/lexer/0016_raw_ident.txt b/crates/ra_syntax/test_data/lexer/ok/0014_raw_ident.txt index 484689693..484689693 100644 --- a/crates/ra_syntax/test_data/lexer/0016_raw_ident.txt +++ b/crates/ra_syntax/test_data/lexer/ok/0014_raw_ident.txt | |||