aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-03-31 10:11:48 +0100
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-03-31 10:11:48 +0100
commitc5ca49678f129045e59438df279829902034ec71 (patch)
tree3fd54185e0c064fbd6f718ac345064ce9c559efb /crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
parent23dd53eb35ff50508d0c0fc5878a55754b12d381 (diff)
parent55dcdb7d094f473c73f87ecf997b24f8e35f2a5e (diff)
Merge #1077
1077: Improve parsing of type bounds r=matklad a=vipentti This adds new TYPE_BOUND_LIST and TYPE_BOUND syntax kinds. These are now used when parsing type bounds. In addition parsing paths inside a bound now does not recursively parse paths, rather they are treated as separate bounds, separated by +. Basically now the generic params `struct S<T: 'a + ?Sized + (Copy)>;` in will be parsed as ``` TYPE_PARAM_LIST@[8; 33) L_ANGLE@[8; 9) TYPE_PARAM@[9; 32) NAME@[9; 10) IDENT@[9; 10) "T" COLON@[10; 11) WHITESPACE@[11; 12) TYPE_BOUND_LIST@[12; 32) TYPE_BOUND@[12; 14) LIFETIME@[12; 14) "'a" WHITESPACE@[14; 15) PLUS@[15; 16) WHITESPACE@[16; 17) TYPE_BOUND@[17; 23) QUESTION@[17; 18) PATH_TYPE@[18; 23) PATH@[18; 23) PATH_SEGMENT@[18; 23) NAME_REF@[18; 23) IDENT@[18; 23) "Sized" WHITESPACE@[23; 24) PLUS@[24; 25) WHITESPACE@[25; 26) TYPE_BOUND@[26; 32) L_PAREN@[26; 27) PATH_TYPE@[27; 31) PATH@[27; 31) PATH_SEGMENT@[27; 31) NAME_REF@[27; 31) IDENT@[27; 31) "Copy" R_PAREN@[31; 32) R_ANGLE@[32; 33) ``` Previously it was parsed, with the paths nested: ``` TYPE_PARAM_LIST@[8; 33) L_ANGLE@[8; 9) TYPE_PARAM@[9; 32) NAME@[9; 10) IDENT@[9; 10) "T" COLON@[10; 11) WHITESPACE@[11; 12) LIFETIME@[12; 14) "'a" WHITESPACE@[14; 15) PLUS@[15; 16) WHITESPACE@[16; 17) QUESTION@[17; 18) PATH_TYPE@[18; 32) PATH@[18; 23) PATH_SEGMENT@[18; 23) NAME_REF@[18; 23) IDENT@[18; 23) "Sized" WHITESPACE@[23; 24) PLUS@[24; 25) WHITESPACE@[25; 26) L_PAREN@[26; 27) PATH_TYPE@[27; 31) PATH@[27; 31) PATH_SEGMENT@[27; 31) NAME_REF@[27; 31) IDENT@[27; 31) "Copy" R_PAREN@[31; 32) R_ANGLE@[32; 33) ``` Looking for feedback. Co-authored-by: Ville Penttinen <[email protected]>
Diffstat (limited to 'crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt')
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt24
1 files changed, 14 insertions, 10 deletions
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
index 568f61fb2..36c856cd7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
@@ -80,11 +80,13 @@ SOURCE_FILE@[0; 135)
80 IDENT@[65; 66) "T" 80 IDENT@[65; 66) "T"
81 COLON@[66; 67) 81 COLON@[66; 67)
82 WHITESPACE@[67; 68) 82 WHITESPACE@[67; 68)
83 PATH_TYPE@[68; 76) 83 TYPE_BOUND_LIST@[68; 76)
84 PATH@[68; 76) 84 TYPE_BOUND@[68; 76)
85 PATH_SEGMENT@[68; 76) 85 PATH_TYPE@[68; 76)
86 NAME_REF@[68; 76) 86 PATH@[68; 76)
87 IDENT@[68; 76) "Iterator" 87 PATH_SEGMENT@[68; 76)
88 NAME_REF@[68; 76)
89 IDENT@[68; 76) "Iterator"
88 WHITESPACE@[76; 77) 90 WHITESPACE@[76; 77)
89 BLOCK@[77; 79) 91 BLOCK@[77; 79)
90 L_CURLY@[77; 78) 92 L_CURLY@[77; 78)
@@ -143,11 +145,13 @@ SOURCE_FILE@[0; 135)
143 IDENT@[120; 121) "T" 145 IDENT@[120; 121) "T"
144 COLON@[121; 122) 146 COLON@[121; 122)
145 WHITESPACE@[122; 123) 147 WHITESPACE@[122; 123)
146 PATH_TYPE@[123; 131) 148 TYPE_BOUND_LIST@[123; 131)
147 PATH@[123; 131) 149 TYPE_BOUND@[123; 131)
148 PATH_SEGMENT@[123; 131) 150 PATH_TYPE@[123; 131)
149 NAME_REF@[123; 131) 151 PATH@[123; 131)
150 IDENT@[123; 131) "Iterator" 152 PATH_SEGMENT@[123; 131)
153 NAME_REF@[123; 131)
154 IDENT@[123; 131) "Iterator"
151 WHITESPACE@[131; 132) 155 WHITESPACE@[131; 132)
152 BLOCK@[132; 134) 156 BLOCK@[132; 134)
153 L_CURLY@[132; 133) 157 L_CURLY@[132; 133)