mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-13 13:48:50 +00:00
Move complex inline test to own file
This commit is contained in:
parent
506e1ddbfa
commit
879693e63c
7 changed files with 670 additions and 372 deletions
|
@ -195,22 +195,6 @@ fn where_predicate(p: &mut Parser) {
|
||||||
// where
|
// where
|
||||||
// for<'a> F: Fn(&'a str)
|
// for<'a> F: Fn(&'a str)
|
||||||
// { }
|
// { }
|
||||||
// fn for_ref<F>()
|
|
||||||
// where
|
|
||||||
// for<'a> &'a F: Debug
|
|
||||||
// { }
|
|
||||||
// fn for_parens<F>()
|
|
||||||
// where
|
|
||||||
// for<'a> (&'a F): Fn(&'a str)
|
|
||||||
// { }
|
|
||||||
// fn for_slice<F>()
|
|
||||||
// where
|
|
||||||
// for<'a> [&'a F]: Eq
|
|
||||||
// { }
|
|
||||||
// fn for_qpath<T>(_t: &T)
|
|
||||||
// where
|
|
||||||
// for<'a> <&'a T as Baz>::Foo: Iterator
|
|
||||||
// { }
|
|
||||||
if p.at(T![for]) {
|
if p.at(T![for]) {
|
||||||
types::for_binder(p);
|
types::for_binder(p);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,88 +1,240 @@
|
||||||
SOURCE_FILE@0..79
|
SOURCE_FILE@0..239
|
||||||
TYPE_ALIAS_DEF@0..25
|
TYPE_ALIAS_DEF@0..30
|
||||||
TYPE_KW@0..4 "type"
|
TYPE_KW@0..4 "type"
|
||||||
WHITESPACE@4..5 " "
|
WHITESPACE@4..5 " "
|
||||||
NAME@5..6
|
NAME@5..11
|
||||||
IDENT@5..6 "A"
|
IDENT@5..11 "ForRef"
|
||||||
WHITESPACE@6..7 " "
|
WHITESPACE@11..12 " "
|
||||||
EQ@7..8 "="
|
EQ@12..13 "="
|
||||||
WHITESPACE@8..9 " "
|
WHITESPACE@13..14 " "
|
||||||
FOR_TYPE@9..24
|
FOR_TYPE@14..29
|
||||||
FOR_KW@9..12 "for"
|
FOR_KW@14..17 "for"
|
||||||
TYPE_PARAM_LIST@12..16
|
TYPE_PARAM_LIST@17..21
|
||||||
L_ANGLE@12..13 "<"
|
L_ANGLE@17..18 "<"
|
||||||
LIFETIME_PARAM@13..15
|
LIFETIME_PARAM@18..20
|
||||||
LIFETIME@13..15 "\'a"
|
LIFETIME@18..20 "\'a"
|
||||||
R_ANGLE@15..16 ">"
|
R_ANGLE@20..21 ">"
|
||||||
WHITESPACE@16..17 " "
|
WHITESPACE@21..22 " "
|
||||||
REFERENCE_TYPE@17..24
|
REFERENCE_TYPE@22..29
|
||||||
AMP@17..18 "&"
|
AMP@22..23 "&"
|
||||||
LIFETIME@18..20 "\'a"
|
LIFETIME@23..25 "\'a"
|
||||||
WHITESPACE@20..21 " "
|
WHITESPACE@25..26 " "
|
||||||
PATH_TYPE@21..24
|
PATH_TYPE@26..29
|
||||||
PATH@21..24
|
PATH@26..29
|
||||||
PATH_SEGMENT@21..24
|
PATH_SEGMENT@26..29
|
||||||
NAME_REF@21..24
|
NAME_REF@26..29
|
||||||
IDENT@21..24 "u32"
|
IDENT@26..29 "u32"
|
||||||
SEMICOLON@24..25 ";"
|
SEMICOLON@29..30 ";"
|
||||||
WHITESPACE@25..26 "\n"
|
WHITESPACE@30..31 "\n"
|
||||||
TYPE_ALIAS_DEF@26..54
|
TYPE_ALIAS_DEF@31..64
|
||||||
TYPE_KW@26..30 "type"
|
TYPE_KW@31..35 "type"
|
||||||
WHITESPACE@30..31 " "
|
WHITESPACE@35..36 " "
|
||||||
NAME@31..32
|
NAME@36..42
|
||||||
IDENT@31..32 "B"
|
IDENT@36..42 "ForTup"
|
||||||
WHITESPACE@32..33 " "
|
WHITESPACE@42..43 " "
|
||||||
EQ@33..34 "="
|
EQ@43..44 "="
|
||||||
WHITESPACE@34..35 " "
|
WHITESPACE@44..45 " "
|
||||||
FOR_TYPE@35..53
|
FOR_TYPE@45..63
|
||||||
FOR_KW@35..38 "for"
|
FOR_KW@45..48 "for"
|
||||||
TYPE_PARAM_LIST@38..42
|
TYPE_PARAM_LIST@48..52
|
||||||
L_ANGLE@38..39 "<"
|
L_ANGLE@48..49 "<"
|
||||||
LIFETIME_PARAM@39..41
|
LIFETIME_PARAM@49..51
|
||||||
LIFETIME@39..41 "\'a"
|
LIFETIME@49..51 "\'a"
|
||||||
R_ANGLE@41..42 ">"
|
R_ANGLE@51..52 ">"
|
||||||
WHITESPACE@42..43 " "
|
WHITESPACE@52..53 " "
|
||||||
TUPLE_TYPE@43..53
|
TUPLE_TYPE@53..63
|
||||||
L_PAREN@43..44 "("
|
L_PAREN@53..54 "("
|
||||||
REFERENCE_TYPE@44..51
|
REFERENCE_TYPE@54..61
|
||||||
AMP@44..45 "&"
|
AMP@54..55 "&"
|
||||||
LIFETIME@45..47 "\'a"
|
LIFETIME@55..57 "\'a"
|
||||||
WHITESPACE@47..48 " "
|
WHITESPACE@57..58 " "
|
||||||
PATH_TYPE@48..51
|
PATH_TYPE@58..61
|
||||||
PATH@48..51
|
PATH@58..61
|
||||||
PATH_SEGMENT@48..51
|
PATH_SEGMENT@58..61
|
||||||
NAME_REF@48..51
|
NAME_REF@58..61
|
||||||
IDENT@48..51 "u32"
|
IDENT@58..61 "u32"
|
||||||
COMMA@51..52 ","
|
COMMA@61..62 ","
|
||||||
R_PAREN@52..53 ")"
|
R_PAREN@62..63 ")"
|
||||||
SEMICOLON@53..54 ";"
|
SEMICOLON@63..64 ";"
|
||||||
WHITESPACE@54..55 "\n"
|
WHITESPACE@64..65 "\n"
|
||||||
TYPE_ALIAS_DEF@55..78
|
TYPE_ALIAS_DEF@65..95
|
||||||
TYPE_KW@55..59 "type"
|
TYPE_KW@65..69 "type"
|
||||||
WHITESPACE@59..60 " "
|
WHITESPACE@69..70 " "
|
||||||
NAME@60..61
|
NAME@70..78
|
||||||
IDENT@60..61 "B"
|
IDENT@70..78 "ForSlice"
|
||||||
WHITESPACE@61..62 " "
|
WHITESPACE@78..79 " "
|
||||||
EQ@62..63 "="
|
EQ@79..80 "="
|
||||||
WHITESPACE@63..64 " "
|
WHITESPACE@80..81 " "
|
||||||
FOR_TYPE@64..77
|
FOR_TYPE@81..94
|
||||||
FOR_KW@64..67 "for"
|
FOR_KW@81..84 "for"
|
||||||
TYPE_PARAM_LIST@67..71
|
TYPE_PARAM_LIST@84..88
|
||||||
L_ANGLE@67..68 "<"
|
L_ANGLE@84..85 "<"
|
||||||
LIFETIME_PARAM@68..70
|
LIFETIME_PARAM@85..87
|
||||||
LIFETIME@68..70 "\'a"
|
LIFETIME@85..87 "\'a"
|
||||||
R_ANGLE@70..71 ">"
|
R_ANGLE@87..88 ">"
|
||||||
WHITESPACE@71..72 " "
|
WHITESPACE@88..89 " "
|
||||||
SLICE_TYPE@72..77
|
SLICE_TYPE@89..94
|
||||||
L_BRACK@72..73 "["
|
L_BRACK@89..90 "["
|
||||||
PATH_TYPE@73..76
|
PATH_TYPE@90..93
|
||||||
PATH@73..76
|
PATH@90..93
|
||||||
PATH_SEGMENT@73..76
|
PATH_SEGMENT@90..93
|
||||||
NAME_REF@73..76
|
NAME_REF@90..93
|
||||||
IDENT@73..76 "u32"
|
IDENT@90..93 "u32"
|
||||||
R_BRACK@76..77 "]"
|
R_BRACK@93..94 "]"
|
||||||
SEMICOLON@77..78 ";"
|
SEMICOLON@94..95 ";"
|
||||||
WHITESPACE@78..79 "\n"
|
WHITESPACE@95..96 "\n"
|
||||||
error 16..16: expected a function pointer or path
|
TYPE_ALIAS_DEF@96..149
|
||||||
error 42..42: expected a function pointer or path
|
TYPE_KW@96..100 "type"
|
||||||
error 71..71: expected a function pointer or path
|
WHITESPACE@100..101 " "
|
||||||
|
NAME@101..109
|
||||||
|
IDENT@101..109 "ForForFn"
|
||||||
|
WHITESPACE@109..110 " "
|
||||||
|
EQ@110..111 "="
|
||||||
|
WHITESPACE@111..112 " "
|
||||||
|
FOR_TYPE@112..148
|
||||||
|
FOR_KW@112..115 "for"
|
||||||
|
TYPE_PARAM_LIST@115..119
|
||||||
|
L_ANGLE@115..116 "<"
|
||||||
|
LIFETIME_PARAM@116..118
|
||||||
|
LIFETIME@116..118 "\'a"
|
||||||
|
R_ANGLE@118..119 ">"
|
||||||
|
WHITESPACE@119..120 " "
|
||||||
|
FOR_TYPE@120..148
|
||||||
|
FOR_KW@120..123 "for"
|
||||||
|
TYPE_PARAM_LIST@123..127
|
||||||
|
L_ANGLE@123..124 "<"
|
||||||
|
LIFETIME_PARAM@124..126
|
||||||
|
LIFETIME@124..126 "\'b"
|
||||||
|
R_ANGLE@126..127 ">"
|
||||||
|
WHITESPACE@127..128 " "
|
||||||
|
FN_POINTER_TYPE@128..148
|
||||||
|
FN_KW@128..130 "fn"
|
||||||
|
PARAM_LIST@130..148
|
||||||
|
L_PAREN@130..131 "("
|
||||||
|
PARAM@131..138
|
||||||
|
REFERENCE_TYPE@131..138
|
||||||
|
AMP@131..132 "&"
|
||||||
|
LIFETIME@132..134 "\'a"
|
||||||
|
WHITESPACE@134..135 " "
|
||||||
|
PATH_TYPE@135..138
|
||||||
|
PATH@135..138
|
||||||
|
PATH_SEGMENT@135..138
|
||||||
|
NAME_REF@135..138
|
||||||
|
IDENT@135..138 "i32"
|
||||||
|
COMMA@138..139 ","
|
||||||
|
WHITESPACE@139..140 " "
|
||||||
|
PARAM@140..147
|
||||||
|
REFERENCE_TYPE@140..147
|
||||||
|
AMP@140..141 "&"
|
||||||
|
LIFETIME@141..143 "\'b"
|
||||||
|
WHITESPACE@143..144 " "
|
||||||
|
PATH_TYPE@144..147
|
||||||
|
PATH@144..147
|
||||||
|
PATH_SEGMENT@144..147
|
||||||
|
NAME_REF@144..147
|
||||||
|
IDENT@144..147 "i32"
|
||||||
|
R_PAREN@147..148 ")"
|
||||||
|
SEMICOLON@148..149 ";"
|
||||||
|
WHITESPACE@149..150 "\n"
|
||||||
|
FN_DEF@150..238
|
||||||
|
FN_KW@150..152 "fn"
|
||||||
|
WHITESPACE@152..153 " "
|
||||||
|
NAME@153..164
|
||||||
|
IDENT@153..164 "for_for_for"
|
||||||
|
TYPE_PARAM_LIST@164..167
|
||||||
|
L_ANGLE@164..165 "<"
|
||||||
|
TYPE_PARAM@165..166
|
||||||
|
NAME@165..166
|
||||||
|
IDENT@165..166 "T"
|
||||||
|
R_ANGLE@166..167 ">"
|
||||||
|
PARAM_LIST@167..169
|
||||||
|
L_PAREN@167..168 "("
|
||||||
|
R_PAREN@168..169 ")"
|
||||||
|
WHITESPACE@169..170 "\n"
|
||||||
|
WHERE_CLAUSE@170..234
|
||||||
|
WHERE_KW@170..175 "where"
|
||||||
|
WHITESPACE@175..180 "\n "
|
||||||
|
WHERE_PRED@180..233
|
||||||
|
FOR_KW@180..183 "for"
|
||||||
|
TYPE_PARAM_LIST@183..187
|
||||||
|
L_ANGLE@183..184 "<"
|
||||||
|
LIFETIME_PARAM@184..186
|
||||||
|
LIFETIME@184..186 "\'a"
|
||||||
|
R_ANGLE@186..187 ">"
|
||||||
|
WHITESPACE@187..188 " "
|
||||||
|
FOR_TYPE@188..227
|
||||||
|
FOR_KW@188..191 "for"
|
||||||
|
TYPE_PARAM_LIST@191..195
|
||||||
|
L_ANGLE@191..192 "<"
|
||||||
|
LIFETIME_PARAM@192..194
|
||||||
|
LIFETIME@192..194 "\'b"
|
||||||
|
R_ANGLE@194..195 ">"
|
||||||
|
WHITESPACE@195..196 " "
|
||||||
|
FOR_TYPE@196..227
|
||||||
|
FOR_KW@196..199 "for"
|
||||||
|
TYPE_PARAM_LIST@199..203
|
||||||
|
L_ANGLE@199..200 "<"
|
||||||
|
LIFETIME_PARAM@200..202
|
||||||
|
LIFETIME@200..202 "\'c"
|
||||||
|
R_ANGLE@202..203 ">"
|
||||||
|
WHITESPACE@203..204 " "
|
||||||
|
FN_POINTER_TYPE@204..227
|
||||||
|
FN_KW@204..206 "fn"
|
||||||
|
PARAM_LIST@206..227
|
||||||
|
L_PAREN@206..207 "("
|
||||||
|
PARAM@207..212
|
||||||
|
REFERENCE_TYPE@207..212
|
||||||
|
AMP@207..208 "&"
|
||||||
|
LIFETIME@208..210 "\'a"
|
||||||
|
WHITESPACE@210..211 " "
|
||||||
|
PATH_TYPE@211..212
|
||||||
|
PATH@211..212
|
||||||
|
PATH_SEGMENT@211..212
|
||||||
|
NAME_REF@211..212
|
||||||
|
IDENT@211..212 "T"
|
||||||
|
COMMA@212..213 ","
|
||||||
|
WHITESPACE@213..214 " "
|
||||||
|
PARAM@214..219
|
||||||
|
REFERENCE_TYPE@214..219
|
||||||
|
AMP@214..215 "&"
|
||||||
|
LIFETIME@215..217 "\'b"
|
||||||
|
WHITESPACE@217..218 " "
|
||||||
|
PATH_TYPE@218..219
|
||||||
|
PATH@218..219
|
||||||
|
PATH_SEGMENT@218..219
|
||||||
|
NAME_REF@218..219
|
||||||
|
IDENT@218..219 "T"
|
||||||
|
COMMA@219..220 ","
|
||||||
|
WHITESPACE@220..221 " "
|
||||||
|
PARAM@221..226
|
||||||
|
REFERENCE_TYPE@221..226
|
||||||
|
AMP@221..222 "&"
|
||||||
|
LIFETIME@222..224 "\'c"
|
||||||
|
WHITESPACE@224..225 " "
|
||||||
|
PATH_TYPE@225..226
|
||||||
|
PATH@225..226
|
||||||
|
PATH_SEGMENT@225..226
|
||||||
|
NAME_REF@225..226
|
||||||
|
IDENT@225..226 "T"
|
||||||
|
R_PAREN@226..227 ")"
|
||||||
|
COLON@227..228 ":"
|
||||||
|
WHITESPACE@228..229 " "
|
||||||
|
TYPE_BOUND_LIST@229..233
|
||||||
|
TYPE_BOUND@229..233
|
||||||
|
PATH_TYPE@229..233
|
||||||
|
PATH@229..233
|
||||||
|
PATH_SEGMENT@229..233
|
||||||
|
NAME_REF@229..233
|
||||||
|
IDENT@229..233 "Copy"
|
||||||
|
COMMA@233..234 ","
|
||||||
|
WHITESPACE@234..235 "\n"
|
||||||
|
BLOCK_EXPR@235..238
|
||||||
|
L_CURLY@235..236 "{"
|
||||||
|
WHITESPACE@236..237 "\n"
|
||||||
|
R_CURLY@237..238 "}"
|
||||||
|
WHITESPACE@238..239 "\n"
|
||||||
|
error 21..21: expected a function pointer or path
|
||||||
|
error 52..52: expected a function pointer or path
|
||||||
|
error 88..88: expected a function pointer or path
|
||||||
|
error 119..119: expected a function pointer or path
|
||||||
|
error 195..195: expected a function pointer or path
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
type A = for<'a> &'a u32;
|
type ForRef = for<'a> &'a u32;
|
||||||
type B = for<'a> (&'a u32,);
|
type ForTup = for<'a> (&'a u32,);
|
||||||
type B = for<'a> [u32];
|
type ForSlice = for<'a> [u32];
|
||||||
|
type ForForFn = for<'a> for<'b> fn(&'a i32, &'b i32);
|
||||||
|
fn for_for_for<T>()
|
||||||
|
where
|
||||||
|
for<'a> for<'b> for<'c> fn(&'a T, &'b T, &'c T): Copy,
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
SOURCE_FILE@0..292
|
SOURCE_FILE@0..54
|
||||||
FN_DEF@0..53
|
FN_DEF@0..53
|
||||||
FN_KW@0..2 "fn"
|
FN_KW@0..2 "fn"
|
||||||
WHITESPACE@2..3 " "
|
WHITESPACE@2..3 " "
|
||||||
|
@ -58,253 +58,3 @@ SOURCE_FILE@0..292
|
||||||
WHITESPACE@51..52 " "
|
WHITESPACE@51..52 " "
|
||||||
R_CURLY@52..53 "}"
|
R_CURLY@52..53 "}"
|
||||||
WHITESPACE@53..54 "\n"
|
WHITESPACE@53..54 "\n"
|
||||||
FN_DEF@54..103
|
|
||||||
FN_KW@54..56 "fn"
|
|
||||||
WHITESPACE@56..57 " "
|
|
||||||
NAME@57..64
|
|
||||||
IDENT@57..64 "for_ref"
|
|
||||||
TYPE_PARAM_LIST@64..67
|
|
||||||
L_ANGLE@64..65 "<"
|
|
||||||
TYPE_PARAM@65..66
|
|
||||||
NAME@65..66
|
|
||||||
IDENT@65..66 "F"
|
|
||||||
R_ANGLE@66..67 ">"
|
|
||||||
PARAM_LIST@67..69
|
|
||||||
L_PAREN@67..68 "("
|
|
||||||
R_PAREN@68..69 ")"
|
|
||||||
WHITESPACE@69..70 "\n"
|
|
||||||
WHERE_CLAUSE@70..99
|
|
||||||
WHERE_KW@70..75 "where"
|
|
||||||
WHITESPACE@75..79 "\n "
|
|
||||||
WHERE_PRED@79..99
|
|
||||||
FOR_KW@79..82 "for"
|
|
||||||
TYPE_PARAM_LIST@82..86
|
|
||||||
L_ANGLE@82..83 "<"
|
|
||||||
LIFETIME_PARAM@83..85
|
|
||||||
LIFETIME@83..85 "\'a"
|
|
||||||
R_ANGLE@85..86 ">"
|
|
||||||
WHITESPACE@86..87 " "
|
|
||||||
REFERENCE_TYPE@87..92
|
|
||||||
AMP@87..88 "&"
|
|
||||||
LIFETIME@88..90 "\'a"
|
|
||||||
WHITESPACE@90..91 " "
|
|
||||||
PATH_TYPE@91..92
|
|
||||||
PATH@91..92
|
|
||||||
PATH_SEGMENT@91..92
|
|
||||||
NAME_REF@91..92
|
|
||||||
IDENT@91..92 "F"
|
|
||||||
COLON@92..93 ":"
|
|
||||||
WHITESPACE@93..94 " "
|
|
||||||
TYPE_BOUND_LIST@94..99
|
|
||||||
TYPE_BOUND@94..99
|
|
||||||
PATH_TYPE@94..99
|
|
||||||
PATH@94..99
|
|
||||||
PATH_SEGMENT@94..99
|
|
||||||
NAME_REF@94..99
|
|
||||||
IDENT@94..99 "Debug"
|
|
||||||
WHITESPACE@99..100 "\n"
|
|
||||||
BLOCK_EXPR@100..103
|
|
||||||
L_CURLY@100..101 "{"
|
|
||||||
WHITESPACE@101..102 " "
|
|
||||||
R_CURLY@102..103 "}"
|
|
||||||
WHITESPACE@103..104 "\n"
|
|
||||||
FN_DEF@104..164
|
|
||||||
FN_KW@104..106 "fn"
|
|
||||||
WHITESPACE@106..107 " "
|
|
||||||
NAME@107..117
|
|
||||||
IDENT@107..117 "for_parens"
|
|
||||||
TYPE_PARAM_LIST@117..120
|
|
||||||
L_ANGLE@117..118 "<"
|
|
||||||
TYPE_PARAM@118..119
|
|
||||||
NAME@118..119
|
|
||||||
IDENT@118..119 "F"
|
|
||||||
R_ANGLE@119..120 ">"
|
|
||||||
PARAM_LIST@120..122
|
|
||||||
L_PAREN@120..121 "("
|
|
||||||
R_PAREN@121..122 ")"
|
|
||||||
WHITESPACE@122..123 "\n"
|
|
||||||
WHERE_CLAUSE@123..160
|
|
||||||
WHERE_KW@123..128 "where"
|
|
||||||
WHITESPACE@128..132 "\n "
|
|
||||||
WHERE_PRED@132..160
|
|
||||||
FOR_KW@132..135 "for"
|
|
||||||
TYPE_PARAM_LIST@135..139
|
|
||||||
L_ANGLE@135..136 "<"
|
|
||||||
LIFETIME_PARAM@136..138
|
|
||||||
LIFETIME@136..138 "\'a"
|
|
||||||
R_ANGLE@138..139 ">"
|
|
||||||
WHITESPACE@139..140 " "
|
|
||||||
PAREN_TYPE@140..147
|
|
||||||
L_PAREN@140..141 "("
|
|
||||||
REFERENCE_TYPE@141..146
|
|
||||||
AMP@141..142 "&"
|
|
||||||
LIFETIME@142..144 "\'a"
|
|
||||||
WHITESPACE@144..145 " "
|
|
||||||
PATH_TYPE@145..146
|
|
||||||
PATH@145..146
|
|
||||||
PATH_SEGMENT@145..146
|
|
||||||
NAME_REF@145..146
|
|
||||||
IDENT@145..146 "F"
|
|
||||||
R_PAREN@146..147 ")"
|
|
||||||
COLON@147..148 ":"
|
|
||||||
WHITESPACE@148..149 " "
|
|
||||||
TYPE_BOUND_LIST@149..160
|
|
||||||
TYPE_BOUND@149..160
|
|
||||||
PATH_TYPE@149..160
|
|
||||||
PATH@149..160
|
|
||||||
PATH_SEGMENT@149..160
|
|
||||||
NAME_REF@149..151
|
|
||||||
IDENT@149..151 "Fn"
|
|
||||||
PARAM_LIST@151..160
|
|
||||||
L_PAREN@151..152 "("
|
|
||||||
PARAM@152..159
|
|
||||||
REFERENCE_TYPE@152..159
|
|
||||||
AMP@152..153 "&"
|
|
||||||
LIFETIME@153..155 "\'a"
|
|
||||||
WHITESPACE@155..156 " "
|
|
||||||
PATH_TYPE@156..159
|
|
||||||
PATH@156..159
|
|
||||||
PATH_SEGMENT@156..159
|
|
||||||
NAME_REF@156..159
|
|
||||||
IDENT@156..159 "str"
|
|
||||||
R_PAREN@159..160 ")"
|
|
||||||
WHITESPACE@160..161 "\n"
|
|
||||||
BLOCK_EXPR@161..164
|
|
||||||
L_CURLY@161..162 "{"
|
|
||||||
WHITESPACE@162..163 " "
|
|
||||||
R_CURLY@163..164 "}"
|
|
||||||
WHITESPACE@164..165 "\n"
|
|
||||||
FN_DEF@165..215
|
|
||||||
FN_KW@165..167 "fn"
|
|
||||||
WHITESPACE@167..168 " "
|
|
||||||
NAME@168..177
|
|
||||||
IDENT@168..177 "for_slice"
|
|
||||||
TYPE_PARAM_LIST@177..180
|
|
||||||
L_ANGLE@177..178 "<"
|
|
||||||
TYPE_PARAM@178..179
|
|
||||||
NAME@178..179
|
|
||||||
IDENT@178..179 "F"
|
|
||||||
R_ANGLE@179..180 ">"
|
|
||||||
PARAM_LIST@180..182
|
|
||||||
L_PAREN@180..181 "("
|
|
||||||
R_PAREN@181..182 ")"
|
|
||||||
WHITESPACE@182..183 "\n"
|
|
||||||
WHERE_CLAUSE@183..211
|
|
||||||
WHERE_KW@183..188 "where"
|
|
||||||
WHITESPACE@188..192 "\n "
|
|
||||||
WHERE_PRED@192..211
|
|
||||||
FOR_KW@192..195 "for"
|
|
||||||
TYPE_PARAM_LIST@195..199
|
|
||||||
L_ANGLE@195..196 "<"
|
|
||||||
LIFETIME_PARAM@196..198
|
|
||||||
LIFETIME@196..198 "\'a"
|
|
||||||
R_ANGLE@198..199 ">"
|
|
||||||
WHITESPACE@199..200 " "
|
|
||||||
SLICE_TYPE@200..207
|
|
||||||
L_BRACK@200..201 "["
|
|
||||||
REFERENCE_TYPE@201..206
|
|
||||||
AMP@201..202 "&"
|
|
||||||
LIFETIME@202..204 "\'a"
|
|
||||||
WHITESPACE@204..205 " "
|
|
||||||
PATH_TYPE@205..206
|
|
||||||
PATH@205..206
|
|
||||||
PATH_SEGMENT@205..206
|
|
||||||
NAME_REF@205..206
|
|
||||||
IDENT@205..206 "F"
|
|
||||||
R_BRACK@206..207 "]"
|
|
||||||
COLON@207..208 ":"
|
|
||||||
WHITESPACE@208..209 " "
|
|
||||||
TYPE_BOUND_LIST@209..211
|
|
||||||
TYPE_BOUND@209..211
|
|
||||||
PATH_TYPE@209..211
|
|
||||||
PATH@209..211
|
|
||||||
PATH_SEGMENT@209..211
|
|
||||||
NAME_REF@209..211
|
|
||||||
IDENT@209..211 "Eq"
|
|
||||||
WHITESPACE@211..212 "\n"
|
|
||||||
BLOCK_EXPR@212..215
|
|
||||||
L_CURLY@212..213 "{"
|
|
||||||
WHITESPACE@213..214 " "
|
|
||||||
R_CURLY@214..215 "}"
|
|
||||||
WHITESPACE@215..216 "\n"
|
|
||||||
FN_DEF@216..291
|
|
||||||
FN_KW@216..218 "fn"
|
|
||||||
WHITESPACE@218..219 " "
|
|
||||||
NAME@219..228
|
|
||||||
IDENT@219..228 "for_qpath"
|
|
||||||
TYPE_PARAM_LIST@228..231
|
|
||||||
L_ANGLE@228..229 "<"
|
|
||||||
TYPE_PARAM@229..230
|
|
||||||
NAME@229..230
|
|
||||||
IDENT@229..230 "T"
|
|
||||||
R_ANGLE@230..231 ">"
|
|
||||||
PARAM_LIST@231..239
|
|
||||||
L_PAREN@231..232 "("
|
|
||||||
PARAM@232..238
|
|
||||||
BIND_PAT@232..234
|
|
||||||
NAME@232..234
|
|
||||||
IDENT@232..234 "_t"
|
|
||||||
COLON@234..235 ":"
|
|
||||||
WHITESPACE@235..236 " "
|
|
||||||
REFERENCE_TYPE@236..238
|
|
||||||
AMP@236..237 "&"
|
|
||||||
PATH_TYPE@237..238
|
|
||||||
PATH@237..238
|
|
||||||
PATH_SEGMENT@237..238
|
|
||||||
NAME_REF@237..238
|
|
||||||
IDENT@237..238 "T"
|
|
||||||
R_PAREN@238..239 ")"
|
|
||||||
WHITESPACE@239..240 "\n"
|
|
||||||
WHERE_CLAUSE@240..287
|
|
||||||
WHERE_KW@240..245 "where"
|
|
||||||
WHITESPACE@245..250 "\n "
|
|
||||||
WHERE_PRED@250..287
|
|
||||||
FOR_KW@250..253 "for"
|
|
||||||
TYPE_PARAM_LIST@253..257
|
|
||||||
L_ANGLE@253..254 "<"
|
|
||||||
LIFETIME_PARAM@254..256
|
|
||||||
LIFETIME@254..256 "\'a"
|
|
||||||
R_ANGLE@256..257 ">"
|
|
||||||
WHITESPACE@257..258 " "
|
|
||||||
PATH_TYPE@258..277
|
|
||||||
PATH@258..277
|
|
||||||
PATH@258..272
|
|
||||||
PATH_SEGMENT@258..272
|
|
||||||
L_ANGLE@258..259 "<"
|
|
||||||
REFERENCE_TYPE@259..264
|
|
||||||
AMP@259..260 "&"
|
|
||||||
LIFETIME@260..262 "\'a"
|
|
||||||
WHITESPACE@262..263 " "
|
|
||||||
PATH_TYPE@263..264
|
|
||||||
PATH@263..264
|
|
||||||
PATH_SEGMENT@263..264
|
|
||||||
NAME_REF@263..264
|
|
||||||
IDENT@263..264 "T"
|
|
||||||
WHITESPACE@264..265 " "
|
|
||||||
AS_KW@265..267 "as"
|
|
||||||
WHITESPACE@267..268 " "
|
|
||||||
PATH_TYPE@268..271
|
|
||||||
PATH@268..271
|
|
||||||
PATH_SEGMENT@268..271
|
|
||||||
NAME_REF@268..271
|
|
||||||
IDENT@268..271 "Baz"
|
|
||||||
R_ANGLE@271..272 ">"
|
|
||||||
COLON2@272..274 "::"
|
|
||||||
PATH_SEGMENT@274..277
|
|
||||||
NAME_REF@274..277
|
|
||||||
IDENT@274..277 "Foo"
|
|
||||||
COLON@277..278 ":"
|
|
||||||
WHITESPACE@278..279 " "
|
|
||||||
TYPE_BOUND_LIST@279..287
|
|
||||||
TYPE_BOUND@279..287
|
|
||||||
PATH_TYPE@279..287
|
|
||||||
PATH@279..287
|
|
||||||
PATH_SEGMENT@279..287
|
|
||||||
NAME_REF@279..287
|
|
||||||
IDENT@279..287 "Iterator"
|
|
||||||
WHITESPACE@287..288 "\n"
|
|
||||||
BLOCK_EXPR@288..291
|
|
||||||
L_CURLY@288..289 "{"
|
|
||||||
WHITESPACE@289..290 " "
|
|
||||||
R_CURLY@290..291 "}"
|
|
||||||
WHITESPACE@291..292 "\n"
|
|
||||||
|
|
|
@ -2,19 +2,3 @@ fn for_trait<F>()
|
||||||
where
|
where
|
||||||
for<'a> F: Fn(&'a str)
|
for<'a> F: Fn(&'a str)
|
||||||
{ }
|
{ }
|
||||||
fn for_ref<F>()
|
|
||||||
where
|
|
||||||
for<'a> &'a F: Debug
|
|
||||||
{ }
|
|
||||||
fn for_parens<F>()
|
|
||||||
where
|
|
||||||
for<'a> (&'a F): Fn(&'a str)
|
|
||||||
{ }
|
|
||||||
fn for_slice<F>()
|
|
||||||
where
|
|
||||||
for<'a> [&'a F]: Eq
|
|
||||||
{ }
|
|
||||||
fn for_qpath<T>(_t: &T)
|
|
||||||
where
|
|
||||||
for<'a> <&'a T as Baz>::Foo: Iterator
|
|
||||||
{ }
|
|
||||||
|
|
392
crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
Normal file
392
crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rast
Normal file
|
@ -0,0 +1,392 @@
|
||||||
|
SOURCE_FILE@0..374
|
||||||
|
FN_DEF@0..55
|
||||||
|
FN_KW@0..2 "fn"
|
||||||
|
WHITESPACE@2..3 " "
|
||||||
|
NAME@3..12
|
||||||
|
IDENT@3..12 "for_trait"
|
||||||
|
TYPE_PARAM_LIST@12..15
|
||||||
|
L_ANGLE@12..13 "<"
|
||||||
|
TYPE_PARAM@13..14
|
||||||
|
NAME@13..14
|
||||||
|
IDENT@13..14 "F"
|
||||||
|
R_ANGLE@14..15 ">"
|
||||||
|
PARAM_LIST@15..17
|
||||||
|
L_PAREN@15..16 "("
|
||||||
|
R_PAREN@16..17 ")"
|
||||||
|
WHITESPACE@17..18 "\n"
|
||||||
|
WHERE_CLAUSE@18..51
|
||||||
|
WHERE_KW@18..23 "where"
|
||||||
|
WHITESPACE@23..28 "\n "
|
||||||
|
WHERE_PRED@28..50
|
||||||
|
FOR_KW@28..31 "for"
|
||||||
|
TYPE_PARAM_LIST@31..35
|
||||||
|
L_ANGLE@31..32 "<"
|
||||||
|
LIFETIME_PARAM@32..34
|
||||||
|
LIFETIME@32..34 "\'a"
|
||||||
|
R_ANGLE@34..35 ">"
|
||||||
|
WHITESPACE@35..36 " "
|
||||||
|
PATH_TYPE@36..37
|
||||||
|
PATH@36..37
|
||||||
|
PATH_SEGMENT@36..37
|
||||||
|
NAME_REF@36..37
|
||||||
|
IDENT@36..37 "F"
|
||||||
|
COLON@37..38 ":"
|
||||||
|
WHITESPACE@38..39 " "
|
||||||
|
TYPE_BOUND_LIST@39..50
|
||||||
|
TYPE_BOUND@39..50
|
||||||
|
PATH_TYPE@39..50
|
||||||
|
PATH@39..50
|
||||||
|
PATH_SEGMENT@39..50
|
||||||
|
NAME_REF@39..41
|
||||||
|
IDENT@39..41 "Fn"
|
||||||
|
PARAM_LIST@41..50
|
||||||
|
L_PAREN@41..42 "("
|
||||||
|
PARAM@42..49
|
||||||
|
REFERENCE_TYPE@42..49
|
||||||
|
AMP@42..43 "&"
|
||||||
|
LIFETIME@43..45 "\'a"
|
||||||
|
WHITESPACE@45..46 " "
|
||||||
|
PATH_TYPE@46..49
|
||||||
|
PATH@46..49
|
||||||
|
PATH_SEGMENT@46..49
|
||||||
|
NAME_REF@46..49
|
||||||
|
IDENT@46..49 "str"
|
||||||
|
R_PAREN@49..50 ")"
|
||||||
|
COMMA@50..51 ","
|
||||||
|
WHITESPACE@51..52 "\n"
|
||||||
|
BLOCK_EXPR@52..55
|
||||||
|
L_CURLY@52..53 "{"
|
||||||
|
WHITESPACE@53..54 "\n"
|
||||||
|
R_CURLY@54..55 "}"
|
||||||
|
WHITESPACE@55..56 "\n"
|
||||||
|
FN_DEF@56..107
|
||||||
|
FN_KW@56..58 "fn"
|
||||||
|
WHITESPACE@58..59 " "
|
||||||
|
NAME@59..66
|
||||||
|
IDENT@59..66 "for_ref"
|
||||||
|
TYPE_PARAM_LIST@66..69
|
||||||
|
L_ANGLE@66..67 "<"
|
||||||
|
TYPE_PARAM@67..68
|
||||||
|
NAME@67..68
|
||||||
|
IDENT@67..68 "F"
|
||||||
|
R_ANGLE@68..69 ">"
|
||||||
|
PARAM_LIST@69..71
|
||||||
|
L_PAREN@69..70 "("
|
||||||
|
R_PAREN@70..71 ")"
|
||||||
|
WHITESPACE@71..72 "\n"
|
||||||
|
WHERE_CLAUSE@72..103
|
||||||
|
WHERE_KW@72..77 "where"
|
||||||
|
WHITESPACE@77..82 "\n "
|
||||||
|
WHERE_PRED@82..102
|
||||||
|
FOR_KW@82..85 "for"
|
||||||
|
TYPE_PARAM_LIST@85..89
|
||||||
|
L_ANGLE@85..86 "<"
|
||||||
|
LIFETIME_PARAM@86..88
|
||||||
|
LIFETIME@86..88 "\'a"
|
||||||
|
R_ANGLE@88..89 ">"
|
||||||
|
WHITESPACE@89..90 " "
|
||||||
|
REFERENCE_TYPE@90..95
|
||||||
|
AMP@90..91 "&"
|
||||||
|
LIFETIME@91..93 "\'a"
|
||||||
|
WHITESPACE@93..94 " "
|
||||||
|
PATH_TYPE@94..95
|
||||||
|
PATH@94..95
|
||||||
|
PATH_SEGMENT@94..95
|
||||||
|
NAME_REF@94..95
|
||||||
|
IDENT@94..95 "F"
|
||||||
|
COLON@95..96 ":"
|
||||||
|
WHITESPACE@96..97 " "
|
||||||
|
TYPE_BOUND_LIST@97..102
|
||||||
|
TYPE_BOUND@97..102
|
||||||
|
PATH_TYPE@97..102
|
||||||
|
PATH@97..102
|
||||||
|
PATH_SEGMENT@97..102
|
||||||
|
NAME_REF@97..102
|
||||||
|
IDENT@97..102 "Debug"
|
||||||
|
COMMA@102..103 ","
|
||||||
|
WHITESPACE@103..104 "\n"
|
||||||
|
BLOCK_EXPR@104..107
|
||||||
|
L_CURLY@104..105 "{"
|
||||||
|
WHITESPACE@105..106 "\n"
|
||||||
|
R_CURLY@106..107 "}"
|
||||||
|
WHITESPACE@107..108 "\n"
|
||||||
|
FN_DEF@108..170
|
||||||
|
FN_KW@108..110 "fn"
|
||||||
|
WHITESPACE@110..111 " "
|
||||||
|
NAME@111..121
|
||||||
|
IDENT@111..121 "for_parens"
|
||||||
|
TYPE_PARAM_LIST@121..124
|
||||||
|
L_ANGLE@121..122 "<"
|
||||||
|
TYPE_PARAM@122..123
|
||||||
|
NAME@122..123
|
||||||
|
IDENT@122..123 "F"
|
||||||
|
R_ANGLE@123..124 ">"
|
||||||
|
PARAM_LIST@124..126
|
||||||
|
L_PAREN@124..125 "("
|
||||||
|
R_PAREN@125..126 ")"
|
||||||
|
WHITESPACE@126..127 "\n"
|
||||||
|
WHERE_CLAUSE@127..166
|
||||||
|
WHERE_KW@127..132 "where"
|
||||||
|
WHITESPACE@132..137 "\n "
|
||||||
|
WHERE_PRED@137..165
|
||||||
|
FOR_KW@137..140 "for"
|
||||||
|
TYPE_PARAM_LIST@140..144
|
||||||
|
L_ANGLE@140..141 "<"
|
||||||
|
LIFETIME_PARAM@141..143
|
||||||
|
LIFETIME@141..143 "\'a"
|
||||||
|
R_ANGLE@143..144 ">"
|
||||||
|
WHITESPACE@144..145 " "
|
||||||
|
PAREN_TYPE@145..152
|
||||||
|
L_PAREN@145..146 "("
|
||||||
|
REFERENCE_TYPE@146..151
|
||||||
|
AMP@146..147 "&"
|
||||||
|
LIFETIME@147..149 "\'a"
|
||||||
|
WHITESPACE@149..150 " "
|
||||||
|
PATH_TYPE@150..151
|
||||||
|
PATH@150..151
|
||||||
|
PATH_SEGMENT@150..151
|
||||||
|
NAME_REF@150..151
|
||||||
|
IDENT@150..151 "F"
|
||||||
|
R_PAREN@151..152 ")"
|
||||||
|
COLON@152..153 ":"
|
||||||
|
WHITESPACE@153..154 " "
|
||||||
|
TYPE_BOUND_LIST@154..165
|
||||||
|
TYPE_BOUND@154..165
|
||||||
|
PATH_TYPE@154..165
|
||||||
|
PATH@154..165
|
||||||
|
PATH_SEGMENT@154..165
|
||||||
|
NAME_REF@154..156
|
||||||
|
IDENT@154..156 "Fn"
|
||||||
|
PARAM_LIST@156..165
|
||||||
|
L_PAREN@156..157 "("
|
||||||
|
PARAM@157..164
|
||||||
|
REFERENCE_TYPE@157..164
|
||||||
|
AMP@157..158 "&"
|
||||||
|
LIFETIME@158..160 "\'a"
|
||||||
|
WHITESPACE@160..161 " "
|
||||||
|
PATH_TYPE@161..164
|
||||||
|
PATH@161..164
|
||||||
|
PATH_SEGMENT@161..164
|
||||||
|
NAME_REF@161..164
|
||||||
|
IDENT@161..164 "str"
|
||||||
|
R_PAREN@164..165 ")"
|
||||||
|
COMMA@165..166 ","
|
||||||
|
WHITESPACE@166..167 "\n"
|
||||||
|
BLOCK_EXPR@167..170
|
||||||
|
L_CURLY@167..168 "{"
|
||||||
|
WHITESPACE@168..169 "\n"
|
||||||
|
R_CURLY@169..170 "}"
|
||||||
|
WHITESPACE@170..171 "\n"
|
||||||
|
FN_DEF@171..223
|
||||||
|
FN_KW@171..173 "fn"
|
||||||
|
WHITESPACE@173..174 " "
|
||||||
|
NAME@174..183
|
||||||
|
IDENT@174..183 "for_slice"
|
||||||
|
TYPE_PARAM_LIST@183..186
|
||||||
|
L_ANGLE@183..184 "<"
|
||||||
|
TYPE_PARAM@184..185
|
||||||
|
NAME@184..185
|
||||||
|
IDENT@184..185 "F"
|
||||||
|
R_ANGLE@185..186 ">"
|
||||||
|
PARAM_LIST@186..188
|
||||||
|
L_PAREN@186..187 "("
|
||||||
|
R_PAREN@187..188 ")"
|
||||||
|
WHITESPACE@188..189 "\n"
|
||||||
|
WHERE_CLAUSE@189..219
|
||||||
|
WHERE_KW@189..194 "where"
|
||||||
|
WHITESPACE@194..199 "\n "
|
||||||
|
WHERE_PRED@199..218
|
||||||
|
FOR_KW@199..202 "for"
|
||||||
|
TYPE_PARAM_LIST@202..206
|
||||||
|
L_ANGLE@202..203 "<"
|
||||||
|
LIFETIME_PARAM@203..205
|
||||||
|
LIFETIME@203..205 "\'a"
|
||||||
|
R_ANGLE@205..206 ">"
|
||||||
|
WHITESPACE@206..207 " "
|
||||||
|
SLICE_TYPE@207..214
|
||||||
|
L_BRACK@207..208 "["
|
||||||
|
REFERENCE_TYPE@208..213
|
||||||
|
AMP@208..209 "&"
|
||||||
|
LIFETIME@209..211 "\'a"
|
||||||
|
WHITESPACE@211..212 " "
|
||||||
|
PATH_TYPE@212..213
|
||||||
|
PATH@212..213
|
||||||
|
PATH_SEGMENT@212..213
|
||||||
|
NAME_REF@212..213
|
||||||
|
IDENT@212..213 "F"
|
||||||
|
R_BRACK@213..214 "]"
|
||||||
|
COLON@214..215 ":"
|
||||||
|
WHITESPACE@215..216 " "
|
||||||
|
TYPE_BOUND_LIST@216..218
|
||||||
|
TYPE_BOUND@216..218
|
||||||
|
PATH_TYPE@216..218
|
||||||
|
PATH@216..218
|
||||||
|
PATH_SEGMENT@216..218
|
||||||
|
NAME_REF@216..218
|
||||||
|
IDENT@216..218 "Eq"
|
||||||
|
COMMA@218..219 ","
|
||||||
|
WHITESPACE@219..220 "\n"
|
||||||
|
BLOCK_EXPR@220..223
|
||||||
|
L_CURLY@220..221 "{"
|
||||||
|
WHITESPACE@221..222 "\n"
|
||||||
|
R_CURLY@222..223 "}"
|
||||||
|
WHITESPACE@223..224 "\n"
|
||||||
|
FN_DEF@224..300
|
||||||
|
FN_KW@224..226 "fn"
|
||||||
|
WHITESPACE@226..227 " "
|
||||||
|
NAME@227..236
|
||||||
|
IDENT@227..236 "for_qpath"
|
||||||
|
TYPE_PARAM_LIST@236..239
|
||||||
|
L_ANGLE@236..237 "<"
|
||||||
|
TYPE_PARAM@237..238
|
||||||
|
NAME@237..238
|
||||||
|
IDENT@237..238 "T"
|
||||||
|
R_ANGLE@238..239 ">"
|
||||||
|
PARAM_LIST@239..247
|
||||||
|
L_PAREN@239..240 "("
|
||||||
|
PARAM@240..246
|
||||||
|
BIND_PAT@240..242
|
||||||
|
NAME@240..242
|
||||||
|
IDENT@240..242 "_t"
|
||||||
|
COLON@242..243 ":"
|
||||||
|
WHITESPACE@243..244 " "
|
||||||
|
REFERENCE_TYPE@244..246
|
||||||
|
AMP@244..245 "&"
|
||||||
|
PATH_TYPE@245..246
|
||||||
|
PATH@245..246
|
||||||
|
PATH_SEGMENT@245..246
|
||||||
|
NAME_REF@245..246
|
||||||
|
IDENT@245..246 "T"
|
||||||
|
R_PAREN@246..247 ")"
|
||||||
|
WHITESPACE@247..248 "\n"
|
||||||
|
WHERE_CLAUSE@248..296
|
||||||
|
WHERE_KW@248..253 "where"
|
||||||
|
WHITESPACE@253..258 "\n "
|
||||||
|
WHERE_PRED@258..295
|
||||||
|
FOR_KW@258..261 "for"
|
||||||
|
TYPE_PARAM_LIST@261..265
|
||||||
|
L_ANGLE@261..262 "<"
|
||||||
|
LIFETIME_PARAM@262..264
|
||||||
|
LIFETIME@262..264 "\'a"
|
||||||
|
R_ANGLE@264..265 ">"
|
||||||
|
WHITESPACE@265..266 " "
|
||||||
|
PATH_TYPE@266..285
|
||||||
|
PATH@266..285
|
||||||
|
PATH@266..280
|
||||||
|
PATH_SEGMENT@266..280
|
||||||
|
L_ANGLE@266..267 "<"
|
||||||
|
REFERENCE_TYPE@267..272
|
||||||
|
AMP@267..268 "&"
|
||||||
|
LIFETIME@268..270 "\'a"
|
||||||
|
WHITESPACE@270..271 " "
|
||||||
|
PATH_TYPE@271..272
|
||||||
|
PATH@271..272
|
||||||
|
PATH_SEGMENT@271..272
|
||||||
|
NAME_REF@271..272
|
||||||
|
IDENT@271..272 "T"
|
||||||
|
WHITESPACE@272..273 " "
|
||||||
|
AS_KW@273..275 "as"
|
||||||
|
WHITESPACE@275..276 " "
|
||||||
|
PATH_TYPE@276..279
|
||||||
|
PATH@276..279
|
||||||
|
PATH_SEGMENT@276..279
|
||||||
|
NAME_REF@276..279
|
||||||
|
IDENT@276..279 "Baz"
|
||||||
|
R_ANGLE@279..280 ">"
|
||||||
|
COLON2@280..282 "::"
|
||||||
|
PATH_SEGMENT@282..285
|
||||||
|
NAME_REF@282..285
|
||||||
|
IDENT@282..285 "Foo"
|
||||||
|
COLON@285..286 ":"
|
||||||
|
WHITESPACE@286..287 " "
|
||||||
|
TYPE_BOUND_LIST@287..295
|
||||||
|
TYPE_BOUND@287..295
|
||||||
|
PATH_TYPE@287..295
|
||||||
|
PATH@287..295
|
||||||
|
PATH_SEGMENT@287..295
|
||||||
|
NAME_REF@287..295
|
||||||
|
IDENT@287..295 "Iterator"
|
||||||
|
COMMA@295..296 ","
|
||||||
|
WHITESPACE@296..297 "\n"
|
||||||
|
BLOCK_EXPR@297..300
|
||||||
|
L_CURLY@297..298 "{"
|
||||||
|
WHITESPACE@298..299 "\n"
|
||||||
|
R_CURLY@299..300 "}"
|
||||||
|
WHITESPACE@300..301 "\n"
|
||||||
|
FN_DEF@301..373
|
||||||
|
FN_KW@301..303 "fn"
|
||||||
|
WHITESPACE@303..304 " "
|
||||||
|
NAME@304..314
|
||||||
|
IDENT@304..314 "for_for_fn"
|
||||||
|
TYPE_PARAM_LIST@314..317
|
||||||
|
L_ANGLE@314..315 "<"
|
||||||
|
TYPE_PARAM@315..316
|
||||||
|
NAME@315..316
|
||||||
|
IDENT@315..316 "T"
|
||||||
|
R_ANGLE@316..317 ">"
|
||||||
|
PARAM_LIST@317..319
|
||||||
|
L_PAREN@317..318 "("
|
||||||
|
R_PAREN@318..319 ")"
|
||||||
|
WHITESPACE@319..320 "\n"
|
||||||
|
WHERE_CLAUSE@320..369
|
||||||
|
WHERE_KW@320..325 "where"
|
||||||
|
WHITESPACE@325..330 "\n "
|
||||||
|
WHERE_PRED@330..368
|
||||||
|
FOR_KW@330..333 "for"
|
||||||
|
TYPE_PARAM_LIST@333..337
|
||||||
|
L_ANGLE@333..334 "<"
|
||||||
|
LIFETIME_PARAM@334..336
|
||||||
|
LIFETIME@334..336 "\'a"
|
||||||
|
R_ANGLE@336..337 ">"
|
||||||
|
WHITESPACE@337..338 " "
|
||||||
|
FOR_TYPE@338..362
|
||||||
|
FOR_KW@338..341 "for"
|
||||||
|
TYPE_PARAM_LIST@341..345
|
||||||
|
L_ANGLE@341..342 "<"
|
||||||
|
LIFETIME_PARAM@342..344
|
||||||
|
LIFETIME@342..344 "\'b"
|
||||||
|
R_ANGLE@344..345 ">"
|
||||||
|
WHITESPACE@345..346 " "
|
||||||
|
FN_POINTER_TYPE@346..362
|
||||||
|
FN_KW@346..348 "fn"
|
||||||
|
PARAM_LIST@348..362
|
||||||
|
L_PAREN@348..349 "("
|
||||||
|
PARAM@349..354
|
||||||
|
REFERENCE_TYPE@349..354
|
||||||
|
AMP@349..350 "&"
|
||||||
|
LIFETIME@350..352 "\'a"
|
||||||
|
WHITESPACE@352..353 " "
|
||||||
|
PATH_TYPE@353..354
|
||||||
|
PATH@353..354
|
||||||
|
PATH_SEGMENT@353..354
|
||||||
|
NAME_REF@353..354
|
||||||
|
IDENT@353..354 "T"
|
||||||
|
COMMA@354..355 ","
|
||||||
|
WHITESPACE@355..356 " "
|
||||||
|
PARAM@356..361
|
||||||
|
REFERENCE_TYPE@356..361
|
||||||
|
AMP@356..357 "&"
|
||||||
|
LIFETIME@357..359 "\'b"
|
||||||
|
WHITESPACE@359..360 " "
|
||||||
|
PATH_TYPE@360..361
|
||||||
|
PATH@360..361
|
||||||
|
PATH_SEGMENT@360..361
|
||||||
|
NAME_REF@360..361
|
||||||
|
IDENT@360..361 "T"
|
||||||
|
R_PAREN@361..362 ")"
|
||||||
|
COLON@362..363 ":"
|
||||||
|
WHITESPACE@363..364 " "
|
||||||
|
TYPE_BOUND_LIST@364..368
|
||||||
|
TYPE_BOUND@364..368
|
||||||
|
PATH_TYPE@364..368
|
||||||
|
PATH@364..368
|
||||||
|
PATH_SEGMENT@364..368
|
||||||
|
NAME_REF@364..368
|
||||||
|
IDENT@364..368 "Copy"
|
||||||
|
COMMA@368..369 ","
|
||||||
|
WHITESPACE@369..370 "\n"
|
||||||
|
BLOCK_EXPR@370..373
|
||||||
|
L_CURLY@370..371 "{"
|
||||||
|
WHITESPACE@371..372 "\n"
|
||||||
|
R_CURLY@372..373 "}"
|
||||||
|
WHITESPACE@373..374 "\n"
|
30
crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs
Normal file
30
crates/ra_syntax/test_data/parser/ok/0067_where_for_pred.rs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
fn for_trait<F>()
|
||||||
|
where
|
||||||
|
for<'a> F: Fn(&'a str),
|
||||||
|
{
|
||||||
|
}
|
||||||
|
fn for_ref<F>()
|
||||||
|
where
|
||||||
|
for<'a> &'a F: Debug,
|
||||||
|
{
|
||||||
|
}
|
||||||
|
fn for_parens<F>()
|
||||||
|
where
|
||||||
|
for<'a> (&'a F): Fn(&'a str),
|
||||||
|
{
|
||||||
|
}
|
||||||
|
fn for_slice<F>()
|
||||||
|
where
|
||||||
|
for<'a> [&'a F]: Eq,
|
||||||
|
{
|
||||||
|
}
|
||||||
|
fn for_qpath<T>(_t: &T)
|
||||||
|
where
|
||||||
|
for<'a> <&'a T as Baz>::Foo: Iterator,
|
||||||
|
{
|
||||||
|
}
|
||||||
|
fn for_for_fn<T>()
|
||||||
|
where
|
||||||
|
for<'a> for<'b> fn(&'a T, &'b T): Copy,
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in a new issue