From 3e2f4e42937cb6e6855df94e424b55ed102af44d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 17 Dec 2019 12:11:01 +0100 Subject: Improve recovery for incomplete lambdas --- .../test_data/parser/err/0039_lambda_recovery.rs | 5 ++ .../test_data/parser/err/0039_lambda_recovery.txt | 83 ++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rs create mode 100644 crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.txt (limited to 'crates/ra_syntax') diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rs b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rs new file mode 100644 index 000000000..a2f74bd87 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rs @@ -0,0 +1,5 @@ +fn foo() -> i32 { + [1, 2, 3].iter() + .map(|it|) + .max::(); +} diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.txt b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.txt new file mode 100644 index 000000000..d1544634c --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.txt @@ -0,0 +1,83 @@ +SOURCE_FILE@[0; 83) + FN_DEF@[0; 82) + FN_KW@[0; 2) "fn" + WHITESPACE@[2; 3) " " + NAME@[3; 6) + IDENT@[3; 6) "foo" + PARAM_LIST@[6; 8) + L_PAREN@[6; 7) "(" + R_PAREN@[7; 8) ")" + WHITESPACE@[8; 9) " " + RET_TYPE@[9; 15) + THIN_ARROW@[9; 11) "->" + WHITESPACE@[11; 12) " " + PATH_TYPE@[12; 15) + PATH@[12; 15) + PATH_SEGMENT@[12; 15) + NAME_REF@[12; 15) + IDENT@[12; 15) "i32" + WHITESPACE@[15; 16) " " + BLOCK_EXPR@[16; 82) + BLOCK@[16; 82) + L_CURLY@[16; 17) "{" + WHITESPACE@[17; 22) "\n " + EXPR_STMT@[22; 80) + METHOD_CALL_EXPR@[22; 79) + METHOD_CALL_EXPR@[22; 57) + METHOD_CALL_EXPR@[22; 38) + ARRAY_EXPR@[22; 31) + L_BRACK@[22; 23) "[" + LITERAL@[23; 24) + INT_NUMBER@[23; 24) "1" + COMMA@[24; 25) "," + WHITESPACE@[25; 26) " " + LITERAL@[26; 27) + INT_NUMBER@[26; 27) "2" + COMMA@[27; 28) "," + WHITESPACE@[28; 29) " " + LITERAL@[29; 30) + INT_NUMBER@[29; 30) "3" + R_BRACK@[30; 31) "]" + DOT@[31; 32) "." + NAME_REF@[32; 36) + IDENT@[32; 36) "iter" + ARG_LIST@[36; 38) + L_PAREN@[36; 37) "(" + R_PAREN@[37; 38) ")" + WHITESPACE@[38; 47) "\n " + DOT@[47; 48) "." + NAME_REF@[48; 51) + IDENT@[48; 51) "map" + ARG_LIST@[51; 57) + L_PAREN@[51; 52) "(" + LAMBDA_EXPR@[52; 56) + PARAM_LIST@[52; 56) + PIPE@[52; 53) "|" + PARAM@[53; 55) + BIND_PAT@[53; 55) + NAME@[53; 55) + IDENT@[53; 55) "it" + PIPE@[55; 56) "|" + R_PAREN@[56; 57) ")" + WHITESPACE@[57; 66) "\n " + DOT@[66; 67) "." + NAME_REF@[67; 70) + IDENT@[67; 70) "max" + TYPE_ARG_LIST@[70; 77) + COLONCOLON@[70; 72) "::" + L_ANGLE@[72; 73) "<" + TYPE_ARG@[73; 76) + PATH_TYPE@[73; 76) + PATH@[73; 76) + PATH_SEGMENT@[73; 76) + NAME_REF@[73; 76) + IDENT@[73; 76) "i32" + R_ANGLE@[76; 77) ">" + ARG_LIST@[77; 79) + L_PAREN@[77; 78) "(" + R_PAREN@[78; 79) ")" + SEMI@[79; 80) ";" + WHITESPACE@[80; 81) "\n" + R_CURLY@[81; 82) "}" + WHITESPACE@[82; 83) "\n" +error 56: expected expression -- cgit v1.2.3