From e4463165854071e16645a3244e016b45752e68b7 Mon Sep 17 00:00:00 2001 From: csmoe <35686186+csmoe@users.noreply.github.com> Date: Mon, 24 Sep 2018 11:41:31 +0800 Subject: add test for impl recovery --- .../tests/data/parser/err/0026_imp_recovery.rs | 4 ++ .../tests/data/parser/err/0026_imp_recovery.txt | 66 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs create mode 100644 crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt (limited to 'crates/ra_syntax/tests/data/parser/err') diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs new file mode 100644 index 000000000..c4f5eca87 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs @@ -0,0 +1,4 @@ +impl +impl +!impl OnceCell { +} diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt new file mode 100644 index 000000000..60b65bce5 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt @@ -0,0 +1,66 @@ +ROOT@[0; 54) + IMPL_ITEM@[0; 14) + IMPL_KW@[0; 4) + TYPE_PARAM_LIST@[4; 14) + L_ANGLE@[4; 5) + TYPE_PARAM@[5; 13) + NAME@[5; 6) + IDENT@[5; 6) "T" + COLON@[6; 7) + WHITESPACE@[7; 8) + PATH_TYPE@[8; 13) + PATH@[8; 13) + PATH_SEGMENT@[8; 13) + NAME_REF@[8; 13) + IDENT@[8; 13) "Clone" + R_ANGLE@[13; 14) + err: `expected type` + err: `expected `{`` + WHITESPACE@[14; 15) + IMPL_ITEM@[15; 30) + IMPL_KW@[15; 19) + TYPE_PARAM_LIST@[19; 28) + L_ANGLE@[19; 20) + TYPE_PARAM@[20; 27) + NAME@[20; 21) + IDENT@[20; 21) "T" + COLON@[21; 22) + PATH_TYPE@[22; 27) + PATH@[22; 27) + PATH_SEGMENT@[22; 27) + NAME_REF@[22; 27) + IDENT@[22; 27) "Clone" + R_ANGLE@[27; 28) + WHITESPACE@[28; 29) + EXCL@[29; 30) + err: `expected type` + err: `expected `{`` + IMPL_ITEM@[30; 53) + IMPL_KW@[30; 34) + TYPE_PARAM_LIST@[34; 37) + L_ANGLE@[34; 35) + TYPE_PARAM@[35; 36) + NAME@[35; 36) + IDENT@[35; 36) "T" + R_ANGLE@[36; 37) + WHITESPACE@[37; 38) + PATH_TYPE@[38; 49) + PATH@[38; 49) + PATH_SEGMENT@[38; 49) + NAME_REF@[38; 46) + IDENT@[38; 46) "OnceCell" + TYPE_ARG_LIST@[46; 49) + L_ANGLE@[46; 47) + TYPE_ARG@[47; 48) + PATH_TYPE@[47; 48) + PATH@[47; 48) + PATH_SEGMENT@[47; 48) + NAME_REF@[47; 48) + IDENT@[47; 48) "T" + R_ANGLE@[48; 49) + WHITESPACE@[49; 50) + ITEM_LIST@[50; 53) + L_CURLY@[50; 51) + WHITESPACE@[51; 52) + R_CURLY@[52; 53) + WHITESPACE@[53; 54) -- cgit v1.2.3 From edf1cc3582a842837d64fa6ec08df00c028521f9 Mon Sep 17 00:00:00 2001 From: csmoe <35686186+csmoe@users.noreply.github.com> Date: Tue, 25 Sep 2018 22:00:43 +0800 Subject: parse impl type --- .../tests/data/parser/err/0026_imp_recovery.rs | 3 +- .../tests/data/parser/err/0026_imp_recovery.txt | 72 ++++++++-------------- 2 files changed, 28 insertions(+), 47 deletions(-) (limited to 'crates/ra_syntax/tests/data/parser/err') diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs index c4f5eca87..eac922109 100644 --- a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs @@ -1,4 +1,3 @@ impl -impl -!impl OnceCell { +impl OnceCell { } diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt index 60b65bce5..60337d6de 100644 --- a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt @@ -1,4 +1,4 @@ -ROOT@[0; 54) +ROOT@[0; 39) IMPL_ITEM@[0; 14) IMPL_KW@[0; 4) TYPE_PARAM_LIST@[4; 14) @@ -14,53 +14,35 @@ ROOT@[0; 54) NAME_REF@[8; 13) IDENT@[8; 13) "Clone" R_ANGLE@[13; 14) - err: `expected type` + err: `expected trait or type` err: `expected `{`` WHITESPACE@[14; 15) - IMPL_ITEM@[15; 30) + IMPL_ITEM@[15; 38) IMPL_KW@[15; 19) - TYPE_PARAM_LIST@[19; 28) + TYPE_PARAM_LIST@[19; 22) L_ANGLE@[19; 20) - TYPE_PARAM@[20; 27) + TYPE_PARAM@[20; 21) NAME@[20; 21) IDENT@[20; 21) "T" - COLON@[21; 22) - PATH_TYPE@[22; 27) - PATH@[22; 27) - PATH_SEGMENT@[22; 27) - NAME_REF@[22; 27) - IDENT@[22; 27) "Clone" - R_ANGLE@[27; 28) - WHITESPACE@[28; 29) - EXCL@[29; 30) - err: `expected type` - err: `expected `{`` - IMPL_ITEM@[30; 53) - IMPL_KW@[30; 34) - TYPE_PARAM_LIST@[34; 37) - L_ANGLE@[34; 35) - TYPE_PARAM@[35; 36) - NAME@[35; 36) - IDENT@[35; 36) "T" - R_ANGLE@[36; 37) - WHITESPACE@[37; 38) - PATH_TYPE@[38; 49) - PATH@[38; 49) - PATH_SEGMENT@[38; 49) - NAME_REF@[38; 46) - IDENT@[38; 46) "OnceCell" - TYPE_ARG_LIST@[46; 49) - L_ANGLE@[46; 47) - TYPE_ARG@[47; 48) - PATH_TYPE@[47; 48) - PATH@[47; 48) - PATH_SEGMENT@[47; 48) - NAME_REF@[47; 48) - IDENT@[47; 48) "T" - R_ANGLE@[48; 49) - WHITESPACE@[49; 50) - ITEM_LIST@[50; 53) - L_CURLY@[50; 51) - WHITESPACE@[51; 52) - R_CURLY@[52; 53) - WHITESPACE@[53; 54) + R_ANGLE@[21; 22) + WHITESPACE@[22; 23) + PATH_TYPE@[23; 34) + PATH@[23; 34) + PATH_SEGMENT@[23; 34) + NAME_REF@[23; 31) + IDENT@[23; 31) "OnceCell" + TYPE_ARG_LIST@[31; 34) + L_ANGLE@[31; 32) + TYPE_ARG@[32; 33) + PATH_TYPE@[32; 33) + PATH@[32; 33) + PATH_SEGMENT@[32; 33) + NAME_REF@[32; 33) + IDENT@[32; 33) "T" + R_ANGLE@[33; 34) + WHITESPACE@[34; 35) + ITEM_LIST@[35; 38) + L_CURLY@[35; 36) + WHITESPACE@[36; 37) + R_CURLY@[37; 38) + WHITESPACE@[38; 39) -- cgit v1.2.3 From 8b710e95353d9f840f78645c9593a66adb0636b6 Mon Sep 17 00:00:00 2001 From: csmoe <35686186+csmoe@users.noreply.github.com> Date: Wed, 26 Sep 2018 10:01:42 +0800 Subject: generate testsuite for impl_type --- crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs | 3 +-- crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt | 11 +++++------ 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'crates/ra_syntax/tests/data/parser/err') diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs index eac922109..829ca1c4b 100644 --- a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.rs @@ -1,3 +1,2 @@ impl -impl OnceCell { -} +impl OnceCell {} diff --git a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt index 60337d6de..9e26f58a0 100644 --- a/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt +++ b/crates/ra_syntax/tests/data/parser/err/0026_imp_recovery.txt @@ -1,4 +1,4 @@ -ROOT@[0; 39) +ROOT@[0; 38) IMPL_ITEM@[0; 14) IMPL_KW@[0; 4) TYPE_PARAM_LIST@[4; 14) @@ -17,7 +17,7 @@ ROOT@[0; 39) err: `expected trait or type` err: `expected `{`` WHITESPACE@[14; 15) - IMPL_ITEM@[15; 38) + IMPL_ITEM@[15; 37) IMPL_KW@[15; 19) TYPE_PARAM_LIST@[19; 22) L_ANGLE@[19; 20) @@ -41,8 +41,7 @@ ROOT@[0; 39) IDENT@[32; 33) "T" R_ANGLE@[33; 34) WHITESPACE@[34; 35) - ITEM_LIST@[35; 38) + ITEM_LIST@[35; 37) L_CURLY@[35; 36) - WHITESPACE@[36; 37) - R_CURLY@[37; 38) - WHITESPACE@[38; 39) + R_CURLY@[36; 37) + WHITESPACE@[37; 38) -- cgit v1.2.3