SOURCE_FILE@0..183 IMPL@0..182 IMPL_KW@0..4 "impl" WHITESPACE@4..5 " " PATH_TYPE@5..13 PATH@5..13 PATH_SEGMENT@5..13 NAME_REF@5..13 IDENT@5..13 "FnScopes" WHITESPACE@13..14 " " ASSOC_ITEM_LIST@14..182 L_CURLY@14..15 "{" WHITESPACE@15..20 "\n " FN@20..161 FN_KW@20..22 "fn" WHITESPACE@22..23 " " NAME@23..32 IDENT@23..32 "new_scope" PARAM_LIST@32..35 L_PAREN@32..33 "(" PARAM@33..34 REF_PAT@33..34 AMP@33..34 "&" R_PAREN@34..35 ")" WHITESPACE@35..36 " " RET_TYPE@36..46 THIN_ARROW@36..38 "->" WHITESPACE@38..39 " " PATH_TYPE@39..46 PATH@39..46 PATH_SEGMENT@39..46 NAME_REF@39..46 IDENT@39..46 "ScopeId" WHITESPACE@46..47 " " BLOCK_EXPR@47..161 L_CURLY@47..48 "{" WHITESPACE@48..57 "\n " LET_STMT@57..85 LET_KW@57..60 "let" WHITESPACE@60..61 " " IDENT_PAT@61..64 NAME@61..64 IDENT@61..64 "res" WHITESPACE@64..65 " " EQ@65..66 "=" WHITESPACE@66..67 " " METHOD_CALL_EXPR@67..84 FIELD_EXPR@67..78 PATH_EXPR@67..71 PATH@67..71 PATH_SEGMENT@67..71 NAME_REF@67..71 SELF_KW@67..71 "self" DOT@71..72 "." NAME_REF@72..78 IDENT@72..78 "scopes" DOT@78..79 "." NAME_REF@79..82 IDENT@79..82 "len" ARG_LIST@82..84 L_PAREN@82..83 "(" R_PAREN@83..84 ")" SEMICOLON@84..85 ";" WHITESPACE@85..94 "\n " METHOD_CALL_EXPR@94..155 FIELD_EXPR@94..105 PATH_EXPR@94..98 PATH@94..98 PATH_SEGMENT@94..98 NAME_REF@94..98 SELF_KW@94..98 "self" DOT@98..99 "." NAME_REF@99..105 IDENT@99..105 "scopes" DOT@105..106 "." NAME_REF@106..110 IDENT@106..110 "push" ARG_LIST@110..155 L_PAREN@110..111 "(" RECORD_EXPR@111..154 PATH@111..120 PATH_SEGMENT@111..120 NAME_REF@111..120 IDENT@111..120 "ScopeData" WHITESPACE@120..121 " " RECORD_EXPR_FIELD_LIST@121..154 L_CURLY@121..122 "{" WHITESPACE@122..123 " " RECORD_EXPR_FIELD@123..135 NAME_REF@123..129 IDENT@123..129 "parent" COLON@129..130 ":" WHITESPACE@130..131 " " PATH_EXPR@131..135 PATH@131..135 PATH_SEGMENT@131..135 NAME_REF@131..135 IDENT@131..135 "None" COMMA@135..136 "," WHITESPACE@136..137 " " RECORD_EXPR_FIELD@137..152 NAME_REF@137..144 IDENT@137..144 "entries" COLON@144..145 ":" WHITESPACE@145..146 " " MACRO_CALL@146..152 PATH@146..149 PATH_SEGMENT@146..149 NAME_REF@146..149 IDENT@146..149 "vec" BANG@149..150 "!" TOKEN_TREE@150..152 L_BRACK@150..151 "[" R_BRACK@151..152 "]" WHITESPACE@152..153 " " R_CURLY@153..154 "}" R_PAREN@154..155 ")" WHITESPACE@155..160 "\n " R_CURLY@160..161 "}" WHITESPACE@161..167 "\n\n " FN@167..180 FN_KW@167..169 "fn" WHITESPACE@169..170 " " NAME@170..180 IDENT@170..180 "set_parent" WHITESPACE@180..181 "\n" R_CURLY@181..182 "}" WHITESPACE@182..183 "\n" error 34..34: expected pattern error 34..34: missing type for function parameter error 180..180: expected function arguments error 180..180: expected a block