diff options
Diffstat (limited to 'crates/ra_syntax')
3 files changed, 47 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs index 53d6fa562..ae8829807 100644 --- a/crates/ra_syntax/src/ast/make.rs +++ b/crates/ra_syntax/src/ast/make.rs | |||
@@ -267,6 +267,12 @@ pub mod tokens { | |||
267 | sf.syntax().first_child_or_token().unwrap().into_token().unwrap() | 267 | sf.syntax().first_child_or_token().unwrap().into_token().unwrap() |
268 | } | 268 | } |
269 | 269 | ||
270 | pub fn doc_comment(text: &str) -> SyntaxToken { | ||
271 | assert!(!text.trim().is_empty()); | ||
272 | let sf = SourceFile::parse(text).ok().unwrap(); | ||
273 | sf.syntax().first_child_or_token().unwrap().into_token().unwrap() | ||
274 | } | ||
275 | |||
270 | pub fn literal(text: &str) -> SyntaxToken { | 276 | pub fn literal(text: &str) -> SyntaxToken { |
271 | assert_eq!(text.trim(), text); | 277 | assert_eq!(text.trim(), text); |
272 | let lit: ast::Literal = super::ast_from_text(&format!("fn f() {{ let _ = {}; }}", text)); | 278 | let lit: ast::Literal = super::ast_from_text(&format!("fn f() {{ let _ = {}; }}", text)); |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs new file mode 100644 index 000000000..05acc30f1 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rs | |||
@@ -0,0 +1,3 @@ | |||
1 | fn foo() { | ||
2 | v = {1}&2; | ||
3 | } | ||
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.txt b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.txt new file mode 100644 index 000000000..d568a1d45 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | SOURCE_FILE@[0; 28) | ||
2 | FN_DEF@[0; 27) | ||
3 | FN_KW@[0; 2) "fn" | ||
4 | WHITESPACE@[2; 3) " " | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) "(" | ||
9 | R_PAREN@[7; 8) ")" | ||
10 | WHITESPACE@[8; 9) " " | ||
11 | BLOCK_EXPR@[9; 27) | ||
12 | BLOCK@[9; 27) | ||
13 | L_CURLY@[9; 10) "{" | ||
14 | WHITESPACE@[10; 15) "\n " | ||
15 | EXPR_STMT@[15; 25) | ||
16 | BIN_EXPR@[15; 24) | ||
17 | PATH_EXPR@[15; 16) | ||
18 | PATH@[15; 16) | ||
19 | PATH_SEGMENT@[15; 16) | ||
20 | NAME_REF@[15; 16) | ||
21 | IDENT@[15; 16) "v" | ||
22 | WHITESPACE@[16; 17) " " | ||
23 | EQ@[17; 18) "=" | ||
24 | WHITESPACE@[18; 19) " " | ||
25 | BIN_EXPR@[19; 24) | ||
26 | BLOCK_EXPR@[19; 22) | ||
27 | BLOCK@[19; 22) | ||
28 | L_CURLY@[19; 20) "{" | ||
29 | LITERAL@[20; 21) | ||
30 | INT_NUMBER@[20; 21) "1" | ||
31 | R_CURLY@[21; 22) "}" | ||
32 | AMP@[22; 23) "&" | ||
33 | LITERAL@[23; 24) | ||
34 | INT_NUMBER@[23; 24) "2" | ||
35 | SEMI@[24; 25) ";" | ||
36 | WHITESPACE@[25; 26) "\n" | ||
37 | R_CURLY@[26; 27) "}" | ||
38 | WHITESPACE@[27; 28) "\n" | ||