aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-06-11 17:35:38 +0100
committerGitHub <[email protected]>2021-06-11 17:35:38 +0100
commit6ac3e666b7c62a9097d10c52636cfe75e7851806 (patch)
treeb1e4ab548d425287b2e5c74bbb16f8ce0da96e97
parent5f69420ee3317f9c0e3cb774ccc0cb0e64af0b9a (diff)
parent99d40e7a3a22604690753322f9274bc91fa03de4 (diff)
Merge #9217
9217: internal: Don't stringify and reparse `cfg_attr`-gated attributes r=jonas-schievink a=jonas-schievink Bumps ungrammar to include https://github.com/rust-analyzer/ungrammar/pull/33 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
-rw-r--r--Cargo.lock4
-rw-r--r--crates/hir_def/src/attr.rs22
-rw-r--r--crates/ide/src/hover.rs2
-rw-r--r--crates/ide_db/src/defs.rs2
-rw-r--r--crates/mbe/src/tests/expand.rs42
-rw-r--r--crates/parser/src/grammar/attributes.rs3
-rw-r--r--crates/parser/src/syntax_kind/generated.rs2
-rw-r--r--crates/syntax/src/ast/generated/nodes.rs31
-rw-r--r--crates/syntax/src/ast/node_ext.rs19
-rw-r--r--crates/syntax/test_data/parser/err/0005_attribute_recover.rast66
-rw-r--r--crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast68
-rw-r--r--crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast17
-rw-r--r--crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast18
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast25
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast25
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast51
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast125
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast34
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast45
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast18
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0145_record_pat_field.rast23
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast17
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast9
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0154_tuple_attrs.rast17
-rw-r--r--crates/syntax/test_data/parser/ok/0006_inner_attributes.rast258
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rast9
-rw-r--r--crates/syntax/test_data/parser/ok/0011_outer_attribute.rast45
-rw-r--r--crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast19
-rw-r--r--crates/syntax/test_data/parser/ok/0035_weird_exprs.rast87
-rw-r--r--crates/syntax/test_data/parser/ok/0044_let_attrs.rast25
-rw-r--r--crates/syntax/test_data/parser/ok/0045_block_attrs.rast102
-rw-r--r--crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast17
-rw-r--r--crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast135
-rw-r--r--crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast9
-rw-r--r--crates/syntax/test_data/parser/ok/0062_macro_2.0.rast9
-rw-r--r--crates/syntax/test_data/parser/ok/0063_variadic_fun.rast17
-rw-r--r--xtask/Cargo.toml2
-rw-r--r--xtask/src/ast_src.rs2
44 files changed, 819 insertions, 680 deletions
diff --git a/Cargo.lock b/Cargo.lock
index ea2c1aed7..12a096ff1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1802,9 +1802,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
1802 1802
1803[[package]] 1803[[package]]
1804name = "ungrammar" 1804name = "ungrammar"
1805version = "1.13.0" 1805version = "1.14.0"
1806source = "registry+https://github.com/rust-lang/crates.io-index" 1806source = "registry+https://github.com/rust-lang/crates.io-index"
1807checksum = "76760314176cc2b94047af2f921b92c39f11a34dc05c43a3c2b0fc91cb22959f" 1807checksum = "50ef6d7335c77ec3e4a7c4be74c2b9e4642569e94a4004c836f8cca71fede3a7"
1808 1808
1809[[package]] 1809[[package]]
1810name = "unicase" 1810name = "unicase"
diff --git a/crates/hir_def/src/attr.rs b/crates/hir_def/src/attr.rs
index 3886b6c04..d9f9fadc1 100644
--- a/crates/hir_def/src/attr.rs
+++ b/crates/hir_def/src/attr.rs
@@ -106,7 +106,9 @@ impl RawAttrs {
106 ) -> Self { 106 ) -> Self {
107 let entries = collect_attrs(owner) 107 let entries = collect_attrs(owner)
108 .flat_map(|(id, attr)| match attr { 108 .flat_map(|(id, attr)| match attr {
109 Either::Left(attr) => Attr::from_src(db, attr, hygiene, id), 109 Either::Left(attr) => {
110 attr.meta().and_then(|meta| Attr::from_src(db, meta, hygiene, id))
111 }
110 Either::Right(comment) => comment.doc_comment().map(|doc| Attr { 112 Either::Right(comment) => comment.doc_comment().map(|doc| Attr {
111 id, 113 id,
112 input: Some(Interned::new(AttrInput::Literal(SmolStr::new(doc)))), 114 input: Some(Interned::new(AttrInput::Literal(SmolStr::new(doc)))),
@@ -172,10 +174,9 @@ impl RawAttrs {
172 let index = attr.id; 174 let index = attr.id;
173 let attrs = parts.filter(|a| !a.is_empty()).filter_map(|attr| { 175 let attrs = parts.filter(|a| !a.is_empty()).filter_map(|attr| {
174 let tree = Subtree { delimiter: None, token_trees: attr.to_vec() }; 176 let tree = Subtree { delimiter: None, token_trees: attr.to_vec() };
175 let attr = ast::Attr::parse(&format!("#[{}]", tree)).ok()?;
176 // FIXME hygiene 177 // FIXME hygiene
177 let hygiene = Hygiene::new_unhygienic(); 178 let hygiene = Hygiene::new_unhygienic();
178 Attr::from_src(db, attr, &hygiene, index) 179 Attr::from_tt(db, &tree, &hygiene, index)
179 }); 180 });
180 181
181 let cfg_options = &crate_graph[krate].cfg_options; 182 let cfg_options = &crate_graph[krate].cfg_options;
@@ -664,7 +665,7 @@ impl fmt::Display for AttrInput {
664impl Attr { 665impl Attr {
665 fn from_src( 666 fn from_src(
666 db: &dyn DefDatabase, 667 db: &dyn DefDatabase,
667 ast: ast::Attr, 668 ast: ast::Meta,
668 hygiene: &Hygiene, 669 hygiene: &Hygiene,
669 id: AttrId, 670 id: AttrId,
670 ) -> Option<Attr> { 671 ) -> Option<Attr> {
@@ -683,6 +684,19 @@ impl Attr {
683 Some(Attr { id, path, input }) 684 Some(Attr { id, path, input })
684 } 685 }
685 686
687 fn from_tt(
688 db: &dyn DefDatabase,
689 tt: &tt::Subtree,
690 hygiene: &Hygiene,
691 id: AttrId,
692 ) -> Option<Attr> {
693 let (parse, _) =
694 mbe::token_tree_to_syntax_node(tt, hir_expand::FragmentKind::MetaItem).ok()?;
695 let ast = ast::Meta::cast(parse.syntax_node())?;
696
697 Self::from_src(db, ast, hygiene, id)
698 }
699
686 /// Parses this attribute as a `#[derive]`, returns an iterator that yields all contained paths 700 /// Parses this attribute as a `#[derive]`, returns an iterator that yields all contained paths
687 /// to derive macros. 701 /// to derive macros.
688 /// 702 ///
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs
index ed4f18e1f..1c6d36939 100644
--- a/crates/ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
@@ -208,7 +208,7 @@ pub(crate) fn hover(
208} 208}
209 209
210fn try_hover_for_attribute(token: &SyntaxToken) -> Option<RangeInfo<HoverResult>> { 210fn try_hover_for_attribute(token: &SyntaxToken) -> Option<RangeInfo<HoverResult>> {
211 let attr = token.ancestors().nth(1).and_then(ast::Attr::cast)?; 211 let attr = token.ancestors().find_map(ast::Attr::cast)?;
212 let (path, tt) = attr.as_simple_call()?; 212 let (path, tt) = attr.as_simple_call()?;
213 if !tt.syntax().text_range().contains(token.text_range().start()) { 213 if !tt.syntax().text_range().contains(token.text_range().start()) {
214 return None; 214 return None;
diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs
index 1b69d72f9..a54f2c323 100644
--- a/crates/ide_db/src/defs.rs
+++ b/crates/ide_db/src/defs.rs
@@ -369,7 +369,7 @@ impl NameRefClass {
369 } 369 }
370 370
371 if let Some(resolved) = sema.resolve_path(&path) { 371 if let Some(resolved) = sema.resolve_path(&path) {
372 if path.syntax().parent().and_then(ast::Attr::cast).is_some() { 372 if path.syntax().ancestors().find_map(ast::Attr::cast).is_some() {
373 if let PathResolution::Def(ModuleDef::Function(func)) = resolved { 373 if let PathResolution::Def(ModuleDef::Function(func)) = resolved {
374 if func.attrs(sema.db).by_key("proc_macro_attribute").exists() { 374 if func.attrs(sema.db).by_key("proc_macro_attribute").exists() {
375 return Some(NameRefClass::Definition(resolved.into())); 375 return Some(NameRefClass::Definition(resolved.into()));
diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs
index 5f173f513..75c88687c 100644
--- a/crates/mbe/src/tests/expand.rs
+++ b/crates/mbe/src/tests/expand.rs
@@ -1846,16 +1846,17 @@ fn test_no_space_after_semi_colon() {
1846 [email protected] 1846 [email protected]
1847 [email protected] "#" 1847 [email protected] "#"
1848 [email protected] "[" 1848 [email protected] "["
1849 [email protected] 1849 [email protected]
1850 [email protected] 1850 [email protected]
1851 [email protected] 1851 [email protected]
1852 [email protected] "cfg" 1852 [email protected]
1853 [email protected] 1853 [email protected] "cfg"
1854 [email protected] "(" 1854 [email protected]
1855 [email protected] "feature" 1855 [email protected] "("
1856 [email protected] "=" 1856 [email protected] "feature"
1857 [email protected] "\"std\"" 1857 [email protected] "="
1858 [email protected] ")" 1858 [email protected] "\"std\""
1859 [email protected] ")"
1859 [email protected] "]" 1860 [email protected] "]"
1860 [email protected] "mod" 1861 [email protected] "mod"
1861 [email protected] 1862 [email protected]
@@ -1865,16 +1866,17 @@ fn test_no_space_after_semi_colon() {
1865 [email protected] 1866 [email protected]
1866 [email protected] "#" 1867 [email protected] "#"
1867 [email protected] "[" 1868 [email protected] "["
1868 [email protected] 1869 [email protected]
1869 [email protected] 1870 [email protected]
1870 [email protected] 1871 [email protected]
1871 [email protected] "cfg" 1872 [email protected]
1872 [email protected] 1873 [email protected] "cfg"
1873 [email protected] "(" 1874 [email protected]
1874 [email protected] "feature" 1875 [email protected] "("
1875 [email protected] "=" 1876 [email protected] "feature"
1876 [email protected] "\"std\"" 1877 [email protected] "="
1877 [email protected] ")" 1878 [email protected] "\"std\""
1879 [email protected] ")"
1878 [email protected] "]" 1880 [email protected] "]"
1879 [email protected] "mod" 1881 [email protected] "mod"
1880 [email protected] 1882 [email protected]
diff --git a/crates/parser/src/grammar/attributes.rs b/crates/parser/src/grammar/attributes.rs
index b8242cd2f..a44c5e484 100644
--- a/crates/parser/src/grammar/attributes.rs
+++ b/crates/parser/src/grammar/attributes.rs
@@ -13,6 +13,7 @@ pub(super) fn outer_attrs(p: &mut Parser) {
13} 13}
14 14
15pub(super) fn meta(p: &mut Parser) { 15pub(super) fn meta(p: &mut Parser) {
16 let meta = p.start();
16 paths::use_path(p); 17 paths::use_path(p);
17 18
18 match p.current() { 19 match p.current() {
@@ -25,6 +26,8 @@ pub(super) fn meta(p: &mut Parser) {
25 T!['('] | T!['['] | T!['{'] => items::token_tree(p), 26 T!['('] | T!['['] | T!['{'] => items::token_tree(p),
26 _ => {} 27 _ => {}
27 } 28 }
29
30 meta.complete(p, META);
28} 31}
29 32
30fn attr(p: &mut Parser, inner: bool) { 33fn attr(p: &mut Parser, inner: bool) {
diff --git a/crates/parser/src/syntax_kind/generated.rs b/crates/parser/src/syntax_kind/generated.rs
index bcefd183a..5f10b82de 100644
--- a/crates/parser/src/syntax_kind/generated.rs
+++ b/crates/parser/src/syntax_kind/generated.rs
@@ -220,7 +220,7 @@ pub enum SyntaxKind {
220 ITEM_LIST, 220 ITEM_LIST,
221 ASSOC_ITEM_LIST, 221 ASSOC_ITEM_LIST,
222 ATTR, 222 ATTR,
223 META_ITEM, 223 META,
224 USE_TREE, 224 USE_TREE,
225 USE_TREE_LIST, 225 USE_TREE_LIST,
226 PATH, 226 PATH,
diff --git a/crates/syntax/src/ast/generated/nodes.rs b/crates/syntax/src/ast/generated/nodes.rs
index 9a88fdb56..702de59a9 100644
--- a/crates/syntax/src/ast/generated/nodes.rs
+++ b/crates/syntax/src/ast/generated/nodes.rs
@@ -150,10 +150,7 @@ impl Attr {
150 pub fn pound_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![#]) } 150 pub fn pound_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![#]) }
151 pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) } 151 pub fn excl_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![!]) }
152 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) } 152 pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['[']) }
153 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) } 153 pub fn meta(&self) -> Option<Meta> { support::child(&self.syntax) }
154 pub fn eq_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![=]) }
155 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
156 pub fn token_tree(&self) -> Option<TokenTree> { support::child(&self.syntax) }
157 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) } 154 pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![']']) }
158} 155}
159#[derive(Debug, Clone, PartialEq, Eq, Hash)] 156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -632,6 +629,16 @@ impl WherePred {
632 pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) } 629 pub fn ty(&self) -> Option<Type> { support::child(&self.syntax) }
633} 630}
634#[derive(Debug, Clone, PartialEq, Eq, Hash)] 631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
632pub struct Meta {
633 pub(crate) syntax: SyntaxNode,
634}
635impl Meta {
636 pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
637 pub fn eq_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![=]) }
638 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
639 pub fn token_tree(&self) -> Option<TokenTree> { support::child(&self.syntax) }
640}
641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
635pub struct ExprStmt { 642pub struct ExprStmt {
636 pub(crate) syntax: SyntaxNode, 643 pub(crate) syntax: SyntaxNode,
637} 644}
@@ -2072,6 +2079,17 @@ impl AstNode for WherePred {
2072 } 2079 }
2073 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2080 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2074} 2081}
2082impl AstNode for Meta {
2083 fn can_cast(kind: SyntaxKind) -> bool { kind == META }
2084 fn cast(syntax: SyntaxNode) -> Option<Self> {
2085 if Self::can_cast(syntax.kind()) {
2086 Some(Self { syntax })
2087 } else {
2088 None
2089 }
2090 }
2091 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2092}
2075impl AstNode for ExprStmt { 2093impl AstNode for ExprStmt {
2076 fn can_cast(kind: SyntaxKind) -> bool { kind == EXPR_STMT } 2094 fn can_cast(kind: SyntaxKind) -> bool { kind == EXPR_STMT }
2077 fn cast(syntax: SyntaxNode) -> Option<Self> { 2095 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -3887,6 +3905,11 @@ impl std::fmt::Display for WherePred {
3887 std::fmt::Display::fmt(self.syntax(), f) 3905 std::fmt::Display::fmt(self.syntax(), f)
3888 } 3906 }
3889} 3907}
3908impl std::fmt::Display for Meta {
3909 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3910 std::fmt::Display::fmt(self.syntax(), f)
3911 }
3912}
3890impl std::fmt::Display for ExprStmt { 3913impl std::fmt::Display for ExprStmt {
3891 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 3914 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3892 std::fmt::Display::fmt(self.syntax(), f) 3915 std::fmt::Display::fmt(self.syntax(), f)
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs
index a60bc5ad9..3d27d2c1a 100644
--- a/crates/syntax/src/ast/node_ext.rs
+++ b/crates/syntax/src/ast/node_ext.rs
@@ -144,19 +144,20 @@ impl AttrKind {
144 144
145impl ast::Attr { 145impl ast::Attr {
146 pub fn as_simple_atom(&self) -> Option<SmolStr> { 146 pub fn as_simple_atom(&self) -> Option<SmolStr> {
147 if self.eq_token().is_some() || self.token_tree().is_some() { 147 let meta = self.meta()?;
148 if meta.eq_token().is_some() || meta.token_tree().is_some() {
148 return None; 149 return None;
149 } 150 }
150 self.simple_name() 151 self.simple_name()
151 } 152 }
152 153
153 pub fn as_simple_call(&self) -> Option<(SmolStr, ast::TokenTree)> { 154 pub fn as_simple_call(&self) -> Option<(SmolStr, ast::TokenTree)> {
154 let tt = self.token_tree()?; 155 let tt = self.meta()?.token_tree()?;
155 Some((self.simple_name()?, tt)) 156 Some((self.simple_name()?, tt))
156 } 157 }
157 158
158 pub fn simple_name(&self) -> Option<SmolStr> { 159 pub fn simple_name(&self) -> Option<SmolStr> {
159 let path = self.path()?; 160 let path = self.meta()?.path()?;
160 match (path.segment(), path.qualifier()) { 161 match (path.segment(), path.qualifier()) {
161 (Some(segment), None) => Some(segment.syntax().first_token()?.text().into()), 162 (Some(segment), None) => Some(segment.syntax().first_token()?.text().into()),
162 _ => None, 163 _ => None,
@@ -174,6 +175,18 @@ impl ast::Attr {
174 _ => AttrKind::Outer, 175 _ => AttrKind::Outer,
175 } 176 }
176 } 177 }
178
179 pub fn path(&self) -> Option<ast::Path> {
180 self.meta()?.path()
181 }
182
183 pub fn expr(&self) -> Option<ast::Expr> {
184 self.meta()?.expr()
185 }
186
187 pub fn token_tree(&self) -> Option<ast::TokenTree> {
188 self.meta()?.token_tree()
189 }
177} 190}
178 191
179#[derive(Debug, Clone, PartialEq, Eq)] 192#[derive(Debug, Clone, PartialEq, Eq)]
diff --git a/crates/syntax/test_data/parser/err/0005_attribute_recover.rast b/crates/syntax/test_data/parser/err/0005_attribute_recover.rast
index 4845a6563..6202c8bfe 100644
--- a/crates/syntax/test_data/parser/err/0005_attribute_recover.rast
+++ b/crates/syntax/test_data/parser/err/0005_attribute_recover.rast
@@ -3,20 +3,21 @@ [email protected]
3 [email protected] 3 [email protected]
4 [email protected] "#" 4 [email protected] "#"
5 [email protected] "[" 5 [email protected] "["
6 [email protected] 6 [email protected]
7 [email protected] 7 [email protected]
8 [email protected] 8 [email protected]
9 [email protected] "foo" 9 [email protected]
10 [email protected] 10 [email protected] "foo"
11 [email protected] "(" 11 [email protected]
12 [email protected] "foo" 12 [email protected] "("
13 [email protected] "," 13 [email protected] "foo"
14 [email protected] " " 14 [email protected] ","
15 [email protected] "+" 15 [email protected] " "
16 [email protected] "," 16 [email protected] "+"
17 [email protected] " " 17 [email protected] ","
18 [email protected] "92" 18 [email protected] " "
19 [email protected] ")" 19 [email protected] "92"
20 [email protected] ")"
20 [email protected] "]" 21 [email protected] "]"
21 [email protected] "\n" 22 [email protected] "\n"
22 [email protected] "fn" 23 [email protected] "fn"
@@ -35,24 +36,25 @@ [email protected]
35 [email protected] 36 [email protected]
36 [email protected] "#" 37 [email protected] "#"
37 [email protected] "[" 38 [email protected] "["
38 [email protected] 39 [email protected]
39 [email protected] 40 [email protected]
40 [email protected] 41 [email protected]
41 [email protected] "foo" 42 [email protected]
42 [email protected] 43 [email protected] "foo"
43 [email protected] "(" 44 [email protected]
44 [email protected] "\n" 45 [email protected] "("
45 [email protected] "fn" 46 [email protected] "\n"
46 [email protected] " " 47 [email protected] "fn"
47 [email protected] "foo" 48 [email protected] " "
48 [email protected] 49 [email protected] "foo"
49 [email protected] "(" 50 [email protected]
50 [email protected] ")" 51 [email protected] "("
51 [email protected] " " 52 [email protected] ")"
52 [email protected] 53 [email protected] " "
53 [email protected] "{" 54 [email protected]
54 [email protected] "\n" 55 [email protected] "{"
55 [email protected] "}" 56 [email protected] "\n"
57 [email protected] "}"
56 [email protected] "\n" 58 [email protected] "\n"
57error 53..53: expected R_PAREN 59error 53..53: expected R_PAREN
58error 53..53: expected `]` 60error 53..53: expected `]`
diff --git a/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast
index a443b37db..846279748 100644
--- a/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast
+++ b/crates/syntax/test_data/parser/err/0031_block_inner_attrs.rast
@@ -27,14 +27,15 @@ [email protected]
27 [email protected] "#" 27 [email protected] "#"
28 [email protected] "!" 28 [email protected] "!"
29 [email protected] "[" 29 [email protected] "["
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] 32 [email protected]
33 [email protected] "doc" 33 [email protected]
34 [email protected] 34 [email protected] "doc"
35 [email protected] "(" 35 [email protected]
36 [email protected] "\"Inner attributes not ..." 36 [email protected] "("
37 [email protected] ")" 37 [email protected] "\"Inner attributes not ..."
38 [email protected] ")"
38 [email protected] "]" 39 [email protected] "]"
39 [email protected] "\n " 40 [email protected] "\n "
40 [email protected] "//! Nor are ModuleDoc ..." 41 [email protected] "//! Nor are ModuleDoc ..."
@@ -57,28 +58,30 @@ [email protected]
57 [email protected] "#" 58 [email protected] "#"
58 [email protected] "!" 59 [email protected] "!"
59 [email protected] "[" 60 [email protected] "["
60 [email protected] 61 [email protected]
61 [email protected] 62 [email protected]
62 [email protected] 63 [email protected]
63 [email protected] "doc" 64 [email protected]
64 [email protected] 65 [email protected] "doc"
65 [email protected] "(" 66 [email protected]
66 [email protected] "\"Nor here\"" 67 [email protected] "("
67 [email protected] ")" 68 [email protected] "\"Nor here\""
69 [email protected] ")"
68 [email protected] "]" 70 [email protected] "]"
69 [email protected] "\n " 71 [email protected] "\n "
70 [email protected] 72 [email protected]
71 [email protected] "#" 73 [email protected] "#"
72 [email protected] "!" 74 [email protected] "!"
73 [email protected] "[" 75 [email protected] "["
74 [email protected] 76 [email protected]
75 [email protected] 77 [email protected]
76 [email protected] 78 [email protected]
77 [email protected] "doc" 79 [email protected]
78 [email protected] 80 [email protected] "doc"
79 [email protected] "(" 81 [email protected]
80 [email protected] "\"We error on each attr\"" 82 [email protected] "("
81 [email protected] ")" 83 [email protected] "\"We error on each attr\""
84 [email protected] ")"
82 [email protected] "]" 85 [email protected] "]"
83 [email protected] "\n " 86 [email protected] "\n "
84 [email protected] "//! Nor are ModuleDoc ..." 87 [email protected] "//! Nor are ModuleDoc ..."
@@ -99,14 +102,15 @@ [email protected]
99 [email protected] "#" 102 [email protected] "#"
100 [email protected] "!" 103 [email protected] "!"
101 [email protected] "[" 104 [email protected] "["
102 [email protected] 105 [email protected]
103 [email protected] 106 [email protected]
104 [email protected] 107 [email protected]
105 [email protected] "doc" 108 [email protected]
106 [email protected] 109 [email protected] "doc"
107 [email protected] "(" 110 [email protected]
108 [email protected] "\"Nor here\"" 111 [email protected] "("
109 [email protected] ")" 112 [email protected] "\"Nor here\""
113 [email protected] ")"
110 [email protected] "]" 114 [email protected] "]"
111 [email protected] "\n " 115 [email protected] "\n "
112 [email protected] "//! Nor are ModuleDoc ..." 116 [email protected] "//! Nor are ModuleDoc ..."
diff --git a/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
index 672dd054a..b6209639d 100644
--- a/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
+++ b/crates/syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast
@@ -135,14 +135,15 @@ [email protected]
135 [email protected] 135 [email protected]
136 [email protected] "#" 136 [email protected] "#"
137 [email protected] "[" 137 [email protected] "["
138 [email protected] 138 [email protected]
139 [email protected] 139 [email protected]
140 [email protected] 140 [email protected]
141 [email protected] "cfg" 141 [email protected]
142 [email protected] 142 [email protected] "cfg"
143 [email protected] "(" 143 [email protected]
144 [email protected] "test" 144 [email protected] "("
145 [email protected] ")" 145 [email protected] "test"
146 [email protected] ")"
146 [email protected] "]" 147 [email protected] "]"
147 [email protected] "\n " 148 [email protected] "\n "
148 [email protected] 149 [email protected]
diff --git a/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
index 33bb085e9..84c8e9ee7 100644
--- a/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
+++ b/crates/syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast
@@ -47,14 +47,15 @@ [email protected]
47 [email protected] 47 [email protected]
48 [email protected] "#" 48 [email protected] "#"
49 [email protected] "[" 49 [email protected] "["
50 [email protected] 50 [email protected]
51 [email protected] 51 [email protected]
52 [email protected] 52 [email protected]
53 [email protected] "cfg" 53 [email protected]
54 [email protected] 54 [email protected] "cfg"
55 [email protected] "(" 55 [email protected]
56 [email protected] "test" 56 [email protected] "("
57 [email protected] ")" 57 [email protected] "test"
58 [email protected] ")"
58 [email protected] "]" 59 [email protected] "]"
59 [email protected] "\n " 60 [email protected] "\n "
60 [email protected] "}" 61 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
index 8fd8d5e59..7b8b7284f 100644
--- a/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
+++ b/crates/syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast
@@ -15,10 +15,11 @@ [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "#" 16 [email protected] "#"
17 [email protected] "[" 17 [email protected] "["
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "A" 21 [email protected]
22 [email protected] "A"
22 [email protected] "]" 23 [email protected] "]"
23 [email protected] " " 24 [email protected] " "
24 [email protected] 25 [email protected]
@@ -35,10 +36,11 @@ [email protected]
35 [email protected] 36 [email protected]
36 [email protected] "#" 37 [email protected] "#"
37 [email protected] "[" 38 [email protected] "["
38 [email protected] 39 [email protected]
39 [email protected] 40 [email protected]
40 [email protected] 41 [email protected]
41 [email protected] "B" 42 [email protected]
43 [email protected] "B"
42 [email protected] "]" 44 [email protected] "]"
43 [email protected] " " 45 [email protected] " "
44 [email protected] 46 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
index 9ae271817..402950bcc 100644
--- a/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
@@ -12,18 +12,19 @@ [email protected]
12 [email protected] 12 [email protected]
13 [email protected] "#" 13 [email protected] "#"
14 [email protected] "[" 14 [email protected] "["
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] "serde" 18 [email protected]
19 [email protected] 19 [email protected] "serde"
20 [email protected] "(" 20 [email protected]
21 [email protected] "with" 21 [email protected] "("
22 [email protected] " " 22 [email protected] "with"
23 [email protected] "=" 23 [email protected] " "
24 [email protected] " " 24 [email protected] "="
25 [email protected] "\"url_serde\"" 25 [email protected] " "
26 [email protected] ")" 26 [email protected] "\"url_serde\""
27 [email protected] ")"
27 [email protected] "]" 28 [email protected] "]"
28 [email protected] "\n " 29 [email protected] "\n "
29 [email protected] 30 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
index 4d09c9f50..db2b645b0 100644
--- a/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
@@ -12,18 +12,19 @@ [email protected]
12 [email protected] 12 [email protected]
13 [email protected] "#" 13 [email protected] "#"
14 [email protected] "[" 14 [email protected] "["
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] 17 [email protected]
18 [email protected] "serde" 18 [email protected]
19 [email protected] 19 [email protected] "serde"
20 [email protected] "(" 20 [email protected]
21 [email protected] "with" 21 [email protected] "("
22 [email protected] " " 22 [email protected] "with"
23 [email protected] "=" 23 [email protected] " "
24 [email protected] " " 24 [email protected] "="
25 [email protected] "\"url_serde\"" 25 [email protected] " "
26 [email protected] ")" 26 [email protected] "\"url_serde\""
27 [email protected] ")"
27 [email protected] "]" 28 [email protected] "]"
28 [email protected] "\n " 29 [email protected] "\n "
29 [email protected] 30 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
index 141a7b203..24ac1d66a 100644
--- a/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
@@ -26,14 +26,15 @@ [email protected]
26 [email protected] "#" 26 [email protected] "#"
27 [email protected] "!" 27 [email protected] "!"
28 [email protected] "[" 28 [email protected] "["
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] 31 [email protected]
32 [email protected] "doc" 32 [email protected]
33 [email protected] 33 [email protected] "doc"
34 [email protected] "(" 34 [email protected]
35 [email protected] "\"This is also a doc c ..." 35 [email protected] "("
36 [email protected] ")" 36 [email protected] "\"This is also a doc c ..."
37 [email protected] ")"
37 [email protected] "]" 38 [email protected] "]"
38 [email protected] "\n" 39 [email protected] "\n"
39 [email protected] "}" 40 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
index ec7a00f1d..7fbeee203 100644
--- a/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -25,42 +25,45 @@ [email protected]
25 [email protected] "#" 25 [email protected] "#"
26 [email protected] "!" 26 [email protected] "!"
27 [email protected] "[" 27 [email protected] "["
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] "doc" 31 [email protected]
32 [email protected] 32 [email protected] "doc"
33 [email protected] "(" 33 [email protected]
34 [email protected] "\"Inner attribute\"" 34 [email protected] "("
35 [email protected] ")" 35 [email protected] "\"Inner attribute\""
36 [email protected] ")"
36 [email protected] "]" 37 [email protected] "]"
37 [email protected] "\n " 38 [email protected] "\n "
38 [email protected] 39 [email protected]
39 [email protected] "#" 40 [email protected] "#"
40 [email protected] "!" 41 [email protected] "!"
41 [email protected] "[" 42 [email protected] "["
42 [email protected] 43 [email protected]
43 [email protected] 44 [email protected]
44 [email protected] 45 [email protected]
45 [email protected] "doc" 46 [email protected]
46 [email protected] 47 [email protected] "doc"
47 [email protected] "(" 48 [email protected]
48 [email protected] "\"Can be\"" 49 [email protected] "("
49 [email protected] ")" 50 [email protected] "\"Can be\""
51 [email protected] ")"
50 [email protected] "]" 52 [email protected] "]"
51 [email protected] "\n " 53 [email protected] "\n "
52 [email protected] 54 [email protected]
53 [email protected] "#" 55 [email protected] "#"
54 [email protected] "!" 56 [email protected] "!"
55 [email protected] "[" 57 [email protected] "["
56 [email protected] 58 [email protected]
57 [email protected] 59 [email protected]
58 [email protected] 60 [email protected]
59 [email protected] "doc" 61 [email protected]
60 [email protected] 62 [email protected] "doc"
61 [email protected] "(" 63 [email protected]
62 [email protected] "\"Stacked\"" 64 [email protected] "("
63 [email protected] ")" 65 [email protected] "\"Stacked\""
66 [email protected] ")"
64 [email protected] "]" 67 [email protected] "]"
65 [email protected] "\n " 68 [email protected] "\n "
66 [email protected] 69 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
index 97924da05..40852f514 100644
--- a/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -25,18 +25,19 @@ [email protected]
25 [email protected] 25 [email protected]
26 [email protected] "#" 26 [email protected] "#"
27 [email protected] "[" 27 [email protected] "["
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] 30 [email protected]
31 [email protected] "cfg" 31 [email protected]
32 [email protected] 32 [email protected] "cfg"
33 [email protected] "(" 33 [email protected]
34 [email protected] "feature" 34 [email protected] "("
35 [email protected] " " 35 [email protected] "feature"
36 [email protected] "=" 36 [email protected] " "
37 [email protected] " " 37 [email protected] "="
38 [email protected] "\"some\"" 38 [email protected] " "
39 [email protected] ")" 39 [email protected] "\"some\""
40 [email protected] ")"
40 [email protected] "]" 41 [email protected] "]"
41 [email protected] "\n " 42 [email protected] "\n "
42 [email protected] 43 [email protected]
@@ -53,18 +54,19 @@ [email protected]
53 [email protected] 54 [email protected]
54 [email protected] "#" 55 [email protected] "#"
55 [email protected] "[" 56 [email protected] "["
56 [email protected] 57 [email protected]
57 [email protected] 58 [email protected]
58 [email protected] 59 [email protected]
59 [email protected] "cfg" 60 [email protected]
60 [email protected] 61 [email protected] "cfg"
61 [email protected] "(" 62 [email protected]
62 [email protected] "feature" 63 [email protected] "("
63 [email protected] " " 64 [email protected] "feature"
64 [email protected] "=" 65 [email protected] " "
65 [email protected] " " 66 [email protected] "="
66 [email protected] "\"other\"" 67 [email protected] " "
67 [email protected] ")" 68 [email protected] "\"other\""
69 [email protected] ")"
68 [email protected] "]" 70 [email protected] "]"
69 [email protected] "\n " 71 [email protected] "\n "
70 [email protected] 72 [email protected]
@@ -81,52 +83,55 @@ [email protected]
81 [email protected] 83 [email protected]
82 [email protected] "#" 84 [email protected] "#"
83 [email protected] "[" 85 [email protected] "["
84 [email protected] 86 [email protected]
85 [email protected] 87 [email protected]
86 [email protected] 88 [email protected]
87 [email protected] "cfg" 89 [email protected]
88 [email protected] 90 [email protected] "cfg"
89 [email protected] "(" 91 [email protected]
90 [email protected] "feature" 92 [email protected] "("
91 [email protected] " " 93 [email protected] "feature"
92 [email protected] "=" 94 [email protected] " "
93 [email protected] " " 95 [email protected] "="
94 [email protected] "\"many\"" 96 [email protected] " "
95 [email protected] ")" 97 [email protected] "\"many\""
98 [email protected] ")"
96 [email protected] "]" 99 [email protected] "]"
97 [email protected] "\n " 100 [email protected] "\n "
98 [email protected] 101 [email protected]
99 [email protected] "#" 102 [email protected] "#"
100 [email protected] "[" 103 [email protected] "["
101 [email protected] 104 [email protected]
102 [email protected] 105 [email protected]
103 [email protected] 106 [email protected]
104 [email protected] "cfg" 107 [email protected]
105 [email protected] 108 [email protected] "cfg"
106 [email protected] "(" 109 [email protected]
107 [email protected] "feature" 110 [email protected] "("
108 [email protected] " " 111 [email protected] "feature"
109 [email protected] "=" 112 [email protected] " "
110 [email protected] " " 113 [email protected] "="
111 [email protected] "\"attributes\"" 114 [email protected] " "
112 [email protected] ")" 115 [email protected] "\"attributes\""
116 [email protected] ")"
113 [email protected] "]" 117 [email protected] "]"
114 [email protected] "\n " 118 [email protected] "\n "
115 [email protected] 119 [email protected]
116 [email protected] "#" 120 [email protected] "#"
117 [email protected] "[" 121 [email protected] "["
118 [email protected] 122 [email protected]
119 [email protected] 123 [email protected]
120 [email protected] 124 [email protected]
121 [email protected] "cfg" 125 [email protected]
122 [email protected] 126 [email protected] "cfg"
123 [email protected] "(" 127 [email protected]
124 [email protected] "feature" 128 [email protected] "("
125 [email protected] " " 129 [email protected] "feature"
126 [email protected] "=" 130 [email protected] " "
127 [email protected] " " 131 [email protected] "="
128 [email protected] "\"before\"" 132 [email protected] " "
129 [email protected] ")" 133 [email protected] "\"before\""
134 [email protected] ")"
130 [email protected] "]" 135 [email protected] "]"
131 [email protected] "\n " 136 [email protected] "\n "
132 [email protected] 137 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
index 616aa984e..840181383 100644
--- a/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -10,14 +10,15 @@ [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "#" 11 [email protected] "#"
12 [email protected] "[" 12 [email protected] "["
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "derive" 16 [email protected]
17 [email protected] 17 [email protected] "derive"
18 [email protected] "(" 18 [email protected]
19 [email protected] "Lifetime" 19 [email protected] "("
20 [email protected] ")" 20 [email protected] "Lifetime"
21 [email protected] ")"
21 [email protected] "]" 22 [email protected] "]"
22 [email protected] " " 23 [email protected] " "
23 [email protected] 24 [email protected]
@@ -28,14 +29,15 @@ [email protected]
28 [email protected] 29 [email protected]
29 [email protected] "#" 30 [email protected] "#"
30 [email protected] "[" 31 [email protected] "["
31 [email protected] 32 [email protected]
32 [email protected] 33 [email protected]
33 [email protected] 34 [email protected]
34 [email protected] "derive" 35 [email protected]
35 [email protected] 36 [email protected] "derive"
36 [email protected] "(" 37 [email protected]
37 [email protected] "Type" 38 [email protected] "("
38 [email protected] ")" 39 [email protected] "Type"
40 [email protected] ")"
39 [email protected] "]" 41 [email protected] "]"
40 [email protected] " " 42 [email protected] " "
41 [email protected] 43 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
index 54ea2c7c6..5e82214c0 100644
--- a/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
@@ -24,14 +24,15 @@ [email protected]
24 [email protected] 24 [email protected]
25 [email protected] "#" 25 [email protected] "#"
26 [email protected] "[" 26 [email protected] "["
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] 29 [email protected]
30 [email protected] "cfg" 30 [email protected]
31 [email protected] 31 [email protected] "cfg"
32 [email protected] "(" 32 [email protected]
33 [email protected] "test" 33 [email protected] "("
34 [email protected] ")" 34 [email protected] "test"
35 [email protected] ")"
35 [email protected] "]" 36 [email protected] "]"
36 [email protected] " " 37 [email protected] " "
37 [email protected] 38 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
index 0342e64f3..178204fec 100644
--- a/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
@@ -15,10 +15,11 @@ [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "#" 16 [email protected] "#"
17 [email protected] "[" 17 [email protected] "["
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "A" 21 [email protected]
22 [email protected] "A"
22 [email protected] "]" 23 [email protected] "]"
23 [email protected] " " 24 [email protected] " "
24 [email protected] 25 [email protected]
@@ -36,10 +37,11 @@ [email protected]
36 [email protected] 37 [email protected]
37 [email protected] "#" 38 [email protected] "#"
38 [email protected] "[" 39 [email protected] "["
39 [email protected] 40 [email protected]
40 [email protected] 41 [email protected]
41 [email protected] 42 [email protected]
42 [email protected] "B" 43 [email protected]
44 [email protected] "B"
43 [email protected] "]" 45 [email protected] "]"
44 [email protected] " " 46 [email protected] " "
45 [email protected] 47 [email protected]
@@ -56,19 +58,21 @@ [email protected]
56 [email protected] 58 [email protected]
57 [email protected] "#" 59 [email protected] "#"
58 [email protected] "[" 60 [email protected] "["
59 [email protected] 61 [email protected]
60 [email protected] 62 [email protected]
61 [email protected] 63 [email protected]
62 [email protected] "C" 64 [email protected]
65 [email protected] "C"
63 [email protected] "]" 66 [email protected] "]"
64 [email protected] " " 67 [email protected] " "
65 [email protected] 68 [email protected]
66 [email protected] "#" 69 [email protected] "#"
67 [email protected] "[" 70 [email protected] "["
68 [email protected] 71 [email protected]
69 [email protected] 72 [email protected]
70 [email protected] 73 [email protected]
71 [email protected] "D" 74 [email protected]
75 [email protected] "D"
72 [email protected] "]" 76 [email protected] "]"
73 [email protected] " " 77 [email protected] " "
74 [email protected] 78 [email protected]
@@ -79,10 +83,11 @@ [email protected]
79 [email protected] 83 [email protected]
80 [email protected] "#" 84 [email protected] "#"
81 [email protected] "[" 85 [email protected] "["
82 [email protected] 86 [email protected]
83 [email protected] 87 [email protected]
84 [email protected] 88 [email protected]
85 [email protected] "D" 89 [email protected]
90 [email protected] "D"
86 [email protected] "]" 91 [email protected] "]"
87 [email protected] " " 92 [email protected] " "
88 [email protected] 93 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
index 3b46e5b47..9daac234a 100644
--- a/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
@@ -19,10 +19,11 @@ [email protected]
19 [email protected] 19 [email protected]
20 [email protected] "#" 20 [email protected] "#"
21 [email protected] "[" 21 [email protected] "["
22 [email protected] 22 [email protected]
23 [email protected] 23 [email protected]
24 [email protected] 24 [email protected]
25 [email protected] "A" 25 [email protected]
26 [email protected] "A"
26 [email protected] "]" 27 [email protected] "]"
27 [email protected] " " 28 [email protected] " "
28 [email protected] 29 [email protected]
@@ -42,10 +43,11 @@ [email protected]
42 [email protected] 43 [email protected]
43 [email protected] "#" 44 [email protected] "#"
44 [email protected] "[" 45 [email protected] "["
45 [email protected] 46 [email protected]
46 [email protected] 47 [email protected]
47 [email protected] 48 [email protected]
48 [email protected] "B" 49 [email protected]
50 [email protected] "B"
49 [email protected] "]" 51 [email protected] "]"
50 [email protected] " " 52 [email protected] " "
51 [email protected] "&" 53 [email protected] "&"
diff --git a/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast
index 4c07cefa6..c3a79836a 100644
--- a/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -109,10 +109,11 @@ [email protected]
109 [email protected] 109 [email protected]
110 [email protected] "#" 110 [email protected] "#"
111 [email protected] "[" 111 [email protected] "["
112 [email protected] 112 [email protected]
113 [email protected] 113 [email protected]
114 [email protected] 114 [email protected]
115 [email protected] "attr" 115 [email protected]
116 [email protected] "attr"
116 [email protected] "]" 117 [email protected] "]"
117 [email protected] 118 [email protected]
118 [email protected] "|" 119 [email protected] "|"
diff --git a/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
index c54e64e3f..891eace59 100644
--- a/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
@@ -10,10 +10,11 @@ [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "#" 11 [email protected] "#"
12 [email protected] "[" 12 [email protected] "["
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "must_use" 16 [email protected]
17 [email protected] "must_use"
17 [email protected] "]" 18 [email protected] "]"
18 [email protected] " " 19 [email protected] " "
19 [email protected] 20 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
index a84088bf3..a363e592b 100644
--- a/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -10,10 +10,11 @@ [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "#" 11 [email protected] "#"
12 [email protected] "[" 12 [email protected] "["
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "attr1" 16 [email protected]
17 [email protected] "attr1"
17 [email protected] "]" 18 [email protected] "]"
18 [email protected] " " 19 [email protected] " "
19 [email protected] 20 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0145_record_pat_field.rast b/crates/syntax/test_data/parser/inline/ok/0145_record_pat_field.rast
index e9202a612..c606a7c9b 100644
--- a/crates/syntax/test_data/parser/inline/ok/0145_record_pat_field.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0145_record_pat_field.rast
@@ -87,17 +87,18 @@ [email protected]
87 [email protected] 87 [email protected]
88 [email protected] "#" 88 [email protected] "#"
89 [email protected] "[" 89 [email protected] "["
90 [email protected] 90 [email protected]
91 [email protected] 91 [email protected]
92 [email protected] 92 [email protected]
93 [email protected] "cfg" 93 [email protected]
94 [email protected] 94 [email protected] "cfg"
95 [email protected] "(" 95 [email protected]
96 [email protected] "any" 96 [email protected] "("
97 [email protected] 97 [email protected] "any"
98 [email protected] "(" 98 [email protected]
99 [email protected] ")" 99 [email protected] "("
100 [email protected] ")" 100 [email protected] ")"
101 [email protected] ")"
101 [email protected] "]" 102 [email protected] "]"
102 [email protected] " " 103 [email protected] " "
103 [email protected] 104 [email protected]
diff --git a/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast
index f284aafcd..26cdc2945 100644
--- a/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0150_array_attrs.rast
@@ -31,14 +31,15 @@ [email protected]
31 [email protected] 31 [email protected]
32 [email protected] "#" 32 [email protected] "#"
33 [email protected] "[" 33 [email protected] "["
34 [email protected] 34 [email protected]
35 [email protected] 35 [email protected]
36 [email protected] 36 [email protected]
37 [email protected] "cfg" 37 [email protected]
38 [email protected] 38 [email protected] "cfg"
39 [email protected] "(" 39 [email protected]
40 [email protected] "test" 40 [email protected] "("
41 [email protected] ")" 41 [email protected] "test"
42 [email protected] ")"
42 [email protected] "]" 43 [email protected] "]"
43 [email protected] " " 44 [email protected] " "
44 [email protected] "2" 45 [email protected] "2"
diff --git a/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
index 2905c5f1a..1d20765b0 100644
--- a/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
@@ -23,10 +23,11 @@ [email protected]
23 [email protected] 23 [email protected]
24 [email protected] "#" 24 [email protected] "#"
25 [email protected] "[" 25 [email protected] "["
26 [email protected] 26 [email protected]
27 [email protected] 27 [email protected]
28 [email protected] 28 [email protected]
29 [email protected] "attr" 29 [email protected]
30 [email protected] "attr"
30 [email protected] "]" 31 [email protected] "]"
31 [email protected] " " 32 [email protected] " "
32 [email protected] "92" 33 [email protected] "92"
diff --git a/crates/syntax/test_data/parser/inline/ok/0154_tuple_attrs.rast b/crates/syntax/test_data/parser/inline/ok/0154_tuple_attrs.rast
index d34b21abe..3b6612677 100644
--- a/crates/syntax/test_data/parser/inline/ok/0154_tuple_attrs.rast
+++ b/crates/syntax/test_data/parser/inline/ok/0154_tuple_attrs.rast
@@ -34,14 +34,15 @@ [email protected]
34 [email protected] 34 [email protected]
35 [email protected] "#" 35 [email protected] "#"
36 [email protected] "[" 36 [email protected] "["
37 [email protected] 37 [email protected]
38 [email protected] 38 [email protected]
39 [email protected] 39 [email protected]
40 [email protected] "cfg" 40 [email protected]
41 [email protected] 41 [email protected] "cfg"
42 [email protected] "(" 42 [email protected]
43 [email protected] "test" 43 [email protected] "("
44 [email protected] ")" 44 [email protected] "test"
45 [email protected] ")"
45 [email protected] "]" 46 [email protected] "]"
46 [email protected] " " 47 [email protected] " "
47 [email protected] "2" 48 [email protected] "2"
diff --git a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
index 42587243a..be2d1dc12 100644
--- a/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
+++ b/crates/syntax/test_data/parser/ok/0006_inner_attributes.rast
@@ -3,182 +3,192 @@ [email protected]
3 [email protected] "#" 3 [email protected] "#"
4 [email protected] "!" 4 [email protected] "!"
5 [email protected] "[" 5 [email protected] "["
6 [email protected] 6 [email protected]
7 [email protected] 7 [email protected]
8 [email protected] 8 [email protected]
9 [email protected] "attr" 9 [email protected]
10 [email protected] "attr"
10 [email protected] "]" 11 [email protected] "]"
11 [email protected] "\n" 12 [email protected] "\n"
12 [email protected] 13 [email protected]
13 [email protected] "#" 14 [email protected] "#"
14 [email protected] "!" 15 [email protected] "!"
15 [email protected] "[" 16 [email protected] "["
16 [email protected] 17 [email protected]
17 [email protected] 18 [email protected]
18 [email protected] 19 [email protected]
19 [email protected] "attr" 20 [email protected]
20 [email protected] 21 [email protected] "attr"
21 [email protected] "(" 22 [email protected]
22 [email protected] "true" 23 [email protected] "("
23 [email protected] ")" 24 [email protected] "true"
25 [email protected] ")"
24 [email protected] "]" 26 [email protected] "]"
25 [email protected] "\n" 27 [email protected] "\n"
26 [email protected] 28 [email protected]
27 [email protected] "#" 29 [email protected] "#"
28 [email protected] "!" 30 [email protected] "!"
29 [email protected] "[" 31 [email protected] "["
30 [email protected] 32 [email protected]
31 [email protected] 33 [email protected]
32 [email protected] 34 [email protected]
33 [email protected] "attr" 35 [email protected]
34 [email protected] 36 [email protected] "attr"
35 [email protected] "(" 37 [email protected]
36 [email protected] "ident" 38 [email protected] "("
37 [email protected] ")" 39 [email protected] "ident"
40 [email protected] ")"
38 [email protected] "]" 41 [email protected] "]"
39 [email protected] "\n" 42 [email protected] "\n"
40 [email protected] 43 [email protected]
41 [email protected] "#" 44 [email protected] "#"
42 [email protected] "!" 45 [email protected] "!"
43 [email protected] "[" 46 [email protected] "["
44 [email protected] 47 [email protected]
45 [email protected] 48 [email protected]
46 [email protected] 49 [email protected]
47 [email protected] "attr" 50 [email protected]
48 [email protected] 51 [email protected] "attr"
49 [email protected] "(" 52 [email protected]
50 [email protected] "ident" 53 [email protected] "("
51 [email protected] "," 54 [email protected] "ident"
52 [email protected] " " 55 [email protected] ","
53 [email protected] "100" 56 [email protected] " "
54 [email protected] "," 57 [email protected] "100"
55 [email protected] " " 58 [email protected] ","
56 [email protected] "true" 59 [email protected] " "
57 [email protected] "," 60 [email protected] "true"
58 [email protected] " " 61 [email protected] ","
59 [email protected] "\"true\"" 62 [email protected] " "
60 [email protected] "," 63 [email protected] "\"true\""
61 [email protected] " " 64 [email protected] ","
62 [email protected] "ident" 65 [email protected] " "
63 [email protected] " " 66 [email protected] "ident"
64 [email protected] "=" 67 [email protected] " "
65 [email protected] " " 68 [email protected] "="
66 [email protected] "100" 69 [email protected] " "
67 [email protected] "," 70 [email protected] "100"
68 [email protected] " " 71 [email protected] ","
69 [email protected] "ident" 72 [email protected] " "
70 [email protected] " " 73 [email protected] "ident"
71 [email protected] "=" 74 [email protected] " "
72 [email protected] " " 75 [email protected] "="
73 [email protected] "\"hello\"" 76 [email protected] " "
74 [email protected] "," 77 [email protected] "\"hello\""
75 [email protected] " " 78 [email protected] ","
76 [email protected] "ident" 79 [email protected] " "
77 [email protected] 80 [email protected] "ident"
78 [email protected] "(" 81 [email protected]
79 [email protected] "100" 82 [email protected] "("
80 [email protected] ")" 83 [email protected] "100"
81 [email protected] ")" 84 [email protected] ")"
85 [email protected] ")"
82 [email protected] "]" 86 [email protected] "]"
83 [email protected] "\n" 87 [email protected] "\n"
84 [email protected] 88 [email protected]
85 [email protected] "#" 89 [email protected] "#"
86 [email protected] "!" 90 [email protected] "!"
87 [email protected] "[" 91 [email protected] "["
88 [email protected] 92 [email protected]
89 [email protected] 93 [email protected]
90 [email protected] 94 [email protected]
91 [email protected] "attr" 95 [email protected]
92 [email protected] 96 [email protected] "attr"
93 [email protected] "(" 97 [email protected]
94 [email protected] "100" 98 [email protected] "("
95 [email protected] ")" 99 [email protected] "100"
100 [email protected] ")"
96 [email protected] "]" 101 [email protected] "]"
97 [email protected] "\n" 102 [email protected] "\n"
98 [email protected] 103 [email protected]
99 [email protected] "#" 104 [email protected] "#"
100 [email protected] "!" 105 [email protected] "!"
101 [email protected] "[" 106 [email protected] "["
102 [email protected] 107 [email protected]
103 [email protected] 108 [email protected]
104 [email protected] 109 [email protected]
105 [email protected] "attr" 110 [email protected]
106 [email protected] 111 [email protected] "attr"
107 [email protected] "(" 112 [email protected]
108 [email protected] "enabled" 113 [email protected] "("
109 [email protected] " " 114 [email protected] "enabled"
110 [email protected] "=" 115 [email protected] " "
111 [email protected] " " 116 [email protected] "="
112 [email protected] "true" 117 [email protected] " "
113 [email protected] ")" 118 [email protected] "true"
119 [email protected] ")"
114 [email protected] "]" 120 [email protected] "]"
115 [email protected] "\n" 121 [email protected] "\n"
116 [email protected] 122 [email protected]
117 [email protected] "#" 123 [email protected] "#"
118 [email protected] "!" 124 [email protected] "!"
119 [email protected] "[" 125 [email protected] "["
120 [email protected] 126 [email protected]
121 [email protected] 127 [email protected]
122 [email protected] 128 [email protected]
123 [email protected] "enabled" 129 [email protected]
124 [email protected] 130 [email protected] "enabled"
125 [email protected] "(" 131 [email protected]
126 [email protected] "true" 132 [email protected] "("
127 [email protected] ")" 133 [email protected] "true"
134 [email protected] ")"
128 [email protected] "]" 135 [email protected] "]"
129 [email protected] "\n" 136 [email protected] "\n"
130 [email protected] 137 [email protected]
131 [email protected] "#" 138 [email protected] "#"
132 [email protected] "!" 139 [email protected] "!"
133 [email protected] "[" 140 [email protected] "["
134 [email protected] 141 [email protected]
135 [email protected] 142 [email protected]
136 [email protected] 143 [email protected]
137 [email protected] "attr" 144 [email protected]
138 [email protected] 145 [email protected] "attr"
139 [email protected] "(" 146 [email protected]
140 [email protected] "\"hello\"" 147 [email protected] "("
141 [email protected] ")" 148 [email protected] "\"hello\""
149 [email protected] ")"
142 [email protected] "]" 150 [email protected] "]"
143 [email protected] "\n" 151 [email protected] "\n"
144 [email protected] 152 [email protected]
145 [email protected] "#" 153 [email protected] "#"
146 [email protected] "!" 154 [email protected] "!"
147 [email protected] "[" 155 [email protected] "["
148 [email protected] 156 [email protected]
149 [email protected] 157 [email protected]
150 [email protected] 158 [email protected]
151 [email protected] "repr" 159 [email protected]
152 [email protected] 160 [email protected] "repr"
153 [email protected] "(" 161 [email protected]
154 [email protected] "C" 162 [email protected] "("
155 [email protected] "," 163 [email protected] "C"
156 [email protected] " " 164 [email protected] ","
157 [email protected] "align" 165 [email protected] " "
158 [email protected] " " 166 [email protected] "align"
159 [email protected] "=" 167 [email protected] " "
160 [email protected] " " 168 [email protected] "="
161 [email protected] "4" 169 [email protected] " "
162 [email protected] ")" 170 [email protected] "4"
171 [email protected] ")"
163 [email protected] "]" 172 [email protected] "]"
164 [email protected] "\n" 173 [email protected] "\n"
165 [email protected] 174 [email protected]
166 [email protected] "#" 175 [email protected] "#"
167 [email protected] "!" 176 [email protected] "!"
168 [email protected] "[" 177 [email protected] "["
169 [email protected] 178 [email protected]
170 [email protected] 179 [email protected]
171 [email protected] 180 [email protected]
172 [email protected] "repr" 181 [email protected]
173 [email protected] 182 [email protected] "repr"
174 [email protected] "(" 183 [email protected]
175 [email protected] "C" 184 [email protected] "("
176 [email protected] "," 185 [email protected] "C"
177 [email protected] " " 186 [email protected] ","
178 [email protected] "align" 187 [email protected] " "
179 [email protected] 188 [email protected] "align"
180 [email protected] "(" 189 [email protected]
181 [email protected] "4" 190 [email protected] "("
182 [email protected] ")" 191 [email protected] "4"
183 [email protected] ")" 192 [email protected] ")"
193 [email protected] ")"
184 [email protected] "]" 194 [email protected] "]"
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rast b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
index b2c1d791f..8b1e0a52d 100644
--- a/crates/syntax/test_data/parser/ok/0008_mod_item.rast
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
@@ -65,10 +65,11 @@ [email protected]
65 [email protected] "#" 65 [email protected] "#"
66 [email protected] "!" 66 [email protected] "!"
67 [email protected] "[" 67 [email protected] "["
68 [email protected] 68 [email protected]
69 [email protected] 69 [email protected]
70 [email protected] 70 [email protected]
71 [email protected] "attr" 71 [email protected]
72 [email protected] "attr"
72 [email protected] "]" 73 [email protected] "]"
73 [email protected] "\n " 74 [email protected] "\n "
74 [email protected] 75 [email protected]
diff --git a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
index 478fdba75..ff5877a7b 100644
--- a/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
+++ b/crates/syntax/test_data/parser/ok/0011_outer_attribute.rast
@@ -3,23 +3,25 @@ [email protected]
3 [email protected] 3 [email protected]
4 [email protected] "#" 4 [email protected] "#"
5 [email protected] "[" 5 [email protected] "["
6 [email protected] 6 [email protected]
7 [email protected] 7 [email protected]
8 [email protected] 8 [email protected]
9 [email protected] "cfg" 9 [email protected]
10 [email protected] 10 [email protected] "cfg"
11 [email protected] "(" 11 [email protected]
12 [email protected] "test" 12 [email protected] "("
13 [email protected] ")" 13 [email protected] "test"
14 [email protected] ")"
14 [email protected] "]" 15 [email protected] "]"
15 [email protected] "\n" 16 [email protected] "\n"
16 [email protected] 17 [email protected]
17 [email protected] "#" 18 [email protected] "#"
18 [email protected] "[" 19 [email protected] "["
19 [email protected] 20 [email protected]
20 [email protected] 21 [email protected]
21 [email protected] 22 [email protected]
22 [email protected] "ignore" 23 [email protected]
24 [email protected] "ignore"
23 [email protected] "]" 25 [email protected] "]"
24 [email protected] "\n" 26 [email protected] "\n"
25 [email protected] "fn" 27 [email protected] "fn"
@@ -38,15 +40,16 @@ [email protected]
38 [email protected] 40 [email protected]
39 [email protected] "#" 41 [email protected] "#"
40 [email protected] "[" 42 [email protected] "["
41 [email protected] 43 [email protected]
42 [email protected] 44 [email protected]
43 [email protected] 45 [email protected]
44 [email protected] "path" 46 [email protected]
45 [email protected] " " 47 [email protected] "path"
46 [email protected] "=" 48 [email protected] " "
47 [email protected] " " 49 [email protected] "="
48 [email protected] 50 [email protected] " "
49 [email protected] "\"a.rs\"" 51 [email protected]
52 [email protected] "\"a.rs\""
50 [email protected] "]" 53 [email protected] "]"
51 [email protected] "\n" 54 [email protected] "\n"
52 [email protected] "mod" 55 [email protected] "mod"
diff --git a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
index a3e091ad3..94791f771 100644
--- a/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
+++ b/crates/syntax/test_data/parser/ok/0017_attr_trailing_comma.rast
@@ -3,15 +3,16 @@ [email protected]
3 [email protected] 3 [email protected]
4 [email protected] "#" 4 [email protected] "#"
5 [email protected] "[" 5 [email protected] "["
6 [email protected] 6 [email protected]
7 [email protected] 7 [email protected]
8 [email protected] 8 [email protected]
9 [email protected] "foo" 9 [email protected]
10 [email protected] 10 [email protected] "foo"
11 [email protected] "(" 11 [email protected]
12 [email protected] "a" 12 [email protected] "("
13 [email protected] "," 13 [email protected] "a"
14 [email protected] ")" 14 [email protected] ","
15 [email protected] ")"
15 [email protected] "]" 16 [email protected] "]"
16 [email protected] "\n" 17 [email protected] "\n"
17 [email protected] "fn" 18 [email protected] "fn"
diff --git a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
index 46b192dc1..20675dbf5 100644
--- a/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
+++ b/crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
@@ -11,71 +11,76 @@ [email protected]
11 [email protected] "#" 11 [email protected] "#"
12 [email protected] "!" 12 [email protected] "!"
13 [email protected] "[" 13 [email protected] "["
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] 16 [email protected]
17 [email protected] "allow" 17 [email protected]
18 [email protected] 18 [email protected] "allow"
19 [email protected] "(" 19 [email protected]
20 [email protected] "non_camel_case_types" 20 [email protected] "("
21 [email protected] ")" 21 [email protected] "non_camel_case_types"
22 [email protected] ")"
22 [email protected] "]" 23 [email protected] "]"
23 [email protected] "\n" 24 [email protected] "\n"
24 [email protected] 25 [email protected]
25 [email protected] "#" 26 [email protected] "#"
26 [email protected] "!" 27 [email protected] "!"
27 [email protected] "[" 28 [email protected] "["
28 [email protected] 29 [email protected]
29 [email protected] 30 [email protected]
30 [email protected] 31 [email protected]
31 [email protected] "allow" 32 [email protected]
32 [email protected] 33 [email protected] "allow"
33 [email protected] "(" 34 [email protected]
34 [email protected] "dead_code" 35 [email protected] "("
35 [email protected] ")" 36 [email protected] "dead_code"
37 [email protected] ")"
36 [email protected] "]" 38 [email protected] "]"
37 [email protected] "\n" 39 [email protected] "\n"
38 [email protected] 40 [email protected]
39 [email protected] "#" 41 [email protected] "#"
40 [email protected] "!" 42 [email protected] "!"
41 [email protected] "[" 43 [email protected] "["
42 [email protected] 44 [email protected]
43 [email protected] 45 [email protected]
44 [email protected] 46 [email protected]
45 [email protected] "allow" 47 [email protected]
46 [email protected] 48 [email protected] "allow"
47 [email protected] "(" 49 [email protected]
48 [email protected] "unreachable_code" 50 [email protected] "("
49 [email protected] ")" 51 [email protected] "unreachable_code"
52 [email protected] ")"
50 [email protected] "]" 53 [email protected] "]"
51 [email protected] "\n" 54 [email protected] "\n"
52 [email protected] 55 [email protected]
53 [email protected] "#" 56 [email protected] "#"
54 [email protected] "!" 57 [email protected] "!"
55 [email protected] "[" 58 [email protected] "["
56 [email protected] 59 [email protected]
57 [email protected] 60 [email protected]
58 [email protected] 61 [email protected]
59 [email protected] "allow" 62 [email protected]
60 [email protected] 63 [email protected] "allow"
61 [email protected] "(" 64 [email protected]
62 [email protected] "unused_parens" 65 [email protected] "("
63 [email protected] ")" 66 [email protected] "unused_parens"
67 [email protected] ")"
64 [email protected] "]" 68 [email protected] "]"
65 [email protected] "\n\n" 69 [email protected] "\n\n"
66 [email protected] 70 [email protected]
67 [email protected] "#" 71 [email protected] "#"
68 [email protected] "!" 72 [email protected] "!"
69 [email protected] "[" 73 [email protected] "["
70 [email protected] 74 [email protected]
71 [email protected] 75 [email protected]
72 [email protected] 76 [email protected]
73 [email protected] "recursion_limit" 77 [email protected]
74 [email protected] " " 78 [email protected] "recursion_limit"
75 [email protected] "=" 79 [email protected] " "
76 [email protected] " " 80 [email protected] "="
77 [email protected] 81 [email protected] " "
78 [email protected] "\"128\"" 82 [email protected]
83 [email protected] "\"128\""
79 [email protected] "]" 84 [email protected] "]"
80 [email protected] "\n\n" 85 [email protected] "\n\n"
81 [email protected] 86 [email protected]
diff --git a/crates/syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
index af44a4dbe..d0e7a1dbe 100644
--- a/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
+++ b/crates/syntax/test_data/parser/ok/0044_let_attrs.rast
@@ -17,18 +17,19 @@ [email protected]
17 [email protected] 17 [email protected]
18 [email protected] "#" 18 [email protected] "#"
19 [email protected] "[" 19 [email protected] "["
20 [email protected] 20 [email protected]
21 [email protected] 21 [email protected]
22 [email protected] 22 [email protected]
23 [email protected] "cfg" 23 [email protected]
24 [email protected] 24 [email protected] "cfg"
25 [email protected] "(" 25 [email protected]
26 [email protected] "feature" 26 [email protected] "("
27 [email protected] " " 27 [email protected] "feature"
28 [email protected] "=" 28 [email protected] " "
29 [email protected] " " 29 [email protected] "="
30 [email protected] "\"backtrace\"" 30 [email protected] " "
31 [email protected] ")" 31 [email protected] "\"backtrace\""
32 [email protected] ")"
32 [email protected] "]" 33 [email protected] "]"
33 [email protected] "\n " 34 [email protected] "\n "
34 [email protected] "let" 35 [email protected] "let"
diff --git a/crates/syntax/test_data/parser/ok/0045_block_attrs.rast b/crates/syntax/test_data/parser/ok/0045_block_attrs.rast
index 5e50b4e0b..7fbd635d0 100644
--- a/crates/syntax/test_data/parser/ok/0045_block_attrs.rast
+++ b/crates/syntax/test_data/parser/ok/0045_block_attrs.rast
@@ -15,14 +15,15 @@ [email protected]
15 [email protected] "#" 15 [email protected] "#"
16 [email protected] "!" 16 [email protected] "!"
17 [email protected] "[" 17 [email protected] "["
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] 20 [email protected]
21 [email protected] "doc" 21 [email protected]
22 [email protected] 22 [email protected] "doc"
23 [email protected] "(" 23 [email protected]
24 [email protected] "\"Inner attributes all ..." 24 [email protected] "("
25 [email protected] ")" 25 [email protected] "\"Inner attributes all ..."
26 [email protected] ")"
26 [email protected] "]" 27 [email protected] "]"
27 [email protected] "\n " 28 [email protected] "\n "
28 [email protected] "//! As are ModuleDoc ..." 29 [email protected] "//! As are ModuleDoc ..."
@@ -35,28 +36,30 @@ [email protected]
35 [email protected] "#" 36 [email protected] "#"
36 [email protected] "!" 37 [email protected] "!"
37 [email protected] "[" 38 [email protected] "["
38 [email protected] 39 [email protected]
39 [email protected] 40 [email protected]
40 [email protected] 41 [email protected]
41 [email protected] "doc" 42 [email protected]
42 [email protected] 43 [email protected] "doc"
43 [email protected] "(" 44 [email protected]
44 [email protected] "\"Inner attributes are ..." 45 [email protected] "("
45 [email protected] ")" 46 [email protected] "\"Inner attributes are ..."
47 [email protected] ")"
46 [email protected] "]" 48 [email protected] "]"
47 [email protected] "\n " 49 [email protected] "\n "
48 [email protected] 50 [email protected]
49 [email protected] "#" 51 [email protected] "#"
50 [email protected] "!" 52 [email protected] "!"
51 [email protected] "[" 53 [email protected] "["
52 [email protected] 54 [email protected]
53 [email protected] 55 [email protected]
54 [email protected] 56 [email protected]
55 [email protected] "doc" 57 [email protected]
56 [email protected] 58 [email protected] "doc"
57 [email protected] "(" 59 [email protected]
58 [email protected] "\"Being validated is n ..." 60 [email protected] "("
59 [email protected] ")" 61 [email protected] "\"Being validated is n ..."
62 [email protected] ")"
60 [email protected] "]" 63 [email protected] "]"
61 [email protected] "\n " 64 [email protected] "\n "
62 [email protected] "//! As are ModuleDoc ..." 65 [email protected] "//! As are ModuleDoc ..."
@@ -71,14 +74,15 @@ [email protected]
71 [email protected] "#" 74 [email protected] "#"
72 [email protected] "!" 75 [email protected] "!"
73 [email protected] "[" 76 [email protected] "["
74 [email protected] 77 [email protected]
75 [email protected] 78 [email protected]
76 [email protected] 79 [email protected]
77 [email protected] "doc" 80 [email protected]
78 [email protected] 81 [email protected] "doc"
79 [email protected] "(" 82 [email protected]
80 [email protected] "\"Inner attributes are ..." 83 [email protected] "("
81 [email protected] ")" 84 [email protected] "\"Inner attributes are ..."
85 [email protected] ")"
82 [email protected] "]" 86 [email protected] "]"
83 [email protected] "\n " 87 [email protected] "\n "
84 [email protected] "//! As are ModuleDoc ..." 88 [email protected] "//! As are ModuleDoc ..."
@@ -111,14 +115,15 @@ [email protected]
111 [email protected] 115 [email protected]
112 [email protected] "#" 116 [email protected] "#"
113 [email protected] "[" 117 [email protected] "["
114 [email protected] 118 [email protected]
115 [email protected] 119 [email protected]
116 [email protected] 120 [email protected]
117 [email protected] "doc" 121 [email protected]
118 [email protected] 122 [email protected] "doc"
119 [email protected] "(" 123 [email protected]
120 [email protected] "\"Outer attributes are ..." 124 [email protected] "("
121 [email protected] ")" 125 [email protected] "\"Outer attributes are ..."
126 [email protected] ")"
122 [email protected] "]" 127 [email protected] "]"
123 [email protected] " " 128 [email protected] " "
124 [email protected] "{" 129 [email protected] "{"
@@ -200,14 +205,15 @@ [email protected]
200 [email protected] "#" 205 [email protected] "#"
201 [email protected] "!" 206 [email protected] "!"
202 [email protected] "[" 207 [email protected] "["
203 [email protected] 208 [email protected]
204 [email protected] 209 [email protected]
205 [email protected] 210 [email protected]
206 [email protected] "allow" 211 [email protected]
207 [email protected] 212 [email protected] "allow"
208 [email protected] "(" 213 [email protected]
209 [email protected] "unused_variables" 214 [email protected] "("
210 [email protected] ")" 215 [email protected] "unused_variables"
216 [email protected] ")"
211 [email protected] "]" 217 [email protected] "]"
212 [email protected] " " 218 [email protected] " "
213 [email protected] "// this is `inner_at ..." 219 [email protected] "// this is `inner_at ..."
diff --git a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
index 37594769a..854ff9d56 100644
--- a/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
+++ b/crates/syntax/test_data/parser/ok/0046_extern_inner_attributes.rast
@@ -14,14 +14,15 @@ [email protected]
14 [email protected] "#" 14 [email protected] "#"
15 [email protected] "!" 15 [email protected] "!"
16 [email protected] "[" 16 [email protected] "["
17 [email protected] 17 [email protected]
18 [email protected] 18 [email protected]
19 [email protected] 19 [email protected]
20 [email protected] "doc" 20 [email protected]
21 [email protected] 21 [email protected] "doc"
22 [email protected] "(" 22 [email protected]
23 [email protected] "\"This is also a doc c ..." 23 [email protected] "("
24 [email protected] ")" 24 [email protected] "\"This is also a doc c ..."
25 [email protected] ")"
25 [email protected] "]" 26 [email protected] "]"
26 [email protected] "\n" 27 [email protected] "\n"
27 [email protected] "}" 28 [email protected] "}"
diff --git a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
index 88470c41c..f935a0df5 100644
--- a/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
+++ b/crates/syntax/test_data/parser/ok/0051_parameter_attrs.rast
@@ -10,19 +10,21 @@ [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "#" 11 [email protected] "#"
12 [email protected] "[" 12 [email protected] "["
13 [email protected] 13 [email protected]
14 [email protected] 14 [email protected]
15 [email protected] 15 [email protected]
16 [email protected] "attr1" 16 [email protected]
17 [email protected] "attr1"
17 [email protected] "]" 18 [email protected] "]"
18 [email protected] " " 19 [email protected] " "
19 [email protected] 20 [email protected]
20 [email protected] "#" 21 [email protected] "#"
21 [email protected] "[" 22 [email protected] "["
22 [email protected] 23 [email protected]
23 [email protected] 24 [email protected]
24 [email protected] 25 [email protected]
25 [email protected] "attr2" 26 [email protected]
27 [email protected] "attr2"
26 [email protected] "]" 28 [email protected] "]"
27 [email protected] " " 29 [email protected] " "
28 [email protected] 30 [email protected]
@@ -52,10 +54,11 @@ [email protected]
52 [email protected] 54 [email protected]
53 [email protected] "#" 55 [email protected] "#"
54 [email protected] "[" 56 [email protected] "["
55 [email protected] 57 [email protected]
56 [email protected] 58 [email protected]
57 [email protected] 59 [email protected]
58 [email protected] "attr1" 60 [email protected]
61 [email protected] "attr1"
59 [email protected] "]" 62 [email protected] "]"
60 [email protected] " " 63 [email protected] " "
61 [email protected] 64 [email protected]
@@ -111,10 +114,11 @@ [email protected]
111 [email protected] 114 [email protected]
112 [email protected] "#" 115 [email protected] "#"
113 [email protected] "[" 116 [email protected] "["
114 [email protected] 117 [email protected]
115 [email protected] 118 [email protected]
116 [email protected] 119 [email protected]
117 [email protected] "attr" 120 [email protected]
121 [email protected] "attr"
118 [email protected] "]" 122 [email protected] "]"
119 [email protected] " " 123 [email protected] " "
120 [email protected] "..." 124 [email protected] "..."
@@ -157,10 +161,11 @@ [email protected]
157 [email protected] 161 [email protected]
158 [email protected] "#" 162 [email protected] "#"
159 [email protected] "[" 163 [email protected] "["
160 [email protected] 164 [email protected]
161 [email protected] 165 [email protected]
162 [email protected] 166 [email protected]
163 [email protected] "attr" 167 [email protected]
168 [email protected] "attr"
164 [email protected] "]" 169 [email protected] "]"
165 [email protected] " " 170 [email protected] " "
166 [email protected] 171 [email protected]
@@ -207,10 +212,11 @@ [email protected]
207 [email protected] 212 [email protected]
208 [email protected] "#" 213 [email protected] "#"
209 [email protected] "[" 214 [email protected] "["
210 [email protected] 215 [email protected]
211 [email protected] 216 [email protected]
212 [email protected] 217 [email protected]
213 [email protected] "attr" 218 [email protected]
219 [email protected] "attr"
214 [email protected] "]" 220 [email protected] "]"
215 [email protected] " " 221 [email protected] " "
216 [email protected] 222 [email protected]
@@ -229,10 +235,11 @@ [email protected]
229 [email protected] "#" 235 [email protected] "#"
230 [email protected] " " 236 [email protected] " "
231 [email protected] "[" 237 [email protected] "["
232 [email protected] 238 [email protected]
233 [email protected] 239 [email protected]
234 [email protected] 240 [email protected]
235 [email protected] "attr" 241 [email protected]
242 [email protected] "attr"
236 [email protected] "]" 243 [email protected] "]"
237 [email protected] " " 244 [email protected] " "
238 [email protected] 245 [email protected]
@@ -275,10 +282,11 @@ [email protected]
275 [email protected] 282 [email protected]
276 [email protected] "#" 283 [email protected] "#"
277 [email protected] "[" 284 [email protected] "["
278 [email protected] 285 [email protected]
279 [email protected] 286 [email protected]
280 [email protected] 287 [email protected]
281 [email protected] "must_use" 288 [email protected]
289 [email protected] "must_use"
282 [email protected] "]" 290 [email protected] "]"
283 [email protected] " " 291 [email protected] " "
284 [email protected] 292 [email protected]
@@ -300,10 +308,11 @@ [email protected]
300 [email protected] 308 [email protected]
301 [email protected] "#" 309 [email protected] "#"
302 [email protected] "[" 310 [email protected] "["
303 [email protected] 311 [email protected]
304 [email protected] 312 [email protected]
305 [email protected] 313 [email protected]
306 [email protected] "attr" 314 [email protected]
315 [email protected] "attr"
307 [email protected] "]" 316 [email protected] "]"
308 [email protected] " " 317 [email protected] " "
309 [email protected] 318 [email protected]
@@ -325,10 +334,11 @@ [email protected]
325 [email protected] 334 [email protected]
326 [email protected] "#" 335 [email protected] "#"
327 [email protected] "[" 336 [email protected] "["
328 [email protected] 337 [email protected]
329 [email protected] 338 [email protected]
330 [email protected] 339 [email protected]
331 [email protected] "attr" 340 [email protected]
341 [email protected] "attr"
332 [email protected] "]" 342 [email protected] "]"
333 [email protected] " " 343 [email protected] " "
334 [email protected] "&" 344 [email protected] "&"
@@ -357,10 +367,11 @@ [email protected]
357 [email protected] 367 [email protected]
358 [email protected] "#" 368 [email protected] "#"
359 [email protected] "[" 369 [email protected] "["
360 [email protected] 370 [email protected]
361 [email protected] 371 [email protected]
362 [email protected] 372 [email protected]
363 [email protected] "attr" 373 [email protected]
374 [email protected] "attr"
364 [email protected] "]" 375 [email protected] "]"
365 [email protected] " " 376 [email protected] " "
366 [email protected] "&" 377 [email protected] "&"
@@ -391,10 +402,11 @@ [email protected]
391 [email protected] 402 [email protected]
392 [email protected] "#" 403 [email protected] "#"
393 [email protected] "[" 404 [email protected] "["
394 [email protected] 405 [email protected]
395 [email protected] 406 [email protected]
396 [email protected] 407 [email protected]
397 [email protected] "attr" 408 [email protected]
409 [email protected] "attr"
398 [email protected] "]" 410 [email protected] "]"
399 [email protected] " " 411 [email protected] " "
400 [email protected] "&" 412 [email protected] "&"
@@ -426,10 +438,11 @@ [email protected]
426 [email protected] 438 [email protected]
427 [email protected] "#" 439 [email protected] "#"
428 [email protected] "[" 440 [email protected] "["
429 [email protected] 441 [email protected]
430 [email protected] 442 [email protected]
431 [email protected] 443 [email protected]
432 [email protected] "attr" 444 [email protected]
445 [email protected] "attr"
433 [email protected] "]" 446 [email protected] "]"
434 [email protected] " " 447 [email protected] " "
435 [email protected] "&" 448 [email protected] "&"
@@ -457,10 +470,11 @@ [email protected]
457 [email protected] 470 [email protected]
458 [email protected] "#" 471 [email protected] "#"
459 [email protected] "[" 472 [email protected] "["
460 [email protected] 473 [email protected]
461 [email protected] 474 [email protected]
462 [email protected] 475 [email protected]
463 [email protected] "attr" 476 [email protected]
477 [email protected] "attr"
464 [email protected] "]" 478 [email protected] "]"
465 [email protected] " " 479 [email protected] " "
466 [email protected] 480 [email protected]
@@ -489,10 +503,11 @@ [email protected]
489 [email protected] 503 [email protected]
490 [email protected] "#" 504 [email protected] "#"
491 [email protected] "[" 505 [email protected] "["
492 [email protected] 506 [email protected]
493 [email protected] 507 [email protected]
494 [email protected] 508 [email protected]
495 [email protected] "attr" 509 [email protected]
510 [email protected] "attr"
496 [email protected] "]" 511 [email protected] "]"
497 [email protected] " " 512 [email protected] " "
498 [email protected] 513 [email protected]
diff --git a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
index 87d8ebcba..97416f16a 100644
--- a/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
+++ b/crates/syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast
@@ -5,10 +5,11 @@ [email protected]
5 [email protected] 5 [email protected]
6 [email protected] "#" 6 [email protected] "#"
7 [email protected] "[" 7 [email protected] "["
8 [email protected] 8 [email protected]
9 [email protected] 9 [email protected]
10 [email protected] 10 [email protected]
11 [email protected] "macro_export" 11 [email protected]
12 [email protected] "macro_export"
12 [email protected] "]" 13 [email protected] "]"
13 [email protected] "\n" 14 [email protected] "\n"
14 [email protected] "macro_rules" 15 [email protected] "macro_rules"
diff --git a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
index 0c22c31a4..e75848f0f 100644
--- a/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
+++ b/crates/syntax/test_data/parser/ok/0062_macro_2.0.rast
@@ -55,10 +55,11 @@ [email protected]
55 [email protected] 55 [email protected]
56 [email protected] "#" 56 [email protected] "#"
57 [email protected] "[" 57 [email protected] "["
58 [email protected] 58 [email protected]
59 [email protected] 59 [email protected]
60 [email protected] 60 [email protected]
61 [email protected] "test" 61 [email protected]
62 [email protected] "test"
62 [email protected] "]" 63 [email protected] "]"
63 [email protected] "\n" 64 [email protected] "\n"
64 [email protected] "fn" 65 [email protected] "fn"
diff --git a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
index f7c094898..dcc4105c9 100644
--- a/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
+++ b/crates/syntax/test_data/parser/ok/0063_variadic_fun.rast
@@ -96,14 +96,15 @@ [email protected]
96 [email protected] 96 [email protected]
97 [email protected] "#" 97 [email protected] "#"
98 [email protected] "[" 98 [email protected] "["
99 [email protected] 99 [email protected]
100 [email protected] 100 [email protected]
101 [email protected] 101 [email protected]
102 [email protected] "cfg" 102 [email protected]
103 [email protected] 103 [email protected] "cfg"
104 [email protected] "(" 104 [email protected]
105 [email protected] "never" 105 [email protected] "("
106 [email protected] ")" 106 [email protected] "never"
107 [email protected] ")"
107 [email protected] "]" 108 [email protected] "]"
108 [email protected] " " 109 [email protected] " "
109 [email protected] 110 [email protected]
diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml
index 997770958..c4fc91386 100644
--- a/xtask/Cargo.toml
+++ b/xtask/Cargo.toml
@@ -11,7 +11,7 @@ anyhow = "1.0.26"
11flate2 = "1.0" 11flate2 = "1.0"
12proc-macro2 = "1.0.8" 12proc-macro2 = "1.0.8"
13quote = "1.0.2" 13quote = "1.0.2"
14ungrammar = "=1.13" 14ungrammar = "=1.14"
15walkdir = "2.3.1" 15walkdir = "2.3.1"
16write-json = "0.1.0" 16write-json = "0.1.0"
17xshell = "0.1" 17xshell = "0.1"
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs
index 0fd1d13e6..fe37d0245 100644
--- a/xtask/src/ast_src.rs
+++ b/xtask/src/ast_src.rs
@@ -184,7 +184,7 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc {
184 "ITEM_LIST", 184 "ITEM_LIST",
185 "ASSOC_ITEM_LIST", 185 "ASSOC_ITEM_LIST",
186 "ATTR", 186 "ATTR",
187 "META_ITEM", // not an item actually 187 "META",
188 "USE_TREE", 188 "USE_TREE",
189 "USE_TREE_LIST", 189 "USE_TREE_LIST",
190 "PATH", 190 "PATH",