Skip to content

Commit 8622e4c

Browse files
committed
Add example of old trait object syntax
1 parent 879693e commit 8622e4c

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

crates/ra_parser/src/grammar/types.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ pub(super) fn for_binder(p: &mut Parser) {
217217
// test for_type
218218
// type A = for<'a> fn() -> ();
219219
// type B = for<'a> unsafe extern "C" fn(&'a ()) -> ();
220+
// type Obj = for<'a> PartialEq<&'a i32>;
220221
pub(super) fn for_type(p: &mut Parser) {
221222
assert!(p.at(T![for]));
222223
let m = p.start();

crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
SOURCE_FILE@0..82
1+
SOURCE_FILE@0..121
22
TYPE_ALIAS_DEF@0..28
33
TYPE_KW@0..4 "type"
44
WHITESPACE@4..5 " "
@@ -74,3 +74,39 @@ SOURCE_FILE@0..82
7474
R_PAREN@79..80 ")"
7575
SEMICOLON@80..81 ";"
7676
WHITESPACE@81..82 "\n"
77+
TYPE_ALIAS_DEF@82..120
78+
TYPE_KW@82..86 "type"
79+
WHITESPACE@86..87 " "
80+
NAME@87..90
81+
IDENT@87..90 "Obj"
82+
WHITESPACE@90..91 " "
83+
EQ@91..92 "="
84+
WHITESPACE@92..93 " "
85+
FOR_TYPE@93..119
86+
FOR_KW@93..96 "for"
87+
TYPE_PARAM_LIST@96..100
88+
L_ANGLE@96..97 "<"
89+
LIFETIME_PARAM@97..99
90+
LIFETIME@97..99 "\'a"
91+
R_ANGLE@99..100 ">"
92+
WHITESPACE@100..101 " "
93+
PATH_TYPE@101..119
94+
PATH@101..119
95+
PATH_SEGMENT@101..119
96+
NAME_REF@101..110
97+
IDENT@101..110 "PartialEq"
98+
TYPE_ARG_LIST@110..119
99+
L_ANGLE@110..111 "<"
100+
TYPE_ARG@111..118
101+
REFERENCE_TYPE@111..118
102+
AMP@111..112 "&"
103+
LIFETIME@112..114 "\'a"
104+
WHITESPACE@114..115 " "
105+
PATH_TYPE@115..118
106+
PATH@115..118
107+
PATH_SEGMENT@115..118
108+
NAME_REF@115..118
109+
IDENT@115..118 "i32"
110+
R_ANGLE@118..119 ">"
111+
SEMICOLON@119..120 ";"
112+
WHITESPACE@120..121 "\n"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
type A = for<'a> fn() -> ();
22
type B = for<'a> unsafe extern "C" fn(&'a ()) -> ();
3+
type Obj = for<'a> PartialEq<&'a i32>;

0 commit comments

Comments
 (0)