aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorErlend Tobiassen <[email protected]>2019-01-22 17:46:15 +0000
committerErlend Tobiassen <[email protected]>2019-01-22 17:46:15 +0000
commitc550c6759d2c684b5ebef141cebd602e90ee931a (patch)
tree2f994b6fdfe67d839447a239094a49c25dbb4f8d /crates
parent234b65fd6155e14f260765aff0fd8c6f7f9e4169 (diff)
Add test for placeholder parameters in trait fn defs
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_syntax/src/grammar/params.rs5
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs3
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt32
3 files changed, 40 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/grammar/params.rs b/crates/ra_syntax/src/grammar/params.rs
index 130660740..13158429a 100644
--- a/crates/ra_syntax/src/grammar/params.rs
+++ b/crates/ra_syntax/src/grammar/params.rs
@@ -79,6 +79,11 @@ fn value_parameter(p: &mut Parser, flavor: Flavor) {
79 let la1 = p.nth(1); 79 let la1 = p.nth(1);
80 let la2 = p.nth(2); 80 let la2 = p.nth(2);
81 let la3 = p.nth(3); 81 let la3 = p.nth(3);
82
83 // test trait_fn_placeholder_parameter
84 // trait Foo {
85 // fn bar(_: u64);
86 // }
82 if (la0 == IDENT || la0 == UNDERSCORE) && la1 == COLON 87 if (la0 == IDENT || la0 == UNDERSCORE) && la1 == COLON
83 || la0 == AMP && la1 == IDENT && la2 == COLON 88 || la0 == AMP && la1 == IDENT && la2 == COLON
84 || la0 == AMP && la1 == MUT_KW && la2 == IDENT && la3 == COLON 89 || la0 == AMP && la1 == MUT_KW && la2 == IDENT && la3 == COLON
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs
new file mode 100644
index 000000000..aede3f4fe
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.rs
@@ -0,0 +1,3 @@
1trait Foo {
2 fn bar(_: u64);
3}
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt
new file mode 100644
index 000000000..248d491df
--- /dev/null
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0116_trait_fn_placeholder_parameter.txt
@@ -0,0 +1,32 @@
1SOURCE_FILE@[0; 34)
2 TRAIT_DEF@[0; 33)
3 TRAIT_KW@[0; 5)
4 WHITESPACE@[5; 6)
5 NAME@[6; 9)
6 IDENT@[6; 9) "Foo"
7 WHITESPACE@[9; 10)
8 ITEM_LIST@[10; 33)
9 L_CURLY@[10; 11)
10 WHITESPACE@[11; 16)
11 FN_DEF@[16; 31)
12 FN_KW@[16; 18)
13 WHITESPACE@[18; 19)
14 NAME@[19; 22)
15 IDENT@[19; 22) "bar"
16 PARAM_LIST@[22; 30)
17 L_PAREN@[22; 23)
18 PARAM@[23; 29)
19 PLACEHOLDER_PAT@[23; 24)
20 UNDERSCORE@[23; 24)
21 COLON@[24; 25)
22 WHITESPACE@[25; 26)
23 PATH_TYPE@[26; 29)
24 PATH@[26; 29)
25 PATH_SEGMENT@[26; 29)
26 NAME_REF@[26; 29)
27 IDENT@[26; 29) "u64"
28 R_PAREN@[29; 30)
29 SEMI@[30; 31)
30 WHITESPACE@[31; 32)
31 R_CURLY@[32; 33)
32 WHITESPACE@[33; 34)