]> git.lizzy.rs Git - rust.git/blob - crates/syntax/test_data/parser/err/0018_incomplete_fn.rast
feat: improve parser error recovery for function parameters
[rust.git] / crates / syntax / test_data / parser / err / 0018_incomplete_fn.rast
1 SOURCE_FILE@0..183
2   IMPL@0..182
3     IMPL_KW@0..4 "impl"
4     WHITESPACE@4..5 " "
5     PATH_TYPE@5..13
6       PATH@5..13
7         PATH_SEGMENT@5..13
8           NAME_REF@5..13
9             IDENT@5..13 "FnScopes"
10     WHITESPACE@13..14 " "
11     ASSOC_ITEM_LIST@14..182
12       L_CURLY@14..15 "{"
13       WHITESPACE@15..20 "\n    "
14       FN@20..161
15         FN_KW@20..22 "fn"
16         WHITESPACE@22..23 " "
17         NAME@23..32
18           IDENT@23..32 "new_scope"
19         PARAM_LIST@32..35
20           L_PAREN@32..33 "("
21           PARAM@33..34
22             REF_PAT@33..34
23               AMP@33..34 "&"
24           R_PAREN@34..35 ")"
25         WHITESPACE@35..36 " "
26         RET_TYPE@36..46
27           THIN_ARROW@36..38 "->"
28           WHITESPACE@38..39 " "
29           PATH_TYPE@39..46
30             PATH@39..46
31               PATH_SEGMENT@39..46
32                 NAME_REF@39..46
33                   IDENT@39..46 "ScopeId"
34         WHITESPACE@46..47 " "
35         BLOCK_EXPR@47..161
36           L_CURLY@47..48 "{"
37           WHITESPACE@48..57 "\n        "
38           LET_STMT@57..85
39             LET_KW@57..60 "let"
40             WHITESPACE@60..61 " "
41             IDENT_PAT@61..64
42               NAME@61..64
43                 IDENT@61..64 "res"
44             WHITESPACE@64..65 " "
45             EQ@65..66 "="
46             WHITESPACE@66..67 " "
47             METHOD_CALL_EXPR@67..84
48               FIELD_EXPR@67..78
49                 PATH_EXPR@67..71
50                   PATH@67..71
51                     PATH_SEGMENT@67..71
52                       NAME_REF@67..71
53                         SELF_KW@67..71 "self"
54                 DOT@71..72 "."
55                 NAME_REF@72..78
56                   IDENT@72..78 "scopes"
57               DOT@78..79 "."
58               NAME_REF@79..82
59                 IDENT@79..82 "len"
60               ARG_LIST@82..84
61                 L_PAREN@82..83 "("
62                 R_PAREN@83..84 ")"
63             SEMICOLON@84..85 ";"
64           WHITESPACE@85..94 "\n        "
65           METHOD_CALL_EXPR@94..155
66             FIELD_EXPR@94..105
67               PATH_EXPR@94..98
68                 PATH@94..98
69                   PATH_SEGMENT@94..98
70                     NAME_REF@94..98
71                       SELF_KW@94..98 "self"
72               DOT@98..99 "."
73               NAME_REF@99..105
74                 IDENT@99..105 "scopes"
75             DOT@105..106 "."
76             NAME_REF@106..110
77               IDENT@106..110 "push"
78             ARG_LIST@110..155
79               L_PAREN@110..111 "("
80               RECORD_EXPR@111..154
81                 PATH@111..120
82                   PATH_SEGMENT@111..120
83                     NAME_REF@111..120
84                       IDENT@111..120 "ScopeData"
85                 WHITESPACE@120..121 " "
86                 RECORD_EXPR_FIELD_LIST@121..154
87                   L_CURLY@121..122 "{"
88                   WHITESPACE@122..123 " "
89                   RECORD_EXPR_FIELD@123..135
90                     NAME_REF@123..129
91                       IDENT@123..129 "parent"
92                     COLON@129..130 ":"
93                     WHITESPACE@130..131 " "
94                     PATH_EXPR@131..135
95                       PATH@131..135
96                         PATH_SEGMENT@131..135
97                           NAME_REF@131..135
98                             IDENT@131..135 "None"
99                   COMMA@135..136 ","
100                   WHITESPACE@136..137 " "
101                   RECORD_EXPR_FIELD@137..152
102                     NAME_REF@137..144
103                       IDENT@137..144 "entries"
104                     COLON@144..145 ":"
105                     WHITESPACE@145..146 " "
106                     MACRO_CALL@146..152
107                       PATH@146..149
108                         PATH_SEGMENT@146..149
109                           NAME_REF@146..149
110                             IDENT@146..149 "vec"
111                       BANG@149..150 "!"
112                       TOKEN_TREE@150..152
113                         L_BRACK@150..151 "["
114                         R_BRACK@151..152 "]"
115                   WHITESPACE@152..153 " "
116                   R_CURLY@153..154 "}"
117               R_PAREN@154..155 ")"
118           WHITESPACE@155..160 "\n    "
119           R_CURLY@160..161 "}"
120       WHITESPACE@161..167 "\n\n    "
121       FN@167..180
122         FN_KW@167..169 "fn"
123         WHITESPACE@169..170 " "
124         NAME@170..180
125           IDENT@170..180 "set_parent"
126       WHITESPACE@180..181 "\n"
127       R_CURLY@181..182 "}"
128   WHITESPACE@182..183 "\n"
129 error 34..34: expected pattern
130 error 34..34: missing type for function parameter
131 error 180..180: expected function arguments
132 error 180..180: expected a block