diff options
451 files changed, 28511 insertions, 27009 deletions
diff --git a/Cargo.lock b/Cargo.lock index d966ebe61..20e6cd540 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -1180,7 +1180,7 @@ dependencies = [ | |||
1180 | name = "ra_text_edit" | 1180 | name = "ra_text_edit" |
1181 | version = "0.1.0" | 1181 | version = "0.1.0" |
1182 | dependencies = [ | 1182 | dependencies = [ |
1183 | "text_unit", | 1183 | "text-size", |
1184 | ] | 1184 | ] |
1185 | 1185 | ||
1186 | [[package]] | 1186 | [[package]] |
@@ -1322,13 +1322,13 @@ dependencies = [ | |||
1322 | 1322 | ||
1323 | [[package]] | 1323 | [[package]] |
1324 | name = "rowan" | 1324 | name = "rowan" |
1325 | version = "0.9.1" | 1325 | version = "0.10.0" |
1326 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1327 | checksum = "1ea7cadf87a9d8432e85cb4eb86bd2e765ace60c24ef86e79084dcae5d1c5a19" | 1327 | checksum = "1e081ed6eacce09e243b619ab90f069c27b0cff8a6d0eb8ad2ec935b65853798" |
1328 | dependencies = [ | 1328 | dependencies = [ |
1329 | "rustc-hash", | 1329 | "rustc-hash", |
1330 | "smol_str", | 1330 | "smol_str", |
1331 | "text_unit", | 1331 | "text-size", |
1332 | "thin-dst", | 1332 | "thin-dst", |
1333 | ] | 1333 | ] |
1334 | 1334 | ||
@@ -1620,14 +1620,14 @@ version = "0.1.0" | |||
1620 | dependencies = [ | 1620 | dependencies = [ |
1621 | "difference", | 1621 | "difference", |
1622 | "serde_json", | 1622 | "serde_json", |
1623 | "text_unit", | 1623 | "text-size", |
1624 | ] | 1624 | ] |
1625 | 1625 | ||
1626 | [[package]] | 1626 | [[package]] |
1627 | name = "text_unit" | 1627 | name = "text-size" |
1628 | version = "0.1.10" | 1628 | version = "1.0.0" |
1629 | source = "registry+https://github.com/rust-lang/crates.io-index" | 1629 | source = "registry+https://github.com/rust-lang/crates.io-index" |
1630 | checksum = "20431e104bfecc1a40872578dbc390e10290a0e9c35fffe3ce6f73c15a9dbfc2" | 1630 | checksum = "f03e7efdedc3bc78cb2337f1e2785c39e45f5ef762d9e4ebb137fff7380a6d8a" |
1631 | 1631 | ||
1632 | [[package]] | 1632 | [[package]] |
1633 | name = "thin-dst" | 1633 | name = "thin-dst" |
diff --git a/crates/ra_assists/src/assist_ctx.rs b/crates/ra_assists/src/assist_ctx.rs index c3e653299..2fe7c3de3 100644 --- a/crates/ra_assists/src/assist_ctx.rs +++ b/crates/ra_assists/src/assist_ctx.rs | |||
@@ -5,12 +5,12 @@ use ra_fmt::{leading_indent, reindent}; | |||
5 | use ra_ide_db::RootDatabase; | 5 | use ra_ide_db::RootDatabase; |
6 | use ra_syntax::{ | 6 | use ra_syntax::{ |
7 | algo::{self, find_covering_element, find_node_at_offset}, | 7 | algo::{self, find_covering_element, find_node_at_offset}, |
8 | AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextUnit, | 8 | AstNode, SourceFile, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, TextSize, |
9 | TokenAtOffset, | 9 | TokenAtOffset, |
10 | }; | 10 | }; |
11 | use ra_text_edit::TextEditBuilder; | 11 | use ra_text_edit::TextEditBuilder; |
12 | 12 | ||
13 | use crate::{AssistAction, AssistId, AssistLabel, GroupLabel, ResolvedAssist}; | 13 | use crate::{AssistAction, AssistFile, AssistId, AssistLabel, GroupLabel, ResolvedAssist}; |
14 | use algo::SyntaxRewriter; | 14 | use algo::SyntaxRewriter; |
15 | 15 | ||
16 | #[derive(Clone, Debug)] | 16 | #[derive(Clone, Debug)] |
@@ -178,8 +178,9 @@ impl<'a> AssistGroup<'a> { | |||
178 | #[derive(Default)] | 178 | #[derive(Default)] |
179 | pub(crate) struct ActionBuilder { | 179 | pub(crate) struct ActionBuilder { |
180 | edit: TextEditBuilder, | 180 | edit: TextEditBuilder, |
181 | cursor_position: Option<TextUnit>, | 181 | cursor_position: Option<TextSize>, |
182 | target: Option<TextRange>, | 182 | target: Option<TextRange>, |
183 | file: AssistFile, | ||
183 | } | 184 | } |
184 | 185 | ||
185 | impl ActionBuilder { | 186 | impl ActionBuilder { |
@@ -210,12 +211,12 @@ impl ActionBuilder { | |||
210 | } | 211 | } |
211 | 212 | ||
212 | /// Append specified `text` at the given `offset` | 213 | /// Append specified `text` at the given `offset` |
213 | pub(crate) fn insert(&mut self, offset: TextUnit, text: impl Into<String>) { | 214 | pub(crate) fn insert(&mut self, offset: TextSize, text: impl Into<String>) { |
214 | self.edit.insert(offset, text.into()) | 215 | self.edit.insert(offset, text.into()) |
215 | } | 216 | } |
216 | 217 | ||
217 | /// Specify desired position of the cursor after the assist is applied. | 218 | /// Specify desired position of the cursor after the assist is applied. |
218 | pub(crate) fn set_cursor(&mut self, offset: TextUnit) { | 219 | pub(crate) fn set_cursor(&mut self, offset: TextSize) { |
219 | self.cursor_position = Some(offset) | 220 | self.cursor_position = Some(offset) |
220 | } | 221 | } |
221 | 222 | ||
@@ -241,11 +242,16 @@ impl ActionBuilder { | |||
241 | algo::diff(&node, &new).into_text_edit(&mut self.edit) | 242 | algo::diff(&node, &new).into_text_edit(&mut self.edit) |
242 | } | 243 | } |
243 | 244 | ||
245 | pub(crate) fn set_file(&mut self, assist_file: AssistFile) { | ||
246 | self.file = assist_file | ||
247 | } | ||
248 | |||
244 | fn build(self) -> AssistAction { | 249 | fn build(self) -> AssistAction { |
245 | AssistAction { | 250 | AssistAction { |
246 | edit: self.edit.finish(), | 251 | edit: self.edit.finish(), |
247 | cursor_position: self.cursor_position, | 252 | cursor_position: self.cursor_position, |
248 | target: self.target, | 253 | target: self.target, |
254 | file: self.file, | ||
249 | } | 255 | } |
250 | } | 256 | } |
251 | } | 257 | } |
diff --git a/crates/ra_assists/src/doc_tests/generated.rs b/crates/ra_assists/src/doc_tests/generated.rs index b39e60870..e4fa9ee36 100644 --- a/crates/ra_assists/src/doc_tests/generated.rs +++ b/crates/ra_assists/src/doc_tests/generated.rs | |||
@@ -66,7 +66,7 @@ fn doctest_add_function() { | |||
66 | struct Baz; | 66 | struct Baz; |
67 | fn baz() -> Baz { Baz } | 67 | fn baz() -> Baz { Baz } |
68 | fn foo() { | 68 | fn foo() { |
69 | bar<|>("", baz()); | 69 | bar<|>("", baz()); |
70 | } | 70 | } |
71 | 71 | ||
72 | "#####, | 72 | "#####, |
@@ -74,7 +74,7 @@ fn foo() { | |||
74 | struct Baz; | 74 | struct Baz; |
75 | fn baz() -> Baz { Baz } | 75 | fn baz() -> Baz { Baz } |
76 | fn foo() { | 76 | fn foo() { |
77 | bar("", baz()); | 77 | bar("", baz()); |
78 | } | 78 | } |
79 | 79 | ||
80 | fn bar(arg: &str, baz: Baz) { | 80 | fn bar(arg: &str, baz: Baz) { |
diff --git a/crates/ra_assists/src/handlers/add_custom_impl.rs b/crates/ra_assists/src/handlers/add_custom_impl.rs index 15f9b216b..4ea26a550 100644 --- a/crates/ra_assists/src/handlers/add_custom_impl.rs +++ b/crates/ra_assists/src/handlers/add_custom_impl.rs | |||
@@ -2,7 +2,7 @@ use ra_syntax::{ | |||
2 | ast::{self, AstNode}, | 2 | ast::{self, AstNode}, |
3 | Direction, SmolStr, | 3 | Direction, SmolStr, |
4 | SyntaxKind::{IDENT, WHITESPACE}, | 4 | SyntaxKind::{IDENT, WHITESPACE}, |
5 | TextRange, TextUnit, | 5 | TextRange, TextSize, |
6 | }; | 6 | }; |
7 | use stdx::SepBy; | 7 | use stdx::SepBy; |
8 | 8 | ||
@@ -60,7 +60,6 @@ pub(crate) fn add_custom_impl(ctx: AssistCtx) -> Option<Assist> { | |||
60 | .collect::<Vec<SmolStr>>(); | 60 | .collect::<Vec<SmolStr>>(); |
61 | let has_more_derives = !new_attr_input.is_empty(); | 61 | let has_more_derives = !new_attr_input.is_empty(); |
62 | let new_attr_input = new_attr_input.iter().sep_by(", ").surround_with("(", ")").to_string(); | 62 | let new_attr_input = new_attr_input.iter().sep_by(", ").surround_with("(", ")").to_string(); |
63 | let new_attr_input_len = new_attr_input.len(); | ||
64 | 63 | ||
65 | let mut buf = String::new(); | 64 | let mut buf = String::new(); |
66 | buf.push_str("\n\nimpl "); | 65 | buf.push_str("\n\nimpl "); |
@@ -70,8 +69,9 @@ pub(crate) fn add_custom_impl(ctx: AssistCtx) -> Option<Assist> { | |||
70 | buf.push_str(" {\n"); | 69 | buf.push_str(" {\n"); |
71 | 70 | ||
72 | let cursor_delta = if has_more_derives { | 71 | let cursor_delta = if has_more_derives { |
72 | let delta = input.syntax().text_range().len() - TextSize::of(&new_attr_input); | ||
73 | edit.replace(input.syntax().text_range(), new_attr_input); | 73 | edit.replace(input.syntax().text_range(), new_attr_input); |
74 | input.syntax().text_range().len() - TextUnit::from_usize(new_attr_input_len) | 74 | delta |
75 | } else { | 75 | } else { |
76 | let attr_range = attr.syntax().text_range(); | 76 | let attr_range = attr.syntax().text_range(); |
77 | edit.delete(attr_range); | 77 | edit.delete(attr_range); |
@@ -81,13 +81,13 @@ pub(crate) fn add_custom_impl(ctx: AssistCtx) -> Option<Assist> { | |||
81 | .next_sibling_or_token() | 81 | .next_sibling_or_token() |
82 | .filter(|t| t.kind() == WHITESPACE) | 82 | .filter(|t| t.kind() == WHITESPACE) |
83 | .map(|t| t.text_range()) | 83 | .map(|t| t.text_range()) |
84 | .unwrap_or_else(|| TextRange::from_to(TextUnit::from(0), TextUnit::from(0))); | 84 | .unwrap_or_else(|| TextRange::new(TextSize::from(0), TextSize::from(0))); |
85 | edit.delete(line_break_range); | 85 | edit.delete(line_break_range); |
86 | 86 | ||
87 | attr_range.len() + line_break_range.len() | 87 | attr_range.len() + line_break_range.len() |
88 | }; | 88 | }; |
89 | 89 | ||
90 | edit.set_cursor(start_offset + TextUnit::of_str(&buf) - cursor_delta); | 90 | edit.set_cursor(start_offset + TextSize::of(&buf) - cursor_delta); |
91 | buf.push_str("\n}"); | 91 | buf.push_str("\n}"); |
92 | edit.insert(start_offset, buf); | 92 | edit.insert(start_offset, buf); |
93 | }) | 93 | }) |
diff --git a/crates/ra_assists/src/handlers/add_derive.rs b/crates/ra_assists/src/handlers/add_derive.rs index b0d1a0a80..6254eb7c4 100644 --- a/crates/ra_assists/src/handlers/add_derive.rs +++ b/crates/ra_assists/src/handlers/add_derive.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast::{self, AstNode, AttrsOwner}, | 2 | ast::{self, AstNode, AttrsOwner}, |
3 | SyntaxKind::{COMMENT, WHITESPACE}, | 3 | SyntaxKind::{COMMENT, WHITESPACE}, |
4 | TextUnit, | 4 | TextSize, |
5 | }; | 5 | }; |
6 | 6 | ||
7 | use crate::{Assist, AssistCtx, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
@@ -37,9 +37,9 @@ pub(crate) fn add_derive(ctx: AssistCtx) -> Option<Assist> { | |||
37 | let offset = match derive_attr { | 37 | let offset = match derive_attr { |
38 | None => { | 38 | None => { |
39 | edit.insert(node_start, "#[derive()]\n"); | 39 | edit.insert(node_start, "#[derive()]\n"); |
40 | node_start + TextUnit::of_str("#[derive(") | 40 | node_start + TextSize::of("#[derive(") |
41 | } | 41 | } |
42 | Some(tt) => tt.syntax().text_range().end() - TextUnit::of_char(')'), | 42 | Some(tt) => tt.syntax().text_range().end() - TextSize::of(')'), |
43 | }; | 43 | }; |
44 | edit.target(nominal.syntax().text_range()); | 44 | edit.target(nominal.syntax().text_range()); |
45 | edit.set_cursor(offset) | 45 | edit.set_cursor(offset) |
@@ -47,7 +47,7 @@ pub(crate) fn add_derive(ctx: AssistCtx) -> Option<Assist> { | |||
47 | } | 47 | } |
48 | 48 | ||
49 | // Insert `derive` after doc comments. | 49 | // Insert `derive` after doc comments. |
50 | fn derive_insertion_offset(nominal: &ast::NominalDef) -> Option<TextUnit> { | 50 | fn derive_insertion_offset(nominal: &ast::NominalDef) -> Option<TextSize> { |
51 | let non_ws_child = nominal | 51 | let non_ws_child = nominal |
52 | .syntax() | 52 | .syntax() |
53 | .children_with_tokens() | 53 | .children_with_tokens() |
diff --git a/crates/ra_assists/src/handlers/add_explicit_type.rs b/crates/ra_assists/src/handlers/add_explicit_type.rs index 6c56d93d8..bc313782b 100644 --- a/crates/ra_assists/src/handlers/add_explicit_type.rs +++ b/crates/ra_assists/src/handlers/add_explicit_type.rs | |||
@@ -37,8 +37,8 @@ pub(crate) fn add_explicit_type(ctx: AssistCtx) -> Option<Assist> { | |||
37 | let stmt_range = stmt.syntax().text_range(); | 37 | let stmt_range = stmt.syntax().text_range(); |
38 | let eq_range = stmt.eq_token()?.text_range(); | 38 | let eq_range = stmt.eq_token()?.text_range(); |
39 | // Assist should only be applicable if cursor is between 'let' and '=' | 39 | // Assist should only be applicable if cursor is between 'let' and '=' |
40 | let let_range = TextRange::from_to(stmt_range.start(), eq_range.start()); | 40 | let let_range = TextRange::new(stmt_range.start(), eq_range.start()); |
41 | let cursor_in_range = ctx.frange.range.is_subrange(&let_range); | 41 | let cursor_in_range = let_range.contains_range(ctx.frange.range); |
42 | if !cursor_in_range { | 42 | if !cursor_in_range { |
43 | return None; | 43 | return None; |
44 | } | 44 | } |
diff --git a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs index 0621487e8..03806724a 100644 --- a/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs +++ b/crates/ra_assists/src/handlers/add_from_impl_for_enum.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast::{self, AstNode, NameOwner}, | 2 | ast::{self, AstNode, NameOwner}, |
3 | TextUnit, | 3 | TextSize, |
4 | }; | 4 | }; |
5 | use stdx::format_to; | 5 | use stdx::format_to; |
6 | 6 | ||
@@ -65,7 +65,7 @@ impl From<{0}> for {1} {{ | |||
65 | variant_name | 65 | variant_name |
66 | ); | 66 | ); |
67 | edit.insert(start_offset, buf); | 67 | edit.insert(start_offset, buf); |
68 | edit.set_cursor(start_offset + TextUnit::of_str("\n\n")); | 68 | edit.set_cursor(start_offset + TextSize::of("\n\n")); |
69 | }, | 69 | }, |
70 | ) | 70 | ) |
71 | } | 71 | } |
diff --git a/crates/ra_assists/src/handlers/add_function.rs b/crates/ra_assists/src/handlers/add_function.rs index ad4ab66ed..6c7456579 100644 --- a/crates/ra_assists/src/handlers/add_function.rs +++ b/crates/ra_assists/src/handlers/add_function.rs | |||
@@ -1,10 +1,10 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast::{self, AstNode}, | 2 | ast::{self, AstNode}, |
3 | SyntaxKind, SyntaxNode, TextUnit, | 3 | SyntaxKind, SyntaxNode, TextSize, |
4 | }; | 4 | }; |
5 | 5 | ||
6 | use crate::{Assist, AssistCtx, AssistId}; | 6 | use crate::{Assist, AssistCtx, AssistFile, AssistId}; |
7 | use ast::{edit::IndentLevel, ArgListOwner, CallExpr, Expr}; | 7 | use ast::{edit::IndentLevel, ArgListOwner, ModuleItemOwner}; |
8 | use hir::HirDisplay; | 8 | use hir::HirDisplay; |
9 | use rustc_hash::{FxHashMap, FxHashSet}; | 9 | use rustc_hash::{FxHashMap, FxHashSet}; |
10 | 10 | ||
@@ -16,7 +16,7 @@ use rustc_hash::{FxHashMap, FxHashSet}; | |||
16 | // struct Baz; | 16 | // struct Baz; |
17 | // fn baz() -> Baz { Baz } | 17 | // fn baz() -> Baz { Baz } |
18 | // fn foo() { | 18 | // fn foo() { |
19 | // bar<|>("", baz()); | 19 | // bar<|>("", baz()); |
20 | // } | 20 | // } |
21 | // | 21 | // |
22 | // ``` | 22 | // ``` |
@@ -25,7 +25,7 @@ use rustc_hash::{FxHashMap, FxHashSet}; | |||
25 | // struct Baz; | 25 | // struct Baz; |
26 | // fn baz() -> Baz { Baz } | 26 | // fn baz() -> Baz { Baz } |
27 | // fn foo() { | 27 | // fn foo() { |
28 | // bar("", baz()); | 28 | // bar("", baz()); |
29 | // } | 29 | // } |
30 | // | 30 | // |
31 | // fn bar(arg: &str, baz: Baz) { | 31 | // fn bar(arg: &str, baz: Baz) { |
@@ -38,21 +38,30 @@ pub(crate) fn add_function(ctx: AssistCtx) -> Option<Assist> { | |||
38 | let call = path_expr.syntax().parent().and_then(ast::CallExpr::cast)?; | 38 | let call = path_expr.syntax().parent().and_then(ast::CallExpr::cast)?; |
39 | let path = path_expr.path()?; | 39 | let path = path_expr.path()?; |
40 | 40 | ||
41 | if path.qualifier().is_some() { | ||
42 | return None; | ||
43 | } | ||
44 | |||
45 | if ctx.sema.resolve_path(&path).is_some() { | 41 | if ctx.sema.resolve_path(&path).is_some() { |
46 | // The function call already resolves, no need to add a function | 42 | // The function call already resolves, no need to add a function |
47 | return None; | 43 | return None; |
48 | } | 44 | } |
49 | 45 | ||
50 | let function_builder = FunctionBuilder::from_call(&ctx, &call)?; | 46 | let target_module = if let Some(qualifier) = path.qualifier() { |
47 | if let Some(hir::PathResolution::Def(hir::ModuleDef::Module(module))) = | ||
48 | ctx.sema.resolve_path(&qualifier) | ||
49 | { | ||
50 | Some(module.definition_source(ctx.sema.db)) | ||
51 | } else { | ||
52 | return None; | ||
53 | } | ||
54 | } else { | ||
55 | None | ||
56 | }; | ||
57 | |||
58 | let function_builder = FunctionBuilder::from_call(&ctx, &call, &path, target_module)?; | ||
51 | 59 | ||
52 | ctx.add_assist(AssistId("add_function"), "Add function", |edit| { | 60 | ctx.add_assist(AssistId("add_function"), "Add function", |edit| { |
53 | edit.target(call.syntax().text_range()); | 61 | edit.target(call.syntax().text_range()); |
54 | 62 | ||
55 | if let Some(function_template) = function_builder.render() { | 63 | if let Some(function_template) = function_builder.render() { |
64 | edit.set_file(function_template.file); | ||
56 | edit.set_cursor(function_template.cursor_offset); | 65 | edit.set_cursor(function_template.cursor_offset); |
57 | edit.insert(function_template.insert_offset, function_template.fn_def.to_string()); | 66 | edit.insert(function_template.insert_offset, function_template.fn_def.to_string()); |
58 | } | 67 | } |
@@ -60,32 +69,70 @@ pub(crate) fn add_function(ctx: AssistCtx) -> Option<Assist> { | |||
60 | } | 69 | } |
61 | 70 | ||
62 | struct FunctionTemplate { | 71 | struct FunctionTemplate { |
63 | insert_offset: TextUnit, | 72 | insert_offset: TextSize, |
64 | cursor_offset: TextUnit, | 73 | cursor_offset: TextSize, |
65 | fn_def: ast::SourceFile, | 74 | fn_def: ast::SourceFile, |
75 | file: AssistFile, | ||
66 | } | 76 | } |
67 | 77 | ||
68 | struct FunctionBuilder { | 78 | struct FunctionBuilder { |
69 | append_fn_at: SyntaxNode, | 79 | target: GeneratedFunctionTarget, |
70 | fn_name: ast::Name, | 80 | fn_name: ast::Name, |
71 | type_params: Option<ast::TypeParamList>, | 81 | type_params: Option<ast::TypeParamList>, |
72 | params: ast::ParamList, | 82 | params: ast::ParamList, |
83 | file: AssistFile, | ||
84 | needs_pub: bool, | ||
73 | } | 85 | } |
74 | 86 | ||
75 | impl FunctionBuilder { | 87 | impl FunctionBuilder { |
76 | fn from_call(ctx: &AssistCtx, call: &ast::CallExpr) -> Option<Self> { | 88 | /// Prepares a generated function that matches `call` in `generate_in` |
77 | let append_fn_at = next_space_for_fn(&call)?; | 89 | /// (or as close to `call` as possible, if `generate_in` is `None`) |
78 | let fn_name = fn_name(&call)?; | 90 | fn from_call( |
91 | ctx: &AssistCtx, | ||
92 | call: &ast::CallExpr, | ||
93 | path: &ast::Path, | ||
94 | target_module: Option<hir::InFile<hir::ModuleSource>>, | ||
95 | ) -> Option<Self> { | ||
96 | let needs_pub = target_module.is_some(); | ||
97 | let mut file = AssistFile::default(); | ||
98 | let target = if let Some(target_module) = target_module { | ||
99 | let (in_file, target) = next_space_for_fn_in_module(ctx.sema.db, target_module)?; | ||
100 | file = in_file; | ||
101 | target | ||
102 | } else { | ||
103 | next_space_for_fn_after_call_site(&call)? | ||
104 | }; | ||
105 | let fn_name = fn_name(&path)?; | ||
79 | let (type_params, params) = fn_args(ctx, &call)?; | 106 | let (type_params, params) = fn_args(ctx, &call)?; |
80 | Some(Self { append_fn_at, fn_name, type_params, params }) | 107 | Some(Self { target, fn_name, type_params, params, file, needs_pub }) |
81 | } | 108 | } |
109 | |||
82 | fn render(self) -> Option<FunctionTemplate> { | 110 | fn render(self) -> Option<FunctionTemplate> { |
83 | let placeholder_expr = ast::make::expr_todo(); | 111 | let placeholder_expr = ast::make::expr_todo(); |
84 | let fn_body = ast::make::block_expr(vec![], Some(placeholder_expr)); | 112 | let fn_body = ast::make::block_expr(vec![], Some(placeholder_expr)); |
85 | let fn_def = ast::make::fn_def(self.fn_name, self.type_params, self.params, fn_body); | 113 | let mut fn_def = ast::make::fn_def(self.fn_name, self.type_params, self.params, fn_body); |
86 | let fn_def = ast::make::add_newlines(2, fn_def); | 114 | if self.needs_pub { |
87 | let fn_def = IndentLevel::from_node(&self.append_fn_at).increase_indent(fn_def); | 115 | fn_def = ast::make::add_pub_crate_modifier(fn_def); |
88 | let insert_offset = self.append_fn_at.text_range().end(); | 116 | } |
117 | |||
118 | let (fn_def, insert_offset) = match self.target { | ||
119 | GeneratedFunctionTarget::BehindItem(it) => { | ||
120 | let with_leading_blank_line = ast::make::add_leading_newlines(2, fn_def); | ||
121 | let indented = IndentLevel::from_node(&it).increase_indent(with_leading_blank_line); | ||
122 | (indented, it.text_range().end()) | ||
123 | } | ||
124 | GeneratedFunctionTarget::InEmptyItemList(it) => { | ||
125 | let indent_once = IndentLevel(1); | ||
126 | let indent = IndentLevel::from_node(it.syntax()); | ||
127 | |||
128 | let fn_def = ast::make::add_leading_newlines(1, fn_def); | ||
129 | let fn_def = indent_once.increase_indent(fn_def); | ||
130 | let fn_def = ast::make::add_trailing_newlines(1, fn_def); | ||
131 | let fn_def = indent.increase_indent(fn_def); | ||
132 | (fn_def, it.syntax().text_range().start() + TextSize::of('{')) | ||
133 | } | ||
134 | }; | ||
135 | |||
89 | let cursor_offset_from_fn_start = fn_def | 136 | let cursor_offset_from_fn_start = fn_def |
90 | .syntax() | 137 | .syntax() |
91 | .descendants() | 138 | .descendants() |
@@ -94,19 +141,24 @@ impl FunctionBuilder { | |||
94 | .text_range() | 141 | .text_range() |
95 | .start(); | 142 | .start(); |
96 | let cursor_offset = insert_offset + cursor_offset_from_fn_start; | 143 | let cursor_offset = insert_offset + cursor_offset_from_fn_start; |
97 | Some(FunctionTemplate { insert_offset, cursor_offset, fn_def }) | 144 | Some(FunctionTemplate { insert_offset, cursor_offset, fn_def, file: self.file }) |
98 | } | 145 | } |
99 | } | 146 | } |
100 | 147 | ||
101 | fn fn_name(call: &CallExpr) -> Option<ast::Name> { | 148 | enum GeneratedFunctionTarget { |
102 | let name = call.expr()?.syntax().to_string(); | 149 | BehindItem(SyntaxNode), |
150 | InEmptyItemList(ast::ItemList), | ||
151 | } | ||
152 | |||
153 | fn fn_name(call: &ast::Path) -> Option<ast::Name> { | ||
154 | let name = call.segment()?.syntax().to_string(); | ||
103 | Some(ast::make::name(&name)) | 155 | Some(ast::make::name(&name)) |
104 | } | 156 | } |
105 | 157 | ||
106 | /// Computes the type variables and arguments required for the generated function | 158 | /// Computes the type variables and arguments required for the generated function |
107 | fn fn_args( | 159 | fn fn_args( |
108 | ctx: &AssistCtx, | 160 | ctx: &AssistCtx, |
109 | call: &CallExpr, | 161 | call: &ast::CallExpr, |
110 | ) -> Option<(Option<ast::TypeParamList>, ast::ParamList)> { | 162 | ) -> Option<(Option<ast::TypeParamList>, ast::ParamList)> { |
111 | let mut arg_names = Vec::new(); | 163 | let mut arg_names = Vec::new(); |
112 | let mut arg_types = Vec::new(); | 164 | let mut arg_types = Vec::new(); |
@@ -158,9 +210,9 @@ fn deduplicate_arg_names(arg_names: &mut Vec<String>) { | |||
158 | } | 210 | } |
159 | } | 211 | } |
160 | 212 | ||
161 | fn fn_arg_name(fn_arg: &Expr) -> Option<String> { | 213 | fn fn_arg_name(fn_arg: &ast::Expr) -> Option<String> { |
162 | match fn_arg { | 214 | match fn_arg { |
163 | Expr::CastExpr(cast_expr) => fn_arg_name(&cast_expr.expr()?), | 215 | ast::Expr::CastExpr(cast_expr) => fn_arg_name(&cast_expr.expr()?), |
164 | _ => Some( | 216 | _ => Some( |
165 | fn_arg | 217 | fn_arg |
166 | .syntax() | 218 | .syntax() |
@@ -172,7 +224,7 @@ fn fn_arg_name(fn_arg: &Expr) -> Option<String> { | |||
172 | } | 224 | } |
173 | } | 225 | } |
174 | 226 | ||
175 | fn fn_arg_type(ctx: &AssistCtx, fn_arg: &Expr) -> Option<String> { | 227 | fn fn_arg_type(ctx: &AssistCtx, fn_arg: &ast::Expr) -> Option<String> { |
176 | let ty = ctx.sema.type_of_expr(fn_arg)?; | 228 | let ty = ctx.sema.type_of_expr(fn_arg)?; |
177 | if ty.is_unknown() { | 229 | if ty.is_unknown() { |
178 | return None; | 230 | return None; |
@@ -184,7 +236,7 @@ fn fn_arg_type(ctx: &AssistCtx, fn_arg: &Expr) -> Option<String> { | |||
184 | /// directly after the current block | 236 | /// directly after the current block |
185 | /// We want to write the generated function directly after | 237 | /// We want to write the generated function directly after |
186 | /// fns, impls or macro calls, but inside mods | 238 | /// fns, impls or macro calls, but inside mods |
187 | fn next_space_for_fn(expr: &CallExpr) -> Option<SyntaxNode> { | 239 | fn next_space_for_fn_after_call_site(expr: &ast::CallExpr) -> Option<GeneratedFunctionTarget> { |
188 | let mut ancestors = expr.syntax().ancestors().peekable(); | 240 | let mut ancestors = expr.syntax().ancestors().peekable(); |
189 | let mut last_ancestor: Option<SyntaxNode> = None; | 241 | let mut last_ancestor: Option<SyntaxNode> = None; |
190 | while let Some(next_ancestor) = ancestors.next() { | 242 | while let Some(next_ancestor) = ancestors.next() { |
@@ -201,7 +253,32 @@ fn next_space_for_fn(expr: &CallExpr) -> Option<SyntaxNode> { | |||
201 | } | 253 | } |
202 | last_ancestor = Some(next_ancestor); | 254 | last_ancestor = Some(next_ancestor); |
203 | } | 255 | } |
204 | last_ancestor | 256 | last_ancestor.map(GeneratedFunctionTarget::BehindItem) |
257 | } | ||
258 | |||
259 | fn next_space_for_fn_in_module( | ||
260 | db: &dyn hir::db::AstDatabase, | ||
261 | module: hir::InFile<hir::ModuleSource>, | ||
262 | ) -> Option<(AssistFile, GeneratedFunctionTarget)> { | ||
263 | let file = module.file_id.original_file(db); | ||
264 | let assist_file = AssistFile::TargetFile(file); | ||
265 | let assist_item = match module.value { | ||
266 | hir::ModuleSource::SourceFile(it) => { | ||
267 | if let Some(last_item) = it.items().last() { | ||
268 | GeneratedFunctionTarget::BehindItem(last_item.syntax().clone()) | ||
269 | } else { | ||
270 | GeneratedFunctionTarget::BehindItem(it.syntax().clone()) | ||
271 | } | ||
272 | } | ||
273 | hir::ModuleSource::Module(it) => { | ||
274 | if let Some(last_item) = it.item_list().and_then(|it| it.items().last()) { | ||
275 | GeneratedFunctionTarget::BehindItem(last_item.syntax().clone()) | ||
276 | } else { | ||
277 | GeneratedFunctionTarget::InEmptyItemList(it.item_list()?) | ||
278 | } | ||
279 | } | ||
280 | }; | ||
281 | Some((assist_file, assist_item)) | ||
205 | } | 282 | } |
206 | 283 | ||
207 | #[cfg(test)] | 284 | #[cfg(test)] |
@@ -714,6 +791,111 @@ fn bar(baz_1: Baz, baz_2: Baz, arg_1: &str, arg_2: &str) { | |||
714 | } | 791 | } |
715 | 792 | ||
716 | #[test] | 793 | #[test] |
794 | fn add_function_in_module() { | ||
795 | check_assist( | ||
796 | add_function, | ||
797 | r" | ||
798 | mod bar {} | ||
799 | |||
800 | fn foo() { | ||
801 | bar::my_fn<|>() | ||
802 | } | ||
803 | ", | ||
804 | r" | ||
805 | mod bar { | ||
806 | pub(crate) fn my_fn() { | ||
807 | <|>todo!() | ||
808 | } | ||
809 | } | ||
810 | |||
811 | fn foo() { | ||
812 | bar::my_fn() | ||
813 | } | ||
814 | ", | ||
815 | ) | ||
816 | } | ||
817 | |||
818 | #[test] | ||
819 | fn add_function_in_module_containing_other_items() { | ||
820 | check_assist( | ||
821 | add_function, | ||
822 | r" | ||
823 | mod bar { | ||
824 | fn something_else() {} | ||
825 | } | ||
826 | |||
827 | fn foo() { | ||
828 | bar::my_fn<|>() | ||
829 | } | ||
830 | ", | ||
831 | r" | ||
832 | mod bar { | ||
833 | fn something_else() {} | ||
834 | |||
835 | pub(crate) fn my_fn() { | ||
836 | <|>todo!() | ||
837 | } | ||
838 | } | ||
839 | |||
840 | fn foo() { | ||
841 | bar::my_fn() | ||
842 | } | ||
843 | ", | ||
844 | ) | ||
845 | } | ||
846 | |||
847 | #[test] | ||
848 | fn add_function_in_nested_module() { | ||
849 | check_assist( | ||
850 | add_function, | ||
851 | r" | ||
852 | mod bar { | ||
853 | mod baz {} | ||
854 | } | ||
855 | |||
856 | fn foo() { | ||
857 | bar::baz::my_fn<|>() | ||
858 | } | ||
859 | ", | ||
860 | r" | ||
861 | mod bar { | ||
862 | mod baz { | ||
863 | pub(crate) fn my_fn() { | ||
864 | <|>todo!() | ||
865 | } | ||
866 | } | ||
867 | } | ||
868 | |||
869 | fn foo() { | ||
870 | bar::baz::my_fn() | ||
871 | } | ||
872 | ", | ||
873 | ) | ||
874 | } | ||
875 | |||
876 | #[test] | ||
877 | fn add_function_in_another_file() { | ||
878 | check_assist( | ||
879 | add_function, | ||
880 | r" | ||
881 | //- /main.rs | ||
882 | mod foo; | ||
883 | |||
884 | fn main() { | ||
885 | foo::bar<|>() | ||
886 | } | ||
887 | //- /foo.rs | ||
888 | ", | ||
889 | r" | ||
890 | |||
891 | |||
892 | pub(crate) fn bar() { | ||
893 | <|>todo!() | ||
894 | }", | ||
895 | ) | ||
896 | } | ||
897 | |||
898 | #[test] | ||
717 | fn add_function_not_applicable_if_function_already_exists() { | 899 | fn add_function_not_applicable_if_function_already_exists() { |
718 | check_assist_not_applicable( | 900 | check_assist_not_applicable( |
719 | add_function, | 901 | add_function, |
diff --git a/crates/ra_assists/src/handlers/add_impl.rs b/crates/ra_assists/src/handlers/add_impl.rs index 6622eadb2..d26f8b93d 100644 --- a/crates/ra_assists/src/handlers/add_impl.rs +++ b/crates/ra_assists/src/handlers/add_impl.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast::{self, AstNode, NameOwner, TypeParamsOwner}, | 2 | ast::{self, AstNode, NameOwner, TypeParamsOwner}, |
3 | TextUnit, | 3 | TextSize, |
4 | }; | 4 | }; |
5 | use stdx::{format_to, SepBy}; | 5 | use stdx::{format_to, SepBy}; |
6 | 6 | ||
@@ -51,7 +51,7 @@ pub(crate) fn add_impl(ctx: AssistCtx) -> Option<Assist> { | |||
51 | format_to!(buf, "<{}>", generic_params) | 51 | format_to!(buf, "<{}>", generic_params) |
52 | } | 52 | } |
53 | buf.push_str(" {\n"); | 53 | buf.push_str(" {\n"); |
54 | edit.set_cursor(start_offset + TextUnit::of_str(&buf)); | 54 | edit.set_cursor(start_offset + TextSize::of(&buf)); |
55 | buf.push_str("\n}"); | 55 | buf.push_str("\n}"); |
56 | edit.insert(start_offset, buf); | 56 | edit.insert(start_offset, buf); |
57 | }) | 57 | }) |
diff --git a/crates/ra_assists/src/handlers/add_new.rs b/crates/ra_assists/src/handlers/add_new.rs index 240b19fa3..0f9174a29 100644 --- a/crates/ra_assists/src/handlers/add_new.rs +++ b/crates/ra_assists/src/handlers/add_new.rs | |||
@@ -3,7 +3,7 @@ use ra_syntax::{ | |||
3 | ast::{ | 3 | ast::{ |
4 | self, AstNode, NameOwner, StructKind, TypeAscriptionOwner, TypeParamsOwner, VisibilityOwner, | 4 | self, AstNode, NameOwner, StructKind, TypeAscriptionOwner, TypeParamsOwner, VisibilityOwner, |
5 | }, | 5 | }, |
6 | TextUnit, T, | 6 | TextSize, T, |
7 | }; | 7 | }; |
8 | use stdx::{format_to, SepBy}; | 8 | use stdx::{format_to, SepBy}; |
9 | 9 | ||
@@ -77,16 +77,16 @@ pub(crate) fn add_new(ctx: AssistCtx) -> Option<Assist> { | |||
77 | .text_range() | 77 | .text_range() |
78 | .end(); | 78 | .end(); |
79 | 79 | ||
80 | Some((start, TextUnit::from_usize(1))) | 80 | Some((start, TextSize::of("\n"))) |
81 | }) | 81 | }) |
82 | .unwrap_or_else(|| { | 82 | .unwrap_or_else(|| { |
83 | buf = generate_impl_text(&strukt, &buf); | 83 | buf = generate_impl_text(&strukt, &buf); |
84 | let start = strukt.syntax().text_range().end(); | 84 | let start = strukt.syntax().text_range().end(); |
85 | 85 | ||
86 | (start, TextUnit::from_usize(3)) | 86 | (start, TextSize::of("\n}\n")) |
87 | }); | 87 | }); |
88 | 88 | ||
89 | edit.set_cursor(start_offset + TextUnit::of_str(&buf) - end_offset); | 89 | edit.set_cursor(start_offset + TextSize::of(&buf) - end_offset); |
90 | edit.insert(start_offset, buf); | 90 | edit.insert(start_offset, buf); |
91 | }) | 91 | }) |
92 | } | 92 | } |
diff --git a/crates/ra_assists/src/handlers/apply_demorgan.rs b/crates/ra_assists/src/handlers/apply_demorgan.rs index 239807e24..260b9e073 100644 --- a/crates/ra_assists/src/handlers/apply_demorgan.rs +++ b/crates/ra_assists/src/handlers/apply_demorgan.rs | |||
@@ -26,7 +26,7 @@ pub(crate) fn apply_demorgan(ctx: AssistCtx) -> Option<Assist> { | |||
26 | let op = expr.op_kind()?; | 26 | let op = expr.op_kind()?; |
27 | let op_range = expr.op_token()?.text_range(); | 27 | let op_range = expr.op_token()?.text_range(); |
28 | let opposite_op = opposite_logic_op(op)?; | 28 | let opposite_op = opposite_logic_op(op)?; |
29 | let cursor_in_range = ctx.frange.range.is_subrange(&op_range); | 29 | let cursor_in_range = op_range.contains_range(ctx.frange.range); |
30 | if !cursor_in_range { | 30 | if !cursor_in_range { |
31 | return None; | 31 | return None; |
32 | } | 32 | } |
diff --git a/crates/ra_assists/src/handlers/change_visibility.rs b/crates/ra_assists/src/handlers/change_visibility.rs index cd6d1ee6c..44f6a1dae 100644 --- a/crates/ra_assists/src/handlers/change_visibility.rs +++ b/crates/ra_assists/src/handlers/change_visibility.rs | |||
@@ -5,7 +5,7 @@ use ra_syntax::{ | |||
5 | ATTR, COMMENT, CONST_DEF, ENUM_DEF, FN_DEF, MODULE, STRUCT_DEF, TRAIT_DEF, VISIBILITY, | 5 | ATTR, COMMENT, CONST_DEF, ENUM_DEF, FN_DEF, MODULE, STRUCT_DEF, TRAIT_DEF, VISIBILITY, |
6 | WHITESPACE, | 6 | WHITESPACE, |
7 | }, | 7 | }, |
8 | SyntaxNode, TextUnit, T, | 8 | SyntaxNode, TextSize, T, |
9 | }; | 9 | }; |
10 | 10 | ||
11 | use crate::{Assist, AssistCtx, AssistId}; | 11 | use crate::{Assist, AssistCtx, AssistId}; |
@@ -67,7 +67,7 @@ fn add_vis(ctx: AssistCtx) -> Option<Assist> { | |||
67 | }) | 67 | }) |
68 | } | 68 | } |
69 | 69 | ||
70 | fn vis_offset(node: &SyntaxNode) -> TextUnit { | 70 | fn vis_offset(node: &SyntaxNode) -> TextSize { |
71 | node.children_with_tokens() | 71 | node.children_with_tokens() |
72 | .skip_while(|it| match it.kind() { | 72 | .skip_while(|it| match it.kind() { |
73 | WHITESPACE | COMMENT | ATTR => true, | 73 | WHITESPACE | COMMENT | ATTR => true, |
diff --git a/crates/ra_assists/src/handlers/flip_binexpr.rs b/crates/ra_assists/src/handlers/flip_binexpr.rs index bfcc09e90..8030efb35 100644 --- a/crates/ra_assists/src/handlers/flip_binexpr.rs +++ b/crates/ra_assists/src/handlers/flip_binexpr.rs | |||
@@ -23,7 +23,7 @@ pub(crate) fn flip_binexpr(ctx: AssistCtx) -> Option<Assist> { | |||
23 | let rhs = expr.rhs()?.syntax().clone(); | 23 | let rhs = expr.rhs()?.syntax().clone(); |
24 | let op_range = expr.op_token()?.text_range(); | 24 | let op_range = expr.op_token()?.text_range(); |
25 | // The assist should be applied only if the cursor is on the operator | 25 | // The assist should be applied only if the cursor is on the operator |
26 | let cursor_in_range = ctx.frange.range.is_subrange(&op_range); | 26 | let cursor_in_range = op_range.contains_range(ctx.frange.range); |
27 | if !cursor_in_range { | 27 | if !cursor_in_range { |
28 | return None; | 28 | return None; |
29 | } | 29 | } |
diff --git a/crates/ra_assists/src/handlers/inline_local_variable.rs b/crates/ra_assists/src/handlers/inline_local_variable.rs index c4fb425b0..f5702f6e0 100644 --- a/crates/ra_assists/src/handlers/inline_local_variable.rs +++ b/crates/ra_assists/src/handlers/inline_local_variable.rs | |||
@@ -52,7 +52,7 @@ pub(crate) fn inline_local_variable(ctx: AssistCtx) -> Option<Assist> { | |||
52 | .next_sibling_or_token() | 52 | .next_sibling_or_token() |
53 | .and_then(|it| ast::Whitespace::cast(it.as_token()?.clone())) | 53 | .and_then(|it| ast::Whitespace::cast(it.as_token()?.clone())) |
54 | { | 54 | { |
55 | TextRange::from_to( | 55 | TextRange::new( |
56 | let_stmt.syntax().text_range().start(), | 56 | let_stmt.syntax().text_range().start(), |
57 | whitespace.syntax().text_range().end(), | 57 | whitespace.syntax().text_range().end(), |
58 | ) | 58 | ) |
diff --git a/crates/ra_assists/src/handlers/introduce_variable.rs b/crates/ra_assists/src/handlers/introduce_variable.rs index 8c09e6bcd..eda9ac296 100644 --- a/crates/ra_assists/src/handlers/introduce_variable.rs +++ b/crates/ra_assists/src/handlers/introduce_variable.rs | |||
@@ -4,7 +4,7 @@ use ra_syntax::{ | |||
4 | BLOCK_EXPR, BREAK_EXPR, COMMENT, LAMBDA_EXPR, LOOP_EXPR, MATCH_ARM, PATH_EXPR, RETURN_EXPR, | 4 | BLOCK_EXPR, BREAK_EXPR, COMMENT, LAMBDA_EXPR, LOOP_EXPR, MATCH_ARM, PATH_EXPR, RETURN_EXPR, |
5 | WHITESPACE, | 5 | WHITESPACE, |
6 | }, | 6 | }, |
7 | SyntaxNode, TextUnit, | 7 | SyntaxNode, TextSize, |
8 | }; | 8 | }; |
9 | use stdx::format_to; | 9 | use stdx::format_to; |
10 | use test_utils::tested_by; | 10 | use test_utils::tested_by; |
@@ -47,10 +47,10 @@ pub(crate) fn introduce_variable(ctx: AssistCtx) -> Option<Assist> { | |||
47 | 47 | ||
48 | let cursor_offset = if wrap_in_block { | 48 | let cursor_offset = if wrap_in_block { |
49 | buf.push_str("{ let var_name = "); | 49 | buf.push_str("{ let var_name = "); |
50 | TextUnit::of_str("{ let ") | 50 | TextSize::of("{ let ") |
51 | } else { | 51 | } else { |
52 | buf.push_str("let var_name = "); | 52 | buf.push_str("let var_name = "); |
53 | TextUnit::of_str("let ") | 53 | TextSize::of("let ") |
54 | }; | 54 | }; |
55 | format_to!(buf, "{}", expr.syntax()); | 55 | format_to!(buf, "{}", expr.syntax()); |
56 | let full_stmt = ast::ExprStmt::cast(anchor_stmt.clone()); | 56 | let full_stmt = ast::ExprStmt::cast(anchor_stmt.clone()); |
diff --git a/crates/ra_assists/src/handlers/invert_if.rs b/crates/ra_assists/src/handlers/invert_if.rs index 4c5716868..682e08512 100644 --- a/crates/ra_assists/src/handlers/invert_if.rs +++ b/crates/ra_assists/src/handlers/invert_if.rs | |||
@@ -28,7 +28,7 @@ pub(crate) fn invert_if(ctx: AssistCtx) -> Option<Assist> { | |||
28 | let if_keyword = ctx.find_token_at_offset(T![if])?; | 28 | let if_keyword = ctx.find_token_at_offset(T![if])?; |
29 | let expr = ast::IfExpr::cast(if_keyword.parent())?; | 29 | let expr = ast::IfExpr::cast(if_keyword.parent())?; |
30 | let if_range = if_keyword.text_range(); | 30 | let if_range = if_keyword.text_range(); |
31 | let cursor_in_range = ctx.frange.range.is_subrange(&if_range); | 31 | let cursor_in_range = if_range.contains_range(ctx.frange.range); |
32 | if !cursor_in_range { | 32 | if !cursor_in_range { |
33 | return None; | 33 | return None; |
34 | } | 34 | } |
diff --git a/crates/ra_assists/src/handlers/merge_match_arms.rs b/crates/ra_assists/src/handlers/merge_match_arms.rs index eb967ab92..5a77d3dbc 100644 --- a/crates/ra_assists/src/handlers/merge_match_arms.rs +++ b/crates/ra_assists/src/handlers/merge_match_arms.rs | |||
@@ -3,7 +3,7 @@ use std::iter::successors; | |||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | algo::neighbor, | 4 | algo::neighbor, |
5 | ast::{self, AstNode}, | 5 | ast::{self, AstNode}, |
6 | Direction, TextUnit, | 6 | Direction, TextSize, |
7 | }; | 7 | }; |
8 | 8 | ||
9 | use crate::{Assist, AssistCtx, AssistId, TextRange}; | 9 | use crate::{Assist, AssistCtx, AssistId, TextRange}; |
@@ -42,8 +42,8 @@ pub(crate) fn merge_match_arms(ctx: AssistCtx) -> Option<Assist> { | |||
42 | let current_text_range = current_arm.syntax().text_range(); | 42 | let current_text_range = current_arm.syntax().text_range(); |
43 | 43 | ||
44 | enum CursorPos { | 44 | enum CursorPos { |
45 | InExpr(TextUnit), | 45 | InExpr(TextSize), |
46 | InPat(TextUnit), | 46 | InPat(TextSize), |
47 | } | 47 | } |
48 | let cursor_pos = ctx.frange.range.start(); | 48 | let cursor_pos = ctx.frange.range.start(); |
49 | let cursor_pos = if current_expr.syntax().text_range().contains(cursor_pos) { | 49 | let cursor_pos = if current_expr.syntax().text_range().contains(cursor_pos) { |
@@ -89,10 +89,10 @@ pub(crate) fn merge_match_arms(ctx: AssistCtx) -> Option<Assist> { | |||
89 | 89 | ||
90 | edit.target(current_text_range); | 90 | edit.target(current_text_range); |
91 | edit.set_cursor(match cursor_pos { | 91 | edit.set_cursor(match cursor_pos { |
92 | CursorPos::InExpr(back_offset) => start + TextUnit::from_usize(arm.len()) - back_offset, | 92 | CursorPos::InExpr(back_offset) => start + TextSize::of(&arm) - back_offset, |
93 | CursorPos::InPat(offset) => offset, | 93 | CursorPos::InPat(offset) => offset, |
94 | }); | 94 | }); |
95 | edit.replace(TextRange::from_to(start, end), arm); | 95 | edit.replace(TextRange::new(start, end), arm); |
96 | }) | 96 | }) |
97 | } | 97 | } |
98 | 98 | ||
diff --git a/crates/ra_assists/src/handlers/move_guard.rs b/crates/ra_assists/src/handlers/move_guard.rs index 1cc498638..d5ccdd91c 100644 --- a/crates/ra_assists/src/handlers/move_guard.rs +++ b/crates/ra_assists/src/handlers/move_guard.rs | |||
@@ -1,7 +1,7 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast, | 2 | ast, |
3 | ast::{AstNode, AstToken, IfExpr, MatchArm}, | 3 | ast::{AstNode, AstToken, IfExpr, MatchArm}, |
4 | TextUnit, | 4 | TextSize, |
5 | }; | 5 | }; |
6 | 6 | ||
7 | use crate::{Assist, AssistCtx, AssistId}; | 7 | use crate::{Assist, AssistCtx, AssistId}; |
@@ -49,16 +49,16 @@ pub(crate) fn move_guard_to_arm_body(ctx: AssistCtx) -> Option<Assist> { | |||
49 | edit.delete(ele); | 49 | edit.delete(ele); |
50 | ele.len() | 50 | ele.len() |
51 | } else { | 51 | } else { |
52 | TextUnit::from(0) | 52 | TextSize::from(0) |
53 | } | 53 | } |
54 | } | 54 | } |
55 | _ => TextUnit::from(0), | 55 | _ => TextSize::from(0), |
56 | }; | 56 | }; |
57 | 57 | ||
58 | edit.delete(guard.syntax().text_range()); | 58 | edit.delete(guard.syntax().text_range()); |
59 | edit.replace_node_and_indent(arm_expr.syntax(), buf); | 59 | edit.replace_node_and_indent(arm_expr.syntax(), buf); |
60 | edit.set_cursor( | 60 | edit.set_cursor( |
61 | arm_expr.syntax().text_range().start() + TextUnit::from(3) - offseting_amount, | 61 | arm_expr.syntax().text_range().start() + TextSize::from(3) - offseting_amount, |
62 | ); | 62 | ); |
63 | }) | 63 | }) |
64 | } | 64 | } |
@@ -123,7 +123,7 @@ pub(crate) fn move_arm_cond_to_match_guard(ctx: AssistCtx) -> Option<Assist> { | |||
123 | } | 123 | } |
124 | 124 | ||
125 | edit.insert(match_pat.syntax().text_range().end(), buf); | 125 | edit.insert(match_pat.syntax().text_range().end(), buf); |
126 | edit.set_cursor(match_pat.syntax().text_range().end() + TextUnit::from(1)); | 126 | edit.set_cursor(match_pat.syntax().text_range().end() + TextSize::from(1)); |
127 | }, | 127 | }, |
128 | ) | 128 | ) |
129 | } | 129 | } |
diff --git a/crates/ra_assists/src/handlers/raw_string.rs b/crates/ra_assists/src/handlers/raw_string.rs index 7e4b83f13..567400b9c 100644 --- a/crates/ra_assists/src/handlers/raw_string.rs +++ b/crates/ra_assists/src/handlers/raw_string.rs | |||
@@ -2,7 +2,7 @@ use ra_syntax::{ | |||
2 | ast::{self, HasStringValue}, | 2 | ast::{self, HasStringValue}, |
3 | AstToken, | 3 | AstToken, |
4 | SyntaxKind::{RAW_STRING, STRING}, | 4 | SyntaxKind::{RAW_STRING, STRING}, |
5 | TextUnit, | 5 | TextSize, |
6 | }; | 6 | }; |
7 | 7 | ||
8 | use crate::{Assist, AssistCtx, AssistId}; | 8 | use crate::{Assist, AssistCtx, AssistId}; |
@@ -81,7 +81,7 @@ pub(crate) fn add_hash(ctx: AssistCtx) -> Option<Assist> { | |||
81 | let token = ctx.find_token_at_offset(RAW_STRING)?; | 81 | let token = ctx.find_token_at_offset(RAW_STRING)?; |
82 | ctx.add_assist(AssistId("add_hash"), "Add # to raw string", |edit| { | 82 | ctx.add_assist(AssistId("add_hash"), "Add # to raw string", |edit| { |
83 | edit.target(token.text_range()); | 83 | edit.target(token.text_range()); |
84 | edit.insert(token.text_range().start() + TextUnit::of_char('r'), "#"); | 84 | edit.insert(token.text_range().start() + TextSize::of('r'), "#"); |
85 | edit.insert(token.text_range().end(), "#"); | 85 | edit.insert(token.text_range().end(), "#"); |
86 | }) | 86 | }) |
87 | } | 87 | } |
diff --git a/crates/ra_assists/src/handlers/remove_dbg.rs b/crates/ra_assists/src/handlers/remove_dbg.rs index 5085649b4..4e5eb4350 100644 --- a/crates/ra_assists/src/handlers/remove_dbg.rs +++ b/crates/ra_assists/src/handlers/remove_dbg.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use ra_syntax::{ | 1 | use ra_syntax::{ |
2 | ast::{self, AstNode}, | 2 | ast::{self, AstNode}, |
3 | TextUnit, T, | 3 | TextSize, T, |
4 | }; | 4 | }; |
5 | 5 | ||
6 | use crate::{Assist, AssistCtx, AssistId}; | 6 | use crate::{Assist, AssistCtx, AssistId}; |
@@ -38,9 +38,9 @@ pub(crate) fn remove_dbg(ctx: AssistCtx) -> Option<Assist> { | |||
38 | let offset_start = file_range | 38 | let offset_start = file_range |
39 | .start() | 39 | .start() |
40 | .checked_sub(macro_range.start()) | 40 | .checked_sub(macro_range.start()) |
41 | .unwrap_or_else(|| TextUnit::from(0)); | 41 | .unwrap_or_else(|| TextSize::from(0)); |
42 | 42 | ||
43 | let dbg_size = TextUnit::of_str("dbg!("); | 43 | let dbg_size = TextSize::of("dbg!("); |
44 | 44 | ||
45 | if offset_start > dbg_size { | 45 | if offset_start > dbg_size { |
46 | file_range.start() - dbg_size | 46 | file_range.start() - dbg_size |
@@ -53,7 +53,7 @@ pub(crate) fn remove_dbg(ctx: AssistCtx) -> Option<Assist> { | |||
53 | let macro_args = macro_call.token_tree()?.syntax().clone(); | 53 | let macro_args = macro_call.token_tree()?.syntax().clone(); |
54 | 54 | ||
55 | let text = macro_args.text(); | 55 | let text = macro_args.text(); |
56 | let without_parens = TextUnit::of_char('(')..text.len() - TextUnit::of_char(')'); | 56 | let without_parens = TextSize::of('(')..text.len() - TextSize::of(')'); |
57 | text.slice(without_parens).to_string() | 57 | text.slice(without_parens).to_string() |
58 | }; | 58 | }; |
59 | 59 | ||
diff --git a/crates/ra_assists/src/handlers/remove_mut.rs b/crates/ra_assists/src/handlers/remove_mut.rs index 6884830eb..e598023b2 100644 --- a/crates/ra_assists/src/handlers/remove_mut.rs +++ b/crates/ra_assists/src/handlers/remove_mut.rs | |||
@@ -27,6 +27,6 @@ pub(crate) fn remove_mut(ctx: AssistCtx) -> Option<Assist> { | |||
27 | 27 | ||
28 | ctx.add_assist(AssistId("remove_mut"), "Remove `mut` keyword", |edit| { | 28 | ctx.add_assist(AssistId("remove_mut"), "Remove `mut` keyword", |edit| { |
29 | edit.set_cursor(delete_from); | 29 | edit.set_cursor(delete_from); |
30 | edit.delete(TextRange::from_to(delete_from, delete_to)); | 30 | edit.delete(TextRange::new(delete_from, delete_to)); |
31 | }) | 31 | }) |
32 | } | 32 | } |
diff --git a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs index 94f5d6c50..2f02df303 100644 --- a/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs +++ b/crates/ra_assists/src/handlers/replace_qualified_name_with_use.rs | |||
@@ -43,7 +43,7 @@ pub(crate) fn replace_qualified_name_with_use(ctx: AssistCtx) -> Option<Assist> | |||
43 | if let Some(last) = path.segment() { | 43 | if let Some(last) = path.segment() { |
44 | // Here we are assuming the assist will provide a correct use statement | 44 | // Here we are assuming the assist will provide a correct use statement |
45 | // so we can delete the path qualifier | 45 | // so we can delete the path qualifier |
46 | edit.delete(TextRange::from_to( | 46 | edit.delete(TextRange::new( |
47 | path.syntax().text_range().start(), | 47 | path.syntax().text_range().start(), |
48 | last.syntax().text_range().start(), | 48 | last.syntax().text_range().start(), |
49 | )); | 49 | )); |
diff --git a/crates/ra_assists/src/lib.rs b/crates/ra_assists/src/lib.rs index a00136da1..64bd87afb 100644 --- a/crates/ra_assists/src/lib.rs +++ b/crates/ra_assists/src/lib.rs | |||
@@ -17,9 +17,9 @@ mod doc_tests; | |||
17 | pub mod utils; | 17 | pub mod utils; |
18 | pub mod ast_transform; | 18 | pub mod ast_transform; |
19 | 19 | ||
20 | use ra_db::FileRange; | 20 | use ra_db::{FileId, FileRange}; |
21 | use ra_ide_db::RootDatabase; | 21 | use ra_ide_db::RootDatabase; |
22 | use ra_syntax::{TextRange, TextUnit}; | 22 | use ra_syntax::{TextRange, TextSize}; |
23 | use ra_text_edit::TextEdit; | 23 | use ra_text_edit::TextEdit; |
24 | 24 | ||
25 | pub(crate) use crate::assist_ctx::{Assist, AssistCtx, AssistHandler}; | 25 | pub(crate) use crate::assist_ctx::{Assist, AssistCtx, AssistHandler}; |
@@ -51,9 +51,10 @@ impl AssistLabel { | |||
51 | #[derive(Debug, Clone)] | 51 | #[derive(Debug, Clone)] |
52 | pub struct AssistAction { | 52 | pub struct AssistAction { |
53 | pub edit: TextEdit, | 53 | pub edit: TextEdit, |
54 | pub cursor_position: Option<TextUnit>, | 54 | pub cursor_position: Option<TextSize>, |
55 | // FIXME: This belongs to `AssistLabel` | 55 | // FIXME: This belongs to `AssistLabel` |
56 | pub target: Option<TextRange>, | 56 | pub target: Option<TextRange>, |
57 | pub file: AssistFile, | ||
57 | } | 58 | } |
58 | 59 | ||
59 | #[derive(Debug, Clone)] | 60 | #[derive(Debug, Clone)] |
@@ -63,6 +64,18 @@ pub struct ResolvedAssist { | |||
63 | pub action: AssistAction, | 64 | pub action: AssistAction, |
64 | } | 65 | } |
65 | 66 | ||
67 | #[derive(Debug, Clone, Copy)] | ||
68 | pub enum AssistFile { | ||
69 | CurrentFile, | ||
70 | TargetFile(FileId), | ||
71 | } | ||
72 | |||
73 | impl Default for AssistFile { | ||
74 | fn default() -> Self { | ||
75 | Self::CurrentFile | ||
76 | } | ||
77 | } | ||
78 | |||
66 | /// Return all the assists applicable at the given position. | 79 | /// Return all the assists applicable at the given position. |
67 | /// | 80 | /// |
68 | /// Assists are returned in the "unresolved" state, that is only labels are | 81 | /// Assists are returned in the "unresolved" state, that is only labels are |
@@ -91,7 +104,7 @@ pub fn resolved_assists(db: &RootDatabase, range: FileRange) -> Vec<ResolvedAssi | |||
91 | .flat_map(|it| it.0) | 104 | .flat_map(|it| it.0) |
92 | .map(|it| it.into_resolved().unwrap()) | 105 | .map(|it| it.into_resolved().unwrap()) |
93 | .collect::<Vec<_>>(); | 106 | .collect::<Vec<_>>(); |
94 | a.sort_by_key(|it| it.action.target.map_or(TextUnit::from(!0u32), |it| it.len())); | 107 | a.sort_by_key(|it| it.action.target.map_or(TextSize::from(!0u32), |it| it.len())); |
95 | a | 108 | a |
96 | } | 109 | } |
97 | 110 | ||
@@ -184,7 +197,7 @@ mod helpers { | |||
184 | use ra_ide_db::{symbol_index::SymbolsDatabase, RootDatabase}; | 197 | use ra_ide_db::{symbol_index::SymbolsDatabase, RootDatabase}; |
185 | use test_utils::{add_cursor, assert_eq_text, extract_range_or_offset, RangeOrOffset}; | 198 | use test_utils::{add_cursor, assert_eq_text, extract_range_or_offset, RangeOrOffset}; |
186 | 199 | ||
187 | use crate::{AssistCtx, AssistHandler}; | 200 | use crate::{AssistCtx, AssistFile, AssistHandler}; |
188 | use hir::Semantics; | 201 | use hir::Semantics; |
189 | 202 | ||
190 | pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) { | 203 | pub(crate) fn with_single_file(text: &str) -> (RootDatabase, FileId) { |
@@ -246,7 +259,13 @@ mod helpers { | |||
246 | (Some(assist), ExpectedResult::After(after)) => { | 259 | (Some(assist), ExpectedResult::After(after)) => { |
247 | let action = assist.0[0].action.clone().unwrap(); | 260 | let action = assist.0[0].action.clone().unwrap(); |
248 | 261 | ||
249 | let mut actual = action.edit.apply(&text_without_caret); | 262 | let assisted_file_text = if let AssistFile::TargetFile(file_id) = action.file { |
263 | db.file_text(file_id).as_ref().to_owned() | ||
264 | } else { | ||
265 | text_without_caret | ||
266 | }; | ||
267 | |||
268 | let mut actual = action.edit.apply(&assisted_file_text); | ||
250 | match action.cursor_position { | 269 | match action.cursor_position { |
251 | None => { | 270 | None => { |
252 | if let RangeOrOffset::Offset(before_cursor_pos) = range_or_offset { | 271 | if let RangeOrOffset::Offset(before_cursor_pos) = range_or_offset { |
@@ -289,8 +308,7 @@ mod tests { | |||
289 | let before = "struct Foo { <|>bar: u32 }"; | 308 | let before = "struct Foo { <|>bar: u32 }"; |
290 | let (before_cursor_pos, before) = extract_offset(before); | 309 | let (before_cursor_pos, before) = extract_offset(before); |
291 | let (db, file_id) = helpers::with_single_file(&before); | 310 | let (db, file_id) = helpers::with_single_file(&before); |
292 | let frange = | 311 | let frange = FileRange { file_id, range: TextRange::empty(before_cursor_pos) }; |
293 | FileRange { file_id, range: TextRange::offset_len(before_cursor_pos, 0.into()) }; | ||
294 | let assists = resolved_assists(&db, frange); | 312 | let assists = resolved_assists(&db, frange); |
295 | let mut assists = assists.iter(); | 313 | let mut assists = assists.iter(); |
296 | 314 | ||
diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs index a06f59c14..fd4280de2 100644 --- a/crates/ra_db/src/lib.rs +++ b/crates/ra_db/src/lib.rs | |||
@@ -6,7 +6,7 @@ pub mod fixture; | |||
6 | use std::{panic, sync::Arc}; | 6 | use std::{panic, sync::Arc}; |
7 | 7 | ||
8 | use ra_prof::profile; | 8 | use ra_prof::profile; |
9 | use ra_syntax::{ast, Parse, SourceFile, TextRange, TextUnit}; | 9 | use ra_syntax::{ast, Parse, SourceFile, TextRange, TextSize}; |
10 | 10 | ||
11 | pub use crate::{ | 11 | pub use crate::{ |
12 | cancellation::Canceled, | 12 | cancellation::Canceled, |
@@ -75,7 +75,7 @@ impl<T: salsa::Database> CheckCanceled for T { | |||
75 | #[derive(Clone, Copy, Debug)] | 75 | #[derive(Clone, Copy, Debug)] |
76 | pub struct FilePosition { | 76 | pub struct FilePosition { |
77 | pub file_id: FileId, | 77 | pub file_id: FileId, |
78 | pub offset: TextUnit, | 78 | pub offset: TextSize, |
79 | } | 79 | } |
80 | 80 | ||
81 | #[derive(Clone, Copy, Debug)] | 81 | #[derive(Clone, Copy, Debug)] |
diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index 5d6edc45c..e09cf3185 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs | |||
@@ -14,7 +14,7 @@ use ra_db::{FileId, FileRange}; | |||
14 | use ra_prof::profile; | 14 | use ra_prof::profile; |
15 | use ra_syntax::{ | 15 | use ra_syntax::{ |
16 | algo::{find_node_at_offset, skip_trivia_token}, | 16 | algo::{find_node_at_offset, skip_trivia_token}, |
17 | ast, AstNode, Direction, SyntaxNode, SyntaxToken, TextRange, TextUnit, | 17 | ast, AstNode, Direction, SyntaxNode, SyntaxToken, TextRange, TextSize, |
18 | }; | 18 | }; |
19 | use rustc_hash::{FxHashMap, FxHashSet}; | 19 | use rustc_hash::{FxHashMap, FxHashSet}; |
20 | 20 | ||
@@ -95,7 +95,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
95 | let token = successors(Some(parent.with_value(token)), |token| { | 95 | let token = successors(Some(parent.with_value(token)), |token| { |
96 | let macro_call = token.value.ancestors().find_map(ast::MacroCall::cast)?; | 96 | let macro_call = token.value.ancestors().find_map(ast::MacroCall::cast)?; |
97 | let tt = macro_call.token_tree()?; | 97 | let tt = macro_call.token_tree()?; |
98 | if !token.value.text_range().is_subrange(&tt.syntax().text_range()) { | 98 | if !tt.syntax().text_range().contains_range(token.value.text_range()) { |
99 | return None; | 99 | return None; |
100 | } | 100 | } |
101 | let file_id = sa.expand(self.db, token.with_value(¯o_call))?; | 101 | let file_id = sa.expand(self.db, token.with_value(¯o_call))?; |
@@ -114,7 +114,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
114 | pub fn descend_node_at_offset<N: ast::AstNode>( | 114 | pub fn descend_node_at_offset<N: ast::AstNode>( |
115 | &self, | 115 | &self, |
116 | node: &SyntaxNode, | 116 | node: &SyntaxNode, |
117 | offset: TextUnit, | 117 | offset: TextSize, |
118 | ) -> Option<N> { | 118 | ) -> Option<N> { |
119 | // Handle macro token cases | 119 | // Handle macro token cases |
120 | node.token_at_offset(offset) | 120 | node.token_at_offset(offset) |
@@ -142,7 +142,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
142 | pub fn ancestors_at_offset_with_macros( | 142 | pub fn ancestors_at_offset_with_macros( |
143 | &self, | 143 | &self, |
144 | node: &SyntaxNode, | 144 | node: &SyntaxNode, |
145 | offset: TextUnit, | 145 | offset: TextSize, |
146 | ) -> impl Iterator<Item = SyntaxNode> + '_ { | 146 | ) -> impl Iterator<Item = SyntaxNode> + '_ { |
147 | node.token_at_offset(offset) | 147 | node.token_at_offset(offset) |
148 | .map(|token| self.ancestors_with_macros(token.parent())) | 148 | .map(|token| self.ancestors_with_macros(token.parent())) |
@@ -154,7 +154,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
154 | pub fn find_node_at_offset_with_macros<N: AstNode>( | 154 | pub fn find_node_at_offset_with_macros<N: AstNode>( |
155 | &self, | 155 | &self, |
156 | node: &SyntaxNode, | 156 | node: &SyntaxNode, |
157 | offset: TextUnit, | 157 | offset: TextSize, |
158 | ) -> Option<N> { | 158 | ) -> Option<N> { |
159 | self.ancestors_at_offset_with_macros(node, offset).find_map(N::cast) | 159 | self.ancestors_at_offset_with_macros(node, offset).find_map(N::cast) |
160 | } | 160 | } |
@@ -164,7 +164,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
164 | pub fn find_node_at_offset_with_descend<N: AstNode>( | 164 | pub fn find_node_at_offset_with_descend<N: AstNode>( |
165 | &self, | 165 | &self, |
166 | node: &SyntaxNode, | 166 | node: &SyntaxNode, |
167 | offset: TextUnit, | 167 | offset: TextSize, |
168 | ) -> Option<N> { | 168 | ) -> Option<N> { |
169 | if let Some(it) = find_node_at_offset(&node, offset) { | 169 | if let Some(it) = find_node_at_offset(&node, offset) { |
170 | return Some(it); | 170 | return Some(it); |
@@ -255,7 +255,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
255 | SemanticsScope { db: self.db, resolver } | 255 | SemanticsScope { db: self.db, resolver } |
256 | } | 256 | } |
257 | 257 | ||
258 | pub fn scope_at_offset(&self, node: &SyntaxNode, offset: TextUnit) -> SemanticsScope<'db, DB> { | 258 | pub fn scope_at_offset(&self, node: &SyntaxNode, offset: TextSize) -> SemanticsScope<'db, DB> { |
259 | let node = self.find_file(node.clone()); | 259 | let node = self.find_file(node.clone()); |
260 | let resolver = self.analyze2(node.as_ref(), Some(offset)).resolver; | 260 | let resolver = self.analyze2(node.as_ref(), Some(offset)).resolver; |
261 | SemanticsScope { db: self.db, resolver } | 261 | SemanticsScope { db: self.db, resolver } |
@@ -271,7 +271,7 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> { | |||
271 | self.analyze2(src.as_ref(), None) | 271 | self.analyze2(src.as_ref(), None) |
272 | } | 272 | } |
273 | 273 | ||
274 | fn analyze2(&self, src: InFile<&SyntaxNode>, offset: Option<TextUnit>) -> SourceAnalyzer { | 274 | fn analyze2(&self, src: InFile<&SyntaxNode>, offset: Option<TextSize>) -> SourceAnalyzer { |
275 | let _p = profile("Semantics::analyze2"); | 275 | let _p = profile("Semantics::analyze2"); |
276 | 276 | ||
277 | let container = match self.with_ctx(|ctx| ctx.find_container(src)) { | 277 | let container = match self.with_ctx(|ctx| ctx.find_container(src)) { |
@@ -463,7 +463,7 @@ fn original_range_opt( | |||
463 | return None; | 463 | return None; |
464 | } | 464 | } |
465 | 465 | ||
466 | Some(first.with_value(first.value.text_range().extend_to(&last.value.text_range()))) | 466 | Some(first.with_value(first.value.text_range().cover(last.value.text_range()))) |
467 | })?) | 467 | })?) |
468 | } | 468 | } |
469 | 469 | ||
diff --git a/crates/ra_hir/src/source_analyzer.rs b/crates/ra_hir/src/source_analyzer.rs index 0ed6d0958..59a3a17d2 100644 --- a/crates/ra_hir/src/source_analyzer.rs +++ b/crates/ra_hir/src/source_analyzer.rs | |||
@@ -23,7 +23,7 @@ use hir_ty::{ | |||
23 | }; | 23 | }; |
24 | use ra_syntax::{ | 24 | use ra_syntax::{ |
25 | ast::{self, AstNode}, | 25 | ast::{self, AstNode}, |
26 | SyntaxNode, TextRange, TextUnit, | 26 | SyntaxNode, TextRange, TextSize, |
27 | }; | 27 | }; |
28 | 28 | ||
29 | use crate::{ | 29 | use crate::{ |
@@ -50,7 +50,7 @@ impl SourceAnalyzer { | |||
50 | db: &dyn HirDatabase, | 50 | db: &dyn HirDatabase, |
51 | def: DefWithBodyId, | 51 | def: DefWithBodyId, |
52 | node: InFile<&SyntaxNode>, | 52 | node: InFile<&SyntaxNode>, |
53 | offset: Option<TextUnit>, | 53 | offset: Option<TextSize>, |
54 | ) -> SourceAnalyzer { | 54 | ) -> SourceAnalyzer { |
55 | let (body, source_map) = db.body_with_source_map(def); | 55 | let (body, source_map) = db.body_with_source_map(def); |
56 | let scopes = db.expr_scopes(def); | 56 | let scopes = db.expr_scopes(def); |
@@ -318,7 +318,7 @@ fn scope_for_offset( | |||
318 | db: &dyn HirDatabase, | 318 | db: &dyn HirDatabase, |
319 | scopes: &ExprScopes, | 319 | scopes: &ExprScopes, |
320 | source_map: &BodySourceMap, | 320 | source_map: &BodySourceMap, |
321 | offset: InFile<TextUnit>, | 321 | offset: InFile<TextSize>, |
322 | ) -> Option<ScopeId> { | 322 | ) -> Option<ScopeId> { |
323 | scopes | 323 | scopes |
324 | .scope_by_expr() | 324 | .scope_by_expr() |
@@ -354,7 +354,7 @@ fn adjust( | |||
354 | source_map: &BodySourceMap, | 354 | source_map: &BodySourceMap, |
355 | expr_range: TextRange, | 355 | expr_range: TextRange, |
356 | file_id: HirFileId, | 356 | file_id: HirFileId, |
357 | offset: TextUnit, | 357 | offset: TextSize, |
358 | ) -> Option<ScopeId> { | 358 | ) -> Option<ScopeId> { |
359 | let child_scopes = scopes | 359 | let child_scopes = scopes |
360 | .scope_by_expr() | 360 | .scope_by_expr() |
@@ -369,15 +369,15 @@ fn adjust( | |||
369 | let node = source.value.to_node(&root); | 369 | let node = source.value.to_node(&root); |
370 | Some((node.syntax().text_range(), scope)) | 370 | Some((node.syntax().text_range(), scope)) |
371 | }) | 371 | }) |
372 | .filter(|(range, _)| { | 372 | .filter(|&(range, _)| { |
373 | range.start() <= offset && range.is_subrange(&expr_range) && *range != expr_range | 373 | range.start() <= offset && expr_range.contains_range(range) && range != expr_range |
374 | }); | 374 | }); |
375 | 375 | ||
376 | child_scopes | 376 | child_scopes |
377 | .max_by(|(r1, _), (r2, _)| { | 377 | .max_by(|&(r1, _), &(r2, _)| { |
378 | if r2.is_subrange(&r1) { | 378 | if r1.contains_range(r2) { |
379 | std::cmp::Ordering::Greater | 379 | std::cmp::Ordering::Greater |
380 | } else if r1.is_subrange(&r2) { | 380 | } else if r2.contains_range(r1) { |
381 | std::cmp::Ordering::Less | 381 | std::cmp::Ordering::Less |
382 | } else { | 382 | } else { |
383 | r1.start().cmp(&r2.start()) | 383 | r1.start().cmp(&r2.start()) |
diff --git a/crates/ra_hir_def/src/body/scope.rs b/crates/ra_hir_def/src/body/scope.rs index 5b36a7cc1..86f953c80 100644 --- a/crates/ra_hir_def/src/body/scope.rs +++ b/crates/ra_hir_def/src/body/scope.rs | |||
@@ -194,7 +194,7 @@ mod tests { | |||
194 | let (off, code) = extract_offset(code); | 194 | let (off, code) = extract_offset(code); |
195 | let code = { | 195 | let code = { |
196 | let mut buf = String::new(); | 196 | let mut buf = String::new(); |
197 | let off = off.to_usize(); | 197 | let off: usize = off.into(); |
198 | buf.push_str(&code[..off]); | 198 | buf.push_str(&code[..off]); |
199 | buf.push_str("marker"); | 199 | buf.push_str("marker"); |
200 | buf.push_str(&code[off..]); | 200 | buf.push_str(&code[off..]); |
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs index 3da137f2e..e0fef613d 100644 --- a/crates/ra_hir_expand/src/builtin_macro.rs +++ b/crates/ra_hir_expand/src/builtin_macro.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | use crate::db::AstDatabase; | 2 | use crate::db::AstDatabase; |
3 | use crate::{ | 3 | use crate::{ |
4 | ast::{self, AstToken, HasStringValue}, | 4 | ast::{self, AstToken, HasStringValue}, |
5 | name, AstId, CrateId, MacroDefId, MacroDefKind, TextUnit, | 5 | name, AstId, CrateId, MacroDefId, MacroDefKind, TextSize, |
6 | }; | 6 | }; |
7 | 7 | ||
8 | use crate::{quote, EagerMacroId, LazyMacroId, MacroCallId}; | 8 | use crate::{quote, EagerMacroId, LazyMacroId, MacroCallId}; |
@@ -127,7 +127,7 @@ fn stringify_expand( | |||
127 | let arg = loc.kind.arg(db).ok_or_else(|| mbe::ExpandError::UnexpectedToken)?; | 127 | let arg = loc.kind.arg(db).ok_or_else(|| mbe::ExpandError::UnexpectedToken)?; |
128 | let macro_args = arg; | 128 | let macro_args = arg; |
129 | let text = macro_args.text(); | 129 | let text = macro_args.text(); |
130 | let without_parens = TextUnit::of_char('(')..text.len() - TextUnit::of_char(')'); | 130 | let without_parens = TextSize::of('(')..text.len() - TextSize::of(')'); |
131 | text.slice(without_parens).to_string() | 131 | text.slice(without_parens).to_string() |
132 | }; | 132 | }; |
133 | 133 | ||
@@ -358,7 +358,7 @@ fn env_expand( | |||
358 | // However, we cannot use an empty string here, because for | 358 | // However, we cannot use an empty string here, because for |
359 | // `include!(concat!(env!("OUT_DIR"), "/foo.rs"))` will become | 359 | // `include!(concat!(env!("OUT_DIR"), "/foo.rs"))` will become |
360 | // `include!("foo.rs"), which might go to infinite loop | 360 | // `include!("foo.rs"), which might go to infinite loop |
361 | let s = get_env_inner(db, arg_id, &key).unwrap_or("__RA_UNIMPLEMENTATED__".to_string()); | 361 | let s = get_env_inner(db, arg_id, &key).unwrap_or_else(|| "__RA_UNIMPLEMENTATED__".to_string()); |
362 | let expanded = quote! { #s }; | 362 | let expanded = quote! { #s }; |
363 | 363 | ||
364 | Ok((expanded, FragmentKind::Expr)) | 364 | Ok((expanded, FragmentKind::Expr)) |
diff --git a/crates/ra_hir_expand/src/lib.rs b/crates/ra_hir_expand/src/lib.rs index 86299459f..754a0f005 100644 --- a/crates/ra_hir_expand/src/lib.rs +++ b/crates/ra_hir_expand/src/lib.rs | |||
@@ -22,7 +22,7 @@ use ra_db::{impl_intern_key, salsa, CrateId, FileId}; | |||
22 | use ra_syntax::{ | 22 | use ra_syntax::{ |
23 | algo, | 23 | algo, |
24 | ast::{self, AstNode}, | 24 | ast::{self, AstNode}, |
25 | SyntaxNode, SyntaxToken, TextUnit, | 25 | SyntaxNode, SyntaxToken, TextSize, |
26 | }; | 26 | }; |
27 | 27 | ||
28 | use crate::ast_id_map::FileAstId; | 28 | use crate::ast_id_map::FileAstId; |
@@ -348,7 +348,7 @@ impl<N: AstNode> AstId<N> { | |||
348 | /// | 348 | /// |
349 | /// * `InFile<SyntaxNode>` -- syntax node in a file | 349 | /// * `InFile<SyntaxNode>` -- syntax node in a file |
350 | /// * `InFile<ast::FnDef>` -- ast node in a file | 350 | /// * `InFile<ast::FnDef>` -- ast node in a file |
351 | /// * `InFile<TextUnit>` -- offset in a file | 351 | /// * `InFile<TextSize>` -- offset in a file |
352 | #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] | 352 | #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] |
353 | pub struct InFile<T> { | 353 | pub struct InFile<T> { |
354 | pub file_id: HirFileId, | 354 | pub file_id: HirFileId, |
diff --git a/crates/ra_hir_ty/src/tests.rs b/crates/ra_hir_ty/src/tests.rs index 846005baa..b6a96bb5c 100644 --- a/crates/ra_hir_ty/src/tests.rs +++ b/crates/ra_hir_ty/src/tests.rs | |||
@@ -117,7 +117,7 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String { | |||
117 | let macro_prefix = if node.file_id != file_id.into() { "!" } else { "" }; | 117 | let macro_prefix = if node.file_id != file_id.into() { "!" } else { "" }; |
118 | format_to!( | 118 | format_to!( |
119 | buf, | 119 | buf, |
120 | "{}{} '{}': {}\n", | 120 | "{}{:?} '{}': {}\n", |
121 | macro_prefix, | 121 | macro_prefix, |
122 | range, | 122 | range, |
123 | ellipsize(text, 15), | 123 | ellipsize(text, 15), |
@@ -134,7 +134,7 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String { | |||
134 | let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" }; | 134 | let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" }; |
135 | format_to!( | 135 | format_to!( |
136 | buf, | 136 | buf, |
137 | "{}{}: expected {}, got {}\n", | 137 | "{}{:?}: expected {}, got {}\n", |
138 | macro_prefix, | 138 | macro_prefix, |
139 | range, | 139 | range, |
140 | mismatch.expected.display(&db), | 140 | mismatch.expected.display(&db), |
diff --git a/crates/ra_hir_ty/src/tests/coercion.rs b/crates/ra_hir_ty/src/tests/coercion.rs index b2c971f02..e6fb3e123 100644 --- a/crates/ra_hir_ty/src/tests/coercion.rs +++ b/crates/ra_hir_ty/src/tests/coercion.rs | |||
@@ -29,10 +29,10 @@ fn test() { | |||
29 | } | 29 | } |
30 | "#), | 30 | "#), |
31 | @r###" | 31 | @r###" |
32 | [11; 41) '{ ...4 }; }': () | 32 | 11..41 '{ ...4 }; }': () |
33 | [21; 22) 'a': i32 | 33 | 21..22 'a': i32 |
34 | [30; 38) '{ 1i64 }': i64 | 34 | 30..38 '{ 1i64 }': i64 |
35 | [32; 36) '1i64': i64 | 35 | 32..36 '1i64': i64 |
36 | "###); | 36 | "###); |
37 | } | 37 | } |
38 | 38 | ||
@@ -63,50 +63,50 @@ fn test2() { | |||
63 | } | 63 | } |
64 | "#), | 64 | "#), |
65 | @r###" | 65 | @r###" |
66 | [31; 32) '_': &[T] | 66 | 31..32 '_': &[T] |
67 | [45; 56) '{ loop {} }': T | 67 | 45..56 '{ loop {} }': T |
68 | [47; 54) 'loop {}': ! | 68 | 47..54 'loop {}': ! |
69 | [52; 54) '{}': () | 69 | 52..54 '{}': () |
70 | [65; 66) '_': S<&[T]> | 70 | 65..66 '_': S<&[T]> |
71 | [82; 93) '{ loop {} }': T | 71 | 82..93 '{ loop {} }': T |
72 | [84; 91) 'loop {}': ! | 72 | 84..91 'loop {}': ! |
73 | [89; 91) '{}': () | 73 | 89..91 '{}': () |
74 | [122; 133) '{ loop {} }': *mut [T; _] | 74 | 122..133 '{ loop {} }': *mut [T; _] |
75 | [124; 131) 'loop {}': ! | 75 | 124..131 'loop {}': ! |
76 | [129; 131) '{}': () | 76 | 129..131 '{}': () |
77 | [160; 173) '{ gen() }': *mut [U] | 77 | 160..173 '{ gen() }': *mut [U] |
78 | [166; 169) 'gen': fn gen<U>() -> *mut [U; _] | 78 | 166..169 'gen': fn gen<U>() -> *mut [U; _] |
79 | [166; 171) 'gen()': *mut [U; _] | 79 | 166..171 'gen()': *mut [U; _] |
80 | [186; 420) '{ ...rr); }': () | 80 | 186..420 '{ ...rr); }': () |
81 | [196; 199) 'arr': &[u8; _] | 81 | 196..199 'arr': &[u8; _] |
82 | [212; 216) '&[1]': &[u8; _] | 82 | 212..216 '&[1]': &[u8; _] |
83 | [213; 216) '[1]': [u8; _] | 83 | 213..216 '[1]': [u8; _] |
84 | [214; 215) '1': u8 | 84 | 214..215 '1': u8 |
85 | [227; 228) 'a': &[u8] | 85 | 227..228 'a': &[u8] |
86 | [237; 240) 'arr': &[u8; _] | 86 | 237..240 'arr': &[u8; _] |
87 | [250; 251) 'b': u8 | 87 | 250..251 'b': u8 |
88 | [254; 255) 'f': fn f<u8>(&[u8]) -> u8 | 88 | 254..255 'f': fn f<u8>(&[u8]) -> u8 |
89 | [254; 260) 'f(arr)': u8 | 89 | 254..260 'f(arr)': u8 |
90 | [256; 259) 'arr': &[u8; _] | 90 | 256..259 'arr': &[u8; _] |
91 | [270; 271) 'c': &[u8] | 91 | 270..271 'c': &[u8] |
92 | [280; 287) '{ arr }': &[u8] | 92 | 280..287 '{ arr }': &[u8] |
93 | [282; 285) 'arr': &[u8; _] | 93 | 282..285 'arr': &[u8; _] |
94 | [297; 298) 'd': u8 | 94 | 297..298 'd': u8 |
95 | [301; 302) 'g': fn g<u8>(S<&[u8]>) -> u8 | 95 | 301..302 'g': fn g<u8>(S<&[u8]>) -> u8 |
96 | [301; 316) 'g(S { a: arr })': u8 | 96 | 301..316 'g(S { a: arr })': u8 |
97 | [303; 315) 'S { a: arr }': S<&[u8]> | 97 | 303..315 'S { a: arr }': S<&[u8]> |
98 | [310; 313) 'arr': &[u8; _] | 98 | 310..313 'arr': &[u8; _] |
99 | [326; 327) 'e': [&[u8]; _] | 99 | 326..327 'e': [&[u8]; _] |
100 | [341; 346) '[arr]': [&[u8]; _] | 100 | 341..346 '[arr]': [&[u8]; _] |
101 | [342; 345) 'arr': &[u8; _] | 101 | 342..345 'arr': &[u8; _] |
102 | [356; 357) 'f': [&[u8]; _] | 102 | 356..357 'f': [&[u8]; _] |
103 | [371; 379) '[arr; 2]': [&[u8]; _] | 103 | 371..379 '[arr; 2]': [&[u8]; _] |
104 | [372; 375) 'arr': &[u8; _] | 104 | 372..375 'arr': &[u8; _] |
105 | [377; 378) '2': usize | 105 | 377..378 '2': usize |
106 | [389; 390) 'g': (&[u8], &[u8]) | 106 | 389..390 'g': (&[u8], &[u8]) |
107 | [407; 417) '(arr, arr)': (&[u8], &[u8]) | 107 | 407..417 '(arr, arr)': (&[u8], &[u8]) |
108 | [408; 411) 'arr': &[u8; _] | 108 | 408..411 'arr': &[u8; _] |
109 | [413; 416) 'arr': &[u8; _] | 109 | 413..416 'arr': &[u8; _] |
110 | "### | 110 | "### |
111 | ); | 111 | ); |
112 | } | 112 | } |
@@ -120,11 +120,11 @@ fn test() { | |||
120 | } | 120 | } |
121 | "#), | 121 | "#), |
122 | @r###" | 122 | @r###" |
123 | [11; 40) '{ ...[1]; }': () | 123 | 11..40 '{ ...[1]; }': () |
124 | [21; 22) 'x': &[i32] | 124 | 21..22 'x': &[i32] |
125 | [33; 37) '&[1]': &[i32; _] | 125 | 33..37 '&[1]': &[i32; _] |
126 | [34; 37) '[1]': [i32; _] | 126 | 34..37 '[1]': [i32; _] |
127 | [35; 36) '1': i32 | 127 | 35..36 '1': i32 |
128 | "###); | 128 | "###); |
129 | } | 129 | } |
130 | 130 | ||
@@ -150,31 +150,31 @@ fn test(a: A<[u8; 2]>, b: B<[u8; 2]>, c: C<[u8; 2]>) { | |||
150 | } | 150 | } |
151 | "#), | 151 | "#), |
152 | @r###" | 152 | @r###" |
153 | [258; 259) 'x': A<[T]> | 153 | 258..259 'x': A<[T]> |
154 | [279; 284) '{ x }': A<[T]> | 154 | 279..284 '{ x }': A<[T]> |
155 | [281; 282) 'x': A<[T]> | 155 | 281..282 'x': A<[T]> |
156 | [296; 297) 'x': B<[T]> | 156 | 296..297 'x': B<[T]> |
157 | [317; 322) '{ x }': B<[T]> | 157 | 317..322 '{ x }': B<[T]> |
158 | [319; 320) 'x': B<[T]> | 158 | 319..320 'x': B<[T]> |
159 | [334; 335) 'x': C<[T]> | 159 | 334..335 'x': C<[T]> |
160 | [355; 360) '{ x }': C<[T]> | 160 | 355..360 '{ x }': C<[T]> |
161 | [357; 358) 'x': C<[T]> | 161 | 357..358 'x': C<[T]> |
162 | [370; 371) 'a': A<[u8; _]> | 162 | 370..371 'a': A<[u8; _]> |
163 | [385; 386) 'b': B<[u8; _]> | 163 | 385..386 'b': B<[u8; _]> |
164 | [400; 401) 'c': C<[u8; _]> | 164 | 400..401 'c': C<[u8; _]> |
165 | [415; 481) '{ ...(c); }': () | 165 | 415..481 '{ ...(c); }': () |
166 | [425; 426) 'd': A<[{unknown}]> | 166 | 425..426 'd': A<[{unknown}]> |
167 | [429; 433) 'foo1': fn foo1<{unknown}>(A<[{unknown}]>) -> A<[{unknown}]> | 167 | 429..433 'foo1': fn foo1<{unknown}>(A<[{unknown}]>) -> A<[{unknown}]> |
168 | [429; 436) 'foo1(a)': A<[{unknown}]> | 168 | 429..436 'foo1(a)': A<[{unknown}]> |
169 | [434; 435) 'a': A<[u8; _]> | 169 | 434..435 'a': A<[u8; _]> |
170 | [446; 447) 'e': B<[u8]> | 170 | 446..447 'e': B<[u8]> |
171 | [450; 454) 'foo2': fn foo2<u8>(B<[u8]>) -> B<[u8]> | 171 | 450..454 'foo2': fn foo2<u8>(B<[u8]>) -> B<[u8]> |
172 | [450; 457) 'foo2(b)': B<[u8]> | 172 | 450..457 'foo2(b)': B<[u8]> |
173 | [455; 456) 'b': B<[u8; _]> | 173 | 455..456 'b': B<[u8; _]> |
174 | [467; 468) 'f': C<[u8]> | 174 | 467..468 'f': C<[u8]> |
175 | [471; 475) 'foo3': fn foo3<u8>(C<[u8]>) -> C<[u8]> | 175 | 471..475 'foo3': fn foo3<u8>(C<[u8]>) -> C<[u8]> |
176 | [471; 478) 'foo3(c)': C<[u8]> | 176 | 471..478 'foo3(c)': C<[u8]> |
177 | [476; 477) 'c': C<[u8; _]> | 177 | 476..477 'c': C<[u8; _]> |
178 | "### | 178 | "### |
179 | ); | 179 | ); |
180 | } | 180 | } |
@@ -193,24 +193,24 @@ fn test() { | |||
193 | } | 193 | } |
194 | "#), | 194 | "#), |
195 | @r###" | 195 | @r###" |
196 | [11; 12) 'x': &[T] | 196 | 11..12 'x': &[T] |
197 | [28; 39) '{ loop {} }': &[T] | 197 | 28..39 '{ loop {} }': &[T] |
198 | [30; 37) 'loop {}': ! | 198 | 30..37 'loop {}': ! |
199 | [35; 37) '{}': () | 199 | 35..37 '{}': () |
200 | [50; 126) '{ ... }; }': () | 200 | 50..126 '{ ... }; }': () |
201 | [60; 61) 'x': &[i32] | 201 | 60..61 'x': &[i32] |
202 | [64; 123) 'if tru... }': &[i32] | 202 | 64..123 'if tru... }': &[i32] |
203 | [67; 71) 'true': bool | 203 | 67..71 'true': bool |
204 | [72; 97) '{ ... }': &[i32] | 204 | 72..97 '{ ... }': &[i32] |
205 | [82; 85) 'foo': fn foo<i32>(&[i32]) -> &[i32] | 205 | 82..85 'foo': fn foo<i32>(&[i32]) -> &[i32] |
206 | [82; 91) 'foo(&[1])': &[i32] | 206 | 82..91 'foo(&[1])': &[i32] |
207 | [86; 90) '&[1]': &[i32; _] | 207 | 86..90 '&[1]': &[i32; _] |
208 | [87; 90) '[1]': [i32; _] | 208 | 87..90 '[1]': [i32; _] |
209 | [88; 89) '1': i32 | 209 | 88..89 '1': i32 |
210 | [103; 123) '{ ... }': &[i32; _] | 210 | 103..123 '{ ... }': &[i32; _] |
211 | [113; 117) '&[1]': &[i32; _] | 211 | 113..117 '&[1]': &[i32; _] |
212 | [114; 117) '[1]': [i32; _] | 212 | 114..117 '[1]': [i32; _] |
213 | [115; 116) '1': i32 | 213 | 115..116 '1': i32 |
214 | "### | 214 | "### |
215 | ); | 215 | ); |
216 | } | 216 | } |
@@ -229,24 +229,24 @@ fn test() { | |||
229 | } | 229 | } |
230 | "#), | 230 | "#), |
231 | @r###" | 231 | @r###" |
232 | [11; 12) 'x': &[T] | 232 | 11..12 'x': &[T] |
233 | [28; 39) '{ loop {} }': &[T] | 233 | 28..39 '{ loop {} }': &[T] |
234 | [30; 37) 'loop {}': ! | 234 | 30..37 'loop {}': ! |
235 | [35; 37) '{}': () | 235 | 35..37 '{}': () |
236 | [50; 126) '{ ... }; }': () | 236 | 50..126 '{ ... }; }': () |
237 | [60; 61) 'x': &[i32] | 237 | 60..61 'x': &[i32] |
238 | [64; 123) 'if tru... }': &[i32] | 238 | 64..123 'if tru... }': &[i32] |
239 | [67; 71) 'true': bool | 239 | 67..71 'true': bool |
240 | [72; 92) '{ ... }': &[i32; _] | 240 | 72..92 '{ ... }': &[i32; _] |
241 | [82; 86) '&[1]': &[i32; _] | 241 | 82..86 '&[1]': &[i32; _] |
242 | [83; 86) '[1]': [i32; _] | 242 | 83..86 '[1]': [i32; _] |
243 | [84; 85) '1': i32 | 243 | 84..85 '1': i32 |
244 | [98; 123) '{ ... }': &[i32] | 244 | 98..123 '{ ... }': &[i32] |
245 | [108; 111) 'foo': fn foo<i32>(&[i32]) -> &[i32] | 245 | 108..111 'foo': fn foo<i32>(&[i32]) -> &[i32] |
246 | [108; 117) 'foo(&[1])': &[i32] | 246 | 108..117 'foo(&[1])': &[i32] |
247 | [112; 116) '&[1]': &[i32; _] | 247 | 112..116 '&[1]': &[i32; _] |
248 | [113; 116) '[1]': [i32; _] | 248 | 113..116 '[1]': [i32; _] |
249 | [114; 115) '1': i32 | 249 | 114..115 '1': i32 |
250 | "### | 250 | "### |
251 | ); | 251 | ); |
252 | } | 252 | } |
@@ -265,31 +265,31 @@ fn test(i: i32) { | |||
265 | } | 265 | } |
266 | "#), | 266 | "#), |
267 | @r###" | 267 | @r###" |
268 | [11; 12) 'x': &[T] | 268 | 11..12 'x': &[T] |
269 | [28; 39) '{ loop {} }': &[T] | 269 | 28..39 '{ loop {} }': &[T] |
270 | [30; 37) 'loop {}': ! | 270 | 30..37 'loop {}': ! |
271 | [35; 37) '{}': () | 271 | 35..37 '{}': () |
272 | [48; 49) 'i': i32 | 272 | 48..49 'i': i32 |
273 | [56; 150) '{ ... }; }': () | 273 | 56..150 '{ ... }; }': () |
274 | [66; 67) 'x': &[i32] | 274 | 66..67 'x': &[i32] |
275 | [70; 147) 'match ... }': &[i32] | 275 | 70..147 'match ... }': &[i32] |
276 | [76; 77) 'i': i32 | 276 | 76..77 'i': i32 |
277 | [88; 89) '2': i32 | 277 | 88..89 '2': i32 |
278 | [88; 89) '2': i32 | 278 | 88..89 '2': i32 |
279 | [93; 96) 'foo': fn foo<i32>(&[i32]) -> &[i32] | 279 | 93..96 'foo': fn foo<i32>(&[i32]) -> &[i32] |
280 | [93; 102) 'foo(&[2])': &[i32] | 280 | 93..102 'foo(&[2])': &[i32] |
281 | [97; 101) '&[2]': &[i32; _] | 281 | 97..101 '&[2]': &[i32; _] |
282 | [98; 101) '[2]': [i32; _] | 282 | 98..101 '[2]': [i32; _] |
283 | [99; 100) '2': i32 | 283 | 99..100 '2': i32 |
284 | [112; 113) '1': i32 | 284 | 112..113 '1': i32 |
285 | [112; 113) '1': i32 | 285 | 112..113 '1': i32 |
286 | [117; 121) '&[1]': &[i32; _] | 286 | 117..121 '&[1]': &[i32; _] |
287 | [118; 121) '[1]': [i32; _] | 287 | 118..121 '[1]': [i32; _] |
288 | [119; 120) '1': i32 | 288 | 119..120 '1': i32 |
289 | [131; 132) '_': i32 | 289 | 131..132 '_': i32 |
290 | [136; 140) '&[3]': &[i32; _] | 290 | 136..140 '&[3]': &[i32; _] |
291 | [137; 140) '[3]': [i32; _] | 291 | 137..140 '[3]': [i32; _] |
292 | [138; 139) '3': i32 | 292 | 138..139 '3': i32 |
293 | "### | 293 | "### |
294 | ); | 294 | ); |
295 | } | 295 | } |
@@ -308,31 +308,31 @@ fn test(i: i32) { | |||
308 | } | 308 | } |
309 | "#), | 309 | "#), |
310 | @r###" | 310 | @r###" |
311 | [11; 12) 'x': &[T] | 311 | 11..12 'x': &[T] |
312 | [28; 39) '{ loop {} }': &[T] | 312 | 28..39 '{ loop {} }': &[T] |
313 | [30; 37) 'loop {}': ! | 313 | 30..37 'loop {}': ! |
314 | [35; 37) '{}': () | 314 | 35..37 '{}': () |
315 | [48; 49) 'i': i32 | 315 | 48..49 'i': i32 |
316 | [56; 150) '{ ... }; }': () | 316 | 56..150 '{ ... }; }': () |
317 | [66; 67) 'x': &[i32] | 317 | 66..67 'x': &[i32] |
318 | [70; 147) 'match ... }': &[i32] | 318 | 70..147 'match ... }': &[i32] |
319 | [76; 77) 'i': i32 | 319 | 76..77 'i': i32 |
320 | [88; 89) '1': i32 | 320 | 88..89 '1': i32 |
321 | [88; 89) '1': i32 | 321 | 88..89 '1': i32 |
322 | [93; 97) '&[1]': &[i32; _] | 322 | 93..97 '&[1]': &[i32; _] |
323 | [94; 97) '[1]': [i32; _] | 323 | 94..97 '[1]': [i32; _] |
324 | [95; 96) '1': i32 | 324 | 95..96 '1': i32 |
325 | [107; 108) '2': i32 | 325 | 107..108 '2': i32 |
326 | [107; 108) '2': i32 | 326 | 107..108 '2': i32 |
327 | [112; 115) 'foo': fn foo<i32>(&[i32]) -> &[i32] | 327 | 112..115 'foo': fn foo<i32>(&[i32]) -> &[i32] |
328 | [112; 121) 'foo(&[2])': &[i32] | 328 | 112..121 'foo(&[2])': &[i32] |
329 | [116; 120) '&[2]': &[i32; _] | 329 | 116..120 '&[2]': &[i32; _] |
330 | [117; 120) '[2]': [i32; _] | 330 | 117..120 '[2]': [i32; _] |
331 | [118; 119) '2': i32 | 331 | 118..119 '2': i32 |
332 | [131; 132) '_': i32 | 332 | 131..132 '_': i32 |
333 | [136; 140) '&[3]': &[i32; _] | 333 | 136..140 '&[3]': &[i32; _] |
334 | [137; 140) '[3]': [i32; _] | 334 | 137..140 '[3]': [i32; _] |
335 | [138; 139) '3': i32 | 335 | 138..139 '3': i32 |
336 | "### | 336 | "### |
337 | ); | 337 | ); |
338 | } | 338 | } |
@@ -353,24 +353,24 @@ fn test() { | |||
353 | } | 353 | } |
354 | "#), | 354 | "#), |
355 | @r###" | 355 | @r###" |
356 | [11; 145) '{ ... }; }': () | 356 | 11..145 '{ ... }; }': () |
357 | [21; 22) 't': &mut i32 | 357 | 21..22 't': &mut i32 |
358 | [25; 31) '&mut 1': &mut i32 | 358 | 25..31 '&mut 1': &mut i32 |
359 | [30; 31) '1': i32 | 359 | 30..31 '1': i32 |
360 | [41; 42) 'x': *const i32 | 360 | 41..42 'x': *const i32 |
361 | [45; 142) 'match ... }': *const i32 | 361 | 45..142 'match ... }': *const i32 |
362 | [51; 52) '1': i32 | 362 | 51..52 '1': i32 |
363 | [63; 64) '1': i32 | 363 | 63..64 '1': i32 |
364 | [63; 64) '1': i32 | 364 | 63..64 '1': i32 |
365 | [68; 69) 't': &mut i32 | 365 | 68..69 't': &mut i32 |
366 | [68; 81) 't as *mut i32': *mut i32 | 366 | 68..81 't as *mut i32': *mut i32 |
367 | [91; 92) '2': i32 | 367 | 91..92 '2': i32 |
368 | [91; 92) '2': i32 | 368 | 91..92 '2': i32 |
369 | [96; 97) 't': &mut i32 | 369 | 96..97 't': &mut i32 |
370 | [96; 105) 't as &i32': &i32 | 370 | 96..105 't as &i32': &i32 |
371 | [115; 116) '_': i32 | 371 | 115..116 '_': i32 |
372 | [120; 121) 't': &mut i32 | 372 | 120..121 't': &mut i32 |
373 | [120; 135) 't as *const i32': *const i32 | 373 | 120..135 't as *const i32': *const i32 |
374 | "### | 374 | "### |
375 | ); | 375 | ); |
376 | } | 376 | } |
@@ -384,9 +384,9 @@ fn foo() -> u32 { | |||
384 | } | 384 | } |
385 | "#, true), | 385 | "#, true), |
386 | @r###" | 386 | @r###" |
387 | [17; 40) '{ ...own; }': ! | 387 | 17..40 '{ ...own; }': ! |
388 | [23; 37) 'return unknown': ! | 388 | 23..37 'return unknown': ! |
389 | [30; 37) 'unknown': u32 | 389 | 30..37 'unknown': u32 |
390 | "### | 390 | "### |
391 | ); | 391 | ); |
392 | } | 392 | } |
@@ -404,24 +404,24 @@ fn test() { | |||
404 | } | 404 | } |
405 | "#, true), | 405 | "#, true), |
406 | @r###" | 406 | @r###" |
407 | [30; 31) 'x': &Foo | 407 | 30..31 'x': &Foo |
408 | [39; 41) '{}': () | 408 | 39..41 '{}': () |
409 | [52; 133) '{ ...oo); }': () | 409 | 52..133 '{ ...oo); }': () |
410 | [58; 71) 'takes_ref_foo': fn takes_ref_foo(&Foo) | 410 | 58..71 'takes_ref_foo': fn takes_ref_foo(&Foo) |
411 | [58; 77) 'takes_...(&Foo)': () | 411 | 58..77 'takes_...(&Foo)': () |
412 | [72; 76) '&Foo': &Foo | 412 | 72..76 '&Foo': &Foo |
413 | [73; 76) 'Foo': Foo | 413 | 73..76 'Foo': Foo |
414 | [83; 96) 'takes_ref_foo': fn takes_ref_foo(&Foo) | 414 | 83..96 'takes_ref_foo': fn takes_ref_foo(&Foo) |
415 | [83; 103) 'takes_...&&Foo)': () | 415 | 83..103 'takes_...&&Foo)': () |
416 | [97; 102) '&&Foo': &&Foo | 416 | 97..102 '&&Foo': &&Foo |
417 | [98; 102) '&Foo': &Foo | 417 | 98..102 '&Foo': &Foo |
418 | [99; 102) 'Foo': Foo | 418 | 99..102 'Foo': Foo |
419 | [109; 122) 'takes_ref_foo': fn takes_ref_foo(&Foo) | 419 | 109..122 'takes_ref_foo': fn takes_ref_foo(&Foo) |
420 | [109; 130) 'takes_...&&Foo)': () | 420 | 109..130 'takes_...&&Foo)': () |
421 | [123; 129) '&&&Foo': &&&Foo | 421 | 123..129 '&&&Foo': &&&Foo |
422 | [124; 129) '&&Foo': &&Foo | 422 | 124..129 '&&Foo': &&Foo |
423 | [125; 129) '&Foo': &Foo | 423 | 125..129 '&Foo': &Foo |
424 | [126; 129) 'Foo': Foo | 424 | 126..129 'Foo': Foo |
425 | "### | 425 | "### |
426 | ); | 426 | ); |
427 | } | 427 | } |
@@ -439,26 +439,26 @@ fn test() { | |||
439 | } | 439 | } |
440 | "#, true), | 440 | "#, true), |
441 | @r###" | 441 | @r###" |
442 | [29; 30) 'x': &T | 442 | 29..30 'x': &T |
443 | [41; 47) '{ *x }': T | 443 | 41..47 '{ *x }': T |
444 | [43; 45) '*x': T | 444 | 43..45 '*x': T |
445 | [44; 45) 'x': &T | 445 | 44..45 'x': &T |
446 | [58; 127) '{ ...oo); }': () | 446 | 58..127 '{ ...oo); }': () |
447 | [64; 73) 'takes_ref': fn takes_ref<Foo>(&Foo) -> Foo | 447 | 64..73 'takes_ref': fn takes_ref<Foo>(&Foo) -> Foo |
448 | [64; 79) 'takes_ref(&Foo)': Foo | 448 | 64..79 'takes_ref(&Foo)': Foo |
449 | [74; 78) '&Foo': &Foo | 449 | 74..78 '&Foo': &Foo |
450 | [75; 78) 'Foo': Foo | 450 | 75..78 'Foo': Foo |
451 | [85; 94) 'takes_ref': fn takes_ref<&Foo>(&&Foo) -> &Foo | 451 | 85..94 'takes_ref': fn takes_ref<&Foo>(&&Foo) -> &Foo |
452 | [85; 101) 'takes_...&&Foo)': &Foo | 452 | 85..101 'takes_...&&Foo)': &Foo |
453 | [95; 100) '&&Foo': &&Foo | 453 | 95..100 '&&Foo': &&Foo |
454 | [96; 100) '&Foo': &Foo | 454 | 96..100 '&Foo': &Foo |
455 | [97; 100) 'Foo': Foo | 455 | 97..100 'Foo': Foo |
456 | [107; 116) 'takes_ref': fn takes_ref<&&Foo>(&&&Foo) -> &&Foo | 456 | 107..116 'takes_ref': fn takes_ref<&&Foo>(&&&Foo) -> &&Foo |
457 | [107; 124) 'takes_...&&Foo)': &&Foo | 457 | 107..124 'takes_...&&Foo)': &&Foo |
458 | [117; 123) '&&&Foo': &&&Foo | 458 | 117..123 '&&&Foo': &&&Foo |
459 | [118; 123) '&&Foo': &&Foo | 459 | 118..123 '&&Foo': &&Foo |
460 | [119; 123) '&Foo': &Foo | 460 | 119..123 '&Foo': &Foo |
461 | [120; 123) 'Foo': Foo | 461 | 120..123 'Foo': Foo |
462 | "### | 462 | "### |
463 | ); | 463 | ); |
464 | } | 464 | } |
@@ -478,18 +478,18 @@ fn test() { | |||
478 | } | 478 | } |
479 | "#, true), | 479 | "#, true), |
480 | @r###" | 480 | @r###" |
481 | [127; 128) 'x': &str | 481 | 127..128 'x': &str |
482 | [136; 138) '{}': () | 482 | 136..138 '{}': () |
483 | [169; 180) '{ loop {} }': String | 483 | 169..180 '{ loop {} }': String |
484 | [171; 178) 'loop {}': ! | 484 | 171..178 'loop {}': ! |
485 | [176; 178) '{}': () | 485 | 176..178 '{}': () |
486 | [191; 236) '{ ... }); }': () | 486 | 191..236 '{ ... }); }': () |
487 | [197; 210) 'takes_ref_str': fn takes_ref_str(&str) | 487 | 197..210 'takes_ref_str': fn takes_ref_str(&str) |
488 | [197; 233) 'takes_...g() })': () | 488 | 197..233 'takes_...g() })': () |
489 | [211; 232) '&{ ret...ng() }': &String | 489 | 211..232 '&{ ret...ng() }': &String |
490 | [212; 232) '{ retu...ng() }': String | 490 | 212..232 '{ retu...ng() }': String |
491 | [214; 228) 'returns_string': fn returns_string() -> String | 491 | 214..228 'returns_string': fn returns_string() -> String |
492 | [214; 230) 'return...ring()': String | 492 | 214..230 'return...ring()': String |
493 | "### | 493 | "### |
494 | ); | 494 | ); |
495 | } | 495 | } |
@@ -508,19 +508,19 @@ fn foo() { | |||
508 | } | 508 | } |
509 | "#, true), | 509 | "#, true), |
510 | @r###" | 510 | @r###" |
511 | [10; 106) '{ ... }; }': () | 511 | 10..106 '{ ... }; }': () |
512 | [20; 21) 'x': || -> &u32 | 512 | 20..21 'x': || -> &u32 |
513 | [24; 103) '|| { ... }': || -> &u32 | 513 | 24..103 '|| { ... }': || -> &u32 |
514 | [27; 103) '{ ... }': &u32 | 514 | 27..103 '{ ... }': &u32 |
515 | [37; 82) 'if tru... }': () | 515 | 37..82 'if tru... }': () |
516 | [40; 44) 'true': bool | 516 | 40..44 'true': bool |
517 | [45; 82) '{ ... }': ! | 517 | 45..82 '{ ... }': ! |
518 | [59; 71) 'return &1u32': ! | 518 | 59..71 'return &1u32': ! |
519 | [66; 71) '&1u32': &u32 | 519 | 66..71 '&1u32': &u32 |
520 | [67; 71) '1u32': u32 | 520 | 67..71 '1u32': u32 |
521 | [91; 97) '&&1u32': &&u32 | 521 | 91..97 '&&1u32': &&u32 |
522 | [92; 97) '&1u32': &u32 | 522 | 92..97 '&1u32': &u32 |
523 | [93; 97) '1u32': u32 | 523 | 93..97 '1u32': u32 |
524 | "### | 524 | "### |
525 | ); | 525 | ); |
526 | } | 526 | } |
@@ -535,12 +535,12 @@ fn test() { | |||
535 | } | 535 | } |
536 | "#, true), | 536 | "#, true), |
537 | @r###" | 537 | @r###" |
538 | [8; 9) 'x': u32 | 538 | 8..9 'x': u32 |
539 | [25; 30) '{ 1 }': isize | 539 | 25..30 '{ 1 }': isize |
540 | [27; 28) '1': isize | 540 | 27..28 '1': isize |
541 | [41; 79) '{ ...foo; }': () | 541 | 41..79 '{ ...foo; }': () |
542 | [51; 52) 'f': fn(u32) -> isize | 542 | 51..52 'f': fn(u32) -> isize |
543 | [73; 76) 'foo': fn foo(u32) -> isize | 543 | 73..76 'foo': fn foo(u32) -> isize |
544 | "### | 544 | "### |
545 | ); | 545 | ); |
546 | } | 546 | } |
@@ -554,12 +554,12 @@ fn test() { | |||
554 | } | 554 | } |
555 | "#, true), | 555 | "#, true), |
556 | @r###" | 556 | @r###" |
557 | [11; 55) '{ ...1 }; }': () | 557 | 11..55 '{ ...1 }; }': () |
558 | [21; 22) 'f': fn(u32) -> isize | 558 | 21..22 'f': fn(u32) -> isize |
559 | [43; 52) '|x| { 1 }': |u32| -> isize | 559 | 43..52 '|x| { 1 }': |u32| -> isize |
560 | [44; 45) 'x': u32 | 560 | 44..45 'x': u32 |
561 | [47; 52) '{ 1 }': isize | 561 | 47..52 '{ 1 }': isize |
562 | [49; 50) '1': isize | 562 | 49..50 '1': isize |
563 | "### | 563 | "### |
564 | ); | 564 | ); |
565 | } | 565 | } |
@@ -577,11 +577,11 @@ impl<TT> S<TT> { | |||
577 | } | 577 | } |
578 | "#, true), | 578 | "#, true), |
579 | @r###" | 579 | @r###" |
580 | [51; 55) 'self': &S<TT> | 580 | 51..55 'self': &S<TT> |
581 | [64; 87) '{ ... }': &TT | 581 | 64..87 '{ ... }': &TT |
582 | [74; 81) '&self.t': &TT | 582 | 74..81 '&self.t': &TT |
583 | [75; 79) 'self': &S<TT> | 583 | 75..79 'self': &S<TT> |
584 | [75; 81) 'self.t': TT | 584 | 75..81 'self.t': TT |
585 | "### | 585 | "### |
586 | ); | 586 | ); |
587 | } | 587 | } |
@@ -602,13 +602,13 @@ fn test() { | |||
602 | } | 602 | } |
603 | "#, true), | 603 | "#, true), |
604 | @r###" | 604 | @r###" |
605 | [162; 199) '{ ... 3]; }': () | 605 | 162..199 '{ ... 3]; }': () |
606 | [172; 173) 'f': &[usize] | 606 | 172..173 'f': &[usize] |
607 | [186; 196) '&[1, 2, 3]': &[usize; _] | 607 | 186..196 '&[1, 2, 3]': &[usize; _] |
608 | [187; 196) '[1, 2, 3]': [usize; _] | 608 | 187..196 '[1, 2, 3]': [usize; _] |
609 | [188; 189) '1': usize | 609 | 188..189 '1': usize |
610 | [191; 192) '2': usize | 610 | 191..192 '2': usize |
611 | [194; 195) '3': usize | 611 | 194..195 '3': usize |
612 | "### | 612 | "### |
613 | ); | 613 | ); |
614 | } | 614 | } |
@@ -642,19 +642,19 @@ fn test() { | |||
642 | } | 642 | } |
643 | "#, true), | 643 | "#, true), |
644 | @r###" | 644 | @r###" |
645 | [388; 573) '{ ...bj2; }': () | 645 | 388..573 '{ ...bj2; }': () |
646 | [398; 401) 'obj': &dyn Baz<i8, i16> | 646 | 398..401 'obj': &dyn Baz<i8, i16> |
647 | [423; 425) '&S': &S<i8, i16> | 647 | 423..425 '&S': &S<i8, i16> |
648 | [424; 425) 'S': S<i8, i16> | 648 | 424..425 'S': S<i8, i16> |
649 | [435; 438) 'obj': &dyn Bar<usize, i8, i16> | 649 | 435..438 'obj': &dyn Bar<usize, i8, i16> |
650 | [460; 463) 'obj': &dyn Baz<i8, i16> | 650 | 460..463 'obj': &dyn Baz<i8, i16> |
651 | [473; 476) 'obj': &dyn Foo<i8, usize> | 651 | 473..476 'obj': &dyn Foo<i8, usize> |
652 | [495; 498) 'obj': &dyn Bar<usize, i8, i16> | 652 | 495..498 'obj': &dyn Bar<usize, i8, i16> |
653 | [508; 512) 'obj2': &dyn Baz<i8, i16> | 653 | 508..512 'obj2': &dyn Baz<i8, i16> |
654 | [534; 536) '&S': &S<i8, i16> | 654 | 534..536 '&S': &S<i8, i16> |
655 | [535; 536) 'S': S<i8, i16> | 655 | 535..536 'S': S<i8, i16> |
656 | [546; 547) '_': &dyn Foo<i8, usize> | 656 | 546..547 '_': &dyn Foo<i8, usize> |
657 | [566; 570) 'obj2': &dyn Baz<i8, i16> | 657 | 566..570 'obj2': &dyn Baz<i8, i16> |
658 | "### | 658 | "### |
659 | ); | 659 | ); |
660 | } | 660 | } |
@@ -687,12 +687,12 @@ fn test() { | |||
687 | } | 687 | } |
688 | "#, true), | 688 | "#, true), |
689 | @r###" | 689 | @r###" |
690 | [292; 348) '{ ...obj; }': () | 690 | 292..348 '{ ...obj; }': () |
691 | [302; 305) 'obj': &dyn D | 691 | 302..305 'obj': &dyn D |
692 | [316; 318) '&S': &S | 692 | 316..318 '&S': &S |
693 | [317; 318) 'S': S | 693 | 317..318 'S': S |
694 | [328; 331) 'obj': &dyn A | 694 | 328..331 'obj': &dyn A |
695 | [342; 345) 'obj': &dyn D | 695 | 342..345 'obj': &dyn D |
696 | "### | 696 | "### |
697 | ); | 697 | ); |
698 | } | 698 | } |
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs index f2a9b1c40..6b5267232 100644 --- a/crates/ra_hir_ty/src/tests/macros.rs +++ b/crates/ra_hir_ty/src/tests/macros.rs | |||
@@ -67,12 +67,12 @@ fn main() { | |||
67 | } | 67 | } |
68 | "#), | 68 | "#), |
69 | @r###" | 69 | @r###" |
70 | ![0; 17) '{Foo(v...,2,])}': Foo | 70 | !0..17 '{Foo(v...,2,])}': Foo |
71 | ![1; 4) 'Foo': Foo({unknown}) -> Foo | 71 | !1..4 'Foo': Foo({unknown}) -> Foo |
72 | ![1; 16) 'Foo(vec![1,2,])': Foo | 72 | !1..16 'Foo(vec![1,2,])': Foo |
73 | ![5; 15) 'vec![1,2,]': {unknown} | 73 | !5..15 'vec![1,2,]': {unknown} |
74 | [156; 182) '{ ...,2); }': () | 74 | 156..182 '{ ...,2); }': () |
75 | [166; 167) 'x': Foo | 75 | 166..167 'x': Foo |
76 | "### | 76 | "### |
77 | ); | 77 | ); |
78 | } | 78 | } |
@@ -100,14 +100,14 @@ fn main() { | |||
100 | } | 100 | } |
101 | "#), | 101 | "#), |
102 | @r###" | 102 | @r###" |
103 | ![0; 17) '{Foo(v...,2,])}': Foo | 103 | !0..17 '{Foo(v...,2,])}': Foo |
104 | ![1; 4) 'Foo': Foo({unknown}) -> Foo | 104 | !1..4 'Foo': Foo({unknown}) -> Foo |
105 | ![1; 16) 'Foo(vec![1,2,])': Foo | 105 | !1..16 'Foo(vec![1,2,])': Foo |
106 | ![5; 15) 'vec![1,2,]': {unknown} | 106 | !5..15 'vec![1,2,]': {unknown} |
107 | [195; 251) '{ ...,2); }': () | 107 | 195..251 '{ ...,2); }': () |
108 | [205; 206) 'x': Foo | 108 | 205..206 'x': Foo |
109 | [228; 229) 'y': {unknown} | 109 | 228..229 'y': {unknown} |
110 | [232; 248) 'crate:...!(1,2)': {unknown} | 110 | 232..248 'crate:...!(1,2)': {unknown} |
111 | "### | 111 | "### |
112 | ); | 112 | ); |
113 | } | 113 | } |
@@ -131,11 +131,11 @@ fn main() { | |||
131 | } | 131 | } |
132 | "#), | 132 | "#), |
133 | @r###" | 133 | @r###" |
134 | ![0; 5) '42i32': i32 | 134 | !0..5 '42i32': i32 |
135 | ![0; 5) '42i32': i32 | 135 | !0..5 '42i32': i32 |
136 | [111; 164) '{ ...!(); }': () | 136 | 111..164 '{ ...!(); }': () |
137 | [121; 122) 'x': i32 | 137 | 121..122 'x': i32 |
138 | [148; 149) 'y': i32 | 138 | 148..149 'y': i32 |
139 | "### | 139 | "### |
140 | ); | 140 | ); |
141 | } | 141 | } |
@@ -172,51 +172,51 @@ fn spam() { | |||
172 | } | 172 | } |
173 | "#), | 173 | "#), |
174 | @r###" | 174 | @r###" |
175 | ![0; 6) '1isize': isize | 175 | !0..6 '1isize': isize |
176 | ![0; 6) '1isize': isize | 176 | !0..6 '1isize': isize |
177 | ![0; 6) '1isize': isize | 177 | !0..6 '1isize': isize |
178 | ![0; 6) '1isize': isize | 178 | !0..6 '1isize': isize |
179 | ![0; 6) '1isize': isize | 179 | !0..6 '1isize': isize |
180 | ![0; 6) '1isize': isize | 180 | !0..6 '1isize': isize |
181 | ![0; 6) '1isize': isize | 181 | !0..6 '1isize': isize |
182 | ![0; 6) '1isize': isize | 182 | !0..6 '1isize': isize |
183 | ![0; 6) '1isize': isize | 183 | !0..6 '1isize': isize |
184 | ![0; 6) '1isize': isize | 184 | !0..6 '1isize': isize |
185 | ![0; 6) '1isize': isize | 185 | !0..6 '1isize': isize |
186 | ![0; 6) '1isize': isize | 186 | !0..6 '1isize': isize |
187 | ![0; 6) '1isize': isize | 187 | !0..6 '1isize': isize |
188 | ![0; 6) '1isize': isize | 188 | !0..6 '1isize': isize |
189 | ![0; 6) '1isize': isize | 189 | !0..6 '1isize': isize |
190 | ![0; 6) '1isize': isize | 190 | !0..6 '1isize': isize |
191 | ![0; 6) '1isize': isize | 191 | !0..6 '1isize': isize |
192 | ![0; 6) '1isize': isize | 192 | !0..6 '1isize': isize |
193 | ![0; 6) '1isize': isize | 193 | !0..6 '1isize': isize |
194 | ![0; 6) '1isize': isize | 194 | !0..6 '1isize': isize |
195 | ![0; 6) '1isize': isize | 195 | !0..6 '1isize': isize |
196 | ![0; 6) '1isize': isize | 196 | !0..6 '1isize': isize |
197 | ![0; 6) '1isize': isize | 197 | !0..6 '1isize': isize |
198 | ![0; 6) '1isize': isize | 198 | !0..6 '1isize': isize |
199 | ![0; 6) '1isize': isize | 199 | !0..6 '1isize': isize |
200 | [54; 457) '{ ...!(); }': ! | 200 | 54..457 '{ ...!(); }': ! |
201 | [88; 109) 'spam!(...am!())': {unknown} | 201 | 88..109 'spam!(...am!())': {unknown} |
202 | [115; 134) 'for _ ...!() {}': () | 202 | 115..134 'for _ ...!() {}': () |
203 | [119; 120) '_': {unknown} | 203 | 119..120 '_': {unknown} |
204 | [132; 134) '{}': () | 204 | 132..134 '{}': () |
205 | [139; 149) '|| spam!()': || -> isize | 205 | 139..149 '|| spam!()': || -> isize |
206 | [155; 171) 'while ...!() {}': () | 206 | 155..171 'while ...!() {}': () |
207 | [169; 171) '{}': () | 207 | 169..171 '{}': () |
208 | [176; 189) 'break spam!()': ! | 208 | 176..189 'break spam!()': ! |
209 | [195; 209) 'return spam!()': ! | 209 | 195..209 'return spam!()': ! |
210 | [215; 269) 'match ... }': isize | 210 | 215..269 'match ... }': isize |
211 | [239; 240) '_': isize | 211 | 239..240 '_': isize |
212 | [274; 290) 'spam!(...am!())': {unknown} | 212 | 274..290 'spam!(...am!())': {unknown} |
213 | [296; 318) 'Spam {...m!() }': {unknown} | 213 | 296..318 'Spam {...m!() }': {unknown} |
214 | [324; 340) 'spam!(...am!()]': {unknown} | 214 | 324..340 'spam!(...am!()]': {unknown} |
215 | [365; 381) 'spam!(... usize': usize | 215 | 365..381 'spam!(... usize': usize |
216 | [387; 395) '&spam!()': &isize | 216 | 387..395 '&spam!()': &isize |
217 | [401; 409) '-spam!()': isize | 217 | 401..409 '-spam!()': isize |
218 | [415; 431) 'spam!(...pam!()': {unknown} | 218 | 415..431 'spam!(...pam!()': {unknown} |
219 | [437; 454) 'spam!(...pam!()': isize | 219 | 437..454 'spam!(...pam!()': isize |
220 | "### | 220 | "### |
221 | ); | 221 | ); |
222 | } | 222 | } |
@@ -244,9 +244,9 @@ fn foo() { | |||
244 | } | 244 | } |
245 | "#), | 245 | "#), |
246 | @r###" | 246 | @r###" |
247 | ![0; 5) '42i32': i32 | 247 | !0..5 '42i32': i32 |
248 | [171; 206) '{ ...32); }': () | 248 | 171..206 '{ ...32); }': () |
249 | [181; 184) 'foo': i32 | 249 | 181..184 'foo': i32 |
250 | "### | 250 | "### |
251 | ); | 251 | ); |
252 | } | 252 | } |
@@ -357,12 +357,12 @@ fn main() { | |||
357 | } | 357 | } |
358 | "#), | 358 | "#), |
359 | @r###" | 359 | @r###" |
360 | [159; 164) '{ 0 }': u64 | 360 | 159..164 '{ 0 }': u64 |
361 | [161; 162) '0': u64 | 361 | 161..162 '0': u64 |
362 | [175; 197) '{ ...f(); }': () | 362 | 175..197 '{ ...f(); }': () |
363 | [185; 187) '_a': u64 | 363 | 185..187 '_a': u64 |
364 | [191; 192) 'f': fn f() -> u64 | 364 | 191..192 'f': fn f() -> u64 |
365 | [191; 194) 'f()': u64 | 365 | 191..194 'f()': u64 |
366 | "### | 366 | "### |
367 | ); | 367 | ); |
368 | } | 368 | } |
@@ -379,10 +379,10 @@ fn main() { | |||
379 | } | 379 | } |
380 | "#), | 380 | "#), |
381 | @r###" | 381 | @r###" |
382 | ![0; 6) '1usize': usize | 382 | !0..6 '1usize': usize |
383 | [11; 90) '{ ...!(); }': () | 383 | 11..90 '{ ...!(); }': () |
384 | [17; 66) 'macro_... }': {unknown} | 384 | 17..66 'macro_... }': {unknown} |
385 | [75; 77) '_a': usize | 385 | 75..77 '_a': usize |
386 | "### | 386 | "### |
387 | ); | 387 | ); |
388 | } | 388 | } |
@@ -399,9 +399,9 @@ fn main() { | |||
399 | } | 399 | } |
400 | "#), | 400 | "#), |
401 | @r###" | 401 | @r###" |
402 | ![0; 1) '0': i32 | 402 | !0..1 '0': i32 |
403 | [64; 88) '{ ...!(); }': () | 403 | 64..88 '{ ...!(); }': () |
404 | [74; 75) 'x': i32 | 404 | 74..75 'x': i32 |
405 | "### | 405 | "### |
406 | ); | 406 | ); |
407 | } | 407 | } |
@@ -418,9 +418,9 @@ fn main() { | |||
418 | } | 418 | } |
419 | "#), | 419 | "#), |
420 | @r###" | 420 | @r###" |
421 | ![0; 2) '""': &str | 421 | !0..2 '""': &str |
422 | [64; 88) '{ ...!(); }': () | 422 | 64..88 '{ ...!(); }': () |
423 | [74; 75) 'x': &str | 423 | 74..75 'x': &str |
424 | "### | 424 | "### |
425 | ); | 425 | ); |
426 | } | 426 | } |
@@ -437,9 +437,9 @@ fn main() { | |||
437 | } | 437 | } |
438 | "#), | 438 | "#), |
439 | @r###" | 439 | @r###" |
440 | ![0; 1) '0': i32 | 440 | !0..1 '0': i32 |
441 | [66; 92) '{ ...!(); }': () | 441 | 66..92 '{ ...!(); }': () |
442 | [76; 77) 'x': i32 | 442 | 76..77 'x': i32 |
443 | "### | 443 | "### |
444 | ); | 444 | ); |
445 | } | 445 | } |
@@ -456,9 +456,9 @@ fn main() { | |||
456 | } | 456 | } |
457 | "#), | 457 | "#), |
458 | @r###" | 458 | @r###" |
459 | ![0; 13) '"helloworld!"': &str | 459 | !0..13 '"helloworld!"': &str |
460 | [66; 122) '{ ...")); }': () | 460 | 66..122 '{ ...")); }': () |
461 | [76; 77) 'x': &str | 461 | 76..77 'x': &str |
462 | "### | 462 | "### |
463 | ); | 463 | ); |
464 | } | 464 | } |
@@ -591,9 +591,9 @@ fn main() { | |||
591 | } | 591 | } |
592 | "#), | 592 | "#), |
593 | @r###" | 593 | @r###" |
594 | ![0; 13) '"helloworld!"': &str | 594 | !0..13 '"helloworld!"': &str |
595 | [104; 161) '{ ...")); }': () | 595 | 104..161 '{ ...")); }': () |
596 | [114; 115) 'x': &str | 596 | 114..115 'x': &str |
597 | "### | 597 | "### |
598 | ); | 598 | ); |
599 | } | 599 | } |
@@ -611,9 +611,9 @@ fn main() { | |||
611 | } | 611 | } |
612 | "#), | 612 | "#), |
613 | @r###" | 613 | @r###" |
614 | ![0; 5) '"bar"': &str | 614 | !0..5 '"bar"': &str |
615 | [88; 116) '{ ...o"); }': () | 615 | 88..116 '{ ...o"); }': () |
616 | [98; 99) 'x': &str | 616 | 98..99 'x': &str |
617 | "### | 617 | "### |
618 | ); | 618 | ); |
619 | } | 619 | } |
@@ -703,12 +703,12 @@ fn main() { | |||
703 | } | 703 | } |
704 | "#), | 704 | "#), |
705 | @r###" | 705 | @r###" |
706 | [52; 111) '{ ... }; }': () | 706 | 52..111 '{ ... }; }': () |
707 | [62; 63) 'x': u32 | 707 | 62..63 'x': u32 |
708 | [66; 108) 'match ... }': u32 | 708 | 66..108 'match ... }': u32 |
709 | [72; 74) '()': () | 709 | 72..74 '()': () |
710 | [85; 92) 'unit!()': () | 710 | 85..92 'unit!()': () |
711 | [96; 101) '92u32': u32 | 711 | 96..101 '92u32': u32 |
712 | "### | 712 | "### |
713 | ); | 713 | ); |
714 | } | 714 | } |
diff --git a/crates/ra_hir_ty/src/tests/method_resolution.rs b/crates/ra_hir_ty/src/tests/method_resolution.rs index af3e5b12c..ab87f598a 100644 --- a/crates/ra_hir_ty/src/tests/method_resolution.rs +++ b/crates/ra_hir_ty/src/tests/method_resolution.rs | |||
@@ -22,14 +22,14 @@ fn test() { | |||
22 | } | 22 | } |
23 | "#), | 23 | "#), |
24 | @r###" | 24 | @r###" |
25 | [45; 49) 'self': &[T] | 25 | 45..49 'self': &[T] |
26 | [56; 79) '{ ... }': T | 26 | 56..79 '{ ... }': T |
27 | [66; 73) 'loop {}': ! | 27 | 66..73 'loop {}': ! |
28 | [71; 73) '{}': () | 28 | 71..73 '{}': () |
29 | [133; 160) '{ ...o"); }': () | 29 | 133..160 '{ ...o"); }': () |
30 | [139; 149) '<[_]>::foo': fn foo<u8>(&[u8]) -> u8 | 30 | 139..149 '<[_]>::foo': fn foo<u8>(&[u8]) -> u8 |
31 | [139; 157) '<[_]>:..."foo")': u8 | 31 | 139..157 '<[_]>:..."foo")': u8 |
32 | [150; 156) 'b"foo"': &[u8] | 32 | 150..156 'b"foo"': &[u8] |
33 | "### | 33 | "### |
34 | ); | 34 | ); |
35 | } | 35 | } |
@@ -51,15 +51,15 @@ fn test() { | |||
51 | } | 51 | } |
52 | "#), | 52 | "#), |
53 | @r###" | 53 | @r###" |
54 | [49; 75) '{ ... }': A | 54 | 49..75 '{ ... }': A |
55 | [59; 69) 'A { x: 0 }': A | 55 | 59..69 'A { x: 0 }': A |
56 | [66; 67) '0': u32 | 56 | 66..67 '0': u32 |
57 | [88; 122) '{ ...a.x; }': () | 57 | 88..122 '{ ...a.x; }': () |
58 | [98; 99) 'a': A | 58 | 98..99 'a': A |
59 | [102; 108) 'A::new': fn new() -> A | 59 | 102..108 'A::new': fn new() -> A |
60 | [102; 110) 'A::new()': A | 60 | 102..110 'A::new()': A |
61 | [116; 117) 'a': A | 61 | 116..117 'a': A |
62 | [116; 119) 'a.x': u32 | 62 | 116..119 'a.x': u32 |
63 | "### | 63 | "### |
64 | ); | 64 | ); |
65 | } | 65 | } |
@@ -86,19 +86,19 @@ fn test() { | |||
86 | } | 86 | } |
87 | "#), | 87 | "#), |
88 | @r###" | 88 | @r###" |
89 | [47; 67) '{ ... }': A | 89 | 47..67 '{ ... }': A |
90 | [57; 61) 'A::B': A | 90 | 57..61 'A::B': A |
91 | [88; 108) '{ ... }': A | 91 | 88..108 '{ ... }': A |
92 | [98; 102) 'A::C': A | 92 | 98..102 'A::C': A |
93 | [121; 178) '{ ... c; }': () | 93 | 121..178 '{ ... c; }': () |
94 | [131; 132) 'a': A | 94 | 131..132 'a': A |
95 | [135; 139) 'A::b': fn b() -> A | 95 | 135..139 'A::b': fn b() -> A |
96 | [135; 141) 'A::b()': A | 96 | 135..141 'A::b()': A |
97 | [147; 148) 'a': A | 97 | 147..148 'a': A |
98 | [158; 159) 'c': A | 98 | 158..159 'c': A |
99 | [162; 166) 'A::c': fn c() -> A | 99 | 162..166 'A::c': fn c() -> A |
100 | [162; 168) 'A::c()': A | 100 | 162..168 'A::c()': A |
101 | [174; 175) 'c': A | 101 | 174..175 'c': A |
102 | "### | 102 | "### |
103 | ); | 103 | ); |
104 | } | 104 | } |
@@ -130,22 +130,22 @@ fn test() { | |||
130 | } | 130 | } |
131 | "#), | 131 | "#), |
132 | @r###" | 132 | @r###" |
133 | [56; 64) '{ A {} }': A | 133 | 56..64 '{ A {} }': A |
134 | [58; 62) 'A {}': A | 134 | 58..62 'A {}': A |
135 | [126; 132) '{ 99 }': u32 | 135 | 126..132 '{ 99 }': u32 |
136 | [128; 130) '99': u32 | 136 | 128..130 '99': u32 |
137 | [202; 210) '{ C {} }': C | 137 | 202..210 '{ C {} }': C |
138 | [204; 208) 'C {}': C | 138 | 204..208 'C {}': C |
139 | [241; 325) '{ ...g(); }': () | 139 | 241..325 '{ ...g(); }': () |
140 | [251; 252) 'x': A | 140 | 251..252 'x': A |
141 | [255; 266) 'a::A::thing': fn thing() -> A | 141 | 255..266 'a::A::thing': fn thing() -> A |
142 | [255; 268) 'a::A::thing()': A | 142 | 255..268 'a::A::thing()': A |
143 | [278; 279) 'y': u32 | 143 | 278..279 'y': u32 |
144 | [282; 293) 'b::B::thing': fn thing() -> u32 | 144 | 282..293 'b::B::thing': fn thing() -> u32 |
145 | [282; 295) 'b::B::thing()': u32 | 145 | 282..295 'b::B::thing()': u32 |
146 | [305; 306) 'z': C | 146 | 305..306 'z': C |
147 | [309; 320) 'c::C::thing': fn thing() -> C | 147 | 309..320 'c::C::thing': fn thing() -> C |
148 | [309; 322) 'c::C::thing()': C | 148 | 309..322 'c::C::thing()': C |
149 | "### | 149 | "### |
150 | ); | 150 | ); |
151 | } | 151 | } |
@@ -169,15 +169,15 @@ fn test() { | |||
169 | } | 169 | } |
170 | "#), | 170 | "#), |
171 | @r###" | 171 | @r###" |
172 | [64; 67) 'val': T | 172 | 64..67 'val': T |
173 | [82; 109) '{ ... }': Gen<T> | 173 | 82..109 '{ ... }': Gen<T> |
174 | [92; 103) 'Gen { val }': Gen<T> | 174 | 92..103 'Gen { val }': Gen<T> |
175 | [98; 101) 'val': T | 175 | 98..101 'val': T |
176 | [123; 155) '{ ...32); }': () | 176 | 123..155 '{ ...32); }': () |
177 | [133; 134) 'a': Gen<u32> | 177 | 133..134 'a': Gen<u32> |
178 | [137; 146) 'Gen::make': fn make<u32>(u32) -> Gen<u32> | 178 | 137..146 'Gen::make': fn make<u32>(u32) -> Gen<u32> |
179 | [137; 152) 'Gen::make(0u32)': Gen<u32> | 179 | 137..152 'Gen::make(0u32)': Gen<u32> |
180 | [147; 151) '0u32': u32 | 180 | 147..151 '0u32': u32 |
181 | "### | 181 | "### |
182 | ); | 182 | ); |
183 | } | 183 | } |
@@ -201,13 +201,13 @@ fn test() { | |||
201 | } | 201 | } |
202 | "#), | 202 | "#), |
203 | @r###" | 203 | @r###" |
204 | [80; 104) '{ ... }': Gen<T> | 204 | 80..104 '{ ... }': Gen<T> |
205 | [90; 98) 'loop { }': ! | 205 | 90..98 'loop { }': ! |
206 | [95; 98) '{ }': () | 206 | 95..98 '{ }': () |
207 | [118; 146) '{ ...e(); }': () | 207 | 118..146 '{ ...e(); }': () |
208 | [128; 129) 'a': Gen<u32> | 208 | 128..129 'a': Gen<u32> |
209 | [132; 141) 'Gen::make': fn make<u32>() -> Gen<u32> | 209 | 132..141 'Gen::make': fn make<u32>() -> Gen<u32> |
210 | [132; 143) 'Gen::make()': Gen<u32> | 210 | 132..143 'Gen::make()': Gen<u32> |
211 | "### | 211 | "### |
212 | ); | 212 | ); |
213 | } | 213 | } |
@@ -255,13 +255,13 @@ fn test() { | |||
255 | } | 255 | } |
256 | "#), | 256 | "#), |
257 | @r###" | 257 | @r###" |
258 | [76; 100) '{ ... }': Gen<T> | 258 | 76..100 '{ ... }': Gen<T> |
259 | [86; 94) 'loop { }': ! | 259 | 86..94 'loop { }': ! |
260 | [91; 94) '{ }': () | 260 | 91..94 '{ }': () |
261 | [114; 149) '{ ...e(); }': () | 261 | 114..149 '{ ...e(); }': () |
262 | [124; 125) 'a': Gen<u32> | 262 | 124..125 'a': Gen<u32> |
263 | [128; 144) 'Gen::<...::make': fn make<u32>() -> Gen<u32> | 263 | 128..144 'Gen::<...::make': fn make<u32>() -> Gen<u32> |
264 | [128; 146) 'Gen::<...make()': Gen<u32> | 264 | 128..146 'Gen::<...make()': Gen<u32> |
265 | "### | 265 | "### |
266 | ); | 266 | ); |
267 | } | 267 | } |
@@ -286,13 +286,13 @@ fn test() { | |||
286 | } | 286 | } |
287 | "#), | 287 | "#), |
288 | @r###" | 288 | @r###" |
289 | [102; 126) '{ ... }': Gen<u32, T> | 289 | 102..126 '{ ... }': Gen<u32, T> |
290 | [112; 120) 'loop { }': ! | 290 | 112..120 'loop { }': ! |
291 | [117; 120) '{ }': () | 291 | 117..120 '{ }': () |
292 | [140; 180) '{ ...e(); }': () | 292 | 140..180 '{ ...e(); }': () |
293 | [150; 151) 'a': Gen<u32, u64> | 293 | 150..151 'a': Gen<u32, u64> |
294 | [154; 175) 'Gen::<...::make': fn make<u64>() -> Gen<u32, u64> | 294 | 154..175 'Gen::<...::make': fn make<u64>() -> Gen<u32, u64> |
295 | [154; 177) 'Gen::<...make()': Gen<u32, u64> | 295 | 154..177 'Gen::<...make()': Gen<u32, u64> |
296 | "### | 296 | "### |
297 | ); | 297 | ); |
298 | } | 298 | } |
@@ -340,13 +340,13 @@ fn test() { | |||
340 | } | 340 | } |
341 | "#), | 341 | "#), |
342 | @r###" | 342 | @r###" |
343 | [31; 35) 'self': &Self | 343 | 31..35 'self': &Self |
344 | [110; 114) 'self': &Self | 344 | 110..114 'self': &Self |
345 | [170; 228) '{ ...i128 }': () | 345 | 170..228 '{ ...i128 }': () |
346 | [176; 178) 'S1': S1 | 346 | 176..178 'S1': S1 |
347 | [176; 187) 'S1.method()': u32 | 347 | 176..187 'S1.method()': u32 |
348 | [203; 205) 'S2': S2 | 348 | 203..205 'S2': S2 |
349 | [203; 214) 'S2.method()': i128 | 349 | 203..214 'S2.method()': i128 |
350 | "### | 350 | "### |
351 | ); | 351 | ); |
352 | } | 352 | } |
@@ -387,14 +387,14 @@ mod bar_test { | |||
387 | } | 387 | } |
388 | "#), | 388 | "#), |
389 | @r###" | 389 | @r###" |
390 | [63; 67) 'self': &Self | 390 | 63..67 'self': &Self |
391 | [169; 173) 'self': &Self | 391 | 169..173 'self': &Self |
392 | [300; 337) '{ ... }': () | 392 | 300..337 '{ ... }': () |
393 | [310; 311) 'S': S | 393 | 310..311 'S': S |
394 | [310; 320) 'S.method()': u32 | 394 | 310..320 'S.method()': u32 |
395 | [416; 454) '{ ... }': () | 395 | 416..454 '{ ... }': () |
396 | [426; 427) 'S': S | 396 | 426..427 'S': S |
397 | [426; 436) 'S.method()': i128 | 397 | 426..436 'S.method()': i128 |
398 | "### | 398 | "### |
399 | ); | 399 | ); |
400 | } | 400 | } |
@@ -414,10 +414,10 @@ fn test() { | |||
414 | } | 414 | } |
415 | "#), | 415 | "#), |
416 | @r###" | 416 | @r###" |
417 | [33; 37) 'self': &Self | 417 | 33..37 'self': &Self |
418 | [92; 111) '{ ...d(); }': () | 418 | 92..111 '{ ...d(); }': () |
419 | [98; 99) 'S': S | 419 | 98..99 'S': S |
420 | [98; 108) 'S.method()': u32 | 420 | 98..108 'S.method()': u32 |
421 | "### | 421 | "### |
422 | ); | 422 | ); |
423 | } | 423 | } |
@@ -443,17 +443,17 @@ fn test() { | |||
443 | } | 443 | } |
444 | "#), | 444 | "#), |
445 | @r###" | 445 | @r###" |
446 | [43; 47) 'self': &Self | 446 | 43..47 'self': &Self |
447 | [82; 86) 'self': &Self | 447 | 82..86 'self': &Self |
448 | [210; 361) '{ ..., i8 }': () | 448 | 210..361 '{ ..., i8 }': () |
449 | [216; 218) 'S1': S1 | 449 | 216..218 'S1': S1 |
450 | [216; 228) 'S1.method1()': (u8, u16, u32) | 450 | 216..228 'S1.method1()': (u8, u16, u32) |
451 | [250; 252) 'S1': S1 | 451 | 250..252 'S1': S1 |
452 | [250; 262) 'S1.method2()': (u32, u16, u8) | 452 | 250..262 'S1.method2()': (u32, u16, u8) |
453 | [284; 286) 'S2': S2 | 453 | 284..286 'S2': S2 |
454 | [284; 296) 'S2.method1()': (i8, i16, {unknown}) | 454 | 284..296 'S2.method1()': (i8, i16, {unknown}) |
455 | [324; 326) 'S2': S2 | 455 | 324..326 'S2': S2 |
456 | [324; 336) 'S2.method2()': ({unknown}, i16, i8) | 456 | 324..336 'S2.method2()': ({unknown}, i16, i8) |
457 | "### | 457 | "### |
458 | ); | 458 | ); |
459 | } | 459 | } |
@@ -473,12 +473,12 @@ fn test() { | |||
473 | } | 473 | } |
474 | "#), | 474 | "#), |
475 | @r###" | 475 | @r###" |
476 | [33; 37) 'self': &Self | 476 | 33..37 'self': &Self |
477 | [102; 127) '{ ...d(); }': () | 477 | 102..127 '{ ...d(); }': () |
478 | [108; 109) 'S': S<u32>(u32) -> S<u32> | 478 | 108..109 'S': S<u32>(u32) -> S<u32> |
479 | [108; 115) 'S(1u32)': S<u32> | 479 | 108..115 'S(1u32)': S<u32> |
480 | [108; 124) 'S(1u32...thod()': u32 | 480 | 108..124 'S(1u32...thod()': u32 |
481 | [110; 114) '1u32': u32 | 481 | 110..114 '1u32': u32 |
482 | "### | 482 | "### |
483 | ); | 483 | ); |
484 | } | 484 | } |
@@ -499,16 +499,16 @@ fn test() { | |||
499 | } | 499 | } |
500 | "#), | 500 | "#), |
501 | @r###" | 501 | @r###" |
502 | [87; 193) '{ ...t(); }': () | 502 | 87..193 '{ ...t(); }': () |
503 | [97; 99) 's1': S | 503 | 97..99 's1': S |
504 | [105; 121) 'Defaul...efault': fn default<S>() -> S | 504 | 105..121 'Defaul...efault': fn default<S>() -> S |
505 | [105; 123) 'Defaul...ault()': S | 505 | 105..123 'Defaul...ault()': S |
506 | [133; 135) 's2': S | 506 | 133..135 's2': S |
507 | [138; 148) 'S::default': fn default<S>() -> S | 507 | 138..148 'S::default': fn default<S>() -> S |
508 | [138; 150) 'S::default()': S | 508 | 138..150 'S::default()': S |
509 | [160; 162) 's3': S | 509 | 160..162 's3': S |
510 | [165; 188) '<S as ...efault': fn default<S>() -> S | 510 | 165..188 '<S as ...efault': fn default<S>() -> S |
511 | [165; 190) '<S as ...ault()': S | 511 | 165..190 '<S as ...ault()': S |
512 | "### | 512 | "### |
513 | ); | 513 | ); |
514 | } | 514 | } |
@@ -531,16 +531,16 @@ fn test() { | |||
531 | } | 531 | } |
532 | "#), | 532 | "#), |
533 | @r###" | 533 | @r###" |
534 | [127; 211) '{ ...e(); }': () | 534 | 127..211 '{ ...e(); }': () |
535 | [137; 138) 'a': u32 | 535 | 137..138 'a': u32 |
536 | [141; 148) 'S::make': fn make<S, u32>() -> u32 | 536 | 141..148 'S::make': fn make<S, u32>() -> u32 |
537 | [141; 150) 'S::make()': u32 | 537 | 141..150 'S::make()': u32 |
538 | [160; 161) 'b': u64 | 538 | 160..161 'b': u64 |
539 | [164; 178) 'G::<u64>::make': fn make<G<u64>, u64>() -> u64 | 539 | 164..178 'G::<u64>::make': fn make<G<u64>, u64>() -> u64 |
540 | [164; 180) 'G::<u6...make()': u64 | 540 | 164..180 'G::<u6...make()': u64 |
541 | [190; 191) 'c': f64 | 541 | 190..191 'c': f64 |
542 | [199; 206) 'G::make': fn make<G<f64>, f64>() -> f64 | 542 | 199..206 'G::make': fn make<G<f64>, f64>() -> f64 |
543 | [199; 208) 'G::make()': f64 | 543 | 199..208 'G::make()': f64 |
544 | "### | 544 | "### |
545 | ); | 545 | ); |
546 | } | 546 | } |
@@ -565,22 +565,22 @@ fn test() { | |||
565 | } | 565 | } |
566 | "#), | 566 | "#), |
567 | @r###" | 567 | @r###" |
568 | [135; 313) '{ ...e(); }': () | 568 | 135..313 '{ ...e(); }': () |
569 | [145; 146) 'a': (u32, i64) | 569 | 145..146 'a': (u32, i64) |
570 | [149; 163) 'S::make::<i64>': fn make<S, u32, i64>() -> (u32, i64) | 570 | 149..163 'S::make::<i64>': fn make<S, u32, i64>() -> (u32, i64) |
571 | [149; 165) 'S::mak...i64>()': (u32, i64) | 571 | 149..165 'S::mak...i64>()': (u32, i64) |
572 | [175; 176) 'b': (u32, i64) | 572 | 175..176 'b': (u32, i64) |
573 | [189; 196) 'S::make': fn make<S, u32, i64>() -> (u32, i64) | 573 | 189..196 'S::make': fn make<S, u32, i64>() -> (u32, i64) |
574 | [189; 198) 'S::make()': (u32, i64) | 574 | 189..198 'S::make()': (u32, i64) |
575 | [208; 209) 'c': (u32, i64) | 575 | 208..209 'c': (u32, i64) |
576 | [212; 233) 'G::<u3...:<i64>': fn make<G<u32>, u32, i64>() -> (u32, i64) | 576 | 212..233 'G::<u3...:<i64>': fn make<G<u32>, u32, i64>() -> (u32, i64) |
577 | [212; 235) 'G::<u3...i64>()': (u32, i64) | 577 | 212..235 'G::<u3...i64>()': (u32, i64) |
578 | [245; 246) 'd': (u32, i64) | 578 | 245..246 'd': (u32, i64) |
579 | [259; 273) 'G::make::<i64>': fn make<G<u32>, u32, i64>() -> (u32, i64) | 579 | 259..273 'G::make::<i64>': fn make<G<u32>, u32, i64>() -> (u32, i64) |
580 | [259; 275) 'G::mak...i64>()': (u32, i64) | 580 | 259..275 'G::mak...i64>()': (u32, i64) |
581 | [285; 286) 'e': (u32, i64) | 581 | 285..286 'e': (u32, i64) |
582 | [301; 308) 'G::make': fn make<G<u32>, u32, i64>() -> (u32, i64) | 582 | 301..308 'G::make': fn make<G<u32>, u32, i64>() -> (u32, i64) |
583 | [301; 310) 'G::make()': (u32, i64) | 583 | 301..310 'G::make()': (u32, i64) |
584 | "### | 584 | "### |
585 | ); | 585 | ); |
586 | } | 586 | } |
@@ -599,10 +599,10 @@ fn test() { | |||
599 | } | 599 | } |
600 | "#), | 600 | "#), |
601 | @r###" | 601 | @r###" |
602 | [101; 127) '{ ...e(); }': () | 602 | 101..127 '{ ...e(); }': () |
603 | [111; 112) 'a': (S<i32>, i64) | 603 | 111..112 'a': (S<i32>, i64) |
604 | [115; 122) 'S::make': fn make<S<i32>, i64>() -> (S<i32>, i64) | 604 | 115..122 'S::make': fn make<S<i32>, i64>() -> (S<i32>, i64) |
605 | [115; 124) 'S::make()': (S<i32>, i64) | 605 | 115..124 'S::make()': (S<i32>, i64) |
606 | "### | 606 | "### |
607 | ); | 607 | ); |
608 | } | 608 | } |
@@ -623,13 +623,13 @@ fn test() { | |||
623 | } | 623 | } |
624 | "#), | 624 | "#), |
625 | @r###" | 625 | @r###" |
626 | [131; 203) '{ ...e(); }': () | 626 | 131..203 '{ ...e(); }': () |
627 | [141; 142) 'a': (S<u64>, i64) | 627 | 141..142 'a': (S<u64>, i64) |
628 | [158; 165) 'S::make': fn make<S<u64>, i64>() -> (S<u64>, i64) | 628 | 158..165 'S::make': fn make<S<u64>, i64>() -> (S<u64>, i64) |
629 | [158; 167) 'S::make()': (S<u64>, i64) | 629 | 158..167 'S::make()': (S<u64>, i64) |
630 | [177; 178) 'b': (S<u32>, i32) | 630 | 177..178 'b': (S<u32>, i32) |
631 | [191; 198) 'S::make': fn make<S<u32>, i32>() -> (S<u32>, i32) | 631 | 191..198 'S::make': fn make<S<u32>, i32>() -> (S<u32>, i32) |
632 | [191; 200) 'S::make()': (S<u32>, i32) | 632 | 191..200 'S::make()': (S<u32>, i32) |
633 | "### | 633 | "### |
634 | ); | 634 | ); |
635 | } | 635 | } |
@@ -649,13 +649,13 @@ fn test() { | |||
649 | } | 649 | } |
650 | "#), | 650 | "#), |
651 | @r###" | 651 | @r###" |
652 | [107; 211) '{ ...>(); }': () | 652 | 107..211 '{ ...>(); }': () |
653 | [117; 118) 'a': (S<u64>, i64, u8) | 653 | 117..118 'a': (S<u64>, i64, u8) |
654 | [121; 150) '<S as ...::<u8>': fn make<S<u64>, i64, u8>() -> (S<u64>, i64, u8) | 654 | 121..150 '<S as ...::<u8>': fn make<S<u64>, i64, u8>() -> (S<u64>, i64, u8) |
655 | [121; 152) '<S as ...<u8>()': (S<u64>, i64, u8) | 655 | 121..152 '<S as ...<u8>()': (S<u64>, i64, u8) |
656 | [162; 163) 'b': (S<u64>, i64, u8) | 656 | 162..163 'b': (S<u64>, i64, u8) |
657 | [182; 206) 'Trait:...::<u8>': fn make<S<u64>, i64, u8>() -> (S<u64>, i64, u8) | 657 | 182..206 'Trait:...::<u8>': fn make<S<u64>, i64, u8>() -> (S<u64>, i64, u8) |
658 | [182; 208) 'Trait:...<u8>()': (S<u64>, i64, u8) | 658 | 182..208 'Trait:...<u8>()': (S<u64>, i64, u8) |
659 | "### | 659 | "### |
660 | ); | 660 | ); |
661 | } | 661 | } |
@@ -672,11 +672,11 @@ fn test<T: Trait>(t: T) { | |||
672 | } | 672 | } |
673 | "#), | 673 | "#), |
674 | @r###" | 674 | @r###" |
675 | [30; 34) 'self': &Self | 675 | 30..34 'self': &Self |
676 | [64; 65) 't': T | 676 | 64..65 't': T |
677 | [70; 89) '{ ...d(); }': () | 677 | 70..89 '{ ...d(); }': () |
678 | [76; 77) 't': T | 678 | 76..77 't': T |
679 | [76; 86) 't.method()': u32 | 679 | 76..86 't.method()': u32 |
680 | "### | 680 | "### |
681 | ); | 681 | ); |
682 | } | 682 | } |
@@ -693,11 +693,11 @@ fn test<U, T: Trait<U>>(t: T) { | |||
693 | } | 693 | } |
694 | "#), | 694 | "#), |
695 | @r###" | 695 | @r###" |
696 | [33; 37) 'self': &Self | 696 | 33..37 'self': &Self |
697 | [71; 72) 't': T | 697 | 71..72 't': T |
698 | [77; 96) '{ ...d(); }': () | 698 | 77..96 '{ ...d(); }': () |
699 | [83; 84) 't': T | 699 | 83..84 't': T |
700 | [83; 93) 't.method()': U | 700 | 83..93 't.method()': U |
701 | "### | 701 | "### |
702 | ); | 702 | ); |
703 | } | 703 | } |
@@ -719,18 +719,18 @@ fn test() { | |||
719 | } | 719 | } |
720 | "#), | 720 | "#), |
721 | @r###" | 721 | @r###" |
722 | [29; 33) 'self': Self | 722 | 29..33 'self': Self |
723 | [111; 202) '{ ...(S); }': () | 723 | 111..202 '{ ...(S); }': () |
724 | [121; 122) 'x': u32 | 724 | 121..122 'x': u32 |
725 | [130; 131) 'S': S | 725 | 130..131 'S': S |
726 | [130; 138) 'S.into()': u32 | 726 | 130..138 'S.into()': u32 |
727 | [148; 149) 'y': u64 | 727 | 148..149 'y': u64 |
728 | [157; 158) 'S': S | 728 | 157..158 'S': S |
729 | [157; 165) 'S.into()': u64 | 729 | 157..165 'S.into()': u64 |
730 | [175; 176) 'z': u64 | 730 | 175..176 'z': u64 |
731 | [179; 196) 'Into::...::into': fn into<S, u64>(S) -> u64 | 731 | 179..196 'Into::...::into': fn into<S, u64>(S) -> u64 |
732 | [179; 199) 'Into::...nto(S)': u64 | 732 | 179..199 'Into::...nto(S)': u64 |
733 | [197; 198) 'S': S | 733 | 197..198 'S': S |
734 | "### | 734 | "### |
735 | ); | 735 | ); |
736 | } | 736 | } |
diff --git a/crates/ra_hir_ty/src/tests/patterns.rs b/crates/ra_hir_ty/src/tests/patterns.rs index 6ea51d5d3..af291092d 100644 --- a/crates/ra_hir_ty/src/tests/patterns.rs +++ b/crates/ra_hir_ty/src/tests/patterns.rs | |||
@@ -30,54 +30,54 @@ fn test(x: &i32) { | |||
30 | } | 30 | } |
31 | "#), | 31 | "#), |
32 | @r###" | 32 | @r###" |
33 | [9; 10) 'x': &i32 | 33 | 9..10 'x': &i32 |
34 | [18; 369) '{ ...o_x; }': () | 34 | 18..369 '{ ...o_x; }': () |
35 | [28; 29) 'y': &i32 | 35 | 28..29 'y': &i32 |
36 | [32; 33) 'x': &i32 | 36 | 32..33 'x': &i32 |
37 | [43; 45) '&z': &i32 | 37 | 43..45 '&z': &i32 |
38 | [44; 45) 'z': i32 | 38 | 44..45 'z': i32 |
39 | [48; 49) 'x': &i32 | 39 | 48..49 'x': &i32 |
40 | [59; 60) 'a': i32 | 40 | 59..60 'a': i32 |
41 | [63; 64) 'z': i32 | 41 | 63..64 'z': i32 |
42 | [74; 80) '(c, d)': (i32, &str) | 42 | 74..80 '(c, d)': (i32, &str) |
43 | [75; 76) 'c': i32 | 43 | 75..76 'c': i32 |
44 | [78; 79) 'd': &str | 44 | 78..79 'd': &str |
45 | [83; 95) '(1, "hello")': (i32, &str) | 45 | 83..95 '(1, "hello")': (i32, &str) |
46 | [84; 85) '1': i32 | 46 | 84..85 '1': i32 |
47 | [87; 94) '"hello"': &str | 47 | 87..94 '"hello"': &str |
48 | [102; 152) 'for (e... }': () | 48 | 102..152 'for (e... }': () |
49 | [106; 112) '(e, f)': ({unknown}, {unknown}) | 49 | 106..112 '(e, f)': ({unknown}, {unknown}) |
50 | [107; 108) 'e': {unknown} | 50 | 107..108 'e': {unknown} |
51 | [110; 111) 'f': {unknown} | 51 | 110..111 'f': {unknown} |
52 | [116; 125) 'some_iter': {unknown} | 52 | 116..125 'some_iter': {unknown} |
53 | [126; 152) '{ ... }': () | 53 | 126..152 '{ ... }': () |
54 | [140; 141) 'g': {unknown} | 54 | 140..141 'g': {unknown} |
55 | [144; 145) 'e': {unknown} | 55 | 144..145 'e': {unknown} |
56 | [158; 205) 'if let... }': () | 56 | 158..205 'if let... }': () |
57 | [165; 170) '[val]': [{unknown}] | 57 | 165..170 '[val]': [{unknown}] |
58 | [166; 169) 'val': {unknown} | 58 | 166..169 'val': {unknown} |
59 | [173; 176) 'opt': [{unknown}] | 59 | 173..176 'opt': [{unknown}] |
60 | [177; 205) '{ ... }': () | 60 | 177..205 '{ ... }': () |
61 | [191; 192) 'h': {unknown} | 61 | 191..192 'h': {unknown} |
62 | [195; 198) 'val': {unknown} | 62 | 195..198 'val': {unknown} |
63 | [215; 221) 'lambda': |u64, u64, i32| -> i32 | 63 | 215..221 'lambda': |u64, u64, i32| -> i32 |
64 | [224; 256) '|a: u6...b; c }': |u64, u64, i32| -> i32 | 64 | 224..256 '|a: u6...b; c }': |u64, u64, i32| -> i32 |
65 | [225; 226) 'a': u64 | 65 | 225..226 'a': u64 |
66 | [233; 234) 'b': u64 | 66 | 233..234 'b': u64 |
67 | [236; 237) 'c': i32 | 67 | 236..237 'c': i32 |
68 | [244; 256) '{ a + b; c }': i32 | 68 | 244..256 '{ a + b; c }': i32 |
69 | [246; 247) 'a': u64 | 69 | 246..247 'a': u64 |
70 | [246; 251) 'a + b': u64 | 70 | 246..251 'a + b': u64 |
71 | [250; 251) 'b': u64 | 71 | 250..251 'b': u64 |
72 | [253; 254) 'c': i32 | 72 | 253..254 'c': i32 |
73 | [267; 279) 'ref ref_to_x': &&i32 | 73 | 267..279 'ref ref_to_x': &&i32 |
74 | [282; 283) 'x': &i32 | 74 | 282..283 'x': &i32 |
75 | [293; 302) 'mut mut_x': &i32 | 75 | 293..302 'mut mut_x': &i32 |
76 | [305; 306) 'x': &i32 | 76 | 305..306 'x': &i32 |
77 | [316; 336) 'ref mu...f_to_x': &mut &i32 | 77 | 316..336 'ref mu...f_to_x': &mut &i32 |
78 | [339; 340) 'x': &i32 | 78 | 339..340 'x': &i32 |
79 | [350; 351) 'k': &mut &i32 | 79 | 350..351 'k': &mut &i32 |
80 | [354; 366) 'mut_ref_to_x': &mut &i32 | 80 | 354..366 'mut_ref_to_x': &mut &i32 |
81 | "### | 81 | "### |
82 | ); | 82 | ); |
83 | } | 83 | } |
@@ -97,47 +97,47 @@ fn test(x: &i32) { | |||
97 | } | 97 | } |
98 | "#, true), | 98 | "#, true), |
99 | @r###" | 99 | @r###" |
100 | [18; 29) '{ loop {} }': T | 100 | 18..29 '{ loop {} }': T |
101 | [20; 27) 'loop {}': ! | 101 | 20..27 'loop {}': ! |
102 | [25; 27) '{}': () | 102 | 25..27 '{}': () |
103 | [38; 39) 'x': &i32 | 103 | 38..39 'x': &i32 |
104 | [47; 209) '{ ...) {} }': () | 104 | 47..209 '{ ...) {} }': () |
105 | [53; 76) 'if let...y() {}': () | 105 | 53..76 'if let...y() {}': () |
106 | [60; 65) '"foo"': &str | 106 | 60..65 '"foo"': &str |
107 | [60; 65) '"foo"': &str | 107 | 60..65 '"foo"': &str |
108 | [68; 71) 'any': fn any<&str>() -> &str | 108 | 68..71 'any': fn any<&str>() -> &str |
109 | [68; 73) 'any()': &str | 109 | 68..73 'any()': &str |
110 | [74; 76) '{}': () | 110 | 74..76 '{}': () |
111 | [81; 100) 'if let...y() {}': () | 111 | 81..100 'if let...y() {}': () |
112 | [88; 89) '1': i32 | 112 | 88..89 '1': i32 |
113 | [88; 89) '1': i32 | 113 | 88..89 '1': i32 |
114 | [92; 95) 'any': fn any<i32>() -> i32 | 114 | 92..95 'any': fn any<i32>() -> i32 |
115 | [92; 97) 'any()': i32 | 115 | 92..97 'any()': i32 |
116 | [98; 100) '{}': () | 116 | 98..100 '{}': () |
117 | [105; 127) 'if let...y() {}': () | 117 | 105..127 'if let...y() {}': () |
118 | [112; 116) '1u32': u32 | 118 | 112..116 '1u32': u32 |
119 | [112; 116) '1u32': u32 | 119 | 112..116 '1u32': u32 |
120 | [119; 122) 'any': fn any<u32>() -> u32 | 120 | 119..122 'any': fn any<u32>() -> u32 |
121 | [119; 124) 'any()': u32 | 121 | 119..124 'any()': u32 |
122 | [125; 127) '{}': () | 122 | 125..127 '{}': () |
123 | [132; 154) 'if let...y() {}': () | 123 | 132..154 'if let...y() {}': () |
124 | [139; 143) '1f32': f32 | 124 | 139..143 '1f32': f32 |
125 | [139; 143) '1f32': f32 | 125 | 139..143 '1f32': f32 |
126 | [146; 149) 'any': fn any<f32>() -> f32 | 126 | 146..149 'any': fn any<f32>() -> f32 |
127 | [146; 151) 'any()': f32 | 127 | 146..151 'any()': f32 |
128 | [152; 154) '{}': () | 128 | 152..154 '{}': () |
129 | [159; 180) 'if let...y() {}': () | 129 | 159..180 'if let...y() {}': () |
130 | [166; 169) '1.0': f64 | 130 | 166..169 '1.0': f64 |
131 | [166; 169) '1.0': f64 | 131 | 166..169 '1.0': f64 |
132 | [172; 175) 'any': fn any<f64>() -> f64 | 132 | 172..175 'any': fn any<f64>() -> f64 |
133 | [172; 177) 'any()': f64 | 133 | 172..177 'any()': f64 |
134 | [178; 180) '{}': () | 134 | 178..180 '{}': () |
135 | [185; 207) 'if let...y() {}': () | 135 | 185..207 'if let...y() {}': () |
136 | [192; 196) 'true': bool | 136 | 192..196 'true': bool |
137 | [192; 196) 'true': bool | 137 | 192..196 'true': bool |
138 | [199; 202) 'any': fn any<bool>() -> bool | 138 | 199..202 'any': fn any<bool>() -> bool |
139 | [199; 204) 'any()': bool | 139 | 199..204 'any()': bool |
140 | [205; 207) '{}': () | 140 | 205..207 '{}': () |
141 | "### | 141 | "### |
142 | ); | 142 | ); |
143 | } | 143 | } |
@@ -152,16 +152,16 @@ fn test(x: &i32) { | |||
152 | } | 152 | } |
153 | "#, true), | 153 | "#, true), |
154 | @r###" | 154 | @r###" |
155 | [9; 10) 'x': &i32 | 155 | 9..10 'x': &i32 |
156 | [18; 76) '{ ...2 {} }': () | 156 | 18..76 '{ ...2 {} }': () |
157 | [24; 46) 'if let...u32 {}': () | 157 | 24..46 'if let...u32 {}': () |
158 | [31; 36) '1..76': u32 | 158 | 31..36 '1..76': u32 |
159 | [39; 43) '2u32': u32 | 159 | 39..43 '2u32': u32 |
160 | [44; 46) '{}': () | 160 | 44..46 '{}': () |
161 | [51; 74) 'if let...u32 {}': () | 161 | 51..74 'if let...u32 {}': () |
162 | [58; 64) '1..=76': u32 | 162 | 58..64 '1..=76': u32 |
163 | [67; 71) '2u32': u32 | 163 | 67..71 '2u32': u32 |
164 | [72; 74) '{}': () | 164 | 72..74 '{}': () |
165 | "### | 165 | "### |
166 | ); | 166 | ); |
167 | } | 167 | } |
@@ -178,19 +178,19 @@ fn test() { | |||
178 | } | 178 | } |
179 | "#), | 179 | "#), |
180 | @r###" | 180 | @r###" |
181 | [28; 79) '{ ...(1); }': () | 181 | 28..79 '{ ...(1); }': () |
182 | [38; 42) 'A(n)': A<i32> | 182 | 38..42 'A(n)': A<i32> |
183 | [40; 41) 'n': &i32 | 183 | 40..41 'n': &i32 |
184 | [45; 50) '&A(1)': &A<i32> | 184 | 45..50 '&A(1)': &A<i32> |
185 | [46; 47) 'A': A<i32>(i32) -> A<i32> | 185 | 46..47 'A': A<i32>(i32) -> A<i32> |
186 | [46; 50) 'A(1)': A<i32> | 186 | 46..50 'A(1)': A<i32> |
187 | [48; 49) '1': i32 | 187 | 48..49 '1': i32 |
188 | [60; 64) 'A(n)': A<i32> | 188 | 60..64 'A(n)': A<i32> |
189 | [62; 63) 'n': &mut i32 | 189 | 62..63 'n': &mut i32 |
190 | [67; 76) '&mut A(1)': &mut A<i32> | 190 | 67..76 '&mut A(1)': &mut A<i32> |
191 | [72; 73) 'A': A<i32>(i32) -> A<i32> | 191 | 72..73 'A': A<i32>(i32) -> A<i32> |
192 | [72; 76) 'A(1)': A<i32> | 192 | 72..76 'A(1)': A<i32> |
193 | [74; 75) '1': i32 | 193 | 74..75 '1': i32 |
194 | "### | 194 | "### |
195 | ); | 195 | ); |
196 | } | 196 | } |
@@ -206,18 +206,18 @@ fn test() { | |||
206 | } | 206 | } |
207 | "#), | 207 | "#), |
208 | @r###" | 208 | @r###" |
209 | [11; 57) '{ ...= v; }': () | 209 | 11..57 '{ ...= v; }': () |
210 | [21; 22) 'v': &(i32, &i32) | 210 | 21..22 'v': &(i32, &i32) |
211 | [25; 33) '&(1, &2)': &(i32, &i32) | 211 | 25..33 '&(1, &2)': &(i32, &i32) |
212 | [26; 33) '(1, &2)': (i32, &i32) | 212 | 26..33 '(1, &2)': (i32, &i32) |
213 | [27; 28) '1': i32 | 213 | 27..28 '1': i32 |
214 | [30; 32) '&2': &i32 | 214 | 30..32 '&2': &i32 |
215 | [31; 32) '2': i32 | 215 | 31..32 '2': i32 |
216 | [43; 50) '(_, &w)': (i32, &i32) | 216 | 43..50 '(_, &w)': (i32, &i32) |
217 | [44; 45) '_': i32 | 217 | 44..45 '_': i32 |
218 | [47; 49) '&w': &i32 | 218 | 47..49 '&w': &i32 |
219 | [48; 49) 'w': i32 | 219 | 48..49 'w': i32 |
220 | [53; 54) 'v': &(i32, &i32) | 220 | 53..54 'v': &(i32, &i32) |
221 | "### | 221 | "### |
222 | ); | 222 | ); |
223 | } | 223 | } |
@@ -242,30 +242,30 @@ fn test() { | |||
242 | } | 242 | } |
243 | "#), | 243 | "#), |
244 | @r###" | 244 | @r###" |
245 | [11; 210) '{ ... } }': () | 245 | 11..210 '{ ... } }': () |
246 | [21; 26) 'slice': &[f64] | 246 | 21..26 'slice': &[f64] |
247 | [37; 43) '&[0.0]': &[f64; _] | 247 | 37..43 '&[0.0]': &[f64; _] |
248 | [38; 43) '[0.0]': [f64; _] | 248 | 38..43 '[0.0]': [f64; _] |
249 | [39; 42) '0.0': f64 | 249 | 39..42 '0.0': f64 |
250 | [49; 208) 'match ... }': () | 250 | 49..208 'match ... }': () |
251 | [55; 60) 'slice': &[f64] | 251 | 55..60 'slice': &[f64] |
252 | [71; 74) '&[]': &[f64] | 252 | 71..74 '&[]': &[f64] |
253 | [72; 74) '[]': [f64] | 253 | 72..74 '[]': [f64] |
254 | [78; 80) '{}': () | 254 | 78..80 '{}': () |
255 | [90; 94) '&[a]': &[f64] | 255 | 90..94 '&[a]': &[f64] |
256 | [91; 94) '[a]': [f64] | 256 | 91..94 '[a]': [f64] |
257 | [92; 93) 'a': f64 | 257 | 92..93 'a': f64 |
258 | [98; 124) '{ ... }': () | 258 | 98..124 '{ ... }': () |
259 | [112; 113) 'a': f64 | 259 | 112..113 'a': f64 |
260 | [134; 141) '&[b, c]': &[f64] | 260 | 134..141 '&[b, c]': &[f64] |
261 | [135; 141) '[b, c]': [f64] | 261 | 135..141 '[b, c]': [f64] |
262 | [136; 137) 'b': f64 | 262 | 136..137 'b': f64 |
263 | [139; 140) 'c': f64 | 263 | 139..140 'c': f64 |
264 | [145; 186) '{ ... }': () | 264 | 145..186 '{ ... }': () |
265 | [159; 160) 'b': f64 | 265 | 159..160 'b': f64 |
266 | [174; 175) 'c': f64 | 266 | 174..175 'c': f64 |
267 | [195; 196) '_': &[f64] | 267 | 195..196 '_': &[f64] |
268 | [200; 202) '{}': () | 268 | 200..202 '{}': () |
269 | "### | 269 | "### |
270 | ); | 270 | ); |
271 | } | 271 | } |
@@ -288,25 +288,25 @@ fn test() { | |||
288 | } | 288 | } |
289 | "#), | 289 | "#), |
290 | @r###" | 290 | @r###" |
291 | [11; 180) '{ ... } }': () | 291 | 11..180 '{ ... } }': () |
292 | [21; 24) 'arr': [f64; _] | 292 | 21..24 'arr': [f64; _] |
293 | [37; 47) '[0.0, 1.0]': [f64; _] | 293 | 37..47 '[0.0, 1.0]': [f64; _] |
294 | [38; 41) '0.0': f64 | 294 | 38..41 '0.0': f64 |
295 | [43; 46) '1.0': f64 | 295 | 43..46 '1.0': f64 |
296 | [53; 178) 'match ... }': () | 296 | 53..178 'match ... }': () |
297 | [59; 62) 'arr': [f64; _] | 297 | 59..62 'arr': [f64; _] |
298 | [73; 81) '[1.0, a]': [f64; _] | 298 | 73..81 '[1.0, a]': [f64; _] |
299 | [74; 77) '1.0': f64 | 299 | 74..77 '1.0': f64 |
300 | [74; 77) '1.0': f64 | 300 | 74..77 '1.0': f64 |
301 | [79; 80) 'a': f64 | 301 | 79..80 'a': f64 |
302 | [85; 111) '{ ... }': () | 302 | 85..111 '{ ... }': () |
303 | [99; 100) 'a': f64 | 303 | 99..100 'a': f64 |
304 | [121; 127) '[b, c]': [f64; _] | 304 | 121..127 '[b, c]': [f64; _] |
305 | [122; 123) 'b': f64 | 305 | 122..123 'b': f64 |
306 | [125; 126) 'c': f64 | 306 | 125..126 'c': f64 |
307 | [131; 172) '{ ... }': () | 307 | 131..172 '{ ... }': () |
308 | [145; 146) 'b': f64 | 308 | 145..146 'b': f64 |
309 | [160; 161) 'c': f64 | 309 | 160..161 'c': f64 |
310 | "### | 310 | "### |
311 | ); | 311 | ); |
312 | } | 312 | } |
@@ -339,31 +339,31 @@ fn test() { | |||
339 | } | 339 | } |
340 | "#), | 340 | "#), |
341 | @r###" | 341 | @r###" |
342 | [68; 289) '{ ... d; }': () | 342 | 68..289 '{ ... d; }': () |
343 | [78; 79) 'e': E | 343 | 78..79 'e': E |
344 | [82; 95) 'E::A { x: 3 }': E | 344 | 82..95 'E::A { x: 3 }': E |
345 | [92; 93) '3': usize | 345 | 92..93 '3': usize |
346 | [106; 113) 'S(y, z)': S | 346 | 106..113 'S(y, z)': S |
347 | [108; 109) 'y': u32 | 347 | 108..109 'y': u32 |
348 | [111; 112) 'z': E | 348 | 111..112 'z': E |
349 | [116; 119) 'foo': S | 349 | 116..119 'foo': S |
350 | [129; 148) 'E::A {..._var }': E | 350 | 129..148 'E::A {..._var }': E |
351 | [139; 146) 'new_var': usize | 351 | 139..146 'new_var': usize |
352 | [151; 152) 'e': E | 352 | 151..152 'e': E |
353 | [159; 245) 'match ... }': usize | 353 | 159..245 'match ... }': usize |
354 | [165; 166) 'e': E | 354 | 165..166 'e': E |
355 | [177; 187) 'E::A { x }': E | 355 | 177..187 'E::A { x }': E |
356 | [184; 185) 'x': usize | 356 | 184..185 'x': usize |
357 | [191; 192) 'x': usize | 357 | 191..192 'x': usize |
358 | [202; 206) 'E::B': E | 358 | 202..206 'E::B': E |
359 | [210; 213) 'foo': bool | 359 | 210..213 'foo': bool |
360 | [217; 218) '1': usize | 360 | 217..218 '1': usize |
361 | [228; 232) 'E::B': E | 361 | 228..232 'E::B': E |
362 | [236; 238) '10': usize | 362 | 236..238 '10': usize |
363 | [256; 275) 'ref d ...{ .. }': &E | 363 | 256..275 'ref d ...{ .. }': &E |
364 | [264; 275) 'E::A { .. }': E | 364 | 264..275 'E::A { .. }': E |
365 | [278; 279) 'e': E | 365 | 278..279 'e': E |
366 | [285; 286) 'd': &E | 366 | 285..286 'd': &E |
367 | "### | 367 | "### |
368 | ); | 368 | ); |
369 | } | 369 | } |
@@ -391,23 +391,23 @@ fn test(a1: A<u32>, o: Option<u64>) { | |||
391 | } | 391 | } |
392 | "#), | 392 | "#), |
393 | @r###" | 393 | @r###" |
394 | [79; 81) 'a1': A<u32> | 394 | 79..81 'a1': A<u32> |
395 | [91; 92) 'o': Option<u64> | 395 | 91..92 'o': Option<u64> |
396 | [107; 244) '{ ... }; }': () | 396 | 107..244 '{ ... }; }': () |
397 | [117; 128) 'A { x: x2 }': A<u32> | 397 | 117..128 'A { x: x2 }': A<u32> |
398 | [124; 126) 'x2': u32 | 398 | 124..126 'x2': u32 |
399 | [131; 133) 'a1': A<u32> | 399 | 131..133 'a1': A<u32> |
400 | [143; 161) 'A::<i6...: x3 }': A<i64> | 400 | 143..161 'A::<i6...: x3 }': A<i64> |
401 | [157; 159) 'x3': i64 | 401 | 157..159 'x3': i64 |
402 | [164; 174) 'A { x: 1 }': A<i64> | 402 | 164..174 'A { x: 1 }': A<i64> |
403 | [171; 172) '1': i64 | 403 | 171..172 '1': i64 |
404 | [180; 241) 'match ... }': u64 | 404 | 180..241 'match ... }': u64 |
405 | [186; 187) 'o': Option<u64> | 405 | 186..187 'o': Option<u64> |
406 | [198; 213) 'Option::Some(t)': Option<u64> | 406 | 198..213 'Option::Some(t)': Option<u64> |
407 | [211; 212) 't': u64 | 407 | 211..212 't': u64 |
408 | [217; 218) 't': u64 | 408 | 217..218 't': u64 |
409 | [228; 229) '_': Option<u64> | 409 | 228..229 '_': Option<u64> |
410 | [233; 234) '1': u64 | 410 | 233..234 '1': u64 |
411 | "### | 411 | "### |
412 | ); | 412 | ); |
413 | } | 413 | } |
@@ -431,27 +431,27 @@ fn test() { | |||
431 | } | 431 | } |
432 | "#, true), | 432 | "#, true), |
433 | @r###" | 433 | @r###" |
434 | [74; 75) '1': usize | 434 | 74..75 '1': usize |
435 | [88; 310) '{ ...atch }': () | 435 | 88..310 '{ ...atch }': () |
436 | [98; 99) 'a': Option<u32> | 436 | 98..99 'a': Option<u32> |
437 | [115; 119) 'None': Option<u32> | 437 | 115..119 'None': Option<u32> |
438 | [129; 130) 'b': Option<i64> | 438 | 129..130 'b': Option<i64> |
439 | [146; 183) 'match ... }': Option<i64> | 439 | 146..183 'match ... }': Option<i64> |
440 | [152; 153) 'a': Option<u32> | 440 | 152..153 'a': Option<u32> |
441 | [164; 168) 'None': Option<u32> | 441 | 164..168 'None': Option<u32> |
442 | [172; 176) 'None': Option<i64> | 442 | 172..176 'None': Option<i64> |
443 | [193; 194) '_': () | 443 | 193..194 '_': () |
444 | [201; 224) 'match ... Foo }': Foo | 444 | 201..224 'match ... Foo }': Foo |
445 | [207; 209) '()': () | 445 | 207..209 '()': () |
446 | [212; 215) 'Foo': Foo | 446 | 212..215 'Foo': Foo |
447 | [219; 222) 'Foo': Foo | 447 | 219..222 'Foo': Foo |
448 | [255; 256) '_': () | 448 | 255..256 '_': () |
449 | [263; 286) 'match ... Bar }': usize | 449 | 263..286 'match ... Bar }': usize |
450 | [269; 271) '()': () | 450 | 269..271 '()': () |
451 | [274; 277) 'Bar': usize | 451 | 274..277 'Bar': usize |
452 | [281; 284) 'Bar': usize | 452 | 281..284 'Bar': usize |
453 | [201; 224): expected (), got Foo | 453 | 201..224: expected (), got Foo |
454 | [263; 286): expected (), got usize | 454 | 263..286: expected (), got usize |
455 | "### | 455 | "### |
456 | ); | 456 | ); |
457 | } | 457 | } |
@@ -469,15 +469,15 @@ fn main() { | |||
469 | } | 469 | } |
470 | } | 470 | } |
471 | "#), @" | 471 | "#), @" |
472 | [28; 32) 'self': &S | 472 | 28..32 'self': &S |
473 | [42; 51) '{ false }': bool | 473 | 42..51 '{ false }': bool |
474 | [44; 49) 'false': bool | 474 | 44..49 'false': bool |
475 | [65; 116) '{ ... } }': () | 475 | 65..116 '{ ... } }': () |
476 | [71; 114) 'match ... }': () | 476 | 71..114 'match ... }': () |
477 | [77; 78) 'S': S | 477 | 77..78 'S': S |
478 | [89; 90) 's': S | 478 | 89..90 's': S |
479 | [94; 95) 's': S | 479 | 94..95 's': S |
480 | [94; 101) 's.foo()': bool | 480 | 94..101 's.foo()': bool |
481 | [105; 107) '()': () | 481 | 105..107 '()': () |
482 | ") | 482 | ") |
483 | } | 483 | } |
diff --git a/crates/ra_hir_ty/src/tests/regression.rs b/crates/ra_hir_ty/src/tests/regression.rs index 61a6801fc..8a1292c7a 100644 --- a/crates/ra_hir_ty/src/tests/regression.rs +++ b/crates/ra_hir_ty/src/tests/regression.rs | |||
@@ -14,11 +14,11 @@ fn test() { | |||
14 | } | 14 | } |
15 | "#), | 15 | "#), |
16 | @r###" | 16 | @r###" |
17 | [11; 37) '{ l... {}; }': () | 17 | 11..37 '{ l... {}; }': () |
18 | [20; 21) 'x': () | 18 | 20..21 'x': () |
19 | [24; 34) 'if true {}': () | 19 | 24..34 'if true {}': () |
20 | [27; 31) 'true': bool | 20 | 27..31 'true': bool |
21 | [32; 34) '{}': () | 21 | 32..34 '{}': () |
22 | "### | 22 | "### |
23 | ); | 23 | ); |
24 | } | 24 | } |
@@ -34,10 +34,10 @@ fn test(x: X) { | |||
34 | } | 34 | } |
35 | "#), | 35 | "#), |
36 | @r###" | 36 | @r###" |
37 | [20; 21) 'x': X | 37 | 20..21 'x': X |
38 | [26; 47) '{ ...eld; }': () | 38 | 26..47 '{ ...eld; }': () |
39 | [32; 33) 'x': X | 39 | 32..33 'x': X |
40 | [32; 44) 'x.some_field': {unknown} | 40 | 32..44 'x.some_field': {unknown} |
41 | "### | 41 | "### |
42 | ); | 42 | ); |
43 | } | 43 | } |
@@ -55,14 +55,14 @@ fn test() { | |||
55 | } | 55 | } |
56 | "#), | 56 | "#), |
57 | @r###" | 57 | @r###" |
58 | [11; 89) '{ ... } }': () | 58 | 11..89 '{ ... } }': () |
59 | [17; 21) 'X {}': {unknown} | 59 | 17..21 'X {}': {unknown} |
60 | [27; 87) 'match ... }': () | 60 | 27..87 'match ... }': () |
61 | [33; 34) 'x': {unknown} | 61 | 33..34 'x': {unknown} |
62 | [45; 52) 'A::B {}': {unknown} | 62 | 45..52 'A::B {}': {unknown} |
63 | [56; 58) '()': () | 63 | 56..58 '()': () |
64 | [68; 74) 'A::Y()': {unknown} | 64 | 68..74 'A::Y()': {unknown} |
65 | [78; 80) '()': () | 65 | 78..80 '()': () |
66 | "### | 66 | "### |
67 | ); | 67 | ); |
68 | } | 68 | } |
@@ -77,12 +77,12 @@ fn quux() { | |||
77 | } | 77 | } |
78 | "#), | 78 | "#), |
79 | @r###" | 79 | @r###" |
80 | [11; 41) '{ ...+ y; }': () | 80 | 11..41 '{ ...+ y; }': () |
81 | [21; 22) 'y': i32 | 81 | 21..22 'y': i32 |
82 | [25; 27) '92': i32 | 82 | 25..27 '92': i32 |
83 | [33; 34) '1': i32 | 83 | 33..34 '1': i32 |
84 | [33; 38) '1 + y': i32 | 84 | 33..38 '1 + y': i32 |
85 | [37; 38) 'y': i32 | 85 | 37..38 'y': i32 |
86 | "### | 86 | "### |
87 | ); | 87 | ); |
88 | } | 88 | } |
@@ -99,13 +99,13 @@ fn test() { | |||
99 | } | 99 | } |
100 | "#), | 100 | "#), |
101 | @r###" | 101 | @r###" |
102 | [11; 48) '{ ...&y]; }': () | 102 | 11..48 '{ ...&y]; }': () |
103 | [21; 22) 'y': &{unknown} | 103 | 21..22 'y': &{unknown} |
104 | [25; 32) 'unknown': &{unknown} | 104 | 25..32 'unknown': &{unknown} |
105 | [38; 45) '[y, &y]': [&&{unknown}; _] | 105 | 38..45 '[y, &y]': [&&{unknown}; _] |
106 | [39; 40) 'y': &{unknown} | 106 | 39..40 'y': &{unknown} |
107 | [42; 44) '&y': &&{unknown} | 107 | 42..44 '&y': &&{unknown} |
108 | [43; 44) 'y': &{unknown} | 108 | 43..44 'y': &{unknown} |
109 | "### | 109 | "### |
110 | ); | 110 | ); |
111 | } | 111 | } |
@@ -123,20 +123,20 @@ fn test() { | |||
123 | } | 123 | } |
124 | "#), | 124 | "#), |
125 | @r###" | 125 | @r###" |
126 | [11; 80) '{ ...x)]; }': () | 126 | 11..80 '{ ...x)]; }': () |
127 | [21; 22) 'x': &&{unknown} | 127 | 21..22 'x': &&{unknown} |
128 | [25; 32) 'unknown': &&{unknown} | 128 | 25..32 'unknown': &&{unknown} |
129 | [42; 43) 'y': &&{unknown} | 129 | 42..43 'y': &&{unknown} |
130 | [46; 53) 'unknown': &&{unknown} | 130 | 46..53 'unknown': &&{unknown} |
131 | [59; 77) '[(x, y..., &x)]': [(&&&{unknown}, &&&{unknown}); _] | 131 | 59..77 '[(x, y..., &x)]': [(&&&{unknown}, &&&{unknown}); _] |
132 | [60; 66) '(x, y)': (&&&{unknown}, &&&{unknown}) | 132 | 60..66 '(x, y)': (&&&{unknown}, &&&{unknown}) |
133 | [61; 62) 'x': &&{unknown} | 133 | 61..62 'x': &&{unknown} |
134 | [64; 65) 'y': &&{unknown} | 134 | 64..65 'y': &&{unknown} |
135 | [68; 76) '(&y, &x)': (&&&{unknown}, &&&{unknown}) | 135 | 68..76 '(&y, &x)': (&&&{unknown}, &&&{unknown}) |
136 | [69; 71) '&y': &&&{unknown} | 136 | 69..71 '&y': &&&{unknown} |
137 | [70; 71) 'y': &&{unknown} | 137 | 70..71 'y': &&{unknown} |
138 | [73; 75) '&x': &&&{unknown} | 138 | 73..75 '&x': &&&{unknown} |
139 | [74; 75) 'x': &&{unknown} | 139 | 74..75 'x': &&{unknown} |
140 | "### | 140 | "### |
141 | ); | 141 | ); |
142 | } | 142 | } |
@@ -158,12 +158,12 @@ fn write() { | |||
158 | } | 158 | } |
159 | "#), | 159 | "#), |
160 | @r###" | 160 | @r###" |
161 | [54; 139) '{ ... } }': () | 161 | 54..139 '{ ... } }': () |
162 | [60; 137) 'match ... }': () | 162 | 60..137 'match ... }': () |
163 | [66; 83) 'someth...nknown': Maybe<{unknown}> | 163 | 66..83 'someth...nknown': Maybe<{unknown}> |
164 | [94; 124) 'Maybe:...thing)': Maybe<{unknown}> | 164 | 94..124 'Maybe:...thing)': Maybe<{unknown}> |
165 | [106; 123) 'ref mu...ething': &mut {unknown} | 165 | 106..123 'ref mu...ething': &mut {unknown} |
166 | [128; 130) '()': () | 166 | 128..130 '()': () |
167 | "### | 167 | "### |
168 | ); | 168 | ); |
169 | } | 169 | } |
@@ -179,13 +179,13 @@ fn test_line_buffer() { | |||
179 | } | 179 | } |
180 | "#), | 180 | "#), |
181 | @r###" | 181 | @r###" |
182 | [23; 53) '{ ...n']; }': () | 182 | 23..53 '{ ...n']; }': () |
183 | [29; 50) '&[0, b...b'\n']': &[u8; _] | 183 | 29..50 '&[0, b...b'\n']': &[u8; _] |
184 | [30; 50) '[0, b'...b'\n']': [u8; _] | 184 | 30..50 '[0, b'...b'\n']': [u8; _] |
185 | [31; 32) '0': u8 | 185 | 31..32 '0': u8 |
186 | [34; 39) 'b'\n'': u8 | 186 | 34..39 'b'\n'': u8 |
187 | [41; 42) '1': u8 | 187 | 41..42 '1': u8 |
188 | [44; 49) 'b'\n'': u8 | 188 | 44..49 'b'\n'': u8 |
189 | "### | 189 | "### |
190 | ); | 190 | ); |
191 | } | 191 | } |
@@ -202,14 +202,14 @@ pub fn compute() { | |||
202 | } | 202 | } |
203 | "#), | 203 | "#), |
204 | @r###" | 204 | @r###" |
205 | [18; 108) '{ ... } }': () | 205 | 18..108 '{ ... } }': () |
206 | [24; 106) 'match ... }': () | 206 | 24..106 'match ... }': () |
207 | [30; 37) 'nope!()': {unknown} | 207 | 30..37 'nope!()': {unknown} |
208 | [48; 94) 'SizeSk...tail }': {unknown} | 208 | 48..94 'SizeSk...tail }': {unknown} |
209 | [82; 86) 'true': bool | 209 | 82..86 'true': bool |
210 | [82; 86) 'true': bool | 210 | 82..86 'true': bool |
211 | [88; 92) 'tail': {unknown} | 211 | 88..92 'tail': {unknown} |
212 | [98; 100) '{}': () | 212 | 98..100 '{}': () |
213 | "### | 213 | "### |
214 | ); | 214 | ); |
215 | } | 215 | } |
@@ -226,14 +226,14 @@ pub fn primitive_type() { | |||
226 | } | 226 | } |
227 | "#), | 227 | "#), |
228 | @r###" | 228 | @r###" |
229 | [25; 106) '{ ... } }': () | 229 | 25..106 '{ ... } }': () |
230 | [31; 104) 'match ... }': () | 230 | 31..104 'match ... }': () |
231 | [37; 42) '*self': {unknown} | 231 | 37..42 '*self': {unknown} |
232 | [38; 42) 'self': {unknown} | 232 | 38..42 'self': {unknown} |
233 | [53; 91) 'Borrow...), ..}': {unknown} | 233 | 53..91 'Borrow...), ..}': {unknown} |
234 | [74; 86) 'Primitive(p)': {unknown} | 234 | 74..86 'Primitive(p)': {unknown} |
235 | [84; 85) 'p': {unknown} | 235 | 84..85 'p': {unknown} |
236 | [95; 97) '{}': () | 236 | 95..97 '{}': () |
237 | "### | 237 | "### |
238 | ); | 238 | ); |
239 | } | 239 | } |
@@ -260,29 +260,29 @@ fn extra_compiler_flags() { | |||
260 | } | 260 | } |
261 | "#), | 261 | "#), |
262 | @r###" | 262 | @r###" |
263 | [27; 323) '{ ... } }': () | 263 | 27..323 '{ ... } }': () |
264 | [33; 321) 'for co... }': () | 264 | 33..321 'for co... }': () |
265 | [37; 44) 'content': &{unknown} | 265 | 37..44 'content': &{unknown} |
266 | [48; 61) 'doesnt_matter': {unknown} | 266 | 48..61 'doesnt_matter': {unknown} |
267 | [62; 321) '{ ... }': () | 267 | 62..321 '{ ... }': () |
268 | [76; 80) 'name': &&{unknown} | 268 | 76..80 'name': &&{unknown} |
269 | [83; 167) 'if doe... }': &&{unknown} | 269 | 83..167 'if doe... }': &&{unknown} |
270 | [86; 99) 'doesnt_matter': bool | 270 | 86..99 'doesnt_matter': bool |
271 | [100; 129) '{ ... }': &&{unknown} | 271 | 100..129 '{ ... }': &&{unknown} |
272 | [114; 119) 'first': &&{unknown} | 272 | 114..119 'first': &&{unknown} |
273 | [135; 167) '{ ... }': &&{unknown} | 273 | 135..167 '{ ... }': &&{unknown} |
274 | [149; 157) '&content': &&{unknown} | 274 | 149..157 '&content': &&{unknown} |
275 | [150; 157) 'content': &{unknown} | 275 | 150..157 'content': &{unknown} |
276 | [182; 189) 'content': &{unknown} | 276 | 182..189 'content': &{unknown} |
277 | [192; 314) 'if ICE... }': &{unknown} | 277 | 192..314 'if ICE... }': &{unknown} |
278 | [195; 232) 'ICE_RE..._VALUE': {unknown} | 278 | 195..232 'ICE_RE..._VALUE': {unknown} |
279 | [195; 248) 'ICE_RE...&name)': bool | 279 | 195..248 'ICE_RE...&name)': bool |
280 | [242; 247) '&name': &&&{unknown} | 280 | 242..247 '&name': &&&{unknown} |
281 | [243; 247) 'name': &&{unknown} | 281 | 243..247 'name': &&{unknown} |
282 | [249; 277) '{ ... }': &&{unknown} | 282 | 249..277 '{ ... }': &&{unknown} |
283 | [263; 267) 'name': &&{unknown} | 283 | 263..267 'name': &&{unknown} |
284 | [283; 314) '{ ... }': &{unknown} | 284 | 283..314 '{ ... }': &{unknown} |
285 | [297; 304) 'content': &{unknown} | 285 | 297..304 'content': &{unknown} |
286 | "### | 286 | "### |
287 | ); | 287 | ); |
288 | } | 288 | } |
@@ -303,11 +303,11 @@ fn test<R>(query_response: Canonical<QueryResponse<R>>) { | |||
303 | } | 303 | } |
304 | "#), | 304 | "#), |
305 | @r###" | 305 | @r###" |
306 | [92; 106) 'query_response': Canonical<QueryResponse<R>> | 306 | 92..106 'query_response': Canonical<QueryResponse<R>> |
307 | [137; 167) '{ ...lue; }': () | 307 | 137..167 '{ ...lue; }': () |
308 | [143; 164) '&query....value': &QueryResponse<R> | 308 | 143..164 '&query....value': &QueryResponse<R> |
309 | [144; 158) 'query_response': Canonical<QueryResponse<R>> | 309 | 144..158 'query_response': Canonical<QueryResponse<R>> |
310 | [144; 164) 'query_....value': QueryResponse<R> | 310 | 144..164 'query_....value': QueryResponse<R> |
311 | "### | 311 | "### |
312 | ); | 312 | ); |
313 | } | 313 | } |
@@ -322,9 +322,9 @@ fn test() { | |||
322 | } | 322 | } |
323 | "#), | 323 | "#), |
324 | @r###" | 324 | @r###" |
325 | ![0; 4) '0u32': u32 | 325 | !0..4 '0u32': u32 |
326 | [45; 70) '{ ...()); }': () | 326 | 45..70 '{ ...()); }': () |
327 | [55; 56) 'a': u32 | 327 | 55..56 'a': u32 |
328 | "### | 328 | "### |
329 | ); | 329 | ); |
330 | } | 330 | } |
@@ -345,10 +345,10 @@ pub fn main_loop() { | |||
345 | } | 345 | } |
346 | "#), | 346 | "#), |
347 | @r###" | 347 | @r###" |
348 | [144; 146) '{}': () | 348 | 144..146 '{}': () |
349 | [169; 198) '{ ...t(); }': () | 349 | 169..198 '{ ...t(); }': () |
350 | [175; 193) 'FxHash...efault': fn default<{unknown}, FxHasher>() -> HashSet<{unknown}, FxHasher> | 350 | 175..193 'FxHash...efault': fn default<{unknown}, FxHasher>() -> HashSet<{unknown}, FxHasher> |
351 | [175; 195) 'FxHash...ault()': HashSet<{unknown}, FxHasher> | 351 | 175..195 'FxHash...ault()': HashSet<{unknown}, FxHasher> |
352 | "### | 352 | "### |
353 | ); | 353 | ); |
354 | } | 354 | } |
@@ -375,13 +375,13 @@ fn issue_2669() { | |||
375 | }"# | 375 | }"# |
376 | ), | 376 | ), |
377 | @r###" | 377 | @r###" |
378 | [147; 262) '{ ... }': () | 378 | 147..262 '{ ... }': () |
379 | [161; 164) 'end': fn end<{unknown}>() | 379 | 161..164 'end': fn end<{unknown}>() |
380 | [161; 166) 'end()': () | 380 | 161..166 'end()': () |
381 | [199; 252) '{ ... }': () | 381 | 199..252 '{ ... }': () |
382 | [221; 223) '_x': ! | 382 | 221..223 '_x': ! |
383 | [230; 237) 'loop {}': ! | 383 | 230..237 'loop {}': ! |
384 | [235; 237) '{}': () | 384 | 235..237 '{}': () |
385 | "### | 385 | "### |
386 | ) | 386 | ) |
387 | } | 387 | } |
@@ -396,9 +396,9 @@ fn test() { | |||
396 | } | 396 | } |
397 | "#), | 397 | "#), |
398 | @r###" | 398 | @r###" |
399 | [26; 53) '{ ...oo() }': () | 399 | 26..53 '{ ...oo() }': () |
400 | [32; 49) '<Trait...>::foo': {unknown} | 400 | 32..49 '<Trait...>::foo': {unknown} |
401 | [32; 51) '<Trait...:foo()': () | 401 | 32..51 '<Trait...:foo()': () |
402 | "### | 402 | "### |
403 | ); | 403 | ); |
404 | } | 404 | } |
@@ -496,13 +496,13 @@ fn foo(params: &[usize]) { | |||
496 | } | 496 | } |
497 | "#), | 497 | "#), |
498 | @r###" | 498 | @r###" |
499 | [8; 14) 'params': &[usize] | 499 | 8..14 'params': &[usize] |
500 | [26; 81) '{ ... } }': () | 500 | 26..81 '{ ... } }': () |
501 | [32; 79) 'match ... }': () | 501 | 32..79 'match ... }': () |
502 | [38; 44) 'params': &[usize] | 502 | 38..44 'params': &[usize] |
503 | [55; 67) '[ps @ .., _]': [usize] | 503 | 55..67 '[ps @ .., _]': [usize] |
504 | [65; 66) '_': usize | 504 | 65..66 '_': usize |
505 | [71; 73) '{}': () | 505 | 71..73 '{}': () |
506 | "### | 506 | "### |
507 | ); | 507 | ); |
508 | } | 508 | } |
@@ -523,13 +523,13 @@ fn foo(b: Bar) { | |||
523 | } | 523 | } |
524 | "#), | 524 | "#), |
525 | @r###" | 525 | @r###" |
526 | [36; 37) 'b': Bar | 526 | 36..37 'b': Bar |
527 | [44; 96) '{ ... } }': () | 527 | 44..96 '{ ... } }': () |
528 | [50; 94) 'match ... }': () | 528 | 50..94 'match ... }': () |
529 | [56; 57) 'b': Bar | 529 | 56..57 'b': Bar |
530 | [68; 81) 'Bar { a: .. }': Bar | 530 | 68..81 'Bar { a: .. }': Bar |
531 | [77; 79) '..': bool | 531 | 77..79 '..': bool |
532 | [85; 87) '{}': () | 532 | 85..87 '{}': () |
533 | "### | 533 | "### |
534 | ); | 534 | ); |
535 | } | 535 | } |
@@ -564,13 +564,13 @@ where | |||
564 | } | 564 | } |
565 | "#), | 565 | "#), |
566 | @r###" | 566 | @r###" |
567 | [66; 70) 'self': Self | 567 | 66..70 'self': Self |
568 | [268; 272) 'self': Self | 568 | 268..272 'self': Self |
569 | [467; 471) 'self': SelectStatement<F, S, D, W, O, LOf, {unknown}, {unknown}> | 569 | 467..471 'self': SelectStatement<F, S, D, W, O, LOf, {unknown}, {unknown}> |
570 | [489; 523) '{ ... }': () | 570 | 489..523 '{ ... }': () |
571 | [499; 503) 'self': SelectStatement<F, S, D, W, O, LOf, {unknown}, {unknown}> | 571 | 499..503 'self': SelectStatement<F, S, D, W, O, LOf, {unknown}, {unknown}> |
572 | [499; 509) 'self.order': O | 572 | 499..509 'self.order': O |
573 | [499; 516) 'self.o...into()': dyn QueryFragment<DB> | 573 | 499..516 'self.o...into()': dyn QueryFragment<DB> |
574 | "### | 574 | "### |
575 | ); | 575 | ); |
576 | } | 576 | } |
diff --git a/crates/ra_hir_ty/src/tests/simple.rs b/crates/ra_hir_ty/src/tests/simple.rs index c2f1ded2f..56abc65b8 100644 --- a/crates/ra_hir_ty/src/tests/simple.rs +++ b/crates/ra_hir_ty/src/tests/simple.rs | |||
@@ -64,9 +64,9 @@ impl S<u32> { | |||
64 | } | 64 | } |
65 | "#, | 65 | "#, |
66 | ), @r###" | 66 | ), @r###" |
67 | [63; 93) '{ ... }': () | 67 | 63..93 '{ ... }': () |
68 | [73; 86) 'Self { x: 1 }': S<u32> | 68 | 73..86 'Self { x: 1 }': S<u32> |
69 | [83; 84) '1': u32 | 69 | 83..84 '1': u32 |
70 | "###); | 70 | "###); |
71 | } | 71 | } |
72 | 72 | ||
@@ -85,9 +85,9 @@ fn foo() { | |||
85 | 85 | ||
86 | "#, | 86 | "#, |
87 | ), @r###" | 87 | ), @r###" |
88 | [64; 84) '{ ...1 }; }': () | 88 | 64..84 '{ ...1 }; }': () |
89 | [70; 81) 'SS { x: 1 }': S<u32> | 89 | 70..81 'SS { x: 1 }': S<u32> |
90 | [78; 79) '1': u32 | 90 | 78..79 '1': u32 |
91 | "###); | 91 | "###); |
92 | } | 92 | } |
93 | 93 | ||
@@ -175,19 +175,19 @@ fn test(a: u32, b: isize, c: !, d: &str) { | |||
175 | 1.0f32; | 175 | 1.0f32; |
176 | }"#), | 176 | }"#), |
177 | @r###" | 177 | @r###" |
178 | [9; 10) 'a': u32 | 178 | 9..10 'a': u32 |
179 | [17; 18) 'b': isize | 179 | 17..18 'b': isize |
180 | [27; 28) 'c': ! | 180 | 27..28 'c': ! |
181 | [33; 34) 'd': &str | 181 | 33..34 'd': &str |
182 | [42; 121) '{ ...f32; }': ! | 182 | 42..121 '{ ...f32; }': ! |
183 | [48; 49) 'a': u32 | 183 | 48..49 'a': u32 |
184 | [55; 56) 'b': isize | 184 | 55..56 'b': isize |
185 | [62; 63) 'c': ! | 185 | 62..63 'c': ! |
186 | [69; 70) 'd': &str | 186 | 69..70 'd': &str |
187 | [76; 82) '1usize': usize | 187 | 76..82 '1usize': usize |
188 | [88; 94) '1isize': isize | 188 | 88..94 '1isize': isize |
189 | [100; 106) '"test"': &str | 189 | 100..106 '"test"': &str |
190 | [112; 118) '1.0f32': f32 | 190 | 112..118 '1.0f32': f32 |
191 | "### | 191 | "### |
192 | ); | 192 | ); |
193 | } | 193 | } |
@@ -206,17 +206,17 @@ fn test() { | |||
206 | } | 206 | } |
207 | "#), | 207 | "#), |
208 | @r###" | 208 | @r###" |
209 | [11; 118) '{ ...= e; }': () | 209 | 11..118 '{ ...= e; }': () |
210 | [21; 22) 'a': isize | 210 | 21..22 'a': isize |
211 | [25; 31) '1isize': isize | 211 | 25..31 '1isize': isize |
212 | [41; 42) 'b': usize | 212 | 41..42 'b': usize |
213 | [52; 53) '1': usize | 213 | 52..53 '1': usize |
214 | [63; 64) 'c': usize | 214 | 63..64 'c': usize |
215 | [67; 68) 'b': usize | 215 | 67..68 'b': usize |
216 | [78; 79) 'd': u32 | 216 | 78..79 'd': u32 |
217 | [94; 95) 'e': i32 | 217 | 94..95 'e': i32 |
218 | [105; 106) 'f': i32 | 218 | 105..106 'f': i32 |
219 | [114; 115) 'e': i32 | 219 | 114..115 'e': i32 |
220 | "### | 220 | "### |
221 | ); | 221 | ); |
222 | } | 222 | } |
@@ -237,15 +237,15 @@ fn test() { | |||
237 | } | 237 | } |
238 | "#), | 238 | "#), |
239 | @r###" | 239 | @r###" |
240 | [15; 20) '{ 1 }': u32 | 240 | 15..20 '{ 1 }': u32 |
241 | [17; 18) '1': u32 | 241 | 17..18 '1': u32 |
242 | [48; 53) '{ 1 }': u32 | 242 | 48..53 '{ 1 }': u32 |
243 | [50; 51) '1': u32 | 243 | 50..51 '1': u32 |
244 | [67; 91) '{ ...c(); }': () | 244 | 67..91 '{ ...c(); }': () |
245 | [73; 74) 'a': fn a() -> u32 | 245 | 73..74 'a': fn a() -> u32 |
246 | [73; 76) 'a()': u32 | 246 | 73..76 'a()': u32 |
247 | [82; 86) 'b::c': fn c() -> u32 | 247 | 82..86 'b::c': fn c() -> u32 |
248 | [82; 88) 'b::c()': u32 | 248 | 82..88 'b::c()': u32 |
249 | "### | 249 | "### |
250 | ); | 250 | ); |
251 | } | 251 | } |
@@ -266,13 +266,13 @@ fn test() { | |||
266 | } | 266 | } |
267 | "#), | 267 | "#), |
268 | @r###" | 268 | @r###" |
269 | [41; 46) '{ 1 }': i32 | 269 | 41..46 '{ 1 }': i32 |
270 | [43; 44) '1': i32 | 270 | 43..44 '1': i32 |
271 | [60; 93) '{ ...o(); }': () | 271 | 60..93 '{ ...o(); }': () |
272 | [66; 72) 'S::foo': fn foo() -> i32 | 272 | 66..72 'S::foo': fn foo() -> i32 |
273 | [66; 74) 'S::foo()': i32 | 273 | 66..74 'S::foo()': i32 |
274 | [80; 88) '<S>::foo': fn foo() -> i32 | 274 | 80..88 '<S>::foo': fn foo() -> i32 |
275 | [80; 90) '<S>::foo()': i32 | 275 | 80..90 '<S>::foo()': i32 |
276 | "### | 276 | "### |
277 | ); | 277 | ); |
278 | } | 278 | } |
@@ -297,22 +297,22 @@ fn test() { | |||
297 | } | 297 | } |
298 | "#), | 298 | "#), |
299 | @r###" | 299 | @r###" |
300 | [72; 154) '{ ...a.c; }': () | 300 | 72..154 '{ ...a.c; }': () |
301 | [82; 83) 'c': C | 301 | 82..83 'c': C |
302 | [86; 87) 'C': C(usize) -> C | 302 | 86..87 'C': C(usize) -> C |
303 | [86; 90) 'C(1)': C | 303 | 86..90 'C(1)': C |
304 | [88; 89) '1': usize | 304 | 88..89 '1': usize |
305 | [96; 97) 'B': B | 305 | 96..97 'B': B |
306 | [107; 108) 'a': A | 306 | 107..108 'a': A |
307 | [114; 133) 'A { b:...C(1) }': A | 307 | 114..133 'A { b:...C(1) }': A |
308 | [121; 122) 'B': B | 308 | 121..122 'B': B |
309 | [127; 128) 'C': C(usize) -> C | 309 | 127..128 'C': C(usize) -> C |
310 | [127; 131) 'C(1)': C | 310 | 127..131 'C(1)': C |
311 | [129; 130) '1': usize | 311 | 129..130 '1': usize |
312 | [139; 140) 'a': A | 312 | 139..140 'a': A |
313 | [139; 142) 'a.b': B | 313 | 139..142 'a.b': B |
314 | [148; 149) 'a': A | 314 | 148..149 'a': A |
315 | [148; 151) 'a.c': C | 315 | 148..151 'a.c': C |
316 | "### | 316 | "### |
317 | ); | 317 | ); |
318 | } | 318 | } |
@@ -330,10 +330,10 @@ fn test() { | |||
330 | E::V2; | 330 | E::V2; |
331 | }"#), | 331 | }"#), |
332 | @r###" | 332 | @r###" |
333 | [48; 82) '{ E:...:V2; }': () | 333 | 48..82 '{ E:...:V2; }': () |
334 | [52; 70) 'E::V1 ...d: 1 }': E | 334 | 52..70 'E::V1 ...d: 1 }': E |
335 | [67; 68) '1': u32 | 335 | 67..68 '1': u32 |
336 | [74; 79) 'E::V2': E | 336 | 74..79 'E::V2': E |
337 | "### | 337 | "### |
338 | ); | 338 | ); |
339 | } | 339 | } |
@@ -357,29 +357,29 @@ fn test(a: &u32, b: &mut u32, c: *const u32, d: *mut u32) { | |||
357 | } | 357 | } |
358 | "#), | 358 | "#), |
359 | @r###" | 359 | @r###" |
360 | [9; 10) 'a': &u32 | 360 | 9..10 'a': &u32 |
361 | [18; 19) 'b': &mut u32 | 361 | 18..19 'b': &mut u32 |
362 | [31; 32) 'c': *const u32 | 362 | 31..32 'c': *const u32 |
363 | [46; 47) 'd': *mut u32 | 363 | 46..47 'd': *mut u32 |
364 | [59; 150) '{ ... *d; }': () | 364 | 59..150 '{ ... *d; }': () |
365 | [65; 66) 'a': &u32 | 365 | 65..66 'a': &u32 |
366 | [72; 74) '*a': u32 | 366 | 72..74 '*a': u32 |
367 | [73; 74) 'a': &u32 | 367 | 73..74 'a': &u32 |
368 | [80; 82) '&a': &&u32 | 368 | 80..82 '&a': &&u32 |
369 | [81; 82) 'a': &u32 | 369 | 81..82 'a': &u32 |
370 | [88; 94) '&mut a': &mut &u32 | 370 | 88..94 '&mut a': &mut &u32 |
371 | [93; 94) 'a': &u32 | 371 | 93..94 'a': &u32 |
372 | [100; 101) 'b': &mut u32 | 372 | 100..101 'b': &mut u32 |
373 | [107; 109) '*b': u32 | 373 | 107..109 '*b': u32 |
374 | [108; 109) 'b': &mut u32 | 374 | 108..109 'b': &mut u32 |
375 | [115; 117) '&b': &&mut u32 | 375 | 115..117 '&b': &&mut u32 |
376 | [116; 117) 'b': &mut u32 | 376 | 116..117 'b': &mut u32 |
377 | [123; 124) 'c': *const u32 | 377 | 123..124 'c': *const u32 |
378 | [130; 132) '*c': u32 | 378 | 130..132 '*c': u32 |
379 | [131; 132) 'c': *const u32 | 379 | 131..132 'c': *const u32 |
380 | [138; 139) 'd': *mut u32 | 380 | 138..139 'd': *mut u32 |
381 | [145; 147) '*d': u32 | 381 | 145..147 '*d': u32 |
382 | [146; 147) 'd': *mut u32 | 382 | 146..147 'd': *mut u32 |
383 | "### | 383 | "### |
384 | ); | 384 | ); |
385 | } | 385 | } |
@@ -409,20 +409,20 @@ fn test() { | |||
409 | } | 409 | } |
410 | "##), | 410 | "##), |
411 | @r###" | 411 | @r###" |
412 | [11; 221) '{ ...o"#; }': () | 412 | 11..221 '{ ...o"#; }': () |
413 | [17; 21) '5i32': i32 | 413 | 17..21 '5i32': i32 |
414 | [27; 31) '5f32': f32 | 414 | 27..31 '5f32': f32 |
415 | [37; 41) '5f64': f64 | 415 | 37..41 '5f64': f64 |
416 | [47; 54) '"hello"': &str | 416 | 47..54 '"hello"': &str |
417 | [60; 68) 'b"bytes"': &[u8] | 417 | 60..68 'b"bytes"': &[u8] |
418 | [74; 77) ''c'': char | 418 | 74..77 ''c'': char |
419 | [83; 87) 'b'b'': u8 | 419 | 83..87 'b'b'': u8 |
420 | [93; 97) '3.14': f64 | 420 | 93..97 '3.14': f64 |
421 | [103; 107) '5000': i32 | 421 | 103..107 '5000': i32 |
422 | [113; 118) 'false': bool | 422 | 113..118 'false': bool |
423 | [124; 128) 'true': bool | 423 | 124..128 'true': bool |
424 | [134; 202) 'r#" ... "#': &str | 424 | 134..202 'r#" ... "#': &str |
425 | [208; 218) 'br#"yolo"#': &[u8] | 425 | 208..218 'br#"yolo"#': &[u8] |
426 | "### | 426 | "### |
427 | ); | 427 | ); |
428 | } | 428 | } |
@@ -452,47 +452,47 @@ fn test(x: SomeType) { | |||
452 | } | 452 | } |
453 | "#), | 453 | "#), |
454 | @r###" | 454 | @r###" |
455 | [27; 28) 'x': SomeType | 455 | 27..28 'x': SomeType |
456 | [40; 272) '{ ...lo"; }': () | 456 | 40..272 '{ ...lo"; }': () |
457 | [50; 51) 'b': bool | 457 | 50..51 'b': bool |
458 | [54; 59) 'false': bool | 458 | 54..59 'false': bool |
459 | [69; 70) 'c': bool | 459 | 69..70 'c': bool |
460 | [73; 75) '!b': bool | 460 | 73..75 '!b': bool |
461 | [74; 75) 'b': bool | 461 | 74..75 'b': bool |
462 | [85; 86) 'a': i128 | 462 | 85..86 'a': i128 |
463 | [89; 92) '100': i128 | 463 | 89..92 '100': i128 |
464 | [102; 103) 'd': i128 | 464 | 102..103 'd': i128 |
465 | [112; 114) '-a': i128 | 465 | 112..114 '-a': i128 |
466 | [113; 114) 'a': i128 | 466 | 113..114 'a': i128 |
467 | [124; 125) 'e': i32 | 467 | 124..125 'e': i32 |
468 | [128; 132) '-100': i32 | 468 | 128..132 '-100': i32 |
469 | [129; 132) '100': i32 | 469 | 129..132 '100': i32 |
470 | [142; 143) 'f': bool | 470 | 142..143 'f': bool |
471 | [146; 153) '!!!true': bool | 471 | 146..153 '!!!true': bool |
472 | [147; 153) '!!true': bool | 472 | 147..153 '!!true': bool |
473 | [148; 153) '!true': bool | 473 | 148..153 '!true': bool |
474 | [149; 153) 'true': bool | 474 | 149..153 'true': bool |
475 | [163; 164) 'g': i32 | 475 | 163..164 'g': i32 |
476 | [167; 170) '!42': i32 | 476 | 167..170 '!42': i32 |
477 | [168; 170) '42': i32 | 477 | 168..170 '42': i32 |
478 | [180; 181) 'h': u32 | 478 | 180..181 'h': u32 |
479 | [184; 190) '!10u32': u32 | 479 | 184..190 '!10u32': u32 |
480 | [185; 190) '10u32': u32 | 480 | 185..190 '10u32': u32 |
481 | [200; 201) 'j': i128 | 481 | 200..201 'j': i128 |
482 | [204; 206) '!a': i128 | 482 | 204..206 '!a': i128 |
483 | [205; 206) 'a': i128 | 483 | 205..206 'a': i128 |
484 | [212; 217) '-3.14': f64 | 484 | 212..217 '-3.14': f64 |
485 | [213; 217) '3.14': f64 | 485 | 213..217 '3.14': f64 |
486 | [223; 225) '!3': i32 | 486 | 223..225 '!3': i32 |
487 | [224; 225) '3': i32 | 487 | 224..225 '3': i32 |
488 | [231; 233) '-x': {unknown} | 488 | 231..233 '-x': {unknown} |
489 | [232; 233) 'x': SomeType | 489 | 232..233 'x': SomeType |
490 | [239; 241) '!x': {unknown} | 490 | 239..241 '!x': {unknown} |
491 | [240; 241) 'x': SomeType | 491 | 240..241 'x': SomeType |
492 | [247; 255) '-"hello"': {unknown} | 492 | 247..255 '-"hello"': {unknown} |
493 | [248; 255) '"hello"': &str | 493 | 248..255 '"hello"': &str |
494 | [261; 269) '!"hello"': {unknown} | 494 | 261..269 '!"hello"': {unknown} |
495 | [262; 269) '"hello"': &str | 495 | 262..269 '"hello"': &str |
496 | "### | 496 | "### |
497 | ); | 497 | ); |
498 | } | 498 | } |
@@ -515,26 +515,26 @@ fn test() -> &mut &f64 { | |||
515 | } | 515 | } |
516 | "#), | 516 | "#), |
517 | @r###" | 517 | @r###" |
518 | [14; 15) 'x': u32 | 518 | 14..15 'x': u32 |
519 | [22; 24) '{}': () | 519 | 22..24 '{}': () |
520 | [78; 231) '{ ...t &c }': &mut &f64 | 520 | 78..231 '{ ...t &c }': &mut &f64 |
521 | [88; 89) 'a': u32 | 521 | 88..89 'a': u32 |
522 | [92; 108) 'unknow...nction': {unknown} | 522 | 92..108 'unknow...nction': {unknown} |
523 | [92; 110) 'unknow...tion()': u32 | 523 | 92..110 'unknow...tion()': u32 |
524 | [116; 125) 'takes_u32': fn takes_u32(u32) | 524 | 116..125 'takes_u32': fn takes_u32(u32) |
525 | [116; 128) 'takes_u32(a)': () | 525 | 116..128 'takes_u32(a)': () |
526 | [126; 127) 'a': u32 | 526 | 126..127 'a': u32 |
527 | [138; 139) 'b': i32 | 527 | 138..139 'b': i32 |
528 | [142; 158) 'unknow...nction': {unknown} | 528 | 142..158 'unknow...nction': {unknown} |
529 | [142; 160) 'unknow...tion()': i32 | 529 | 142..160 'unknow...tion()': i32 |
530 | [166; 184) 'S { i3...d: b }': S | 530 | 166..184 'S { i3...d: b }': S |
531 | [181; 182) 'b': i32 | 531 | 181..182 'b': i32 |
532 | [194; 195) 'c': f64 | 532 | 194..195 'c': f64 |
533 | [198; 214) 'unknow...nction': {unknown} | 533 | 198..214 'unknow...nction': {unknown} |
534 | [198; 216) 'unknow...tion()': f64 | 534 | 198..216 'unknow...tion()': f64 |
535 | [222; 229) '&mut &c': &mut &f64 | 535 | 222..229 '&mut &c': &mut &f64 |
536 | [227; 229) '&c': &f64 | 536 | 227..229 '&c': &f64 |
537 | [228; 229) 'c': f64 | 537 | 228..229 'c': f64 |
538 | "### | 538 | "### |
539 | ); | 539 | ); |
540 | } | 540 | } |
@@ -561,16 +561,16 @@ impl S { | |||
561 | } | 561 | } |
562 | "#), | 562 | "#), |
563 | @r###" | 563 | @r###" |
564 | [34; 38) 'self': &S | 564 | 34..38 'self': &S |
565 | [40; 61) '{ ... }': () | 565 | 40..61 '{ ... }': () |
566 | [50; 54) 'self': &S | 566 | 50..54 'self': &S |
567 | [75; 79) 'self': &S | 567 | 75..79 'self': &S |
568 | [88; 109) '{ ... }': () | 568 | 88..109 '{ ... }': () |
569 | [98; 102) 'self': &S | 569 | 98..102 'self': &S |
570 | [133; 153) '{ ... }': S | 570 | 133..153 '{ ... }': S |
571 | [143; 147) 'S {}': S | 571 | 143..147 'S {}': S |
572 | [177; 200) '{ ... }': S | 572 | 177..200 '{ ... }': S |
573 | [187; 194) 'Self {}': S | 573 | 187..194 'Self {}': S |
574 | "### | 574 | "### |
575 | ); | 575 | ); |
576 | } | 576 | } |
@@ -600,56 +600,56 @@ fn test() -> bool { | |||
600 | } | 600 | } |
601 | "#), | 601 | "#), |
602 | @r###" | 602 | @r###" |
603 | [6; 7) 'x': bool | 603 | 6..7 'x': bool |
604 | [22; 34) '{ 0i32 }': i32 | 604 | 22..34 '{ 0i32 }': i32 |
605 | [28; 32) '0i32': i32 | 605 | 28..32 '0i32': i32 |
606 | [54; 370) '{ ... < 3 }': bool | 606 | 54..370 '{ ... < 3 }': bool |
607 | [64; 65) 'x': bool | 607 | 64..65 'x': bool |
608 | [68; 69) 'a': bool | 608 | 68..69 'a': bool |
609 | [68; 74) 'a && b': bool | 609 | 68..74 'a && b': bool |
610 | [73; 74) 'b': bool | 610 | 73..74 'b': bool |
611 | [84; 85) 'y': bool | 611 | 84..85 'y': bool |
612 | [88; 92) 'true': bool | 612 | 88..92 'true': bool |
613 | [88; 101) 'true || false': bool | 613 | 88..101 'true || false': bool |
614 | [96; 101) 'false': bool | 614 | 96..101 'false': bool |
615 | [111; 112) 'z': bool | 615 | 111..112 'z': bool |
616 | [115; 116) 'x': bool | 616 | 115..116 'x': bool |
617 | [115; 121) 'x == y': bool | 617 | 115..121 'x == y': bool |
618 | [120; 121) 'y': bool | 618 | 120..121 'y': bool |
619 | [131; 132) 't': bool | 619 | 131..132 't': bool |
620 | [135; 136) 'x': bool | 620 | 135..136 'x': bool |
621 | [135; 141) 'x != y': bool | 621 | 135..141 'x != y': bool |
622 | [140; 141) 'y': bool | 622 | 140..141 'y': bool |
623 | [151; 162) 'minus_forty': isize | 623 | 151..162 'minus_forty': isize |
624 | [172; 180) '-40isize': isize | 624 | 172..180 '-40isize': isize |
625 | [173; 180) '40isize': isize | 625 | 173..180 '40isize': isize |
626 | [190; 191) 'h': bool | 626 | 190..191 'h': bool |
627 | [194; 205) 'minus_forty': isize | 627 | 194..205 'minus_forty': isize |
628 | [194; 216) 'minus_...ONST_2': bool | 628 | 194..216 'minus_...ONST_2': bool |
629 | [209; 216) 'CONST_2': isize | 629 | 209..216 'CONST_2': isize |
630 | [226; 227) 'c': i32 | 630 | 226..227 'c': i32 |
631 | [230; 231) 'f': fn f(bool) -> i32 | 631 | 230..231 'f': fn f(bool) -> i32 |
632 | [230; 239) 'f(z || y)': i32 | 632 | 230..239 'f(z || y)': i32 |
633 | [230; 243) 'f(z || y) + 5': i32 | 633 | 230..243 'f(z || y) + 5': i32 |
634 | [232; 233) 'z': bool | 634 | 232..233 'z': bool |
635 | [232; 238) 'z || y': bool | 635 | 232..238 'z || y': bool |
636 | [237; 238) 'y': bool | 636 | 237..238 'y': bool |
637 | [242; 243) '5': i32 | 637 | 242..243 '5': i32 |
638 | [253; 254) 'd': {unknown} | 638 | 253..254 'd': {unknown} |
639 | [257; 258) 'b': {unknown} | 639 | 257..258 'b': {unknown} |
640 | [268; 269) 'g': () | 640 | 268..269 'g': () |
641 | [272; 283) 'minus_forty': isize | 641 | 272..283 'minus_forty': isize |
642 | [272; 288) 'minus_...y ^= i': () | 642 | 272..288 'minus_...y ^= i': () |
643 | [287; 288) 'i': isize | 643 | 287..288 'i': isize |
644 | [298; 301) 'ten': usize | 644 | 298..301 'ten': usize |
645 | [311; 313) '10': usize | 645 | 311..313 '10': usize |
646 | [323; 336) 'ten_is_eleven': bool | 646 | 323..336 'ten_is_eleven': bool |
647 | [339; 342) 'ten': usize | 647 | 339..342 'ten': usize |
648 | [339; 354) 'ten == some_num': bool | 648 | 339..354 'ten == some_num': bool |
649 | [346; 354) 'some_num': usize | 649 | 346..354 'some_num': usize |
650 | [361; 364) 'ten': usize | 650 | 361..364 'ten': usize |
651 | [361; 368) 'ten < 3': bool | 651 | 361..368 'ten < 3': bool |
652 | [367; 368) '3': usize | 652 | 367..368 '3': usize |
653 | "### | 653 | "### |
654 | ); | 654 | ); |
655 | } | 655 | } |
@@ -664,13 +664,13 @@ fn test() { | |||
664 | } | 664 | } |
665 | "#), | 665 | "#), |
666 | @r###" | 666 | @r###" |
667 | [11; 48) '{ ...5u8; }': () | 667 | 11..48 '{ ...5u8; }': () |
668 | [17; 21) '1u32': u32 | 668 | 17..21 '1u32': u32 |
669 | [17; 28) '1u32 << 5u8': u32 | 669 | 17..28 '1u32 << 5u8': u32 |
670 | [25; 28) '5u8': u8 | 670 | 25..28 '5u8': u8 |
671 | [34; 38) '1u32': u32 | 671 | 34..38 '1u32': u32 |
672 | [34; 45) '1u32 >> 5u8': u32 | 672 | 34..45 '1u32 >> 5u8': u32 |
673 | [42; 45) '5u8': u8 | 673 | 42..45 '5u8': u8 |
674 | "### | 674 | "### |
675 | ); | 675 | ); |
676 | } | 676 | } |
@@ -703,49 +703,49 @@ fn test2(a1: *const A, a2: *mut A) { | |||
703 | } | 703 | } |
704 | "#), | 704 | "#), |
705 | @r###" | 705 | @r###" |
706 | [44; 45) 'a': A | 706 | 44..45 'a': A |
707 | [50; 213) '{ ...5.b; }': () | 707 | 50..213 '{ ...5.b; }': () |
708 | [60; 62) 'a1': A | 708 | 60..62 'a1': A |
709 | [65; 66) 'a': A | 709 | 65..66 'a': A |
710 | [72; 74) 'a1': A | 710 | 72..74 'a1': A |
711 | [72; 76) 'a1.b': B | 711 | 72..76 'a1.b': B |
712 | [86; 88) 'a2': &A | 712 | 86..88 'a2': &A |
713 | [91; 93) '&a': &A | 713 | 91..93 '&a': &A |
714 | [92; 93) 'a': A | 714 | 92..93 'a': A |
715 | [99; 101) 'a2': &A | 715 | 99..101 'a2': &A |
716 | [99; 103) 'a2.b': B | 716 | 99..103 'a2.b': B |
717 | [113; 115) 'a3': &mut A | 717 | 113..115 'a3': &mut A |
718 | [118; 124) '&mut a': &mut A | 718 | 118..124 '&mut a': &mut A |
719 | [123; 124) 'a': A | 719 | 123..124 'a': A |
720 | [130; 132) 'a3': &mut A | 720 | 130..132 'a3': &mut A |
721 | [130; 134) 'a3.b': B | 721 | 130..134 'a3.b': B |
722 | [144; 146) 'a4': &&&&&&&A | 722 | 144..146 'a4': &&&&&&&A |
723 | [149; 157) '&&&&&&&a': &&&&&&&A | 723 | 149..157 '&&&&&&&a': &&&&&&&A |
724 | [150; 157) '&&&&&&a': &&&&&&A | 724 | 150..157 '&&&&&&a': &&&&&&A |
725 | [151; 157) '&&&&&a': &&&&&A | 725 | 151..157 '&&&&&a': &&&&&A |
726 | [152; 157) '&&&&a': &&&&A | 726 | 152..157 '&&&&a': &&&&A |
727 | [153; 157) '&&&a': &&&A | 727 | 153..157 '&&&a': &&&A |
728 | [154; 157) '&&a': &&A | 728 | 154..157 '&&a': &&A |
729 | [155; 157) '&a': &A | 729 | 155..157 '&a': &A |
730 | [156; 157) 'a': A | 730 | 156..157 'a': A |
731 | [163; 165) 'a4': &&&&&&&A | 731 | 163..165 'a4': &&&&&&&A |
732 | [163; 167) 'a4.b': B | 732 | 163..167 'a4.b': B |
733 | [177; 179) 'a5': &mut &&mut &&mut A | 733 | 177..179 'a5': &mut &&mut &&mut A |
734 | [182; 200) '&mut &...&mut a': &mut &&mut &&mut A | 734 | 182..200 '&mut &...&mut a': &mut &&mut &&mut A |
735 | [187; 200) '&&mut &&mut a': &&mut &&mut A | 735 | 187..200 '&&mut &&mut a': &&mut &&mut A |
736 | [188; 200) '&mut &&mut a': &mut &&mut A | 736 | 188..200 '&mut &&mut a': &mut &&mut A |
737 | [193; 200) '&&mut a': &&mut A | 737 | 193..200 '&&mut a': &&mut A |
738 | [194; 200) '&mut a': &mut A | 738 | 194..200 '&mut a': &mut A |
739 | [199; 200) 'a': A | 739 | 199..200 'a': A |
740 | [206; 208) 'a5': &mut &&mut &&mut A | 740 | 206..208 'a5': &mut &&mut &&mut A |
741 | [206; 210) 'a5.b': B | 741 | 206..210 'a5.b': B |
742 | [224; 226) 'a1': *const A | 742 | 224..226 'a1': *const A |
743 | [238; 240) 'a2': *mut A | 743 | 238..240 'a2': *mut A |
744 | [250; 273) '{ ...2.b; }': () | 744 | 250..273 '{ ...2.b; }': () |
745 | [256; 258) 'a1': *const A | 745 | 256..258 'a1': *const A |
746 | [256; 260) 'a1.b': B | 746 | 256..260 'a1.b': B |
747 | [266; 268) 'a2': *mut A | 747 | 266..268 'a2': *mut A |
748 | [266; 270) 'a2.b': B | 748 | 266..270 'a2.b': B |
749 | "### | 749 | "### |
750 | ); | 750 | ); |
751 | } | 751 | } |
@@ -782,30 +782,30 @@ fn test() { | |||
782 | } | 782 | } |
783 | "#), | 783 | "#), |
784 | @r###" | 784 | @r###" |
785 | [68; 72) 'self': &Self | 785 | 68..72 'self': &Self |
786 | [139; 143) 'self': &A<T> | 786 | 139..143 'self': &A<T> |
787 | [151; 174) '{ ... }': &T | 787 | 151..174 '{ ... }': &T |
788 | [161; 168) '&self.0': &T | 788 | 161..168 '&self.0': &T |
789 | [162; 166) 'self': &A<T> | 789 | 162..166 'self': &A<T> |
790 | [162; 168) 'self.0': T | 790 | 162..168 'self.0': T |
791 | [255; 259) 'self': &B<T> | 791 | 255..259 'self': &B<T> |
792 | [278; 301) '{ ... }': &T | 792 | 278..301 '{ ... }': &T |
793 | [288; 295) '&self.0': &T | 793 | 288..295 '&self.0': &T |
794 | [289; 293) 'self': &B<T> | 794 | 289..293 'self': &B<T> |
795 | [289; 295) 'self.0': T | 795 | 289..295 'self.0': T |
796 | [315; 353) '{ ...))); }': () | 796 | 315..353 '{ ...))); }': () |
797 | [325; 326) 't': &i32 | 797 | 325..326 't': &i32 |
798 | [329; 335) 'A::foo': fn foo<i32>(&A<i32>) -> &i32 | 798 | 329..335 'A::foo': fn foo<i32>(&A<i32>) -> &i32 |
799 | [329; 350) 'A::foo...42))))': &i32 | 799 | 329..350 'A::foo...42))))': &i32 |
800 | [336; 349) '&&B(B(A(42)))': &&B<B<A<i32>>> | 800 | 336..349 '&&B(B(A(42)))': &&B<B<A<i32>>> |
801 | [337; 349) '&B(B(A(42)))': &B<B<A<i32>>> | 801 | 337..349 '&B(B(A(42)))': &B<B<A<i32>>> |
802 | [338; 339) 'B': B<B<A<i32>>>(B<A<i32>>) -> B<B<A<i32>>> | 802 | 338..339 'B': B<B<A<i32>>>(B<A<i32>>) -> B<B<A<i32>>> |
803 | [338; 349) 'B(B(A(42)))': B<B<A<i32>>> | 803 | 338..349 'B(B(A(42)))': B<B<A<i32>>> |
804 | [340; 341) 'B': B<A<i32>>(A<i32>) -> B<A<i32>> | 804 | 340..341 'B': B<A<i32>>(A<i32>) -> B<A<i32>> |
805 | [340; 348) 'B(A(42))': B<A<i32>> | 805 | 340..348 'B(A(42))': B<A<i32>> |
806 | [342; 343) 'A': A<i32>(i32) -> A<i32> | 806 | 342..343 'A': A<i32>(i32) -> A<i32> |
807 | [342; 347) 'A(42)': A<i32> | 807 | 342..347 'A(42)': A<i32> |
808 | [344; 346) '42': i32 | 808 | 344..346 '42': i32 |
809 | "### | 809 | "### |
810 | ); | 810 | ); |
811 | } | 811 | } |
@@ -842,34 +842,34 @@ fn test(a: A<i32>) { | |||
842 | } | 842 | } |
843 | "#), | 843 | "#), |
844 | @r###" | 844 | @r###" |
845 | [68; 72) 'self': &Self | 845 | 68..72 'self': &Self |
846 | [144; 148) 'self': &A<T> | 846 | 144..148 'self': &A<T> |
847 | [150; 151) 'x': &A<T> | 847 | 150..151 'x': &A<T> |
848 | [166; 187) '{ ... }': &T | 848 | 166..187 '{ ... }': &T |
849 | [176; 181) '&*x.0': &T | 849 | 176..181 '&*x.0': &T |
850 | [177; 181) '*x.0': T | 850 | 177..181 '*x.0': T |
851 | [178; 179) 'x': &A<T> | 851 | 178..179 'x': &A<T> |
852 | [178; 181) 'x.0': *mut T | 852 | 178..181 'x.0': *mut T |
853 | [268; 272) 'self': &B<T> | 853 | 268..272 'self': &B<T> |
854 | [291; 314) '{ ... }': &T | 854 | 291..314 '{ ... }': &T |
855 | [301; 308) '&self.0': &T | 855 | 301..308 '&self.0': &T |
856 | [302; 306) 'self': &B<T> | 856 | 302..306 'self': &B<T> |
857 | [302; 308) 'self.0': T | 857 | 302..308 'self.0': T |
858 | [326; 327) 'a': A<i32> | 858 | 326..327 'a': A<i32> |
859 | [337; 383) '{ ...))); }': () | 859 | 337..383 '{ ...))); }': () |
860 | [347; 348) 't': &i32 | 860 | 347..348 't': &i32 |
861 | [351; 352) 'A': A<i32>(*mut i32) -> A<i32> | 861 | 351..352 'A': A<i32>(*mut i32) -> A<i32> |
862 | [351; 365) 'A(0 as *mut _)': A<i32> | 862 | 351..365 'A(0 as *mut _)': A<i32> |
863 | [351; 380) 'A(0 as...B(a)))': &i32 | 863 | 351..380 'A(0 as...B(a)))': &i32 |
864 | [353; 354) '0': i32 | 864 | 353..354 '0': i32 |
865 | [353; 364) '0 as *mut _': *mut i32 | 865 | 353..364 '0 as *mut _': *mut i32 |
866 | [370; 379) '&&B(B(a))': &&B<B<A<i32>>> | 866 | 370..379 '&&B(B(a))': &&B<B<A<i32>>> |
867 | [371; 379) '&B(B(a))': &B<B<A<i32>>> | 867 | 371..379 '&B(B(a))': &B<B<A<i32>>> |
868 | [372; 373) 'B': B<B<A<i32>>>(B<A<i32>>) -> B<B<A<i32>>> | 868 | 372..373 'B': B<B<A<i32>>>(B<A<i32>>) -> B<B<A<i32>>> |
869 | [372; 379) 'B(B(a))': B<B<A<i32>>> | 869 | 372..379 'B(B(a))': B<B<A<i32>>> |
870 | [374; 375) 'B': B<A<i32>>(A<i32>) -> B<A<i32>> | 870 | 374..375 'B': B<A<i32>>(A<i32>) -> B<A<i32>> |
871 | [374; 378) 'B(a)': B<A<i32>> | 871 | 374..378 'B(a)': B<A<i32>> |
872 | [376; 377) 'a': A<i32> | 872 | 376..377 'a': A<i32> |
873 | "### | 873 | "### |
874 | ); | 874 | ); |
875 | } | 875 | } |
@@ -888,16 +888,16 @@ fn main(foo: Foo) { | |||
888 | } | 888 | } |
889 | "#), | 889 | "#), |
890 | @r###" | 890 | @r###" |
891 | [35; 38) 'foo': Foo | 891 | 35..38 'foo': Foo |
892 | [45; 109) '{ ... } }': () | 892 | 45..109 '{ ... } }': () |
893 | [51; 107) 'if tru... }': () | 893 | 51..107 'if tru... }': () |
894 | [54; 58) 'true': bool | 894 | 54..58 'true': bool |
895 | [59; 67) '{ }': () | 895 | 59..67 '{ }': () |
896 | [73; 107) 'if fal... }': () | 896 | 73..107 'if fal... }': () |
897 | [76; 81) 'false': bool | 897 | 76..81 'false': bool |
898 | [82; 107) '{ ... }': i32 | 898 | 82..107 '{ ... }': i32 |
899 | [92; 95) 'foo': Foo | 899 | 92..95 'foo': Foo |
900 | [92; 101) 'foo.field': i32 | 900 | 92..101 'foo.field': i32 |
901 | "### | 901 | "### |
902 | ) | 902 | ) |
903 | } | 903 | } |
@@ -929,38 +929,38 @@ fn foo() { | |||
929 | }; | 929 | }; |
930 | }"#), | 930 | }"#), |
931 | @r###" | 931 | @r###" |
932 | [10; 323) '{ ... }; }': () | 932 | 10..323 '{ ... }; }': () |
933 | [20; 23) '_x1': i32 | 933 | 20..23 '_x1': i32 |
934 | [26; 80) 'if tru... }': i32 | 934 | 26..80 'if tru... }': i32 |
935 | [29; 33) 'true': bool | 935 | 29..33 'true': bool |
936 | [34; 51) '{ ... }': i32 | 936 | 34..51 '{ ... }': i32 |
937 | [44; 45) '1': i32 | 937 | 44..45 '1': i32 |
938 | [57; 80) '{ ... }': ! | 938 | 57..80 '{ ... }': ! |
939 | [67; 73) 'return': ! | 939 | 67..73 'return': ! |
940 | [90; 93) '_x2': i32 | 940 | 90..93 '_x2': i32 |
941 | [96; 149) 'if tru... }': i32 | 941 | 96..149 'if tru... }': i32 |
942 | [99; 103) 'true': bool | 942 | 99..103 'true': bool |
943 | [104; 121) '{ ... }': i32 | 943 | 104..121 '{ ... }': i32 |
944 | [114; 115) '2': i32 | 944 | 114..115 '2': i32 |
945 | [127; 149) '{ ... }': ! | 945 | 127..149 '{ ... }': ! |
946 | [137; 143) 'return': ! | 946 | 137..143 'return': ! |
947 | [159; 162) '_x3': i32 | 947 | 159..162 '_x3': i32 |
948 | [165; 247) 'match ... }': i32 | 948 | 165..247 'match ... }': i32 |
949 | [171; 175) 'true': bool | 949 | 171..175 'true': bool |
950 | [186; 190) 'true': bool | 950 | 186..190 'true': bool |
951 | [186; 190) 'true': bool | 951 | 186..190 'true': bool |
952 | [194; 195) '3': i32 | 952 | 194..195 '3': i32 |
953 | [205; 206) '_': bool | 953 | 205..206 '_': bool |
954 | [210; 241) '{ ... }': ! | 954 | 210..241 '{ ... }': ! |
955 | [224; 230) 'return': ! | 955 | 224..230 'return': ! |
956 | [257; 260) '_x4': i32 | 956 | 257..260 '_x4': i32 |
957 | [263; 320) 'match ... }': i32 | 957 | 263..320 'match ... }': i32 |
958 | [269; 273) 'true': bool | 958 | 269..273 'true': bool |
959 | [284; 288) 'true': bool | 959 | 284..288 'true': bool |
960 | [284; 288) 'true': bool | 960 | 284..288 'true': bool |
961 | [292; 293) '4': i32 | 961 | 292..293 '4': i32 |
962 | [303; 304) '_': bool | 962 | 303..304 '_': bool |
963 | [308; 314) 'return': ! | 963 | 308..314 'return': ! |
964 | "### | 964 | "### |
965 | ) | 965 | ) |
966 | } | 966 | } |
@@ -988,24 +988,24 @@ fn test(a: A) { | |||
988 | } | 988 | } |
989 | "#), | 989 | "#), |
990 | @r###" | 990 | @r###" |
991 | [32; 36) 'self': A | 991 | 32..36 'self': A |
992 | [38; 39) 'x': u32 | 992 | 38..39 'x': u32 |
993 | [53; 55) '{}': () | 993 | 53..55 '{}': () |
994 | [103; 107) 'self': &A | 994 | 103..107 'self': &A |
995 | [109; 110) 'x': u64 | 995 | 109..110 'x': u64 |
996 | [124; 126) '{}': () | 996 | 124..126 '{}': () |
997 | [144; 145) 'a': A | 997 | 144..145 'a': A |
998 | [150; 198) '{ ...(1); }': () | 998 | 150..198 '{ ...(1); }': () |
999 | [156; 157) 'a': A | 999 | 156..157 'a': A |
1000 | [156; 164) 'a.foo(1)': i32 | 1000 | 156..164 'a.foo(1)': i32 |
1001 | [162; 163) '1': u32 | 1001 | 162..163 '1': u32 |
1002 | [170; 181) '(&a).bar(1)': i64 | 1002 | 170..181 '(&a).bar(1)': i64 |
1003 | [171; 173) '&a': &A | 1003 | 171..173 '&a': &A |
1004 | [172; 173) 'a': A | 1004 | 172..173 'a': A |
1005 | [179; 180) '1': u64 | 1005 | 179..180 '1': u64 |
1006 | [187; 188) 'a': A | 1006 | 187..188 'a': A |
1007 | [187; 195) 'a.bar(1)': i64 | 1007 | 187..195 'a.bar(1)': i64 |
1008 | [193; 194) '1': u64 | 1008 | 193..194 '1': u64 |
1009 | "### | 1009 | "### |
1010 | ); | 1010 | ); |
1011 | } | 1011 | } |
@@ -1024,11 +1024,11 @@ fn test() { | |||
1024 | } | 1024 | } |
1025 | "#), | 1025 | "#), |
1026 | @r###" | 1026 | @r###" |
1027 | [40; 44) 'self': &str | 1027 | 40..44 'self': &str |
1028 | [53; 55) '{}': () | 1028 | 53..55 '{}': () |
1029 | [69; 89) '{ ...o(); }': () | 1029 | 69..89 '{ ...o(); }': () |
1030 | [75; 80) '"foo"': &str | 1030 | 75..80 '"foo"': &str |
1031 | [75; 86) '"foo".foo()': i32 | 1031 | 75..86 '"foo".foo()': i32 |
1032 | "### | 1032 | "### |
1033 | ); | 1033 | ); |
1034 | } | 1034 | } |
@@ -1047,33 +1047,33 @@ fn test(x: &str, y: isize) { | |||
1047 | } | 1047 | } |
1048 | "#), | 1048 | "#), |
1049 | @r###" | 1049 | @r###" |
1050 | [9; 10) 'x': &str | 1050 | 9..10 'x': &str |
1051 | [18; 19) 'y': isize | 1051 | 18..19 'y': isize |
1052 | [28; 170) '{ ...d"); }': () | 1052 | 28..170 '{ ...d"); }': () |
1053 | [38; 39) 'a': (u32, &str) | 1053 | 38..39 'a': (u32, &str) |
1054 | [55; 63) '(1, "a")': (u32, &str) | 1054 | 55..63 '(1, "a")': (u32, &str) |
1055 | [56; 57) '1': u32 | 1055 | 56..57 '1': u32 |
1056 | [59; 62) '"a"': &str | 1056 | 59..62 '"a"': &str |
1057 | [73; 74) 'b': ((u32, &str), &str) | 1057 | 73..74 'b': ((u32, &str), &str) |
1058 | [77; 83) '(a, x)': ((u32, &str), &str) | 1058 | 77..83 '(a, x)': ((u32, &str), &str) |
1059 | [78; 79) 'a': (u32, &str) | 1059 | 78..79 'a': (u32, &str) |
1060 | [81; 82) 'x': &str | 1060 | 81..82 'x': &str |
1061 | [93; 94) 'c': (isize, &str) | 1061 | 93..94 'c': (isize, &str) |
1062 | [97; 103) '(y, x)': (isize, &str) | 1062 | 97..103 '(y, x)': (isize, &str) |
1063 | [98; 99) 'y': isize | 1063 | 98..99 'y': isize |
1064 | [101; 102) 'x': &str | 1064 | 101..102 'x': &str |
1065 | [113; 114) 'd': ((isize, &str), &str) | 1065 | 113..114 'd': ((isize, &str), &str) |
1066 | [117; 123) '(c, x)': ((isize, &str), &str) | 1066 | 117..123 '(c, x)': ((isize, &str), &str) |
1067 | [118; 119) 'c': (isize, &str) | 1067 | 118..119 'c': (isize, &str) |
1068 | [121; 122) 'x': &str | 1068 | 121..122 'x': &str |
1069 | [133; 134) 'e': (i32, &str) | 1069 | 133..134 'e': (i32, &str) |
1070 | [137; 145) '(1, "e")': (i32, &str) | 1070 | 137..145 '(1, "e")': (i32, &str) |
1071 | [138; 139) '1': i32 | 1071 | 138..139 '1': i32 |
1072 | [141; 144) '"e"': &str | 1072 | 141..144 '"e"': &str |
1073 | [155; 156) 'f': ((i32, &str), &str) | 1073 | 155..156 'f': ((i32, &str), &str) |
1074 | [159; 167) '(e, "d")': ((i32, &str), &str) | 1074 | 159..167 '(e, "d")': ((i32, &str), &str) |
1075 | [160; 161) 'e': (i32, &str) | 1075 | 160..161 'e': (i32, &str) |
1076 | [163; 166) '"d"': &str | 1076 | 163..166 '"d"': &str |
1077 | "### | 1077 | "### |
1078 | ); | 1078 | ); |
1079 | } | 1079 | } |
@@ -1101,58 +1101,58 @@ fn test(x: &str, y: isize) { | |||
1101 | } | 1101 | } |
1102 | "#), | 1102 | "#), |
1103 | @r###" | 1103 | @r###" |
1104 | [9; 10) 'x': &str | 1104 | 9..10 'x': &str |
1105 | [18; 19) 'y': isize | 1105 | 18..19 'y': isize |
1106 | [28; 293) '{ ... []; }': () | 1106 | 28..293 '{ ... []; }': () |
1107 | [38; 39) 'a': [&str; _] | 1107 | 38..39 'a': [&str; _] |
1108 | [42; 45) '[x]': [&str; _] | 1108 | 42..45 '[x]': [&str; _] |
1109 | [43; 44) 'x': &str | 1109 | 43..44 'x': &str |
1110 | [55; 56) 'b': [[&str; _]; _] | 1110 | 55..56 'b': [[&str; _]; _] |
1111 | [59; 65) '[a, a]': [[&str; _]; _] | 1111 | 59..65 '[a, a]': [[&str; _]; _] |
1112 | [60; 61) 'a': [&str; _] | 1112 | 60..61 'a': [&str; _] |
1113 | [63; 64) 'a': [&str; _] | 1113 | 63..64 'a': [&str; _] |
1114 | [75; 76) 'c': [[[&str; _]; _]; _] | 1114 | 75..76 'c': [[[&str; _]; _]; _] |
1115 | [79; 85) '[b, b]': [[[&str; _]; _]; _] | 1115 | 79..85 '[b, b]': [[[&str; _]; _]; _] |
1116 | [80; 81) 'b': [[&str; _]; _] | 1116 | 80..81 'b': [[&str; _]; _] |
1117 | [83; 84) 'b': [[&str; _]; _] | 1117 | 83..84 'b': [[&str; _]; _] |
1118 | [96; 97) 'd': [isize; _] | 1118 | 96..97 'd': [isize; _] |
1119 | [100; 112) '[y, 1, 2, 3]': [isize; _] | 1119 | 100..112 '[y, 1, 2, 3]': [isize; _] |
1120 | [101; 102) 'y': isize | 1120 | 101..102 'y': isize |
1121 | [104; 105) '1': isize | 1121 | 104..105 '1': isize |
1122 | [107; 108) '2': isize | 1122 | 107..108 '2': isize |
1123 | [110; 111) '3': isize | 1123 | 110..111 '3': isize |
1124 | [122; 123) 'd': [isize; _] | 1124 | 122..123 'd': [isize; _] |
1125 | [126; 138) '[1, y, 2, 3]': [isize; _] | 1125 | 126..138 '[1, y, 2, 3]': [isize; _] |
1126 | [127; 128) '1': isize | 1126 | 127..128 '1': isize |
1127 | [130; 131) 'y': isize | 1127 | 130..131 'y': isize |
1128 | [133; 134) '2': isize | 1128 | 133..134 '2': isize |
1129 | [136; 137) '3': isize | 1129 | 136..137 '3': isize |
1130 | [148; 149) 'e': [isize; _] | 1130 | 148..149 'e': [isize; _] |
1131 | [152; 155) '[y]': [isize; _] | 1131 | 152..155 '[y]': [isize; _] |
1132 | [153; 154) 'y': isize | 1132 | 153..154 'y': isize |
1133 | [165; 166) 'f': [[isize; _]; _] | 1133 | 165..166 'f': [[isize; _]; _] |
1134 | [169; 175) '[d, d]': [[isize; _]; _] | 1134 | 169..175 '[d, d]': [[isize; _]; _] |
1135 | [170; 171) 'd': [isize; _] | 1135 | 170..171 'd': [isize; _] |
1136 | [173; 174) 'd': [isize; _] | 1136 | 173..174 'd': [isize; _] |
1137 | [185; 186) 'g': [[isize; _]; _] | 1137 | 185..186 'g': [[isize; _]; _] |
1138 | [189; 195) '[e, e]': [[isize; _]; _] | 1138 | 189..195 '[e, e]': [[isize; _]; _] |
1139 | [190; 191) 'e': [isize; _] | 1139 | 190..191 'e': [isize; _] |
1140 | [193; 194) 'e': [isize; _] | 1140 | 193..194 'e': [isize; _] |
1141 | [206; 207) 'h': [i32; _] | 1141 | 206..207 'h': [i32; _] |
1142 | [210; 216) '[1, 2]': [i32; _] | 1142 | 210..216 '[1, 2]': [i32; _] |
1143 | [211; 212) '1': i32 | 1143 | 211..212 '1': i32 |
1144 | [214; 215) '2': i32 | 1144 | 214..215 '2': i32 |
1145 | [226; 227) 'i': [&str; _] | 1145 | 226..227 'i': [&str; _] |
1146 | [230; 240) '["a", "b"]': [&str; _] | 1146 | 230..240 '["a", "b"]': [&str; _] |
1147 | [231; 234) '"a"': &str | 1147 | 231..234 '"a"': &str |
1148 | [236; 239) '"b"': &str | 1148 | 236..239 '"b"': &str |
1149 | [251; 252) 'b': [[&str; _]; _] | 1149 | 251..252 'b': [[&str; _]; _] |
1150 | [255; 265) '[a, ["b"]]': [[&str; _]; _] | 1150 | 255..265 '[a, ["b"]]': [[&str; _]; _] |
1151 | [256; 257) 'a': [&str; _] | 1151 | 256..257 'a': [&str; _] |
1152 | [259; 264) '["b"]': [&str; _] | 1152 | 259..264 '["b"]': [&str; _] |
1153 | [260; 263) '"b"': &str | 1153 | 260..263 '"b"': &str |
1154 | [275; 276) 'x': [u8; _] | 1154 | 275..276 'x': [u8; _] |
1155 | [288; 290) '[]': [u8; _] | 1155 | 288..290 '[]': [u8; _] |
1156 | "### | 1156 | "### |
1157 | ); | 1157 | ); |
1158 | } | 1158 | } |
@@ -1174,21 +1174,21 @@ fn test(a1: A<u32>, i: i32) { | |||
1174 | } | 1174 | } |
1175 | "#), | 1175 | "#), |
1176 | @r###" | 1176 | @r###" |
1177 | [36; 38) 'a1': A<u32> | 1177 | 36..38 'a1': A<u32> |
1178 | [48; 49) 'i': i32 | 1178 | 48..49 'i': i32 |
1179 | [56; 147) '{ ...3.x; }': () | 1179 | 56..147 '{ ...3.x; }': () |
1180 | [62; 64) 'a1': A<u32> | 1180 | 62..64 'a1': A<u32> |
1181 | [62; 66) 'a1.x': u32 | 1181 | 62..66 'a1.x': u32 |
1182 | [76; 78) 'a2': A<i32> | 1182 | 76..78 'a2': A<i32> |
1183 | [81; 91) 'A { x: i }': A<i32> | 1183 | 81..91 'A { x: i }': A<i32> |
1184 | [88; 89) 'i': i32 | 1184 | 88..89 'i': i32 |
1185 | [97; 99) 'a2': A<i32> | 1185 | 97..99 'a2': A<i32> |
1186 | [97; 101) 'a2.x': i32 | 1186 | 97..101 'a2.x': i32 |
1187 | [111; 113) 'a3': A<i128> | 1187 | 111..113 'a3': A<i128> |
1188 | [116; 134) 'A::<i1...x: 1 }': A<i128> | 1188 | 116..134 'A::<i1...x: 1 }': A<i128> |
1189 | [131; 132) '1': i128 | 1189 | 131..132 '1': i128 |
1190 | [140; 142) 'a3': A<i128> | 1190 | 140..142 'a3': A<i128> |
1191 | [140; 144) 'a3.x': i128 | 1191 | 140..144 'a3.x': i128 |
1192 | "### | 1192 | "### |
1193 | ); | 1193 | ); |
1194 | } | 1194 | } |
@@ -1211,22 +1211,22 @@ fn test() { | |||
1211 | } | 1211 | } |
1212 | "#), | 1212 | "#), |
1213 | @r###" | 1213 | @r###" |
1214 | [76; 184) '{ ...one; }': () | 1214 | 76..184 '{ ...one; }': () |
1215 | [82; 83) 'A': A<i32>(i32) -> A<i32> | 1215 | 82..83 'A': A<i32>(i32) -> A<i32> |
1216 | [82; 87) 'A(42)': A<i32> | 1216 | 82..87 'A(42)': A<i32> |
1217 | [84; 86) '42': i32 | 1217 | 84..86 '42': i32 |
1218 | [93; 94) 'A': A<u128>(u128) -> A<u128> | 1218 | 93..94 'A': A<u128>(u128) -> A<u128> |
1219 | [93; 102) 'A(42u128)': A<u128> | 1219 | 93..102 'A(42u128)': A<u128> |
1220 | [95; 101) '42u128': u128 | 1220 | 95..101 '42u128': u128 |
1221 | [108; 112) 'Some': Some<&str>(&str) -> Option<&str> | 1221 | 108..112 'Some': Some<&str>(&str) -> Option<&str> |
1222 | [108; 117) 'Some("x")': Option<&str> | 1222 | 108..117 'Some("x")': Option<&str> |
1223 | [113; 116) '"x"': &str | 1223 | 113..116 '"x"': &str |
1224 | [123; 135) 'Option::Some': Some<&str>(&str) -> Option<&str> | 1224 | 123..135 'Option::Some': Some<&str>(&str) -> Option<&str> |
1225 | [123; 140) 'Option...e("x")': Option<&str> | 1225 | 123..140 'Option...e("x")': Option<&str> |
1226 | [136; 139) '"x"': &str | 1226 | 136..139 '"x"': &str |
1227 | [146; 150) 'None': Option<{unknown}> | 1227 | 146..150 'None': Option<{unknown}> |
1228 | [160; 161) 'x': Option<i64> | 1228 | 160..161 'x': Option<i64> |
1229 | [177; 181) 'None': Option<i64> | 1229 | 177..181 'None': Option<i64> |
1230 | "### | 1230 | "### |
1231 | ); | 1231 | ); |
1232 | } | 1232 | } |
@@ -1244,20 +1244,20 @@ fn test() { | |||
1244 | } | 1244 | } |
1245 | "#), | 1245 | "#), |
1246 | @r###" | 1246 | @r###" |
1247 | [10; 11) 't': T | 1247 | 10..11 't': T |
1248 | [21; 26) '{ t }': T | 1248 | 21..26 '{ t }': T |
1249 | [23; 24) 't': T | 1249 | 23..24 't': T |
1250 | [38; 98) '{ ...(1); }': () | 1250 | 38..98 '{ ...(1); }': () |
1251 | [44; 46) 'id': fn id<u32>(u32) -> u32 | 1251 | 44..46 'id': fn id<u32>(u32) -> u32 |
1252 | [44; 52) 'id(1u32)': u32 | 1252 | 44..52 'id(1u32)': u32 |
1253 | [47; 51) '1u32': u32 | 1253 | 47..51 '1u32': u32 |
1254 | [58; 68) 'id::<i128>': fn id<i128>(i128) -> i128 | 1254 | 58..68 'id::<i128>': fn id<i128>(i128) -> i128 |
1255 | [58; 71) 'id::<i128>(1)': i128 | 1255 | 58..71 'id::<i128>(1)': i128 |
1256 | [69; 70) '1': i128 | 1256 | 69..70 '1': i128 |
1257 | [81; 82) 'x': u64 | 1257 | 81..82 'x': u64 |
1258 | [90; 92) 'id': fn id<u64>(u64) -> u64 | 1258 | 90..92 'id': fn id<u64>(u64) -> u64 |
1259 | [90; 95) 'id(1)': u64 | 1259 | 90..95 'id(1)': u64 |
1260 | [93; 94) '1': u64 | 1260 | 93..94 '1': u64 |
1261 | "### | 1261 | "### |
1262 | ); | 1262 | ); |
1263 | } | 1263 | } |
@@ -1291,38 +1291,38 @@ fn test() -> i128 { | |||
1291 | } | 1291 | } |
1292 | "#), | 1292 | "#), |
1293 | @r###" | 1293 | @r###" |
1294 | [74; 78) 'self': A<X, Y> | 1294 | 74..78 'self': A<X, Y> |
1295 | [85; 107) '{ ... }': X | 1295 | 85..107 '{ ... }': X |
1296 | [95; 99) 'self': A<X, Y> | 1296 | 95..99 'self': A<X, Y> |
1297 | [95; 101) 'self.x': X | 1297 | 95..101 'self.x': X |
1298 | [117; 121) 'self': A<X, Y> | 1298 | 117..121 'self': A<X, Y> |
1299 | [128; 150) '{ ... }': Y | 1299 | 128..150 '{ ... }': Y |
1300 | [138; 142) 'self': A<X, Y> | 1300 | 138..142 'self': A<X, Y> |
1301 | [138; 144) 'self.y': Y | 1301 | 138..144 'self.y': Y |
1302 | [163; 167) 'self': A<X, Y> | 1302 | 163..167 'self': A<X, Y> |
1303 | [169; 170) 't': T | 1303 | 169..170 't': T |
1304 | [188; 223) '{ ... }': (X, Y, T) | 1304 | 188..223 '{ ... }': (X, Y, T) |
1305 | [198; 217) '(self.....y, t)': (X, Y, T) | 1305 | 198..217 '(self.....y, t)': (X, Y, T) |
1306 | [199; 203) 'self': A<X, Y> | 1306 | 199..203 'self': A<X, Y> |
1307 | [199; 205) 'self.x': X | 1307 | 199..205 'self.x': X |
1308 | [207; 211) 'self': A<X, Y> | 1308 | 207..211 'self': A<X, Y> |
1309 | [207; 213) 'self.y': Y | 1309 | 207..213 'self.y': Y |
1310 | [215; 216) 't': T | 1310 | 215..216 't': T |
1311 | [245; 342) '{ ...(1); }': () | 1311 | 245..342 '{ ...(1); }': () |
1312 | [255; 256) 'a': A<u64, i64> | 1312 | 255..256 'a': A<u64, i64> |
1313 | [259; 281) 'A { x:...1i64 }': A<u64, i64> | 1313 | 259..281 'A { x:...1i64 }': A<u64, i64> |
1314 | [266; 270) '1u64': u64 | 1314 | 266..270 '1u64': u64 |
1315 | [275; 279) '1i64': i64 | 1315 | 275..279 '1i64': i64 |
1316 | [287; 288) 'a': A<u64, i64> | 1316 | 287..288 'a': A<u64, i64> |
1317 | [287; 292) 'a.x()': u64 | 1317 | 287..292 'a.x()': u64 |
1318 | [298; 299) 'a': A<u64, i64> | 1318 | 298..299 'a': A<u64, i64> |
1319 | [298; 303) 'a.y()': i64 | 1319 | 298..303 'a.y()': i64 |
1320 | [309; 310) 'a': A<u64, i64> | 1320 | 309..310 'a': A<u64, i64> |
1321 | [309; 319) 'a.z(1i128)': (u64, i64, i128) | 1321 | 309..319 'a.z(1i128)': (u64, i64, i128) |
1322 | [313; 318) '1i128': i128 | 1322 | 313..318 '1i128': i128 |
1323 | [325; 326) 'a': A<u64, i64> | 1323 | 325..326 'a': A<u64, i64> |
1324 | [325; 339) 'a.z::<u128>(1)': (u64, i64, u128) | 1324 | 325..339 'a.z::<u128>(1)': (u64, i64, u128) |
1325 | [337; 338) '1': u128 | 1325 | 337..338 '1': u128 |
1326 | "### | 1326 | "### |
1327 | ); | 1327 | ); |
1328 | } | 1328 | } |
@@ -1344,15 +1344,15 @@ fn test(o: Option<u32>) { | |||
1344 | } | 1344 | } |
1345 | "#), | 1345 | "#), |
1346 | @r###" | 1346 | @r###" |
1347 | [78; 82) 'self': &Option<T> | 1347 | 78..82 'self': &Option<T> |
1348 | [98; 100) '{}': () | 1348 | 98..100 '{}': () |
1349 | [111; 112) 'o': Option<u32> | 1349 | 111..112 'o': Option<u32> |
1350 | [127; 165) '{ ...f(); }': () | 1350 | 127..165 '{ ...f(); }': () |
1351 | [133; 146) '(&o).as_ref()': Option<&u32> | 1351 | 133..146 '(&o).as_ref()': Option<&u32> |
1352 | [134; 136) '&o': &Option<u32> | 1352 | 134..136 '&o': &Option<u32> |
1353 | [135; 136) 'o': Option<u32> | 1353 | 135..136 'o': Option<u32> |
1354 | [152; 153) 'o': Option<u32> | 1354 | 152..153 'o': Option<u32> |
1355 | [152; 162) 'o.as_ref()': Option<&u32> | 1355 | 152..162 'o.as_ref()': Option<&u32> |
1356 | "### | 1356 | "### |
1357 | ); | 1357 | ); |
1358 | } | 1358 | } |
@@ -1381,35 +1381,35 @@ fn test() -> i128 { | |||
1381 | } | 1381 | } |
1382 | "#), | 1382 | "#), |
1383 | @r###" | 1383 | @r###" |
1384 | [53; 57) 'self': A<T2> | 1384 | 53..57 'self': A<T2> |
1385 | [65; 87) '{ ... }': T2 | 1385 | 65..87 '{ ... }': T2 |
1386 | [75; 79) 'self': A<T2> | 1386 | 75..79 'self': A<T2> |
1387 | [75; 81) 'self.x': T2 | 1387 | 75..81 'self.x': T2 |
1388 | [99; 100) 't': T | 1388 | 99..100 't': T |
1389 | [110; 115) '{ t }': T | 1389 | 110..115 '{ t }': T |
1390 | [112; 113) 't': T | 1390 | 112..113 't': T |
1391 | [135; 261) '{ ....x() }': i128 | 1391 | 135..261 '{ ....x() }': i128 |
1392 | [146; 147) 'x': i128 | 1392 | 146..147 'x': i128 |
1393 | [150; 151) '1': i128 | 1393 | 150..151 '1': i128 |
1394 | [162; 163) 'y': i128 | 1394 | 162..163 'y': i128 |
1395 | [166; 168) 'id': fn id<i128>(i128) -> i128 | 1395 | 166..168 'id': fn id<i128>(i128) -> i128 |
1396 | [166; 171) 'id(x)': i128 | 1396 | 166..171 'id(x)': i128 |
1397 | [169; 170) 'x': i128 | 1397 | 169..170 'x': i128 |
1398 | [182; 183) 'a': A<i128> | 1398 | 182..183 'a': A<i128> |
1399 | [186; 200) 'A { x: id(y) }': A<i128> | 1399 | 186..200 'A { x: id(y) }': A<i128> |
1400 | [193; 195) 'id': fn id<i128>(i128) -> i128 | 1400 | 193..195 'id': fn id<i128>(i128) -> i128 |
1401 | [193; 198) 'id(y)': i128 | 1401 | 193..198 'id(y)': i128 |
1402 | [196; 197) 'y': i128 | 1402 | 196..197 'y': i128 |
1403 | [211; 212) 'z': i128 | 1403 | 211..212 'z': i128 |
1404 | [215; 217) 'id': fn id<i128>(i128) -> i128 | 1404 | 215..217 'id': fn id<i128>(i128) -> i128 |
1405 | [215; 222) 'id(a.x)': i128 | 1405 | 215..222 'id(a.x)': i128 |
1406 | [218; 219) 'a': A<i128> | 1406 | 218..219 'a': A<i128> |
1407 | [218; 221) 'a.x': i128 | 1407 | 218..221 'a.x': i128 |
1408 | [233; 234) 'b': A<i128> | 1408 | 233..234 'b': A<i128> |
1409 | [237; 247) 'A { x: z }': A<i128> | 1409 | 237..247 'A { x: z }': A<i128> |
1410 | [244; 245) 'z': i128 | 1410 | 244..245 'z': i128 |
1411 | [254; 255) 'b': A<i128> | 1411 | 254..255 'b': A<i128> |
1412 | [254; 259) 'b.x()': i128 | 1412 | 254..259 'b.x()': i128 |
1413 | "### | 1413 | "### |
1414 | ); | 1414 | ); |
1415 | } | 1415 | } |
@@ -1447,16 +1447,16 @@ fn test() { | |||
1447 | } | 1447 | } |
1448 | "#), | 1448 | "#), |
1449 | @r###" | 1449 | @r###" |
1450 | [52; 53) '1': u32 | 1450 | 52..53 '1': u32 |
1451 | [105; 106) '2': u32 | 1451 | 105..106 '2': u32 |
1452 | [213; 214) '5': u32 | 1452 | 213..214 '5': u32 |
1453 | [229; 307) '{ ...:ID; }': () | 1453 | 229..307 '{ ...:ID; }': () |
1454 | [239; 240) 'x': u32 | 1454 | 239..240 'x': u32 |
1455 | [243; 254) 'Struct::FOO': u32 | 1455 | 243..254 'Struct::FOO': u32 |
1456 | [264; 265) 'y': u32 | 1456 | 264..265 'y': u32 |
1457 | [268; 277) 'Enum::BAR': u32 | 1457 | 268..277 'Enum::BAR': u32 |
1458 | [287; 288) 'z': u32 | 1458 | 287..288 'z': u32 |
1459 | [291; 304) 'TraitTest::ID': u32 | 1459 | 291..304 'TraitTest::ID': u32 |
1460 | "### | 1460 | "### |
1461 | ); | 1461 | ); |
1462 | } | 1462 | } |
@@ -1479,22 +1479,22 @@ fn test(x: Foo, y: Bar<&str>, z: Baz<i8, u8>) { | |||
1479 | } | 1479 | } |
1480 | "#), | 1480 | "#), |
1481 | @r###" | 1481 | @r###" |
1482 | [116; 117) 'x': A<u32, i128> | 1482 | 116..117 'x': A<u32, i128> |
1483 | [124; 125) 'y': A<&str, u128> | 1483 | 124..125 'y': A<&str, u128> |
1484 | [138; 139) 'z': A<u8, i8> | 1484 | 138..139 'z': A<u8, i8> |
1485 | [154; 211) '{ ...z.y; }': () | 1485 | 154..211 '{ ...z.y; }': () |
1486 | [160; 161) 'x': A<u32, i128> | 1486 | 160..161 'x': A<u32, i128> |
1487 | [160; 163) 'x.x': u32 | 1487 | 160..163 'x.x': u32 |
1488 | [169; 170) 'x': A<u32, i128> | 1488 | 169..170 'x': A<u32, i128> |
1489 | [169; 172) 'x.y': i128 | 1489 | 169..172 'x.y': i128 |
1490 | [178; 179) 'y': A<&str, u128> | 1490 | 178..179 'y': A<&str, u128> |
1491 | [178; 181) 'y.x': &str | 1491 | 178..181 'y.x': &str |
1492 | [187; 188) 'y': A<&str, u128> | 1492 | 187..188 'y': A<&str, u128> |
1493 | [187; 190) 'y.y': u128 | 1493 | 187..190 'y.y': u128 |
1494 | [196; 197) 'z': A<u8, i8> | 1494 | 196..197 'z': A<u8, i8> |
1495 | [196; 199) 'z.x': u8 | 1495 | 196..199 'z.x': u8 |
1496 | [205; 206) 'z': A<u8, i8> | 1496 | 205..206 'z': A<u8, i8> |
1497 | [205; 208) 'z.y': i8 | 1497 | 205..208 'z.y': i8 |
1498 | "### | 1498 | "### |
1499 | ) | 1499 | ) |
1500 | } | 1500 | } |
@@ -1509,8 +1509,8 @@ type Bar = A<Bar>; | |||
1509 | fn test(x: Foo) {} | 1509 | fn test(x: Foo) {} |
1510 | "#), | 1510 | "#), |
1511 | @r###" | 1511 | @r###" |
1512 | [59; 60) 'x': {unknown} | 1512 | 59..60 'x': {unknown} |
1513 | [67; 69) '{}': () | 1513 | 67..69 '{}': () |
1514 | "### | 1514 | "### |
1515 | ) | 1515 | ) |
1516 | } | 1516 | } |
@@ -1535,26 +1535,26 @@ fn test() { | |||
1535 | } | 1535 | } |
1536 | "#), | 1536 | "#), |
1537 | @r###" | 1537 | @r###" |
1538 | [10; 11) 'x': T | 1538 | 10..11 'x': T |
1539 | [21; 30) '{ x }': T | 1539 | 21..30 '{ x }': T |
1540 | [27; 28) 'x': T | 1540 | 27..28 'x': T |
1541 | [44; 45) 'x': &T | 1541 | 44..45 'x': &T |
1542 | [56; 66) '{ *x }': T | 1542 | 56..66 '{ *x }': T |
1543 | [62; 64) '*x': T | 1543 | 62..64 '*x': T |
1544 | [63; 64) 'x': &T | 1544 | 63..64 'x': &T |
1545 | [78; 158) '{ ...(1); }': () | 1545 | 78..158 '{ ...(1); }': () |
1546 | [88; 89) 'y': u32 | 1546 | 88..89 'y': u32 |
1547 | [92; 97) '10u32': u32 | 1547 | 92..97 '10u32': u32 |
1548 | [103; 105) 'id': fn id<u32>(u32) -> u32 | 1548 | 103..105 'id': fn id<u32>(u32) -> u32 |
1549 | [103; 108) 'id(y)': u32 | 1549 | 103..108 'id(y)': u32 |
1550 | [106; 107) 'y': u32 | 1550 | 106..107 'y': u32 |
1551 | [118; 119) 'x': bool | 1551 | 118..119 'x': bool |
1552 | [128; 133) 'clone': fn clone<bool>(&bool) -> bool | 1552 | 128..133 'clone': fn clone<bool>(&bool) -> bool |
1553 | [128; 136) 'clone(z)': bool | 1553 | 128..136 'clone(z)': bool |
1554 | [134; 135) 'z': &bool | 1554 | 134..135 'z': &bool |
1555 | [142; 152) 'id::<i128>': fn id<i128>(i128) -> i128 | 1555 | 142..152 'id::<i128>': fn id<i128>(i128) -> i128 |
1556 | [142; 155) 'id::<i128>(1)': i128 | 1556 | 142..155 'id::<i128>(1)': i128 |
1557 | [153; 154) '1': i128 | 1557 | 153..154 '1': i128 |
1558 | "### | 1558 | "### |
1559 | ); | 1559 | ); |
1560 | } | 1560 | } |
@@ -1574,16 +1574,16 @@ fn test() { | |||
1574 | } | 1574 | } |
1575 | "#), | 1575 | "#), |
1576 | @r###" | 1576 | @r###" |
1577 | [49; 50) '0': u32 | 1577 | 49..50 '0': u32 |
1578 | [80; 83) '101': u32 | 1578 | 80..83 '101': u32 |
1579 | [95; 213) '{ ...NST; }': () | 1579 | 95..213 '{ ...NST; }': () |
1580 | [138; 139) 'x': u32 | 1580 | 138..139 'x': u32 |
1581 | [142; 153) 'LOCAL_CONST': u32 | 1581 | 142..153 'LOCAL_CONST': u32 |
1582 | [163; 164) 'z': u32 | 1582 | 163..164 'z': u32 |
1583 | [167; 179) 'GLOBAL_CONST': u32 | 1583 | 167..179 'GLOBAL_CONST': u32 |
1584 | [189; 191) 'id': u32 | 1584 | 189..191 'id': u32 |
1585 | [194; 210) 'Foo::A..._CONST': u32 | 1585 | 194..210 'Foo::A..._CONST': u32 |
1586 | [126; 128) '99': u32 | 1586 | 126..128 '99': u32 |
1587 | "### | 1587 | "### |
1588 | ); | 1588 | ); |
1589 | } | 1589 | } |
@@ -1604,19 +1604,19 @@ fn test() { | |||
1604 | } | 1604 | } |
1605 | "#), | 1605 | "#), |
1606 | @r###" | 1606 | @r###" |
1607 | [29; 32) '101': u32 | 1607 | 29..32 '101': u32 |
1608 | [70; 73) '101': u32 | 1608 | 70..73 '101': u32 |
1609 | [85; 280) '{ ...MUT; }': () | 1609 | 85..280 '{ ...MUT; }': () |
1610 | [173; 174) 'x': u32 | 1610 | 173..174 'x': u32 |
1611 | [177; 189) 'LOCAL_STATIC': u32 | 1611 | 177..189 'LOCAL_STATIC': u32 |
1612 | [199; 200) 'y': u32 | 1612 | 199..200 'y': u32 |
1613 | [203; 219) 'LOCAL_...IC_MUT': u32 | 1613 | 203..219 'LOCAL_...IC_MUT': u32 |
1614 | [229; 230) 'z': u32 | 1614 | 229..230 'z': u32 |
1615 | [233; 246) 'GLOBAL_STATIC': u32 | 1615 | 233..246 'GLOBAL_STATIC': u32 |
1616 | [256; 257) 'w': u32 | 1616 | 256..257 'w': u32 |
1617 | [260; 277) 'GLOBAL...IC_MUT': u32 | 1617 | 260..277 'GLOBAL...IC_MUT': u32 |
1618 | [118; 120) '99': u32 | 1618 | 118..120 '99': u32 |
1619 | [161; 163) '99': u32 | 1619 | 161..163 '99': u32 |
1620 | "### | 1620 | "### |
1621 | ); | 1621 | ); |
1622 | } | 1622 | } |
@@ -1684,12 +1684,12 @@ fn foo() -> u32 { | |||
1684 | } | 1684 | } |
1685 | "#), | 1685 | "#), |
1686 | @r###" | 1686 | @r###" |
1687 | [17; 59) '{ ...; }; }': () | 1687 | 17..59 '{ ...; }; }': () |
1688 | [27; 28) 'x': || -> usize | 1688 | 27..28 'x': || -> usize |
1689 | [31; 56) '|| -> ...n 1; }': || -> usize | 1689 | 31..56 '|| -> ...n 1; }': || -> usize |
1690 | [43; 56) '{ return 1; }': ! | 1690 | 43..56 '{ return 1; }': ! |
1691 | [45; 53) 'return 1': ! | 1691 | 45..53 'return 1': ! |
1692 | [52; 53) '1': usize | 1692 | 52..53 '1': usize |
1693 | "### | 1693 | "### |
1694 | ); | 1694 | ); |
1695 | } | 1695 | } |
@@ -1703,11 +1703,11 @@ fn foo() -> u32 { | |||
1703 | } | 1703 | } |
1704 | "#), | 1704 | "#), |
1705 | @r###" | 1705 | @r###" |
1706 | [17; 48) '{ ...; }; }': () | 1706 | 17..48 '{ ...; }; }': () |
1707 | [27; 28) 'x': || -> () | 1707 | 27..28 'x': || -> () |
1708 | [31; 45) '|| { return; }': || -> () | 1708 | 31..45 '|| { return; }': || -> () |
1709 | [34; 45) '{ return; }': ! | 1709 | 34..45 '{ return; }': ! |
1710 | [36; 42) 'return': ! | 1710 | 36..42 'return': ! |
1711 | "### | 1711 | "### |
1712 | ); | 1712 | ); |
1713 | } | 1713 | } |
@@ -1721,11 +1721,11 @@ fn foo() -> u32 { | |||
1721 | } | 1721 | } |
1722 | "#), | 1722 | "#), |
1723 | @r###" | 1723 | @r###" |
1724 | [17; 47) '{ ..." }; }': () | 1724 | 17..47 '{ ..." }; }': () |
1725 | [27; 28) 'x': || -> &str | 1725 | 27..28 'x': || -> &str |
1726 | [31; 44) '|| { "test" }': || -> &str | 1726 | 31..44 '|| { "test" }': || -> &str |
1727 | [34; 44) '{ "test" }': &str | 1727 | 34..44 '{ "test" }': &str |
1728 | [36; 42) '"test"': &str | 1728 | 36..42 '"test"': &str |
1729 | "### | 1729 | "### |
1730 | ); | 1730 | ); |
1731 | } | 1731 | } |
@@ -1744,14 +1744,14 @@ fn main() { | |||
1744 | } | 1744 | } |
1745 | "#), | 1745 | "#), |
1746 | @r###" | 1746 | @r###" |
1747 | [48; 121) '{ ...hod; }': () | 1747 | 48..121 '{ ...hod; }': () |
1748 | [58; 64) 'vtable': Vtable | 1748 | 58..64 'vtable': Vtable |
1749 | [67; 91) 'Vtable...| {} }': Vtable | 1749 | 67..91 'Vtable...| {} }': Vtable |
1750 | [84; 89) '|| {}': || -> () | 1750 | 84..89 '|| {}': || -> () |
1751 | [87; 89) '{}': () | 1751 | 87..89 '{}': () |
1752 | [101; 102) 'm': fn() | 1752 | 101..102 'm': fn() |
1753 | [105; 111) 'vtable': Vtable | 1753 | 105..111 'vtable': Vtable |
1754 | [105; 118) 'vtable.method': fn() | 1754 | 105..118 'vtable.method': fn() |
1755 | "### | 1755 | "### |
1756 | ); | 1756 | ); |
1757 | } | 1757 | } |
diff --git a/crates/ra_hir_ty/src/tests/traits.rs b/crates/ra_hir_ty/src/tests/traits.rs index a46f03b7f..f51cdd496 100644 --- a/crates/ra_hir_ty/src/tests/traits.rs +++ b/crates/ra_hir_ty/src/tests/traits.rs | |||
@@ -256,16 +256,16 @@ fn test() { | |||
256 | } | 256 | } |
257 | "#), | 257 | "#), |
258 | @r###" | 258 | @r###" |
259 | [86; 87) 't': T | 259 | 86..87 't': T |
260 | [92; 94) '{}': () | 260 | 92..94 '{}': () |
261 | [105; 144) '{ ...(s); }': () | 261 | 105..144 '{ ...(s); }': () |
262 | [115; 116) 's': S<u32> | 262 | 115..116 's': S<u32> |
263 | [119; 120) 'S': S<u32>(u32) -> S<u32> | 263 | 119..120 'S': S<u32>(u32) -> S<u32> |
264 | [119; 129) 'S(unknown)': S<u32> | 264 | 119..129 'S(unknown)': S<u32> |
265 | [121; 128) 'unknown': u32 | 265 | 121..128 'unknown': u32 |
266 | [135; 138) 'foo': fn foo<S<u32>>(S<u32>) | 266 | 135..138 'foo': fn foo<S<u32>>(S<u32>) |
267 | [135; 141) 'foo(s)': () | 267 | 135..141 'foo(s)': () |
268 | [139; 140) 's': S<u32> | 268 | 139..140 's': S<u32> |
269 | "### | 269 | "### |
270 | ); | 270 | ); |
271 | } | 271 | } |
@@ -284,17 +284,17 @@ fn test() { | |||
284 | } | 284 | } |
285 | "#), | 285 | "#), |
286 | @r###" | 286 | @r###" |
287 | [87; 88) 't': T | 287 | 87..88 't': T |
288 | [98; 100) '{}': () | 288 | 98..100 '{}': () |
289 | [111; 163) '{ ...(s); }': () | 289 | 111..163 '{ ...(s); }': () |
290 | [121; 122) 's': S<u32> | 290 | 121..122 's': S<u32> |
291 | [125; 126) 'S': S<u32>(u32) -> S<u32> | 291 | 125..126 'S': S<u32>(u32) -> S<u32> |
292 | [125; 135) 'S(unknown)': S<u32> | 292 | 125..135 'S(unknown)': S<u32> |
293 | [127; 134) 'unknown': u32 | 293 | 127..134 'unknown': u32 |
294 | [145; 146) 'x': u32 | 294 | 145..146 'x': u32 |
295 | [154; 157) 'foo': fn foo<u32, S<u32>>(S<u32>) -> u32 | 295 | 154..157 'foo': fn foo<u32, S<u32>>(S<u32>) -> u32 |
296 | [154; 160) 'foo(s)': u32 | 296 | 154..160 'foo(s)': u32 |
297 | [158; 159) 's': S<u32> | 297 | 158..159 's': S<u32> |
298 | "### | 298 | "### |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -312,12 +312,12 @@ trait Trait { | |||
312 | } | 312 | } |
313 | "#), | 313 | "#), |
314 | @r###" | 314 | @r###" |
315 | [27; 31) 'self': &Self | 315 | 27..31 'self': &Self |
316 | [53; 57) 'self': &Self | 316 | 53..57 'self': &Self |
317 | [62; 97) '{ ... }': () | 317 | 62..97 '{ ... }': () |
318 | [76; 77) 'x': i64 | 318 | 76..77 'x': i64 |
319 | [80; 84) 'self': &Self | 319 | 80..84 'self': &Self |
320 | [80; 90) 'self.foo()': i64 | 320 | 80..90 'self.foo()': i64 |
321 | "### | 321 | "### |
322 | ); | 322 | ); |
323 | } | 323 | } |
@@ -337,12 +337,12 @@ trait Trait: SuperTrait { | |||
337 | } | 337 | } |
338 | "#), | 338 | "#), |
339 | @r###" | 339 | @r###" |
340 | [32; 36) 'self': &Self | 340 | 32..36 'self': &Self |
341 | [86; 90) 'self': &Self | 341 | 86..90 'self': &Self |
342 | [95; 130) '{ ... }': () | 342 | 95..130 '{ ... }': () |
343 | [109; 110) 'x': i64 | 343 | 109..110 'x': i64 |
344 | [113; 117) 'self': &Self | 344 | 113..117 'self': &Self |
345 | [113; 123) 'self.foo()': i64 | 345 | 113..123 'self.foo()': i64 |
346 | "### | 346 | "### |
347 | ); | 347 | ); |
348 | } | 348 | } |
@@ -364,15 +364,15 @@ fn test<T: Iterable>() { | |||
364 | } | 364 | } |
365 | "#), | 365 | "#), |
366 | @r###" | 366 | @r###" |
367 | [108; 261) '{ ...ter; }': () | 367 | 108..261 '{ ...ter; }': () |
368 | [118; 119) 'x': u32 | 368 | 118..119 'x': u32 |
369 | [145; 146) '1': u32 | 369 | 145..146 '1': u32 |
370 | [156; 157) 'y': Iterable::Item<T> | 370 | 156..157 'y': Iterable::Item<T> |
371 | [183; 192) 'no_matter': Iterable::Item<T> | 371 | 183..192 'no_matter': Iterable::Item<T> |
372 | [202; 203) 'z': Iterable::Item<T> | 372 | 202..203 'z': Iterable::Item<T> |
373 | [215; 224) 'no_matter': Iterable::Item<T> | 373 | 215..224 'no_matter': Iterable::Item<T> |
374 | [234; 235) 'a': Iterable::Item<T> | 374 | 234..235 'a': Iterable::Item<T> |
375 | [249; 258) 'no_matter': Iterable::Item<T> | 375 | 249..258 'no_matter': Iterable::Item<T> |
376 | "### | 376 | "### |
377 | ); | 377 | ); |
378 | } | 378 | } |
@@ -396,25 +396,25 @@ fn test() { | |||
396 | } | 396 | } |
397 | "#), | 397 | "#), |
398 | @r###" | 398 | @r###" |
399 | [106; 107) 't': T | 399 | 106..107 't': T |
400 | [123; 125) '{}': () | 400 | 123..125 '{}': () |
401 | [147; 148) 't': T | 401 | 147..148 't': T |
402 | [178; 180) '{}': () | 402 | 178..180 '{}': () |
403 | [202; 203) 't': T | 403 | 202..203 't': T |
404 | [221; 223) '{}': () | 404 | 221..223 '{}': () |
405 | [234; 300) '{ ...(S); }': () | 405 | 234..300 '{ ...(S); }': () |
406 | [244; 245) 'x': u32 | 406 | 244..245 'x': u32 |
407 | [248; 252) 'foo1': fn foo1<S>(S) -> <S as Iterable>::Item | 407 | 248..252 'foo1': fn foo1<S>(S) -> <S as Iterable>::Item |
408 | [248; 255) 'foo1(S)': u32 | 408 | 248..255 'foo1(S)': u32 |
409 | [253; 254) 'S': S | 409 | 253..254 'S': S |
410 | [265; 266) 'y': u32 | 410 | 265..266 'y': u32 |
411 | [269; 273) 'foo2': fn foo2<S>(S) -> <S as Iterable>::Item | 411 | 269..273 'foo2': fn foo2<S>(S) -> <S as Iterable>::Item |
412 | [269; 276) 'foo2(S)': u32 | 412 | 269..276 'foo2(S)': u32 |
413 | [274; 275) 'S': S | 413 | 274..275 'S': S |
414 | [286; 287) 'z': u32 | 414 | 286..287 'z': u32 |
415 | [290; 294) 'foo3': fn foo3<S>(S) -> <S as Iterable>::Item | 415 | 290..294 'foo3': fn foo3<S>(S) -> <S as Iterable>::Item |
416 | [290; 297) 'foo3(S)': u32 | 416 | 290..297 'foo3(S)': u32 |
417 | [295; 296) 'S': S | 417 | 295..296 'S': S |
418 | "### | 418 | "### |
419 | ); | 419 | ); |
420 | } | 420 | } |
@@ -431,9 +431,9 @@ fn test<T: Iterable<Item=u32>>() { | |||
431 | } | 431 | } |
432 | "#), | 432 | "#), |
433 | @r###" | 433 | @r###" |
434 | [67; 100) '{ ...own; }': () | 434 | 67..100 '{ ...own; }': () |
435 | [77; 78) 'y': u32 | 435 | 77..78 'y': u32 |
436 | [90; 97) 'unknown': u32 | 436 | 90..97 'unknown': u32 |
437 | "### | 437 | "### |
438 | ); | 438 | ); |
439 | } | 439 | } |
@@ -446,13 +446,13 @@ const A: u32 = 1 + 1; | |||
446 | static B: u64 = { let x = 1; x }; | 446 | static B: u64 = { let x = 1; x }; |
447 | "#), | 447 | "#), |
448 | @r###" | 448 | @r###" |
449 | [16; 17) '1': u32 | 449 | 16..17 '1': u32 |
450 | [16; 21) '1 + 1': u32 | 450 | 16..21 '1 + 1': u32 |
451 | [20; 21) '1': u32 | 451 | 20..21 '1': u32 |
452 | [39; 55) '{ let ...1; x }': u64 | 452 | 39..55 '{ let ...1; x }': u64 |
453 | [45; 46) 'x': u64 | 453 | 45..46 'x': u64 |
454 | [49; 50) '1': u64 | 454 | 49..50 '1': u64 |
455 | [52; 53) 'x': u64 | 455 | 52..53 'x': u64 |
456 | "### | 456 | "### |
457 | ); | 457 | ); |
458 | } | 458 | } |
@@ -469,17 +469,17 @@ fn test() -> u64 { | |||
469 | } | 469 | } |
470 | "#), | 470 | "#), |
471 | @r###" | 471 | @r###" |
472 | [38; 87) '{ ... a.1 }': u64 | 472 | 38..87 '{ ... a.1 }': u64 |
473 | [48; 49) 'a': S | 473 | 48..49 'a': S |
474 | [52; 53) 'S': S(i32, u64) -> S | 474 | 52..53 'S': S(i32, u64) -> S |
475 | [52; 59) 'S(4, 6)': S | 475 | 52..59 'S(4, 6)': S |
476 | [54; 55) '4': i32 | 476 | 54..55 '4': i32 |
477 | [57; 58) '6': u64 | 477 | 57..58 '6': u64 |
478 | [69; 70) 'b': i32 | 478 | 69..70 'b': i32 |
479 | [73; 74) 'a': S | 479 | 73..74 'a': S |
480 | [73; 76) 'a.0': i32 | 480 | 73..76 'a.0': i32 |
481 | [82; 83) 'a': S | 481 | 82..83 'a': S |
482 | [82; 85) 'a.1': u64 | 482 | 82..85 'a.1': u64 |
483 | "### | 483 | "### |
484 | ); | 484 | ); |
485 | } | 485 | } |
@@ -496,24 +496,24 @@ fn test() -> u64 { | |||
496 | } | 496 | } |
497 | "#), | 497 | "#), |
498 | @r###" | 498 | @r###" |
499 | [44; 102) '{ ...0(2) }': u64 | 499 | 44..102 '{ ...0(2) }': u64 |
500 | [54; 55) 'a': S | 500 | 54..55 'a': S |
501 | [58; 59) 'S': S(fn(u32) -> u64) -> S | 501 | 58..59 'S': S(fn(u32) -> u64) -> S |
502 | [58; 68) 'S(|i| 2*i)': S | 502 | 58..68 'S(|i| 2*i)': S |
503 | [60; 67) '|i| 2*i': |u32| -> u64 | 503 | 60..67 '|i| 2*i': |u32| -> u64 |
504 | [61; 62) 'i': u32 | 504 | 61..62 'i': u32 |
505 | [64; 65) '2': u32 | 505 | 64..65 '2': u32 |
506 | [64; 67) '2*i': u32 | 506 | 64..67 '2*i': u32 |
507 | [66; 67) 'i': u32 | 507 | 66..67 'i': u32 |
508 | [78; 79) 'b': u64 | 508 | 78..79 'b': u64 |
509 | [82; 83) 'a': S | 509 | 82..83 'a': S |
510 | [82; 85) 'a.0': fn(u32) -> u64 | 510 | 82..85 'a.0': fn(u32) -> u64 |
511 | [82; 88) 'a.0(4)': u64 | 511 | 82..88 'a.0(4)': u64 |
512 | [86; 87) '4': u32 | 512 | 86..87 '4': u32 |
513 | [94; 95) 'a': S | 513 | 94..95 'a': S |
514 | [94; 97) 'a.0': fn(u32) -> u64 | 514 | 94..97 'a.0': fn(u32) -> u64 |
515 | [94; 100) 'a.0(2)': u64 | 515 | 94..100 'a.0(2)': u64 |
516 | [98; 99) '2': u32 | 516 | 98..99 '2': u32 |
517 | "### | 517 | "### |
518 | ); | 518 | ); |
519 | } | 519 | } |
@@ -523,12 +523,12 @@ fn indexing_arrays() { | |||
523 | assert_snapshot!( | 523 | assert_snapshot!( |
524 | infer("fn main() { &mut [9][2]; }"), | 524 | infer("fn main() { &mut [9][2]; }"), |
525 | @r###" | 525 | @r###" |
526 | [10; 26) '{ &mut...[2]; }': () | 526 | 10..26 '{ &mut...[2]; }': () |
527 | [12; 23) '&mut [9][2]': &mut {unknown} | 527 | 12..23 '&mut [9][2]': &mut {unknown} |
528 | [17; 20) '[9]': [i32; _] | 528 | 17..20 '[9]': [i32; _] |
529 | [17; 23) '[9][2]': {unknown} | 529 | 17..23 '[9][2]': {unknown} |
530 | [18; 19) '9': i32 | 530 | 18..19 '9': i32 |
531 | [21; 22) '2': i32 | 531 | 21..22 '2': i32 |
532 | "### | 532 | "### |
533 | ) | 533 | ) |
534 | } | 534 | } |
@@ -944,34 +944,34 @@ fn test(x: impl Trait<u64>, y: &impl Trait<u32>) { | |||
944 | } | 944 | } |
945 | "#, true), | 945 | "#, true), |
946 | @r###" | 946 | @r###" |
947 | [30; 34) 'self': &Self | 947 | 30..34 'self': &Self |
948 | [55; 59) 'self': &Self | 948 | 55..59 'self': &Self |
949 | [78; 79) 'x': impl Trait<u16> | 949 | 78..79 'x': impl Trait<u16> |
950 | [98; 100) '{}': () | 950 | 98..100 '{}': () |
951 | [155; 156) 'x': impl Trait<u64> | 951 | 155..156 'x': impl Trait<u64> |
952 | [175; 176) 'y': &impl Trait<u32> | 952 | 175..176 'y': &impl Trait<u32> |
953 | [196; 324) '{ ...2(); }': () | 953 | 196..324 '{ ...2(); }': () |
954 | [202; 203) 'x': impl Trait<u64> | 954 | 202..203 'x': impl Trait<u64> |
955 | [209; 210) 'y': &impl Trait<u32> | 955 | 209..210 'y': &impl Trait<u32> |
956 | [220; 221) 'z': S<u16> | 956 | 220..221 'z': S<u16> |
957 | [224; 225) 'S': S<u16>(u16) -> S<u16> | 957 | 224..225 'S': S<u16>(u16) -> S<u16> |
958 | [224; 228) 'S(1)': S<u16> | 958 | 224..228 'S(1)': S<u16> |
959 | [226; 227) '1': u16 | 959 | 226..227 '1': u16 |
960 | [234; 237) 'bar': fn bar(S<u16>) | 960 | 234..237 'bar': fn bar(S<u16>) |
961 | [234; 240) 'bar(z)': () | 961 | 234..240 'bar(z)': () |
962 | [238; 239) 'z': S<u16> | 962 | 238..239 'z': S<u16> |
963 | [246; 247) 'x': impl Trait<u64> | 963 | 246..247 'x': impl Trait<u64> |
964 | [246; 253) 'x.foo()': u64 | 964 | 246..253 'x.foo()': u64 |
965 | [259; 260) 'y': &impl Trait<u32> | 965 | 259..260 'y': &impl Trait<u32> |
966 | [259; 266) 'y.foo()': u32 | 966 | 259..266 'y.foo()': u32 |
967 | [272; 273) 'z': S<u16> | 967 | 272..273 'z': S<u16> |
968 | [272; 279) 'z.foo()': u16 | 968 | 272..279 'z.foo()': u16 |
969 | [285; 286) 'x': impl Trait<u64> | 969 | 285..286 'x': impl Trait<u64> |
970 | [285; 293) 'x.foo2()': i64 | 970 | 285..293 'x.foo2()': i64 |
971 | [299; 300) 'y': &impl Trait<u32> | 971 | 299..300 'y': &impl Trait<u32> |
972 | [299; 307) 'y.foo2()': i64 | 972 | 299..307 'y.foo2()': i64 |
973 | [313; 314) 'z': S<u16> | 973 | 313..314 'z': S<u16> |
974 | [313; 321) 'z.foo2()': i64 | 974 | 313..321 'z.foo2()': i64 |
975 | "### | 975 | "### |
976 | ); | 976 | ); |
977 | } | 977 | } |
@@ -1005,39 +1005,39 @@ fn test() { | |||
1005 | } | 1005 | } |
1006 | "#, true), | 1006 | "#, true), |
1007 | @r###" | 1007 | @r###" |
1008 | [156; 157) 'x': impl Trait | 1008 | 156..157 'x': impl Trait |
1009 | [176; 187) '{ loop {} }': T | 1009 | 176..187 '{ loop {} }': T |
1010 | [178; 185) 'loop {}': ! | 1010 | 178..185 'loop {}': ! |
1011 | [183; 185) '{}': () | 1011 | 183..185 '{}': () |
1012 | [200; 201) 'x': impl Trait | 1012 | 200..201 'x': impl Trait |
1013 | [220; 231) '{ loop {} }': T | 1013 | 220..231 '{ loop {} }': T |
1014 | [222; 229) 'loop {}': ! | 1014 | 222..229 'loop {}': ! |
1015 | [227; 229) '{}': () | 1015 | 227..229 '{}': () |
1016 | [301; 510) '{ ... i32 }': () | 1016 | 301..510 '{ ... i32 }': () |
1017 | [307; 315) 'Foo::bar': fn bar<{unknown}, {unknown}>(S) -> {unknown} | 1017 | 307..315 'Foo::bar': fn bar<{unknown}, {unknown}>(S) -> {unknown} |
1018 | [307; 318) 'Foo::bar(S)': {unknown} | 1018 | 307..318 'Foo::bar(S)': {unknown} |
1019 | [316; 317) 'S': S | 1019 | 316..317 'S': S |
1020 | [324; 339) '<F as Foo>::bar': fn bar<F, {unknown}>(S) -> {unknown} | 1020 | 324..339 '<F as Foo>::bar': fn bar<F, {unknown}>(S) -> {unknown} |
1021 | [324; 342) '<F as ...bar(S)': {unknown} | 1021 | 324..342 '<F as ...bar(S)': {unknown} |
1022 | [340; 341) 'S': S | 1022 | 340..341 'S': S |
1023 | [348; 354) 'F::bar': fn bar<F, {unknown}>(S) -> {unknown} | 1023 | 348..354 'F::bar': fn bar<F, {unknown}>(S) -> {unknown} |
1024 | [348; 357) 'F::bar(S)': {unknown} | 1024 | 348..357 'F::bar(S)': {unknown} |
1025 | [355; 356) 'S': S | 1025 | 355..356 'S': S |
1026 | [363; 378) 'Foo::bar::<u32>': fn bar<{unknown}, u32>(S) -> u32 | 1026 | 363..378 'Foo::bar::<u32>': fn bar<{unknown}, u32>(S) -> u32 |
1027 | [363; 381) 'Foo::b...32>(S)': u32 | 1027 | 363..381 'Foo::b...32>(S)': u32 |
1028 | [379; 380) 'S': S | 1028 | 379..380 'S': S |
1029 | [387; 409) '<F as ...:<u32>': fn bar<F, u32>(S) -> u32 | 1029 | 387..409 '<F as ...:<u32>': fn bar<F, u32>(S) -> u32 |
1030 | [387; 412) '<F as ...32>(S)': u32 | 1030 | 387..412 '<F as ...32>(S)': u32 |
1031 | [410; 411) 'S': S | 1031 | 410..411 'S': S |
1032 | [419; 422) 'foo': fn foo<{unknown}>(S) -> {unknown} | 1032 | 419..422 'foo': fn foo<{unknown}>(S) -> {unknown} |
1033 | [419; 425) 'foo(S)': {unknown} | 1033 | 419..425 'foo(S)': {unknown} |
1034 | [423; 424) 'S': S | 1034 | 423..424 'S': S |
1035 | [431; 441) 'foo::<u32>': fn foo<u32>(S) -> u32 | 1035 | 431..441 'foo::<u32>': fn foo<u32>(S) -> u32 |
1036 | [431; 444) 'foo::<u32>(S)': u32 | 1036 | 431..444 'foo::<u32>(S)': u32 |
1037 | [442; 443) 'S': S | 1037 | 442..443 'S': S |
1038 | [450; 465) 'foo::<u32, i32>': fn foo<u32>(S) -> u32 | 1038 | 450..465 'foo::<u32, i32>': fn foo<u32>(S) -> u32 |
1039 | [450; 468) 'foo::<...32>(S)': u32 | 1039 | 450..468 'foo::<...32>(S)': u32 |
1040 | [466; 467) 'S': S | 1040 | 466..467 'S': S |
1041 | "### | 1041 | "### |
1042 | ); | 1042 | ); |
1043 | } | 1043 | } |
@@ -1062,24 +1062,24 @@ fn test() { | |||
1062 | } | 1062 | } |
1063 | "#, true), | 1063 | "#, true), |
1064 | @r###" | 1064 | @r###" |
1065 | [88; 92) 'self': F<T> | 1065 | 88..92 'self': F<T> |
1066 | [94; 95) 'x': impl Trait | 1066 | 94..95 'x': impl Trait |
1067 | [119; 130) '{ loop {} }': (T, U) | 1067 | 119..130 '{ loop {} }': (T, U) |
1068 | [121; 128) 'loop {}': ! | 1068 | 121..128 'loop {}': ! |
1069 | [126; 128) '{}': () | 1069 | 126..128 '{}': () |
1070 | [144; 284) '{ ...ored }': () | 1070 | 144..284 '{ ...ored }': () |
1071 | [150; 151) 'F': F<{unknown}> | 1071 | 150..151 'F': F<{unknown}> |
1072 | [150; 158) 'F.foo(S)': ({unknown}, {unknown}) | 1072 | 150..158 'F.foo(S)': ({unknown}, {unknown}) |
1073 | [156; 157) 'S': S | 1073 | 156..157 'S': S |
1074 | [164; 172) 'F::<u32>': F<u32> | 1074 | 164..172 'F::<u32>': F<u32> |
1075 | [164; 179) 'F::<u32>.foo(S)': (u32, {unknown}) | 1075 | 164..179 'F::<u32>.foo(S)': (u32, {unknown}) |
1076 | [177; 178) 'S': S | 1076 | 177..178 'S': S |
1077 | [185; 193) 'F::<u32>': F<u32> | 1077 | 185..193 'F::<u32>': F<u32> |
1078 | [185; 207) 'F::<u3...32>(S)': (u32, i32) | 1078 | 185..207 'F::<u3...32>(S)': (u32, i32) |
1079 | [205; 206) 'S': S | 1079 | 205..206 'S': S |
1080 | [213; 221) 'F::<u32>': F<u32> | 1080 | 213..221 'F::<u32>': F<u32> |
1081 | [213; 240) 'F::<u3...32>(S)': (u32, i32) | 1081 | 213..240 'F::<u3...32>(S)': (u32, i32) |
1082 | [238; 239) 'S': S | 1082 | 238..239 'S': S |
1083 | "### | 1083 | "### |
1084 | ); | 1084 | ); |
1085 | } | 1085 | } |
@@ -1098,13 +1098,13 @@ fn test() { | |||
1098 | } | 1098 | } |
1099 | "#, true), | 1099 | "#, true), |
1100 | @r###" | 1100 | @r###" |
1101 | [23; 24) 'x': impl Trait | 1101 | 23..24 'x': impl Trait |
1102 | [38; 49) '{ loop {} }': () | 1102 | 38..49 '{ loop {} }': () |
1103 | [40; 47) 'loop {}': ! | 1103 | 40..47 'loop {}': ! |
1104 | [45; 47) '{}': () | 1104 | 45..47 '{}': () |
1105 | [91; 124) '{ ...foo; }': () | 1105 | 91..124 '{ ...foo; }': () |
1106 | [101; 102) 'f': fn(S) | 1106 | 101..102 'f': fn(S) |
1107 | [118; 121) 'foo': fn foo(S) | 1107 | 118..121 'foo': fn foo(S) |
1108 | "### | 1108 | "### |
1109 | ); | 1109 | ); |
1110 | } | 1110 | } |
@@ -1133,29 +1133,29 @@ fn test(x: impl Trait<u64>, y: &impl Trait<u64>) { | |||
1133 | } | 1133 | } |
1134 | "#), | 1134 | "#), |
1135 | @r###" | 1135 | @r###" |
1136 | [30; 34) 'self': &Self | 1136 | 30..34 'self': &Self |
1137 | [55; 59) 'self': &Self | 1137 | 55..59 'self': &Self |
1138 | [99; 101) '{}': () | 1138 | 99..101 '{}': () |
1139 | [111; 112) 'x': impl Trait<u64> | 1139 | 111..112 'x': impl Trait<u64> |
1140 | [131; 132) 'y': &impl Trait<u64> | 1140 | 131..132 'y': &impl Trait<u64> |
1141 | [152; 269) '{ ...2(); }': () | 1141 | 152..269 '{ ...2(); }': () |
1142 | [158; 159) 'x': impl Trait<u64> | 1142 | 158..159 'x': impl Trait<u64> |
1143 | [165; 166) 'y': &impl Trait<u64> | 1143 | 165..166 'y': &impl Trait<u64> |
1144 | [176; 177) 'z': impl Trait<u64> | 1144 | 176..177 'z': impl Trait<u64> |
1145 | [180; 183) 'bar': fn bar() -> impl Trait<u64> | 1145 | 180..183 'bar': fn bar() -> impl Trait<u64> |
1146 | [180; 185) 'bar()': impl Trait<u64> | 1146 | 180..185 'bar()': impl Trait<u64> |
1147 | [191; 192) 'x': impl Trait<u64> | 1147 | 191..192 'x': impl Trait<u64> |
1148 | [191; 198) 'x.foo()': u64 | 1148 | 191..198 'x.foo()': u64 |
1149 | [204; 205) 'y': &impl Trait<u64> | 1149 | 204..205 'y': &impl Trait<u64> |
1150 | [204; 211) 'y.foo()': u64 | 1150 | 204..211 'y.foo()': u64 |
1151 | [217; 218) 'z': impl Trait<u64> | 1151 | 217..218 'z': impl Trait<u64> |
1152 | [217; 224) 'z.foo()': u64 | 1152 | 217..224 'z.foo()': u64 |
1153 | [230; 231) 'x': impl Trait<u64> | 1153 | 230..231 'x': impl Trait<u64> |
1154 | [230; 238) 'x.foo2()': i64 | 1154 | 230..238 'x.foo2()': i64 |
1155 | [244; 245) 'y': &impl Trait<u64> | 1155 | 244..245 'y': &impl Trait<u64> |
1156 | [244; 252) 'y.foo2()': i64 | 1156 | 244..252 'y.foo2()': i64 |
1157 | [258; 259) 'z': impl Trait<u64> | 1157 | 258..259 'z': impl Trait<u64> |
1158 | [258; 266) 'z.foo2()': i64 | 1158 | 258..266 'z.foo2()': i64 |
1159 | "### | 1159 | "### |
1160 | ); | 1160 | ); |
1161 | } | 1161 | } |
@@ -1183,29 +1183,29 @@ fn test(x: dyn Trait<u64>, y: &dyn Trait<u64>) { | |||
1183 | } | 1183 | } |
1184 | "#), | 1184 | "#), |
1185 | @r###" | 1185 | @r###" |
1186 | [30; 34) 'self': &Self | 1186 | 30..34 'self': &Self |
1187 | [55; 59) 'self': &Self | 1187 | 55..59 'self': &Self |
1188 | [98; 100) '{}': () | 1188 | 98..100 '{}': () |
1189 | [110; 111) 'x': dyn Trait<u64> | 1189 | 110..111 'x': dyn Trait<u64> |
1190 | [129; 130) 'y': &dyn Trait<u64> | 1190 | 129..130 'y': &dyn Trait<u64> |
1191 | [149; 266) '{ ...2(); }': () | 1191 | 149..266 '{ ...2(); }': () |
1192 | [155; 156) 'x': dyn Trait<u64> | 1192 | 155..156 'x': dyn Trait<u64> |
1193 | [162; 163) 'y': &dyn Trait<u64> | 1193 | 162..163 'y': &dyn Trait<u64> |
1194 | [173; 174) 'z': dyn Trait<u64> | 1194 | 173..174 'z': dyn Trait<u64> |
1195 | [177; 180) 'bar': fn bar() -> dyn Trait<u64> | 1195 | 177..180 'bar': fn bar() -> dyn Trait<u64> |
1196 | [177; 182) 'bar()': dyn Trait<u64> | 1196 | 177..182 'bar()': dyn Trait<u64> |
1197 | [188; 189) 'x': dyn Trait<u64> | 1197 | 188..189 'x': dyn Trait<u64> |
1198 | [188; 195) 'x.foo()': u64 | 1198 | 188..195 'x.foo()': u64 |
1199 | [201; 202) 'y': &dyn Trait<u64> | 1199 | 201..202 'y': &dyn Trait<u64> |
1200 | [201; 208) 'y.foo()': u64 | 1200 | 201..208 'y.foo()': u64 |
1201 | [214; 215) 'z': dyn Trait<u64> | 1201 | 214..215 'z': dyn Trait<u64> |
1202 | [214; 221) 'z.foo()': u64 | 1202 | 214..221 'z.foo()': u64 |
1203 | [227; 228) 'x': dyn Trait<u64> | 1203 | 227..228 'x': dyn Trait<u64> |
1204 | [227; 235) 'x.foo2()': i64 | 1204 | 227..235 'x.foo2()': i64 |
1205 | [241; 242) 'y': &dyn Trait<u64> | 1205 | 241..242 'y': &dyn Trait<u64> |
1206 | [241; 249) 'y.foo2()': i64 | 1206 | 241..249 'y.foo2()': i64 |
1207 | [255; 256) 'z': dyn Trait<u64> | 1207 | 255..256 'z': dyn Trait<u64> |
1208 | [255; 263) 'z.foo2()': i64 | 1208 | 255..263 'z.foo2()': i64 |
1209 | "### | 1209 | "### |
1210 | ); | 1210 | ); |
1211 | } | 1211 | } |
@@ -1231,17 +1231,17 @@ fn test(s: S<u32, i32>) { | |||
1231 | } | 1231 | } |
1232 | "#), | 1232 | "#), |
1233 | @r###" | 1233 | @r###" |
1234 | [33; 37) 'self': &Self | 1234 | 33..37 'self': &Self |
1235 | [103; 107) 'self': &S<T, U> | 1235 | 103..107 'self': &S<T, U> |
1236 | [129; 140) '{ loop {} }': &dyn Trait<T, U> | 1236 | 129..140 '{ loop {} }': &dyn Trait<T, U> |
1237 | [131; 138) 'loop {}': ! | 1237 | 131..138 'loop {}': ! |
1238 | [136; 138) '{}': () | 1238 | 136..138 '{}': () |
1239 | [176; 180) 'self': &Self | 1239 | 176..180 'self': &Self |
1240 | [252; 253) 's': S<u32, i32> | 1240 | 252..253 's': S<u32, i32> |
1241 | [268; 290) '{ ...z(); }': () | 1241 | 268..290 '{ ...z(); }': () |
1242 | [274; 275) 's': S<u32, i32> | 1242 | 274..275 's': S<u32, i32> |
1243 | [274; 281) 's.bar()': &dyn Trait<u32, i32> | 1243 | 274..281 's.bar()': &dyn Trait<u32, i32> |
1244 | [274; 287) 's.bar().baz()': (u32, i32) | 1244 | 274..287 's.bar().baz()': (u32, i32) |
1245 | "### | 1245 | "### |
1246 | ); | 1246 | ); |
1247 | } | 1247 | } |
@@ -1265,22 +1265,22 @@ fn test(x: Trait, y: &Trait) -> u64 { | |||
1265 | } | 1265 | } |
1266 | "#), | 1266 | "#), |
1267 | @r###" | 1267 | @r###" |
1268 | [27; 31) 'self': &Self | 1268 | 27..31 'self': &Self |
1269 | [61; 63) '{}': () | 1269 | 61..63 '{}': () |
1270 | [73; 74) 'x': dyn Trait | 1270 | 73..74 'x': dyn Trait |
1271 | [83; 84) 'y': &dyn Trait | 1271 | 83..84 'y': &dyn Trait |
1272 | [101; 176) '{ ...o(); }': () | 1272 | 101..176 '{ ...o(); }': () |
1273 | [107; 108) 'x': dyn Trait | 1273 | 107..108 'x': dyn Trait |
1274 | [114; 115) 'y': &dyn Trait | 1274 | 114..115 'y': &dyn Trait |
1275 | [125; 126) 'z': dyn Trait | 1275 | 125..126 'z': dyn Trait |
1276 | [129; 132) 'bar': fn bar() -> dyn Trait | 1276 | 129..132 'bar': fn bar() -> dyn Trait |
1277 | [129; 134) 'bar()': dyn Trait | 1277 | 129..134 'bar()': dyn Trait |
1278 | [140; 141) 'x': dyn Trait | 1278 | 140..141 'x': dyn Trait |
1279 | [140; 147) 'x.foo()': u64 | 1279 | 140..147 'x.foo()': u64 |
1280 | [153; 154) 'y': &dyn Trait | 1280 | 153..154 'y': &dyn Trait |
1281 | [153; 160) 'y.foo()': u64 | 1281 | 153..160 'y.foo()': u64 |
1282 | [166; 167) 'z': dyn Trait | 1282 | 166..167 'z': dyn Trait |
1283 | [166; 173) 'z.foo()': u64 | 1283 | 166..173 'z.foo()': u64 |
1284 | "### | 1284 | "### |
1285 | ); | 1285 | ); |
1286 | } | 1286 | } |
@@ -1294,13 +1294,13 @@ fn test(a: impl Trait + 'lifetime, b: impl 'lifetime, c: impl (Trait), d: impl ( | |||
1294 | } | 1294 | } |
1295 | "#), | 1295 | "#), |
1296 | @r###" | 1296 | @r###" |
1297 | [24; 25) 'a': impl Trait + {error} | 1297 | 24..25 'a': impl Trait + {error} |
1298 | [51; 52) 'b': impl {error} | 1298 | 51..52 'b': impl {error} |
1299 | [70; 71) 'c': impl Trait | 1299 | 70..71 'c': impl Trait |
1300 | [87; 88) 'd': impl {error} | 1300 | 87..88 'd': impl {error} |
1301 | [108; 109) 'e': impl {error} | 1301 | 108..109 'e': impl {error} |
1302 | [124; 125) 'f': impl Trait + {error} | 1302 | 124..125 'f': impl Trait + {error} |
1303 | [148; 151) '{ }': () | 1303 | 148..151 '{ }': () |
1304 | "### | 1304 | "### |
1305 | ); | 1305 | ); |
1306 | } | 1306 | } |
@@ -1349,41 +1349,41 @@ fn test<T: Trait<Type = u32>>(x: T, y: impl Trait<Type = i64>) { | |||
1349 | } | 1349 | } |
1350 | "#), | 1350 | "#), |
1351 | @r###" | 1351 | @r###" |
1352 | [50; 51) 't': T | 1352 | 50..51 't': T |
1353 | [78; 80) '{}': () | 1353 | 78..80 '{}': () |
1354 | [112; 113) 't': T | 1354 | 112..113 't': T |
1355 | [123; 125) '{}': () | 1355 | 123..125 '{}': () |
1356 | [155; 156) 't': T | 1356 | 155..156 't': T |
1357 | [166; 169) '{t}': T | 1357 | 166..169 '{t}': T |
1358 | [167; 168) 't': T | 1358 | 167..168 't': T |
1359 | [257; 258) 'x': T | 1359 | 257..258 'x': T |
1360 | [263; 264) 'y': impl Trait<Type = i64> | 1360 | 263..264 'y': impl Trait<Type = i64> |
1361 | [290; 398) '{ ...r>); }': () | 1361 | 290..398 '{ ...r>); }': () |
1362 | [296; 299) 'get': fn get<T>(T) -> <T as Trait>::Type | 1362 | 296..299 'get': fn get<T>(T) -> <T as Trait>::Type |
1363 | [296; 302) 'get(x)': u32 | 1363 | 296..302 'get(x)': u32 |
1364 | [300; 301) 'x': T | 1364 | 300..301 'x': T |
1365 | [308; 312) 'get2': fn get2<u32, T>(T) -> u32 | 1365 | 308..312 'get2': fn get2<u32, T>(T) -> u32 |
1366 | [308; 315) 'get2(x)': u32 | 1366 | 308..315 'get2(x)': u32 |
1367 | [313; 314) 'x': T | 1367 | 313..314 'x': T |
1368 | [321; 324) 'get': fn get<impl Trait<Type = i64>>(impl Trait<Type = i64>) -> <impl Trait<Type = i64> as Trait>::Type | 1368 | 321..324 'get': fn get<impl Trait<Type = i64>>(impl Trait<Type = i64>) -> <impl Trait<Type = i64> as Trait>::Type |
1369 | [321; 327) 'get(y)': i64 | 1369 | 321..327 'get(y)': i64 |
1370 | [325; 326) 'y': impl Trait<Type = i64> | 1370 | 325..326 'y': impl Trait<Type = i64> |
1371 | [333; 337) 'get2': fn get2<i64, impl Trait<Type = i64>>(impl Trait<Type = i64>) -> i64 | 1371 | 333..337 'get2': fn get2<i64, impl Trait<Type = i64>>(impl Trait<Type = i64>) -> i64 |
1372 | [333; 340) 'get2(y)': i64 | 1372 | 333..340 'get2(y)': i64 |
1373 | [338; 339) 'y': impl Trait<Type = i64> | 1373 | 338..339 'y': impl Trait<Type = i64> |
1374 | [346; 349) 'get': fn get<S<u64>>(S<u64>) -> <S<u64> as Trait>::Type | 1374 | 346..349 'get': fn get<S<u64>>(S<u64>) -> <S<u64> as Trait>::Type |
1375 | [346; 357) 'get(set(S))': u64 | 1375 | 346..357 'get(set(S))': u64 |
1376 | [350; 353) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1376 | 350..353 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1377 | [350; 356) 'set(S)': S<u64> | 1377 | 350..356 'set(S)': S<u64> |
1378 | [354; 355) 'S': S<u64> | 1378 | 354..355 'S': S<u64> |
1379 | [363; 367) 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 | 1379 | 363..367 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 |
1380 | [363; 375) 'get2(set(S))': u64 | 1380 | 363..375 'get2(set(S))': u64 |
1381 | [368; 371) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1381 | 368..371 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1382 | [368; 374) 'set(S)': S<u64> | 1382 | 368..374 'set(S)': S<u64> |
1383 | [372; 373) 'S': S<u64> | 1383 | 372..373 'S': S<u64> |
1384 | [381; 385) 'get2': fn get2<str, S<str>>(S<str>) -> str | 1384 | 381..385 'get2': fn get2<str, S<str>>(S<str>) -> str |
1385 | [381; 395) 'get2(S::<str>)': str | 1385 | 381..395 'get2(S::<str>)': str |
1386 | [386; 394) 'S::<str>': S<str> | 1386 | 386..394 'S::<str>': S<str> |
1387 | "### | 1387 | "### |
1388 | ); | 1388 | ); |
1389 | } | 1389 | } |
@@ -1448,11 +1448,11 @@ fn test<T: Trait1<Type = u32>>(x: T) { | |||
1448 | } | 1448 | } |
1449 | "#), | 1449 | "#), |
1450 | @r###" | 1450 | @r###" |
1451 | [62; 66) 'self': Self | 1451 | 62..66 'self': Self |
1452 | [164; 165) 'x': T | 1452 | 164..165 'x': T |
1453 | [170; 186) '{ ...o(); }': () | 1453 | 170..186 '{ ...o(); }': () |
1454 | [176; 177) 'x': T | 1454 | 176..177 'x': T |
1455 | [176; 183) 'x.foo()': u32 | 1455 | 176..183 'x.foo()': u32 |
1456 | "### | 1456 | "### |
1457 | ); | 1457 | ); |
1458 | } | 1458 | } |
@@ -1494,15 +1494,15 @@ fn test<T: Trait1, U: Trait2>(x: T, y: U) { | |||
1494 | } | 1494 | } |
1495 | "#), | 1495 | "#), |
1496 | @r###" | 1496 | @r###" |
1497 | [50; 54) 'self': &Self | 1497 | 50..54 'self': &Self |
1498 | [63; 65) '{}': () | 1498 | 63..65 '{}': () |
1499 | [182; 183) 'x': T | 1499 | 182..183 'x': T |
1500 | [188; 189) 'y': U | 1500 | 188..189 'y': U |
1501 | [194; 223) '{ ...o(); }': () | 1501 | 194..223 '{ ...o(); }': () |
1502 | [200; 201) 'x': T | 1502 | 200..201 'x': T |
1503 | [200; 207) 'x.foo()': u32 | 1503 | 200..207 'x.foo()': u32 |
1504 | [213; 214) 'y': U | 1504 | 213..214 'y': U |
1505 | [213; 220) 'y.foo()': u32 | 1505 | 213..220 'y.foo()': u32 |
1506 | "### | 1506 | "### |
1507 | ); | 1507 | ); |
1508 | } | 1508 | } |
@@ -1523,12 +1523,12 @@ fn test(x: &impl Trait1) { | |||
1523 | } | 1523 | } |
1524 | "#), | 1524 | "#), |
1525 | @r###" | 1525 | @r###" |
1526 | [50; 54) 'self': &Self | 1526 | 50..54 'self': &Self |
1527 | [63; 65) '{}': () | 1527 | 63..65 '{}': () |
1528 | [116; 117) 'x': &impl Trait1 | 1528 | 116..117 'x': &impl Trait1 |
1529 | [133; 149) '{ ...o(); }': () | 1529 | 133..149 '{ ...o(); }': () |
1530 | [139; 140) 'x': &impl Trait1 | 1530 | 139..140 'x': &impl Trait1 |
1531 | [139; 146) 'x.foo()': u32 | 1531 | 139..146 'x.foo()': u32 |
1532 | "### | 1532 | "### |
1533 | ); | 1533 | ); |
1534 | } | 1534 | } |
@@ -1546,10 +1546,10 @@ fn test<T: A>(x: T) { | |||
1546 | } | 1546 | } |
1547 | "#), | 1547 | "#), |
1548 | @r###" | 1548 | @r###" |
1549 | [44; 45) 'x': T | 1549 | 44..45 'x': T |
1550 | [50; 66) '{ ...o(); }': () | 1550 | 50..66 '{ ...o(); }': () |
1551 | [56; 57) 'x': T | 1551 | 56..57 'x': T |
1552 | [56; 63) 'x.foo()': {unknown} | 1552 | 56..63 'x.foo()': {unknown} |
1553 | "### | 1553 | "### |
1554 | ); | 1554 | ); |
1555 | } | 1555 | } |
@@ -1573,17 +1573,17 @@ fn test() { | |||
1573 | } | 1573 | } |
1574 | "#), | 1574 | "#), |
1575 | @r###" | 1575 | @r###" |
1576 | [103; 104) 't': T | 1576 | 103..104 't': T |
1577 | [114; 116) '{}': () | 1577 | 114..116 '{}': () |
1578 | [146; 147) 't': T | 1578 | 146..147 't': T |
1579 | [157; 160) '{t}': T | 1579 | 157..160 '{t}': T |
1580 | [158; 159) 't': T | 1580 | 158..159 't': T |
1581 | [259; 280) '{ ...S)); }': () | 1581 | 259..280 '{ ...S)); }': () |
1582 | [265; 269) 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 | 1582 | 265..269 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 |
1583 | [265; 277) 'get2(set(S))': u64 | 1583 | 265..277 'get2(set(S))': u64 |
1584 | [270; 273) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1584 | 270..273 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1585 | [270; 276) 'set(S)': S<u64> | 1585 | 270..276 'set(S)': S<u64> |
1586 | [274; 275) 'S': S<u64> | 1586 | 274..275 'S': S<u64> |
1587 | "### | 1587 | "### |
1588 | ); | 1588 | ); |
1589 | } | 1589 | } |
@@ -1603,15 +1603,15 @@ fn test<F: FnOnce(u32, u64) -> u128>(f: F) { | |||
1603 | } | 1603 | } |
1604 | "#), | 1604 | "#), |
1605 | @r###" | 1605 | @r###" |
1606 | [57; 61) 'self': Self | 1606 | 57..61 'self': Self |
1607 | [63; 67) 'args': Args | 1607 | 63..67 'args': Args |
1608 | [150; 151) 'f': F | 1608 | 150..151 'f': F |
1609 | [156; 184) '{ ...2)); }': () | 1609 | 156..184 '{ ...2)); }': () |
1610 | [162; 163) 'f': F | 1610 | 162..163 'f': F |
1611 | [162; 181) 'f.call...1, 2))': u128 | 1611 | 162..181 'f.call...1, 2))': u128 |
1612 | [174; 180) '(1, 2)': (u32, u64) | 1612 | 174..180 '(1, 2)': (u32, u64) |
1613 | [175; 176) '1': u32 | 1613 | 175..176 '1': u32 |
1614 | [178; 179) '2': u64 | 1614 | 178..179 '2': u64 |
1615 | "### | 1615 | "### |
1616 | ); | 1616 | ); |
1617 | } | 1617 | } |
@@ -1638,32 +1638,32 @@ fn test() { | |||
1638 | } | 1638 | } |
1639 | "#), | 1639 | "#), |
1640 | @r###" | 1640 | @r###" |
1641 | [148; 152) 'self': Option<T> | 1641 | 148..152 'self': Option<T> |
1642 | [154; 155) 'f': F | 1642 | 154..155 'f': F |
1643 | [173; 175) '{}': () | 1643 | 173..175 '{}': () |
1644 | [189; 308) '{ ... 1); }': () | 1644 | 189..308 '{ ... 1); }': () |
1645 | [199; 200) 'x': Option<u32> | 1645 | 199..200 'x': Option<u32> |
1646 | [203; 215) 'Option::Some': Some<u32>(u32) -> Option<u32> | 1646 | 203..215 'Option::Some': Some<u32>(u32) -> Option<u32> |
1647 | [203; 221) 'Option...(1u32)': Option<u32> | 1647 | 203..221 'Option...(1u32)': Option<u32> |
1648 | [216; 220) '1u32': u32 | 1648 | 216..220 '1u32': u32 |
1649 | [227; 228) 'x': Option<u32> | 1649 | 227..228 'x': Option<u32> |
1650 | [227; 243) 'x.map(...v + 1)': Option<u32> | 1650 | 227..243 'x.map(...v + 1)': Option<u32> |
1651 | [233; 242) '|v| v + 1': |u32| -> u32 | 1651 | 233..242 '|v| v + 1': |u32| -> u32 |
1652 | [234; 235) 'v': u32 | 1652 | 234..235 'v': u32 |
1653 | [237; 238) 'v': u32 | 1653 | 237..238 'v': u32 |
1654 | [237; 242) 'v + 1': u32 | 1654 | 237..242 'v + 1': u32 |
1655 | [241; 242) '1': u32 | 1655 | 241..242 '1': u32 |
1656 | [249; 250) 'x': Option<u32> | 1656 | 249..250 'x': Option<u32> |
1657 | [249; 265) 'x.map(... 1u64)': Option<u64> | 1657 | 249..265 'x.map(... 1u64)': Option<u64> |
1658 | [255; 264) '|_v| 1u64': |u32| -> u64 | 1658 | 255..264 '|_v| 1u64': |u32| -> u64 |
1659 | [256; 258) '_v': u32 | 1659 | 256..258 '_v': u32 |
1660 | [260; 264) '1u64': u64 | 1660 | 260..264 '1u64': u64 |
1661 | [275; 276) 'y': Option<i64> | 1661 | 275..276 'y': Option<i64> |
1662 | [292; 293) 'x': Option<u32> | 1662 | 292..293 'x': Option<u32> |
1663 | [292; 305) 'x.map(|_v| 1)': Option<i64> | 1663 | 292..305 'x.map(|_v| 1)': Option<i64> |
1664 | [298; 304) '|_v| 1': |u32| -> i64 | 1664 | 298..304 '|_v| 1': |u32| -> i64 |
1665 | [299; 301) '_v': u32 | 1665 | 299..301 '_v': u32 |
1666 | [303; 304) '1': i64 | 1666 | 303..304 '1': i64 |
1667 | "### | 1667 | "### |
1668 | ); | 1668 | ); |
1669 | } | 1669 | } |
@@ -1684,26 +1684,26 @@ fn test<F: FnOnce(u32) -> u64>(f: F) { | |||
1684 | } | 1684 | } |
1685 | "#), | 1685 | "#), |
1686 | @r###" | 1686 | @r###" |
1687 | [73; 74) 'f': F | 1687 | 73..74 'f': F |
1688 | [79; 155) '{ ...+ v; }': () | 1688 | 79..155 '{ ...+ v; }': () |
1689 | [85; 86) 'f': F | 1689 | 85..86 'f': F |
1690 | [85; 89) 'f(1)': {unknown} | 1690 | 85..89 'f(1)': {unknown} |
1691 | [87; 88) '1': i32 | 1691 | 87..88 '1': i32 |
1692 | [99; 100) 'g': |u64| -> i32 | 1692 | 99..100 'g': |u64| -> i32 |
1693 | [103; 112) '|v| v + 1': |u64| -> i32 | 1693 | 103..112 '|v| v + 1': |u64| -> i32 |
1694 | [104; 105) 'v': u64 | 1694 | 104..105 'v': u64 |
1695 | [107; 108) 'v': u64 | 1695 | 107..108 'v': u64 |
1696 | [107; 112) 'v + 1': i32 | 1696 | 107..112 'v + 1': i32 |
1697 | [111; 112) '1': i32 | 1697 | 111..112 '1': i32 |
1698 | [118; 119) 'g': |u64| -> i32 | 1698 | 118..119 'g': |u64| -> i32 |
1699 | [118; 125) 'g(1u64)': i32 | 1699 | 118..125 'g(1u64)': i32 |
1700 | [120; 124) '1u64': u64 | 1700 | 120..124 '1u64': u64 |
1701 | [135; 136) 'h': |u128| -> u128 | 1701 | 135..136 'h': |u128| -> u128 |
1702 | [139; 152) '|v| 1u128 + v': |u128| -> u128 | 1702 | 139..152 '|v| 1u128 + v': |u128| -> u128 |
1703 | [140; 141) 'v': u128 | 1703 | 140..141 'v': u128 |
1704 | [143; 148) '1u128': u128 | 1704 | 143..148 '1u128': u128 |
1705 | [143; 152) '1u128 + v': u128 | 1705 | 143..152 '1u128 + v': u128 |
1706 | [151; 152) 'v': u128 | 1706 | 151..152 'v': u128 |
1707 | "### | 1707 | "### |
1708 | ); | 1708 | ); |
1709 | } | 1709 | } |
@@ -1736,54 +1736,54 @@ fn test() { | |||
1736 | } | 1736 | } |
1737 | "#), | 1737 | "#), |
1738 | @r###" | 1738 | @r###" |
1739 | [95; 96) 'x': T | 1739 | 95..96 'x': T |
1740 | [101; 102) 'f': F | 1740 | 101..102 'f': F |
1741 | [112; 114) '{}': () | 1741 | 112..114 '{}': () |
1742 | [148; 149) 'f': F | 1742 | 148..149 'f': F |
1743 | [154; 155) 'x': T | 1743 | 154..155 'x': T |
1744 | [165; 167) '{}': () | 1744 | 165..167 '{}': () |
1745 | [202; 206) 'self': S | 1745 | 202..206 'self': S |
1746 | [254; 258) 'self': S | 1746 | 254..258 'self': S |
1747 | [260; 261) 'x': T | 1747 | 260..261 'x': T |
1748 | [266; 267) 'f': F | 1748 | 266..267 'f': F |
1749 | [277; 279) '{}': () | 1749 | 277..279 '{}': () |
1750 | [317; 321) 'self': S | 1750 | 317..321 'self': S |
1751 | [323; 324) 'f': F | 1751 | 323..324 'f': F |
1752 | [329; 330) 'x': T | 1752 | 329..330 'x': T |
1753 | [340; 342) '{}': () | 1753 | 340..342 '{}': () |
1754 | [356; 515) '{ ... S); }': () | 1754 | 356..515 '{ ... S); }': () |
1755 | [366; 368) 'x1': u64 | 1755 | 366..368 'x1': u64 |
1756 | [371; 375) 'foo1': fn foo1<S, u64, |S| -> u64>(S, |S| -> u64) -> u64 | 1756 | 371..375 'foo1': fn foo1<S, u64, |S| -> u64>(S, |S| -> u64) -> u64 |
1757 | [371; 394) 'foo1(S...hod())': u64 | 1757 | 371..394 'foo1(S...hod())': u64 |
1758 | [376; 377) 'S': S | 1758 | 376..377 'S': S |
1759 | [379; 393) '|s| s.method()': |S| -> u64 | 1759 | 379..393 '|s| s.method()': |S| -> u64 |
1760 | [380; 381) 's': S | 1760 | 380..381 's': S |
1761 | [383; 384) 's': S | 1761 | 383..384 's': S |
1762 | [383; 393) 's.method()': u64 | 1762 | 383..393 's.method()': u64 |
1763 | [404; 406) 'x2': u64 | 1763 | 404..406 'x2': u64 |
1764 | [409; 413) 'foo2': fn foo2<S, u64, |S| -> u64>(|S| -> u64, S) -> u64 | 1764 | 409..413 'foo2': fn foo2<S, u64, |S| -> u64>(|S| -> u64, S) -> u64 |
1765 | [409; 432) 'foo2(|...(), S)': u64 | 1765 | 409..432 'foo2(|...(), S)': u64 |
1766 | [414; 428) '|s| s.method()': |S| -> u64 | 1766 | 414..428 '|s| s.method()': |S| -> u64 |
1767 | [415; 416) 's': S | 1767 | 415..416 's': S |
1768 | [418; 419) 's': S | 1768 | 418..419 's': S |
1769 | [418; 428) 's.method()': u64 | 1769 | 418..428 's.method()': u64 |
1770 | [430; 431) 'S': S | 1770 | 430..431 'S': S |
1771 | [442; 444) 'x3': u64 | 1771 | 442..444 'x3': u64 |
1772 | [447; 448) 'S': S | 1772 | 447..448 'S': S |
1773 | [447; 472) 'S.foo1...hod())': u64 | 1773 | 447..472 'S.foo1...hod())': u64 |
1774 | [454; 455) 'S': S | 1774 | 454..455 'S': S |
1775 | [457; 471) '|s| s.method()': |S| -> u64 | 1775 | 457..471 '|s| s.method()': |S| -> u64 |
1776 | [458; 459) 's': S | 1776 | 458..459 's': S |
1777 | [461; 462) 's': S | 1777 | 461..462 's': S |
1778 | [461; 471) 's.method()': u64 | 1778 | 461..471 's.method()': u64 |
1779 | [482; 484) 'x4': u64 | 1779 | 482..484 'x4': u64 |
1780 | [487; 488) 'S': S | 1780 | 487..488 'S': S |
1781 | [487; 512) 'S.foo2...(), S)': u64 | 1781 | 487..512 'S.foo2...(), S)': u64 |
1782 | [494; 508) '|s| s.method()': |S| -> u64 | 1782 | 494..508 '|s| s.method()': |S| -> u64 |
1783 | [495; 496) 's': S | 1783 | 495..496 's': S |
1784 | [498; 499) 's': S | 1784 | 498..499 's': S |
1785 | [498; 508) 's.method()': u64 | 1785 | 498..508 's.method()': u64 |
1786 | [510; 511) 'S': S | 1786 | 510..511 'S': S |
1787 | "### | 1787 | "### |
1788 | ); | 1788 | ); |
1789 | } | 1789 | } |
@@ -1858,18 +1858,18 @@ impl Trait for S2 { | |||
1858 | } | 1858 | } |
1859 | "#, | 1859 | "#, |
1860 | ), @r###" | 1860 | ), @r###" |
1861 | [54; 58) 'self': &Self | 1861 | 54..58 'self': &Self |
1862 | [60; 61) 'x': Trait::Item<Self> | 1862 | 60..61 'x': Trait::Item<Self> |
1863 | [140; 144) 'self': &S | 1863 | 140..144 'self': &S |
1864 | [146; 147) 'x': u32 | 1864 | 146..147 'x': u32 |
1865 | [161; 175) '{ let y = x; }': () | 1865 | 161..175 '{ let y = x; }': () |
1866 | [167; 168) 'y': u32 | 1866 | 167..168 'y': u32 |
1867 | [171; 172) 'x': u32 | 1867 | 171..172 'x': u32 |
1868 | [242; 246) 'self': &S2 | 1868 | 242..246 'self': &S2 |
1869 | [248; 249) 'x': i32 | 1869 | 248..249 'x': i32 |
1870 | [265; 279) '{ let y = x; }': () | 1870 | 265..279 '{ let y = x; }': () |
1871 | [271; 272) 'y': i32 | 1871 | 271..272 'y': i32 |
1872 | [275; 276) 'x': i32 | 1872 | 275..276 'x': i32 |
1873 | "###); | 1873 | "###); |
1874 | } | 1874 | } |
1875 | 1875 | ||
@@ -2077,15 +2077,15 @@ impl TokenStream for Rustc { | |||
2077 | } | 2077 | } |
2078 | "#, true), | 2078 | "#, true), |
2079 | @r###" | 2079 | @r###" |
2080 | [1115; 1126) '{ loop {} }': T | 2080 | 1115..1126 '{ loop {} }': T |
2081 | [1117; 1124) 'loop {}': ! | 2081 | 1117..1124 'loop {}': ! |
2082 | [1122; 1124) '{}': () | 2082 | 1122..1124 '{}': () |
2083 | [1190; 1253) '{ ... }': {unknown} | 2083 | 1190..1253 '{ ... }': {unknown} |
2084 | [1204; 1209) 'group': {unknown} | 2084 | 1204..1209 'group': {unknown} |
2085 | [1225; 1229) 'make': fn make<{unknown}>() -> {unknown} | 2085 | 1225..1229 'make': fn make<{unknown}>() -> {unknown} |
2086 | [1225; 1231) 'make()': {unknown} | 2086 | 1225..1231 'make()': {unknown} |
2087 | [1241; 1245) 'make': fn make<{unknown}>() -> {unknown} | 2087 | 1241..1245 'make': fn make<{unknown}>() -> {unknown} |
2088 | [1241; 1247) 'make()': {unknown} | 2088 | 1241..1247 'make()': {unknown} |
2089 | "### | 2089 | "### |
2090 | ); | 2090 | ); |
2091 | } | 2091 | } |
@@ -2112,37 +2112,37 @@ fn test() -> impl Trait<i32> { | |||
2112 | } | 2112 | } |
2113 | "#, true), | 2113 | "#, true), |
2114 | @r###" | 2114 | @r###" |
2115 | [27; 28) 'x': impl Trait<u32> | 2115 | 27..28 'x': impl Trait<u32> |
2116 | [47; 58) '{ loop {} }': () | 2116 | 47..58 '{ loop {} }': () |
2117 | [49; 56) 'loop {}': ! | 2117 | 49..56 'loop {}': ! |
2118 | [54; 56) '{}': () | 2118 | 54..56 '{}': () |
2119 | [69; 70) 'x': impl Trait<T> | 2119 | 69..70 'x': impl Trait<T> |
2120 | [92; 103) '{ loop {} }': T | 2120 | 92..103 '{ loop {} }': T |
2121 | [94; 101) 'loop {}': ! | 2121 | 94..101 'loop {}': ! |
2122 | [99; 101) '{}': () | 2122 | 99..101 '{}': () |
2123 | [172; 183) '{ loop {} }': T | 2123 | 172..183 '{ loop {} }': T |
2124 | [174; 181) 'loop {}': ! | 2124 | 174..181 'loop {}': ! |
2125 | [179; 181) '{}': () | 2125 | 179..181 '{}': () |
2126 | [214; 310) '{ ...t()) }': S<{unknown}> | 2126 | 214..310 '{ ...t()) }': S<{unknown}> |
2127 | [224; 226) 's1': S<u32> | 2127 | 224..226 's1': S<u32> |
2128 | [229; 230) 'S': S<u32>(u32) -> S<u32> | 2128 | 229..230 'S': S<u32>(u32) -> S<u32> |
2129 | [229; 241) 'S(default())': S<u32> | 2129 | 229..241 'S(default())': S<u32> |
2130 | [231; 238) 'default': fn default<u32>() -> u32 | 2130 | 231..238 'default': fn default<u32>() -> u32 |
2131 | [231; 240) 'default()': u32 | 2131 | 231..240 'default()': u32 |
2132 | [247; 250) 'foo': fn foo(S<u32>) | 2132 | 247..250 'foo': fn foo(S<u32>) |
2133 | [247; 254) 'foo(s1)': () | 2133 | 247..254 'foo(s1)': () |
2134 | [251; 253) 's1': S<u32> | 2134 | 251..253 's1': S<u32> |
2135 | [264; 265) 'x': i32 | 2135 | 264..265 'x': i32 |
2136 | [273; 276) 'bar': fn bar<i32>(S<i32>) -> i32 | 2136 | 273..276 'bar': fn bar<i32>(S<i32>) -> i32 |
2137 | [273; 290) 'bar(S(...lt()))': i32 | 2137 | 273..290 'bar(S(...lt()))': i32 |
2138 | [277; 278) 'S': S<i32>(i32) -> S<i32> | 2138 | 277..278 'S': S<i32>(i32) -> S<i32> |
2139 | [277; 289) 'S(default())': S<i32> | 2139 | 277..289 'S(default())': S<i32> |
2140 | [279; 286) 'default': fn default<i32>() -> i32 | 2140 | 279..286 'default': fn default<i32>() -> i32 |
2141 | [279; 288) 'default()': i32 | 2141 | 279..288 'default()': i32 |
2142 | [296; 297) 'S': S<{unknown}>({unknown}) -> S<{unknown}> | 2142 | 296..297 'S': S<{unknown}>({unknown}) -> S<{unknown}> |
2143 | [296; 308) 'S(default())': S<{unknown}> | 2143 | 296..308 'S(default())': S<{unknown}> |
2144 | [298; 305) 'default': fn default<{unknown}>() -> {unknown} | 2144 | 298..305 'default': fn default<{unknown}>() -> {unknown} |
2145 | [298; 307) 'default()': {unknown} | 2145 | 298..307 'default()': {unknown} |
2146 | "### | 2146 | "### |
2147 | ); | 2147 | ); |
2148 | } | 2148 | } |
@@ -2176,15 +2176,15 @@ fn main() { | |||
2176 | } | 2176 | } |
2177 | "#), | 2177 | "#), |
2178 | @r###" | 2178 | @r###" |
2179 | [147; 149) '_v': F | 2179 | 147..149 '_v': F |
2180 | [192; 195) '{ }': () | 2180 | 192..195 '{ }': () |
2181 | [207; 238) '{ ... }); }': () | 2181 | 207..238 '{ ... }); }': () |
2182 | [213; 223) 'f::<(), _>': fn f<(), |&()| -> ()>(|&()| -> ()) | 2182 | 213..223 'f::<(), _>': fn f<(), |&()| -> ()>(|&()| -> ()) |
2183 | [213; 235) 'f::<()... z; })': () | 2183 | 213..235 'f::<()... z; })': () |
2184 | [224; 234) '|z| { z; }': |&()| -> () | 2184 | 224..234 '|z| { z; }': |&()| -> () |
2185 | [225; 226) 'z': &() | 2185 | 225..226 'z': &() |
2186 | [228; 234) '{ z; }': () | 2186 | 228..234 '{ z; }': () |
2187 | [230; 231) 'z': &() | 2187 | 230..231 'z': &() |
2188 | "### | 2188 | "### |
2189 | ); | 2189 | ); |
2190 | } | 2190 | } |
@@ -2337,46 +2337,46 @@ fn main() { | |||
2337 | } | 2337 | } |
2338 | "#), | 2338 | "#), |
2339 | @r###" | 2339 | @r###" |
2340 | [240; 244) 'self': Self | 2340 | 240..244 'self': Self |
2341 | [246; 247) 'f': F | 2341 | 246..247 'f': F |
2342 | [331; 342) '{ loop {} }': FilterMap<Self, F> | 2342 | 331..342 '{ loop {} }': FilterMap<Self, F> |
2343 | [333; 340) 'loop {}': ! | 2343 | 333..340 'loop {}': ! |
2344 | [338; 340) '{}': () | 2344 | 338..340 '{}': () |
2345 | [363; 367) 'self': Self | 2345 | 363..367 'self': Self |
2346 | [369; 370) 'f': F | 2346 | 369..370 'f': F |
2347 | [419; 430) '{ loop {} }': () | 2347 | 419..430 '{ loop {} }': () |
2348 | [421; 428) 'loop {}': ! | 2348 | 421..428 'loop {}': ! |
2349 | [426; 428) '{}': () | 2349 | 426..428 '{}': () |
2350 | [539; 543) 'self': Self | 2350 | 539..543 'self': Self |
2351 | [868; 872) 'self': I | 2351 | 868..872 'self': I |
2352 | [879; 899) '{ ... }': I | 2352 | 879..899 '{ ... }': I |
2353 | [889; 893) 'self': I | 2353 | 889..893 'self': I |
2354 | [958; 969) '{ loop {} }': Vec<T> | 2354 | 958..969 '{ loop {} }': Vec<T> |
2355 | [960; 967) 'loop {}': ! | 2355 | 960..967 'loop {}': ! |
2356 | [965; 967) '{}': () | 2356 | 965..967 '{}': () |
2357 | [1156; 1287) '{ ... }); }': () | 2357 | 1156..1287 '{ ... }); }': () |
2358 | [1162; 1177) 'Vec::<i32>::new': fn new<i32>() -> Vec<i32> | 2358 | 1162..1177 'Vec::<i32>::new': fn new<i32>() -> Vec<i32> |
2359 | [1162; 1179) 'Vec::<...:new()': Vec<i32> | 2359 | 1162..1179 'Vec::<...:new()': Vec<i32> |
2360 | [1162; 1191) 'Vec::<...iter()': IntoIter<i32> | 2360 | 1162..1191 'Vec::<...iter()': IntoIter<i32> |
2361 | [1162; 1256) 'Vec::<...one })': FilterMap<IntoIter<i32>, |i32| -> Option<u32>> | 2361 | 1162..1256 'Vec::<...one })': FilterMap<IntoIter<i32>, |i32| -> Option<u32>> |
2362 | [1162; 1284) 'Vec::<... y; })': () | 2362 | 1162..1284 'Vec::<... y; })': () |
2363 | [1210; 1255) '|x| if...None }': |i32| -> Option<u32> | 2363 | 1210..1255 '|x| if...None }': |i32| -> Option<u32> |
2364 | [1211; 1212) 'x': i32 | 2364 | 1211..1212 'x': i32 |
2365 | [1214; 1255) 'if x >...None }': Option<u32> | 2365 | 1214..1255 'if x >...None }': Option<u32> |
2366 | [1217; 1218) 'x': i32 | 2366 | 1217..1218 'x': i32 |
2367 | [1217; 1222) 'x > 0': bool | 2367 | 1217..1222 'x > 0': bool |
2368 | [1221; 1222) '0': i32 | 2368 | 1221..1222 '0': i32 |
2369 | [1223; 1241) '{ Some...u32) }': Option<u32> | 2369 | 1223..1241 '{ Some...u32) }': Option<u32> |
2370 | [1225; 1229) 'Some': Some<u32>(u32) -> Option<u32> | 2370 | 1225..1229 'Some': Some<u32>(u32) -> Option<u32> |
2371 | [1225; 1239) 'Some(x as u32)': Option<u32> | 2371 | 1225..1239 'Some(x as u32)': Option<u32> |
2372 | [1230; 1231) 'x': i32 | 2372 | 1230..1231 'x': i32 |
2373 | [1230; 1238) 'x as u32': u32 | 2373 | 1230..1238 'x as u32': u32 |
2374 | [1247; 1255) '{ None }': Option<u32> | 2374 | 1247..1255 '{ None }': Option<u32> |
2375 | [1249; 1253) 'None': Option<u32> | 2375 | 1249..1253 'None': Option<u32> |
2376 | [1273; 1283) '|y| { y; }': |u32| -> () | 2376 | 1273..1283 '|y| { y; }': |u32| -> () |
2377 | [1274; 1275) 'y': u32 | 2377 | 1274..1275 'y': u32 |
2378 | [1277; 1283) '{ y; }': () | 2378 | 1277..1283 '{ y; }': () |
2379 | [1279; 1280) 'y': u32 | 2379 | 1279..1280 'y': u32 |
2380 | "### | 2380 | "### |
2381 | ); | 2381 | ); |
2382 | } | 2382 | } |
@@ -2428,13 +2428,13 @@ fn test(x: &dyn Foo) { | |||
2428 | } | 2428 | } |
2429 | "#, true), | 2429 | "#, true), |
2430 | @r###" | 2430 | @r###" |
2431 | [22; 23) 'x': &dyn Foo | 2431 | 22..23 'x': &dyn Foo |
2432 | [35; 37) '{}': () | 2432 | 35..37 '{}': () |
2433 | [47; 48) 'x': &dyn Foo | 2433 | 47..48 'x': &dyn Foo |
2434 | [60; 75) '{ foo(x); }': () | 2434 | 60..75 '{ foo(x); }': () |
2435 | [66; 69) 'foo': fn foo(&dyn Foo) | 2435 | 66..69 'foo': fn foo(&dyn Foo) |
2436 | [66; 72) 'foo(x)': () | 2436 | 66..72 'foo(x)': () |
2437 | [70; 71) 'x': &dyn Foo | 2437 | 70..71 'x': &dyn Foo |
2438 | "### | 2438 | "### |
2439 | ); | 2439 | ); |
2440 | } | 2440 | } |
diff --git a/crates/ra_ide/src/assists.rs b/crates/ra_ide/src/assists.rs index 40d56a4f7..2b5d11681 100644 --- a/crates/ra_ide/src/assists.rs +++ b/crates/ra_ide/src/assists.rs | |||
@@ -37,6 +37,10 @@ fn action_to_edit( | |||
37 | file_id: FileId, | 37 | file_id: FileId, |
38 | assist_label: &AssistLabel, | 38 | assist_label: &AssistLabel, |
39 | ) -> SourceChange { | 39 | ) -> SourceChange { |
40 | let file_id = match action.file { | ||
41 | ra_assists::AssistFile::TargetFile(it) => it, | ||
42 | _ => file_id, | ||
43 | }; | ||
40 | let file_edit = SourceFileEdit { file_id, edit: action.edit }; | 44 | let file_edit = SourceFileEdit { file_id, edit: action.edit }; |
41 | SourceChange::source_file_edit(assist_label.label.clone(), file_edit) | 45 | SourceChange::source_file_edit(assist_label.label.clone(), file_edit) |
42 | .with_cursor_opt(action.cursor_position.map(|offset| FilePosition { offset, file_id })) | 46 | .with_cursor_opt(action.cursor_position.map(|offset| FilePosition { offset, file_id })) |
diff --git a/crates/ra_ide/src/call_hierarchy.rs b/crates/ra_ide/src/call_hierarchy.rs index b00b6d431..85d1f0cb1 100644 --- a/crates/ra_ide/src/call_hierarchy.rs +++ b/crates/ra_ide/src/call_hierarchy.rs | |||
@@ -183,8 +183,8 @@ mod tests { | |||
183 | call<|>ee(); | 183 | call<|>ee(); |
184 | } | 184 | } |
185 | "#, | 185 | "#, |
186 | "callee FN_DEF FileId(1) [0; 14) [3; 9)", | 186 | "callee FN_DEF FileId(1) 0..14 3..9", |
187 | &["caller FN_DEF FileId(1) [15; 44) [18; 24) : [[33; 39)]"], | 187 | &["caller FN_DEF FileId(1) 15..44 18..24 : [33..39]"], |
188 | &[], | 188 | &[], |
189 | ); | 189 | ); |
190 | } | 190 | } |
@@ -199,8 +199,8 @@ mod tests { | |||
199 | callee(); | 199 | callee(); |
200 | } | 200 | } |
201 | "#, | 201 | "#, |
202 | "callee FN_DEF FileId(1) [0; 14) [3; 9)", | 202 | "callee FN_DEF FileId(1) 0..14 3..9", |
203 | &["caller FN_DEF FileId(1) [15; 44) [18; 24) : [[33; 39)]"], | 203 | &["caller FN_DEF FileId(1) 15..44 18..24 : [33..39]"], |
204 | &[], | 204 | &[], |
205 | ); | 205 | ); |
206 | } | 206 | } |
@@ -216,8 +216,8 @@ mod tests { | |||
216 | callee(); | 216 | callee(); |
217 | } | 217 | } |
218 | "#, | 218 | "#, |
219 | "callee FN_DEF FileId(1) [0; 14) [3; 9)", | 219 | "callee FN_DEF FileId(1) 0..14 3..9", |
220 | &["caller FN_DEF FileId(1) [15; 58) [18; 24) : [[33; 39), [47; 53)]"], | 220 | &["caller FN_DEF FileId(1) 15..58 18..24 : [33..39, 47..53]"], |
221 | &[], | 221 | &[], |
222 | ); | 222 | ); |
223 | } | 223 | } |
@@ -236,10 +236,10 @@ mod tests { | |||
236 | callee(); | 236 | callee(); |
237 | } | 237 | } |
238 | "#, | 238 | "#, |
239 | "callee FN_DEF FileId(1) [0; 14) [3; 9)", | 239 | "callee FN_DEF FileId(1) 0..14 3..9", |
240 | &[ | 240 | &[ |
241 | "caller1 FN_DEF FileId(1) [15; 45) [18; 25) : [[34; 40)]", | 241 | "caller1 FN_DEF FileId(1) 15..45 18..25 : [34..40]", |
242 | "caller2 FN_DEF FileId(1) [46; 76) [49; 56) : [[65; 71)]", | 242 | "caller2 FN_DEF FileId(1) 46..76 49..56 : [65..71]", |
243 | ], | 243 | ], |
244 | &[], | 244 | &[], |
245 | ); | 245 | ); |
@@ -260,8 +260,8 @@ mod tests { | |||
260 | //- /foo/mod.rs | 260 | //- /foo/mod.rs |
261 | pub fn callee() {} | 261 | pub fn callee() {} |
262 | "#, | 262 | "#, |
263 | "callee FN_DEF FileId(2) [0; 18) [7; 13)", | 263 | "callee FN_DEF FileId(2) 0..18 7..13", |
264 | &["caller FN_DEF FileId(1) [26; 55) [29; 35) : [[44; 50)]"], | 264 | &["caller FN_DEF FileId(1) 26..55 29..35 : [44..50]"], |
265 | &[], | 265 | &[], |
266 | ); | 266 | ); |
267 | } | 267 | } |
@@ -277,9 +277,9 @@ mod tests { | |||
277 | callee(); | 277 | callee(); |
278 | } | 278 | } |
279 | "#, | 279 | "#, |
280 | "caller FN_DEF FileId(1) [15; 58) [18; 24)", | 280 | "caller FN_DEF FileId(1) 15..58 18..24", |
281 | &[], | 281 | &[], |
282 | &["callee FN_DEF FileId(1) [0; 14) [3; 9) : [[33; 39), [47; 53)]"], | 282 | &["callee FN_DEF FileId(1) 0..14 3..9 : [33..39, 47..53]"], |
283 | ); | 283 | ); |
284 | } | 284 | } |
285 | 285 | ||
@@ -298,9 +298,9 @@ mod tests { | |||
298 | //- /foo/mod.rs | 298 | //- /foo/mod.rs |
299 | pub fn callee() {} | 299 | pub fn callee() {} |
300 | "#, | 300 | "#, |
301 | "caller FN_DEF FileId(1) [26; 55) [29; 35)", | 301 | "caller FN_DEF FileId(1) 26..55 29..35", |
302 | &[], | 302 | &[], |
303 | &["callee FN_DEF FileId(2) [0; 18) [7; 13) : [[44; 50)]"], | 303 | &["callee FN_DEF FileId(2) 0..18 7..13 : [44..50]"], |
304 | ); | 304 | ); |
305 | } | 305 | } |
306 | 306 | ||
@@ -321,9 +321,9 @@ mod tests { | |||
321 | 321 | ||
322 | } | 322 | } |
323 | "#, | 323 | "#, |
324 | "caller2 FN_DEF FileId(1) [32; 63) [35; 42)", | 324 | "caller2 FN_DEF FileId(1) 32..63 35..42", |
325 | &["caller1 FN_DEF FileId(1) [0; 31) [3; 10) : [[19; 26)]"], | 325 | &["caller1 FN_DEF FileId(1) 0..31 3..10 : [19..26]"], |
326 | &["caller3 FN_DEF FileId(1) [64; 80) [67; 74) : [[51; 58)]"], | 326 | &["caller3 FN_DEF FileId(1) 64..80 67..74 : [51..58]"], |
327 | ); | 327 | ); |
328 | } | 328 | } |
329 | } | 329 | } |
diff --git a/crates/ra_ide/src/call_info.rs b/crates/ra_ide/src/call_info.rs index 5da254a6e..780a03c13 100644 --- a/crates/ra_ide/src/call_info.rs +++ b/crates/ra_ide/src/call_info.rs | |||
@@ -126,7 +126,7 @@ impl FnCallNode { | |||
126 | ast::CallExpr(it) => Some(FnCallNode::CallExpr(it)), | 126 | ast::CallExpr(it) => Some(FnCallNode::CallExpr(it)), |
127 | ast::MethodCallExpr(it) => { | 127 | ast::MethodCallExpr(it) => { |
128 | let arg_list = it.arg_list()?; | 128 | let arg_list = it.arg_list()?; |
129 | if !syntax.text_range().is_subrange(&arg_list.syntax().text_range()) { | 129 | if !arg_list.syntax().text_range().contains_range(syntax.text_range()) { |
130 | return None; | 130 | return None; |
131 | } | 131 | } |
132 | Some(FnCallNode::MethodCallExpr(it)) | 132 | Some(FnCallNode::MethodCallExpr(it)) |
diff --git a/crates/ra_ide/src/completion.rs b/crates/ra_ide/src/completion.rs index f0e02180b..4ca0fdf4f 100644 --- a/crates/ra_ide/src/completion.rs +++ b/crates/ra_ide/src/completion.rs | |||
@@ -5,6 +5,7 @@ mod completion_item; | |||
5 | mod completion_context; | 5 | mod completion_context; |
6 | mod presentation; | 6 | mod presentation; |
7 | 7 | ||
8 | mod complete_attribute; | ||
8 | mod complete_dot; | 9 | mod complete_dot; |
9 | mod complete_record; | 10 | mod complete_record; |
10 | mod complete_pattern; | 11 | mod complete_pattern; |
@@ -78,6 +79,7 @@ pub(crate) fn completions( | |||
78 | complete_postfix::complete_postfix(&mut acc, &ctx); | 79 | complete_postfix::complete_postfix(&mut acc, &ctx); |
79 | complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx); | 80 | complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx); |
80 | complete_trait_impl::complete_trait_impl(&mut acc, &ctx); | 81 | complete_trait_impl::complete_trait_impl(&mut acc, &ctx); |
82 | complete_attribute::complete_attribute(&mut acc, &ctx); | ||
81 | 83 | ||
82 | Some(acc) | 84 | Some(acc) |
83 | } | 85 | } |
diff --git a/crates/ra_ide/src/completion/complete_attribute.rs b/crates/ra_ide/src/completion/complete_attribute.rs new file mode 100644 index 000000000..8bf952798 --- /dev/null +++ b/crates/ra_ide/src/completion/complete_attribute.rs | |||
@@ -0,0 +1,587 @@ | |||
1 | //! Completion for attributes | ||
2 | //! | ||
3 | //! This module uses a bit of static metadata to provide completions | ||
4 | //! for built-in attributes. | ||
5 | |||
6 | use super::completion_context::CompletionContext; | ||
7 | use super::completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions}; | ||
8 | use ra_syntax::{ | ||
9 | ast::{Attr, AttrKind}, | ||
10 | AstNode, | ||
11 | }; | ||
12 | |||
13 | pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) { | ||
14 | if !ctx.is_attribute { | ||
15 | return; | ||
16 | } | ||
17 | |||
18 | let is_inner = ctx | ||
19 | .original_token | ||
20 | .ancestors() | ||
21 | .find_map(Attr::cast) | ||
22 | .map(|attr| attr.kind() == AttrKind::Inner) | ||
23 | .unwrap_or(false); | ||
24 | |||
25 | for attr_completion in ATTRIBUTES { | ||
26 | let mut item = CompletionItem::new( | ||
27 | CompletionKind::Attribute, | ||
28 | ctx.source_range(), | ||
29 | attr_completion.label, | ||
30 | ) | ||
31 | .kind(CompletionItemKind::Attribute); | ||
32 | |||
33 | match (attr_completion.snippet, ctx.config.snippet_cap) { | ||
34 | (Some(snippet), Some(cap)) => { | ||
35 | item = item.insert_snippet(cap, snippet); | ||
36 | } | ||
37 | _ => {} | ||
38 | } | ||
39 | |||
40 | if is_inner || !attr_completion.should_be_inner { | ||
41 | acc.add(item); | ||
42 | } | ||
43 | } | ||
44 | } | ||
45 | |||
46 | struct AttrCompletion { | ||
47 | label: &'static str, | ||
48 | snippet: Option<&'static str>, | ||
49 | should_be_inner: bool, | ||
50 | } | ||
51 | |||
52 | const ATTRIBUTES: &[AttrCompletion] = &[ | ||
53 | AttrCompletion { label: "allow", snippet: Some("allow(${0:lint})"), should_be_inner: false }, | ||
54 | AttrCompletion { | ||
55 | label: "cfg_attr", | ||
56 | snippet: Some("cfg_attr(${1:predicate}, ${0:attr})"), | ||
57 | should_be_inner: false, | ||
58 | }, | ||
59 | AttrCompletion { label: "cfg", snippet: Some("cfg(${0:predicate})"), should_be_inner: false }, | ||
60 | AttrCompletion { label: "deny", snippet: Some("deny(${0:lint})"), should_be_inner: false }, | ||
61 | AttrCompletion { | ||
62 | label: "deprecated", | ||
63 | snippet: Some(r#"deprecated = "${0:reason}""#), | ||
64 | should_be_inner: false, | ||
65 | }, | ||
66 | AttrCompletion { | ||
67 | label: "derive", | ||
68 | snippet: Some(r#"derive(${0:Debug})"#), | ||
69 | should_be_inner: false, | ||
70 | }, | ||
71 | AttrCompletion { label: "doc", snippet: Some(r#"doc = "${0:docs}""#), should_be_inner: false }, | ||
72 | AttrCompletion { label: "feature", snippet: Some("feature(${0:flag})"), should_be_inner: true }, | ||
73 | AttrCompletion { label: "forbid", snippet: Some("forbid(${0:lint})"), should_be_inner: false }, | ||
74 | // FIXME: resolve through macro resolution? | ||
75 | AttrCompletion { label: "global_allocator", snippet: None, should_be_inner: true }, | ||
76 | AttrCompletion { label: "ignore", snippet: Some("ignore(${0:lint})"), should_be_inner: false }, | ||
77 | AttrCompletion { label: "inline", snippet: Some("inline(${0:lint})"), should_be_inner: false }, | ||
78 | AttrCompletion { | ||
79 | label: "link_name", | ||
80 | snippet: Some(r#"link_name = "${0:symbol_name}""#), | ||
81 | should_be_inner: false, | ||
82 | }, | ||
83 | AttrCompletion { label: "link", snippet: None, should_be_inner: false }, | ||
84 | AttrCompletion { label: "macro_export", snippet: None, should_be_inner: false }, | ||
85 | AttrCompletion { label: "macro_use", snippet: None, should_be_inner: false }, | ||
86 | AttrCompletion { | ||
87 | label: "must_use", | ||
88 | snippet: Some(r#"must_use = "${0:reason}""#), | ||
89 | should_be_inner: false, | ||
90 | }, | ||
91 | AttrCompletion { label: "no_mangle", snippet: None, should_be_inner: false }, | ||
92 | AttrCompletion { label: "no_std", snippet: None, should_be_inner: true }, | ||
93 | AttrCompletion { label: "non_exhaustive", snippet: None, should_be_inner: false }, | ||
94 | AttrCompletion { label: "panic_handler", snippet: None, should_be_inner: true }, | ||
95 | AttrCompletion { label: "path", snippet: Some("path =\"${0:path}\""), should_be_inner: false }, | ||
96 | AttrCompletion { label: "proc_macro", snippet: None, should_be_inner: false }, | ||
97 | AttrCompletion { label: "proc_macro_attribute", snippet: None, should_be_inner: false }, | ||
98 | AttrCompletion { | ||
99 | label: "proc_macro_derive", | ||
100 | snippet: Some("proc_macro_derive(${0:Trait})"), | ||
101 | should_be_inner: false, | ||
102 | }, | ||
103 | AttrCompletion { | ||
104 | label: "recursion_limit", | ||
105 | snippet: Some("recursion_limit = ${0:128}"), | ||
106 | should_be_inner: true, | ||
107 | }, | ||
108 | AttrCompletion { label: "repr", snippet: Some("repr(${0:C})"), should_be_inner: false }, | ||
109 | AttrCompletion { | ||
110 | label: "should_panic", | ||
111 | snippet: Some(r#"expected = "${0:reason}""#), | ||
112 | should_be_inner: false, | ||
113 | }, | ||
114 | AttrCompletion { | ||
115 | label: "target_feature", | ||
116 | snippet: Some("target_feature = \"${0:feature}\""), | ||
117 | should_be_inner: false, | ||
118 | }, | ||
119 | AttrCompletion { label: "test", snippet: None, should_be_inner: false }, | ||
120 | AttrCompletion { label: "used", snippet: None, should_be_inner: false }, | ||
121 | AttrCompletion { label: "warn", snippet: Some("warn(${0:lint})"), should_be_inner: false }, | ||
122 | AttrCompletion { | ||
123 | label: "windows_subsystem", | ||
124 | snippet: Some(r#"windows_subsystem = "${0:subsystem}""#), | ||
125 | should_be_inner: true, | ||
126 | }, | ||
127 | ]; | ||
128 | |||
129 | #[cfg(test)] | ||
130 | mod tests { | ||
131 | use crate::completion::{test_utils::do_completion, CompletionItem, CompletionKind}; | ||
132 | use insta::assert_debug_snapshot; | ||
133 | |||
134 | fn do_attr_completion(code: &str) -> Vec<CompletionItem> { | ||
135 | do_completion(code, CompletionKind::Attribute) | ||
136 | } | ||
137 | |||
138 | #[test] | ||
139 | fn test_attribute_completion() { | ||
140 | assert_debug_snapshot!( | ||
141 | do_attr_completion( | ||
142 | r" | ||
143 | #[<|>] | ||
144 | ", | ||
145 | ), | ||
146 | @r###" | ||
147 | [ | ||
148 | CompletionItem { | ||
149 | label: "allow", | ||
150 | source_range: 19..19, | ||
151 | delete: 19..19, | ||
152 | insert: "allow(${0:lint})", | ||
153 | kind: Attribute, | ||
154 | }, | ||
155 | CompletionItem { | ||
156 | label: "cfg", | ||
157 | source_range: 19..19, | ||
158 | delete: 19..19, | ||
159 | insert: "cfg(${0:predicate})", | ||
160 | kind: Attribute, | ||
161 | }, | ||
162 | CompletionItem { | ||
163 | label: "cfg_attr", | ||
164 | source_range: 19..19, | ||
165 | delete: 19..19, | ||
166 | insert: "cfg_attr(${1:predicate}, ${0:attr})", | ||
167 | kind: Attribute, | ||
168 | }, | ||
169 | CompletionItem { | ||
170 | label: "deny", | ||
171 | source_range: 19..19, | ||
172 | delete: 19..19, | ||
173 | insert: "deny(${0:lint})", | ||
174 | kind: Attribute, | ||
175 | }, | ||
176 | CompletionItem { | ||
177 | label: "deprecated", | ||
178 | source_range: 19..19, | ||
179 | delete: 19..19, | ||
180 | insert: "deprecated = \"${0:reason}\"", | ||
181 | kind: Attribute, | ||
182 | }, | ||
183 | CompletionItem { | ||
184 | label: "derive", | ||
185 | source_range: 19..19, | ||
186 | delete: 19..19, | ||
187 | insert: "derive(${0:Debug})", | ||
188 | kind: Attribute, | ||
189 | }, | ||
190 | CompletionItem { | ||
191 | label: "doc", | ||
192 | source_range: 19..19, | ||
193 | delete: 19..19, | ||
194 | insert: "doc = \"${0:docs}\"", | ||
195 | kind: Attribute, | ||
196 | }, | ||
197 | CompletionItem { | ||
198 | label: "forbid", | ||
199 | source_range: 19..19, | ||
200 | delete: 19..19, | ||
201 | insert: "forbid(${0:lint})", | ||
202 | kind: Attribute, | ||
203 | }, | ||
204 | CompletionItem { | ||
205 | label: "ignore", | ||
206 | source_range: 19..19, | ||
207 | delete: 19..19, | ||
208 | insert: "ignore(${0:lint})", | ||
209 | kind: Attribute, | ||
210 | }, | ||
211 | CompletionItem { | ||
212 | label: "inline", | ||
213 | source_range: 19..19, | ||
214 | delete: 19..19, | ||
215 | insert: "inline(${0:lint})", | ||
216 | kind: Attribute, | ||
217 | }, | ||
218 | CompletionItem { | ||
219 | label: "link", | ||
220 | source_range: 19..19, | ||
221 | delete: 19..19, | ||
222 | insert: "link", | ||
223 | kind: Attribute, | ||
224 | }, | ||
225 | CompletionItem { | ||
226 | label: "link_name", | ||
227 | source_range: 19..19, | ||
228 | delete: 19..19, | ||
229 | insert: "link_name = \"${0:symbol_name}\"", | ||
230 | kind: Attribute, | ||
231 | }, | ||
232 | CompletionItem { | ||
233 | label: "macro_export", | ||
234 | source_range: 19..19, | ||
235 | delete: 19..19, | ||
236 | insert: "macro_export", | ||
237 | kind: Attribute, | ||
238 | }, | ||
239 | CompletionItem { | ||
240 | label: "macro_use", | ||
241 | source_range: 19..19, | ||
242 | delete: 19..19, | ||
243 | insert: "macro_use", | ||
244 | kind: Attribute, | ||
245 | }, | ||
246 | CompletionItem { | ||
247 | label: "must_use", | ||
248 | source_range: 19..19, | ||
249 | delete: 19..19, | ||
250 | insert: "must_use = \"${0:reason}\"", | ||
251 | kind: Attribute, | ||
252 | }, | ||
253 | CompletionItem { | ||
254 | label: "no_mangle", | ||
255 | source_range: 19..19, | ||
256 | delete: 19..19, | ||
257 | insert: "no_mangle", | ||
258 | kind: Attribute, | ||
259 | }, | ||
260 | CompletionItem { | ||
261 | label: "non_exhaustive", | ||
262 | source_range: 19..19, | ||
263 | delete: 19..19, | ||
264 | insert: "non_exhaustive", | ||
265 | kind: Attribute, | ||
266 | }, | ||
267 | CompletionItem { | ||
268 | label: "path", | ||
269 | source_range: 19..19, | ||
270 | delete: 19..19, | ||
271 | insert: "path =\"${0:path}\"", | ||
272 | kind: Attribute, | ||
273 | }, | ||
274 | CompletionItem { | ||
275 | label: "proc_macro", | ||
276 | source_range: 19..19, | ||
277 | delete: 19..19, | ||
278 | insert: "proc_macro", | ||
279 | kind: Attribute, | ||
280 | }, | ||
281 | CompletionItem { | ||
282 | label: "proc_macro_attribute", | ||
283 | source_range: 19..19, | ||
284 | delete: 19..19, | ||
285 | insert: "proc_macro_attribute", | ||
286 | kind: Attribute, | ||
287 | }, | ||
288 | CompletionItem { | ||
289 | label: "proc_macro_derive", | ||
290 | source_range: 19..19, | ||
291 | delete: 19..19, | ||
292 | insert: "proc_macro_derive(${0:Trait})", | ||
293 | kind: Attribute, | ||
294 | }, | ||
295 | CompletionItem { | ||
296 | label: "repr", | ||
297 | source_range: 19..19, | ||
298 | delete: 19..19, | ||
299 | insert: "repr(${0:C})", | ||
300 | kind: Attribute, | ||
301 | }, | ||
302 | CompletionItem { | ||
303 | label: "should_panic", | ||
304 | source_range: 19..19, | ||
305 | delete: 19..19, | ||
306 | insert: "expected = \"${0:reason}\"", | ||
307 | kind: Attribute, | ||
308 | }, | ||
309 | CompletionItem { | ||
310 | label: "target_feature", | ||
311 | source_range: 19..19, | ||
312 | delete: 19..19, | ||
313 | insert: "target_feature = \"${0:feature}\"", | ||
314 | kind: Attribute, | ||
315 | }, | ||
316 | CompletionItem { | ||
317 | label: "test", | ||
318 | source_range: 19..19, | ||
319 | delete: 19..19, | ||
320 | insert: "test", | ||
321 | kind: Attribute, | ||
322 | }, | ||
323 | CompletionItem { | ||
324 | label: "used", | ||
325 | source_range: 19..19, | ||
326 | delete: 19..19, | ||
327 | insert: "used", | ||
328 | kind: Attribute, | ||
329 | }, | ||
330 | CompletionItem { | ||
331 | label: "warn", | ||
332 | source_range: 19..19, | ||
333 | delete: 19..19, | ||
334 | insert: "warn(${0:lint})", | ||
335 | kind: Attribute, | ||
336 | }, | ||
337 | ] | ||
338 | "### | ||
339 | ); | ||
340 | } | ||
341 | |||
342 | #[test] | ||
343 | fn test_inner_attribute_completion() { | ||
344 | assert_debug_snapshot!( | ||
345 | do_attr_completion( | ||
346 | r" | ||
347 | #![<|>] | ||
348 | ", | ||
349 | ), | ||
350 | @r###" | ||
351 | [ | ||
352 | CompletionItem { | ||
353 | label: "allow", | ||
354 | source_range: 20..20, | ||
355 | delete: 20..20, | ||
356 | insert: "allow(${0:lint})", | ||
357 | kind: Attribute, | ||
358 | }, | ||
359 | CompletionItem { | ||
360 | label: "cfg", | ||
361 | source_range: 20..20, | ||
362 | delete: 20..20, | ||
363 | insert: "cfg(${0:predicate})", | ||
364 | kind: Attribute, | ||
365 | }, | ||
366 | CompletionItem { | ||
367 | label: "cfg_attr", | ||
368 | source_range: 20..20, | ||
369 | delete: 20..20, | ||
370 | insert: "cfg_attr(${1:predicate}, ${0:attr})", | ||
371 | kind: Attribute, | ||
372 | }, | ||
373 | CompletionItem { | ||
374 | label: "deny", | ||
375 | source_range: 20..20, | ||
376 | delete: 20..20, | ||
377 | insert: "deny(${0:lint})", | ||
378 | kind: Attribute, | ||
379 | }, | ||
380 | CompletionItem { | ||
381 | label: "deprecated", | ||
382 | source_range: 20..20, | ||
383 | delete: 20..20, | ||
384 | insert: "deprecated = \"${0:reason}\"", | ||
385 | kind: Attribute, | ||
386 | }, | ||
387 | CompletionItem { | ||
388 | label: "derive", | ||
389 | source_range: 20..20, | ||
390 | delete: 20..20, | ||
391 | insert: "derive(${0:Debug})", | ||
392 | kind: Attribute, | ||
393 | }, | ||
394 | CompletionItem { | ||
395 | label: "doc", | ||
396 | source_range: 20..20, | ||
397 | delete: 20..20, | ||
398 | insert: "doc = \"${0:docs}\"", | ||
399 | kind: Attribute, | ||
400 | }, | ||
401 | CompletionItem { | ||
402 | label: "feature", | ||
403 | source_range: 20..20, | ||
404 | delete: 20..20, | ||
405 | insert: "feature(${0:flag})", | ||
406 | kind: Attribute, | ||
407 | }, | ||
408 | CompletionItem { | ||
409 | label: "forbid", | ||
410 | source_range: 20..20, | ||
411 | delete: 20..20, | ||
412 | insert: "forbid(${0:lint})", | ||
413 | kind: Attribute, | ||
414 | }, | ||
415 | CompletionItem { | ||
416 | label: "global_allocator", | ||
417 | source_range: 20..20, | ||
418 | delete: 20..20, | ||
419 | insert: "global_allocator", | ||
420 | kind: Attribute, | ||
421 | }, | ||
422 | CompletionItem { | ||
423 | label: "ignore", | ||
424 | source_range: 20..20, | ||
425 | delete: 20..20, | ||
426 | insert: "ignore(${0:lint})", | ||
427 | kind: Attribute, | ||
428 | }, | ||
429 | CompletionItem { | ||
430 | label: "inline", | ||
431 | source_range: 20..20, | ||
432 | delete: 20..20, | ||
433 | insert: "inline(${0:lint})", | ||
434 | kind: Attribute, | ||
435 | }, | ||
436 | CompletionItem { | ||
437 | label: "link", | ||
438 | source_range: 20..20, | ||
439 | delete: 20..20, | ||
440 | insert: "link", | ||
441 | kind: Attribute, | ||
442 | }, | ||
443 | CompletionItem { | ||
444 | label: "link_name", | ||
445 | source_range: 20..20, | ||
446 | delete: 20..20, | ||
447 | insert: "link_name = \"${0:symbol_name}\"", | ||
448 | kind: Attribute, | ||
449 | }, | ||
450 | CompletionItem { | ||
451 | label: "macro_export", | ||
452 | source_range: 20..20, | ||
453 | delete: 20..20, | ||
454 | insert: "macro_export", | ||
455 | kind: Attribute, | ||
456 | }, | ||
457 | CompletionItem { | ||
458 | label: "macro_use", | ||
459 | source_range: 20..20, | ||
460 | delete: 20..20, | ||
461 | insert: "macro_use", | ||
462 | kind: Attribute, | ||
463 | }, | ||
464 | CompletionItem { | ||
465 | label: "must_use", | ||
466 | source_range: 20..20, | ||
467 | delete: 20..20, | ||
468 | insert: "must_use = \"${0:reason}\"", | ||
469 | kind: Attribute, | ||
470 | }, | ||
471 | CompletionItem { | ||
472 | label: "no_mangle", | ||
473 | source_range: 20..20, | ||
474 | delete: 20..20, | ||
475 | insert: "no_mangle", | ||
476 | kind: Attribute, | ||
477 | }, | ||
478 | CompletionItem { | ||
479 | label: "no_std", | ||
480 | source_range: 20..20, | ||
481 | delete: 20..20, | ||
482 | insert: "no_std", | ||
483 | kind: Attribute, | ||
484 | }, | ||
485 | CompletionItem { | ||
486 | label: "non_exhaustive", | ||
487 | source_range: 20..20, | ||
488 | delete: 20..20, | ||
489 | insert: "non_exhaustive", | ||
490 | kind: Attribute, | ||
491 | }, | ||
492 | CompletionItem { | ||
493 | label: "panic_handler", | ||
494 | source_range: 20..20, | ||
495 | delete: 20..20, | ||
496 | insert: "panic_handler", | ||
497 | kind: Attribute, | ||
498 | }, | ||
499 | CompletionItem { | ||
500 | label: "path", | ||
501 | source_range: 20..20, | ||
502 | delete: 20..20, | ||
503 | insert: "path =\"${0:path}\"", | ||
504 | kind: Attribute, | ||
505 | }, | ||
506 | CompletionItem { | ||
507 | label: "proc_macro", | ||
508 | source_range: 20..20, | ||
509 | delete: 20..20, | ||
510 | insert: "proc_macro", | ||
511 | kind: Attribute, | ||
512 | }, | ||
513 | CompletionItem { | ||
514 | label: "proc_macro_attribute", | ||
515 | source_range: 20..20, | ||
516 | delete: 20..20, | ||
517 | insert: "proc_macro_attribute", | ||
518 | kind: Attribute, | ||
519 | }, | ||
520 | CompletionItem { | ||
521 | label: "proc_macro_derive", | ||
522 | source_range: 20..20, | ||
523 | delete: 20..20, | ||
524 | insert: "proc_macro_derive(${0:Trait})", | ||
525 | kind: Attribute, | ||
526 | }, | ||
527 | CompletionItem { | ||
528 | label: "recursion_limit", | ||
529 | source_range: 20..20, | ||
530 | delete: 20..20, | ||
531 | insert: "recursion_limit = ${0:128}", | ||
532 | kind: Attribute, | ||
533 | }, | ||
534 | CompletionItem { | ||
535 | label: "repr", | ||
536 | source_range: 20..20, | ||
537 | delete: 20..20, | ||
538 | insert: "repr(${0:C})", | ||
539 | kind: Attribute, | ||
540 | }, | ||
541 | CompletionItem { | ||
542 | label: "should_panic", | ||
543 | source_range: 20..20, | ||
544 | delete: 20..20, | ||
545 | insert: "expected = \"${0:reason}\"", | ||
546 | kind: Attribute, | ||
547 | }, | ||
548 | CompletionItem { | ||
549 | label: "target_feature", | ||
550 | source_range: 20..20, | ||
551 | delete: 20..20, | ||
552 | insert: "target_feature = \"${0:feature}\"", | ||
553 | kind: Attribute, | ||
554 | }, | ||
555 | CompletionItem { | ||
556 | label: "test", | ||
557 | source_range: 20..20, | ||
558 | delete: 20..20, | ||
559 | insert: "test", | ||
560 | kind: Attribute, | ||
561 | }, | ||
562 | CompletionItem { | ||
563 | label: "used", | ||
564 | source_range: 20..20, | ||
565 | delete: 20..20, | ||
566 | insert: "used", | ||
567 | kind: Attribute, | ||
568 | }, | ||
569 | CompletionItem { | ||
570 | label: "warn", | ||
571 | source_range: 20..20, | ||
572 | delete: 20..20, | ||
573 | insert: "warn(${0:lint})", | ||
574 | kind: Attribute, | ||
575 | }, | ||
576 | CompletionItem { | ||
577 | label: "windows_subsystem", | ||
578 | source_range: 20..20, | ||
579 | delete: 20..20, | ||
580 | insert: "windows_subsystem = \"${0:subsystem}\"", | ||
581 | kind: Attribute, | ||
582 | }, | ||
583 | ] | ||
584 | "### | ||
585 | ); | ||
586 | } | ||
587 | } | ||
diff --git a/crates/ra_ide/src/completion/complete_dot.rs b/crates/ra_ide/src/completion/complete_dot.rs index b93153b48..814354ffa 100644 --- a/crates/ra_ide/src/completion/complete_dot.rs +++ b/crates/ra_ide/src/completion/complete_dot.rs | |||
@@ -94,8 +94,8 @@ mod tests { | |||
94 | [ | 94 | [ |
95 | CompletionItem { | 95 | CompletionItem { |
96 | label: "the_field", | 96 | label: "the_field", |
97 | source_range: [94; 94), | 97 | source_range: 94..94, |
98 | delete: [94; 94), | 98 | delete: 94..94, |
99 | insert: "the_field", | 99 | insert: "the_field", |
100 | kind: Field, | 100 | kind: Field, |
101 | detail: "u32", | 101 | detail: "u32", |
@@ -125,8 +125,8 @@ mod tests { | |||
125 | [ | 125 | [ |
126 | CompletionItem { | 126 | CompletionItem { |
127 | label: "foo()", | 127 | label: "foo()", |
128 | source_range: [187; 187), | 128 | source_range: 187..187, |
129 | delete: [187; 187), | 129 | delete: 187..187, |
130 | insert: "foo()$0", | 130 | insert: "foo()$0", |
131 | kind: Method, | 131 | kind: Method, |
132 | lookup: "foo", | 132 | lookup: "foo", |
@@ -134,8 +134,8 @@ mod tests { | |||
134 | }, | 134 | }, |
135 | CompletionItem { | 135 | CompletionItem { |
136 | label: "the_field", | 136 | label: "the_field", |
137 | source_range: [187; 187), | 137 | source_range: 187..187, |
138 | delete: [187; 187), | 138 | delete: 187..187, |
139 | insert: "the_field", | 139 | insert: "the_field", |
140 | kind: Field, | 140 | kind: Field, |
141 | detail: "(u32,)", | 141 | detail: "(u32,)", |
@@ -165,8 +165,8 @@ mod tests { | |||
165 | [ | 165 | [ |
166 | CompletionItem { | 166 | CompletionItem { |
167 | label: "foo()", | 167 | label: "foo()", |
168 | source_range: [126; 126), | 168 | source_range: 126..126, |
169 | delete: [126; 126), | 169 | delete: 126..126, |
170 | insert: "foo()$0", | 170 | insert: "foo()$0", |
171 | kind: Method, | 171 | kind: Method, |
172 | lookup: "foo", | 172 | lookup: "foo", |
@@ -174,8 +174,8 @@ mod tests { | |||
174 | }, | 174 | }, |
175 | CompletionItem { | 175 | CompletionItem { |
176 | label: "the_field", | 176 | label: "the_field", |
177 | source_range: [126; 126), | 177 | source_range: 126..126, |
178 | delete: [126; 126), | 178 | delete: 126..126, |
179 | insert: "the_field", | 179 | insert: "the_field", |
180 | kind: Field, | 180 | kind: Field, |
181 | detail: "(u32, i32)", | 181 | detail: "(u32, i32)", |
@@ -222,24 +222,24 @@ mod tests { | |||
222 | [ | 222 | [ |
223 | CompletionItem { | 223 | CompletionItem { |
224 | label: "crate_field", | 224 | label: "crate_field", |
225 | source_range: [313; 313), | 225 | source_range: 313..313, |
226 | delete: [313; 313), | 226 | delete: 313..313, |
227 | insert: "crate_field", | 227 | insert: "crate_field", |
228 | kind: Field, | 228 | kind: Field, |
229 | detail: "u32", | 229 | detail: "u32", |
230 | }, | 230 | }, |
231 | CompletionItem { | 231 | CompletionItem { |
232 | label: "pub_field", | 232 | label: "pub_field", |
233 | source_range: [313; 313), | 233 | source_range: 313..313, |
234 | delete: [313; 313), | 234 | delete: 313..313, |
235 | insert: "pub_field", | 235 | insert: "pub_field", |
236 | kind: Field, | 236 | kind: Field, |
237 | detail: "u32", | 237 | detail: "u32", |
238 | }, | 238 | }, |
239 | CompletionItem { | 239 | CompletionItem { |
240 | label: "super_field", | 240 | label: "super_field", |
241 | source_range: [313; 313), | 241 | source_range: 313..313, |
242 | delete: [313; 313), | 242 | delete: 313..313, |
243 | insert: "super_field", | 243 | insert: "super_field", |
244 | kind: Field, | 244 | kind: Field, |
245 | detail: "u32", | 245 | detail: "u32", |
@@ -267,8 +267,8 @@ mod tests { | |||
267 | [ | 267 | [ |
268 | CompletionItem { | 268 | CompletionItem { |
269 | label: "the_method()", | 269 | label: "the_method()", |
270 | source_range: [144; 144), | 270 | source_range: 144..144, |
271 | delete: [144; 144), | 271 | delete: 144..144, |
272 | insert: "the_method()$0", | 272 | insert: "the_method()$0", |
273 | kind: Method, | 273 | kind: Method, |
274 | lookup: "the_method", | 274 | lookup: "the_method", |
@@ -300,8 +300,8 @@ mod tests { | |||
300 | [ | 300 | [ |
301 | CompletionItem { | 301 | CompletionItem { |
302 | label: "the_method()", | 302 | label: "the_method()", |
303 | source_range: [243; 243), | 303 | source_range: 243..243, |
304 | delete: [243; 243), | 304 | delete: 243..243, |
305 | insert: "the_method()$0", | 305 | insert: "the_method()$0", |
306 | kind: Method, | 306 | kind: Method, |
307 | lookup: "the_method", | 307 | lookup: "the_method", |
@@ -333,8 +333,8 @@ mod tests { | |||
333 | [ | 333 | [ |
334 | CompletionItem { | 334 | CompletionItem { |
335 | label: "the_method()", | 335 | label: "the_method()", |
336 | source_range: [256; 256), | 336 | source_range: 256..256, |
337 | delete: [256; 256), | 337 | delete: 256..256, |
338 | insert: "the_method()$0", | 338 | insert: "the_method()$0", |
339 | kind: Method, | 339 | kind: Method, |
340 | lookup: "the_method", | 340 | lookup: "the_method", |
@@ -362,8 +362,8 @@ mod tests { | |||
362 | [ | 362 | [ |
363 | CompletionItem { | 363 | CompletionItem { |
364 | label: "the_method()", | 364 | label: "the_method()", |
365 | source_range: [151; 151), | 365 | source_range: 151..151, |
366 | delete: [151; 151), | 366 | delete: 151..151, |
367 | insert: "the_method()$0", | 367 | insert: "the_method()$0", |
368 | kind: Method, | 368 | kind: Method, |
369 | lookup: "the_method", | 369 | lookup: "the_method", |
@@ -391,8 +391,8 @@ mod tests { | |||
391 | [ | 391 | [ |
392 | CompletionItem { | 392 | CompletionItem { |
393 | label: "the_method()", | 393 | label: "the_method()", |
394 | source_range: [155; 155), | 394 | source_range: 155..155, |
395 | delete: [155; 155), | 395 | delete: 155..155, |
396 | insert: "the_method()$0", | 396 | insert: "the_method()$0", |
397 | kind: Method, | 397 | kind: Method, |
398 | lookup: "the_method", | 398 | lookup: "the_method", |
@@ -423,8 +423,8 @@ mod tests { | |||
423 | [ | 423 | [ |
424 | CompletionItem { | 424 | CompletionItem { |
425 | label: "the_method()", | 425 | label: "the_method()", |
426 | source_range: [219; 219), | 426 | source_range: 219..219, |
427 | delete: [219; 219), | 427 | delete: 219..219, |
428 | insert: "the_method()$0", | 428 | insert: "the_method()$0", |
429 | kind: Method, | 429 | kind: Method, |
430 | lookup: "the_method", | 430 | lookup: "the_method", |
@@ -475,8 +475,8 @@ mod tests { | |||
475 | [ | 475 | [ |
476 | CompletionItem { | 476 | CompletionItem { |
477 | label: "the_method()", | 477 | label: "the_method()", |
478 | source_range: [249; 249), | 478 | source_range: 249..249, |
479 | delete: [249; 249), | 479 | delete: 249..249, |
480 | insert: "the_method()$0", | 480 | insert: "the_method()$0", |
481 | kind: Method, | 481 | kind: Method, |
482 | lookup: "the_method", | 482 | lookup: "the_method", |
@@ -502,16 +502,16 @@ mod tests { | |||
502 | [ | 502 | [ |
503 | CompletionItem { | 503 | CompletionItem { |
504 | label: "0", | 504 | label: "0", |
505 | source_range: [75; 75), | 505 | source_range: 75..75, |
506 | delete: [75; 75), | 506 | delete: 75..75, |
507 | insert: "0", | 507 | insert: "0", |
508 | kind: Field, | 508 | kind: Field, |
509 | detail: "i32", | 509 | detail: "i32", |
510 | }, | 510 | }, |
511 | CompletionItem { | 511 | CompletionItem { |
512 | label: "1", | 512 | label: "1", |
513 | source_range: [75; 75), | 513 | source_range: 75..75, |
514 | delete: [75; 75), | 514 | delete: 75..75, |
515 | insert: "1", | 515 | insert: "1", |
516 | kind: Field, | 516 | kind: Field, |
517 | detail: "f64", | 517 | detail: "f64", |
@@ -545,8 +545,8 @@ mod tests { | |||
545 | [ | 545 | [ |
546 | CompletionItem { | 546 | CompletionItem { |
547 | label: "blah()", | 547 | label: "blah()", |
548 | source_range: [299; 300), | 548 | source_range: 299..300, |
549 | delete: [299; 300), | 549 | delete: 299..300, |
550 | insert: "blah()$0", | 550 | insert: "blah()$0", |
551 | kind: Method, | 551 | kind: Method, |
552 | lookup: "blah", | 552 | lookup: "blah", |
@@ -572,8 +572,8 @@ mod tests { | |||
572 | [ | 572 | [ |
573 | CompletionItem { | 573 | CompletionItem { |
574 | label: "the_field", | 574 | label: "the_field", |
575 | source_range: [106; 106), | 575 | source_range: 106..106, |
576 | delete: [106; 106), | 576 | delete: 106..106, |
577 | insert: "the_field", | 577 | insert: "the_field", |
578 | kind: Field, | 578 | kind: Field, |
579 | detail: "u32", | 579 | detail: "u32", |
@@ -606,8 +606,8 @@ mod tests { | |||
606 | [ | 606 | [ |
607 | CompletionItem { | 607 | CompletionItem { |
608 | label: "await", | 608 | label: "await", |
609 | source_range: [74; 74), | 609 | source_range: 74..74, |
610 | delete: [74; 74), | 610 | delete: 74..74, |
611 | insert: "await", | 611 | insert: "await", |
612 | detail: "expr.await", | 612 | detail: "expr.await", |
613 | }, | 613 | }, |
@@ -638,15 +638,15 @@ mod tests { | |||
638 | [ | 638 | [ |
639 | CompletionItem { | 639 | CompletionItem { |
640 | label: "A", | 640 | label: "A", |
641 | source_range: [217; 217), | 641 | source_range: 217..217, |
642 | delete: [217; 217), | 642 | delete: 217..217, |
643 | insert: "A", | 643 | insert: "A", |
644 | kind: Const, | 644 | kind: Const, |
645 | }, | 645 | }, |
646 | CompletionItem { | 646 | CompletionItem { |
647 | label: "b", | 647 | label: "b", |
648 | source_range: [217; 217), | 648 | source_range: 217..217, |
649 | delete: [217; 217), | 649 | delete: 217..217, |
650 | insert: "b", | 650 | insert: "b", |
651 | kind: Module, | 651 | kind: Module, |
652 | }, | 652 | }, |
@@ -671,8 +671,8 @@ mod tests { | |||
671 | [ | 671 | [ |
672 | CompletionItem { | 672 | CompletionItem { |
673 | label: "the_field", | 673 | label: "the_field", |
674 | source_range: [156; 157), | 674 | source_range: 156..157, |
675 | delete: [156; 157), | 675 | delete: 156..157, |
676 | insert: "the_field", | 676 | insert: "the_field", |
677 | kind: Field, | 677 | kind: Field, |
678 | detail: "u32", | 678 | detail: "u32", |
@@ -698,8 +698,8 @@ mod tests { | |||
698 | [ | 698 | [ |
699 | CompletionItem { | 699 | CompletionItem { |
700 | label: "the_field", | 700 | label: "the_field", |
701 | source_range: [156; 157), | 701 | source_range: 156..157, |
702 | delete: [156; 157), | 702 | delete: 156..157, |
703 | insert: "the_field", | 703 | insert: "the_field", |
704 | kind: Field, | 704 | kind: Field, |
705 | detail: "u32", | 705 | detail: "u32", |
@@ -726,8 +726,8 @@ mod tests { | |||
726 | [ | 726 | [ |
727 | CompletionItem { | 727 | CompletionItem { |
728 | label: "the_field", | 728 | label: "the_field", |
729 | source_range: [156; 156), | 729 | source_range: 156..156, |
730 | delete: [156; 156), | 730 | delete: 156..156, |
731 | insert: "the_field", | 731 | insert: "the_field", |
732 | kind: Field, | 732 | kind: Field, |
733 | detail: "u32", | 733 | detail: "u32", |
@@ -753,8 +753,8 @@ mod tests { | |||
753 | [ | 753 | [ |
754 | CompletionItem { | 754 | CompletionItem { |
755 | label: "the_field", | 755 | label: "the_field", |
756 | source_range: [162; 163), | 756 | source_range: 162..163, |
757 | delete: [162; 163), | 757 | delete: 162..163, |
758 | insert: "the_field", | 758 | insert: "the_field", |
759 | kind: Field, | 759 | kind: Field, |
760 | detail: "u32", | 760 | detail: "u32", |
@@ -790,8 +790,8 @@ mod tests { | |||
790 | [ | 790 | [ |
791 | CompletionItem { | 791 | CompletionItem { |
792 | label: "the_field", | 792 | label: "the_field", |
793 | source_range: [552; 552), | 793 | source_range: 552..552, |
794 | delete: [552; 552), | 794 | delete: 552..552, |
795 | insert: "the_field", | 795 | insert: "the_field", |
796 | kind: Field, | 796 | kind: Field, |
797 | detail: "u32", | 797 | detail: "u32", |
@@ -820,8 +820,8 @@ mod tests { | |||
820 | [ | 820 | [ |
821 | CompletionItem { | 821 | CompletionItem { |
822 | label: "the_method()", | 822 | label: "the_method()", |
823 | source_range: [201; 201), | 823 | source_range: 201..201, |
824 | delete: [201; 201), | 824 | delete: 201..201, |
825 | insert: "the_method()$0", | 825 | insert: "the_method()$0", |
826 | kind: Method, | 826 | kind: Method, |
827 | lookup: "the_method", | 827 | lookup: "the_method", |
diff --git a/crates/ra_ide/src/completion/complete_fn_param.rs b/crates/ra_ide/src/completion/complete_fn_param.rs index f84b559fc..a661932a3 100644 --- a/crates/ra_ide/src/completion/complete_fn_param.rs +++ b/crates/ra_ide/src/completion/complete_fn_param.rs | |||
@@ -75,8 +75,8 @@ mod tests { | |||
75 | [ | 75 | [ |
76 | CompletionItem { | 76 | CompletionItem { |
77 | label: "file_id: FileId", | 77 | label: "file_id: FileId", |
78 | source_range: [110; 114), | 78 | source_range: 110..114, |
79 | delete: [110; 114), | 79 | delete: 110..114, |
80 | insert: "file_id: FileId", | 80 | insert: "file_id: FileId", |
81 | lookup: "file_id", | 81 | lookup: "file_id", |
82 | }, | 82 | }, |
@@ -99,8 +99,8 @@ mod tests { | |||
99 | [ | 99 | [ |
100 | CompletionItem { | 100 | CompletionItem { |
101 | label: "file_id: FileId", | 101 | label: "file_id: FileId", |
102 | source_range: [110; 114), | 102 | source_range: 110..114, |
103 | delete: [110; 114), | 103 | delete: 110..114, |
104 | insert: "file_id: FileId", | 104 | insert: "file_id: FileId", |
105 | lookup: "file_id", | 105 | lookup: "file_id", |
106 | }, | 106 | }, |
@@ -126,8 +126,8 @@ mod tests { | |||
126 | [ | 126 | [ |
127 | CompletionItem { | 127 | CompletionItem { |
128 | label: "file_id: FileId", | 128 | label: "file_id: FileId", |
129 | source_range: [289; 293), | 129 | source_range: 289..293, |
130 | delete: [289; 293), | 130 | delete: 289..293, |
131 | insert: "file_id: FileId", | 131 | insert: "file_id: FileId", |
132 | lookup: "file_id", | 132 | lookup: "file_id", |
133 | }, | 133 | }, |
diff --git a/crates/ra_ide/src/completion/complete_keyword.rs b/crates/ra_ide/src/completion/complete_keyword.rs index adefb290e..fd95bc410 100644 --- a/crates/ra_ide/src/completion/complete_keyword.rs +++ b/crates/ra_ide/src/completion/complete_keyword.rs | |||
@@ -97,7 +97,7 @@ fn is_in_loop_body(leaf: &SyntaxToken) -> bool { | |||
97 | } | 97 | } |
98 | }; | 98 | }; |
99 | if let Some(body) = loop_body { | 99 | if let Some(body) = loop_body { |
100 | if leaf.text_range().is_subrange(&body.syntax().text_range()) { | 100 | if body.syntax().text_range().contains_range(leaf.text_range()) { |
101 | return true; | 101 | return true; |
102 | } | 102 | } |
103 | } | 103 | } |
@@ -140,22 +140,22 @@ mod tests { | |||
140 | [ | 140 | [ |
141 | CompletionItem { | 141 | CompletionItem { |
142 | label: "crate", | 142 | label: "crate", |
143 | source_range: [21; 21), | 143 | source_range: 21..21, |
144 | delete: [21; 21), | 144 | delete: 21..21, |
145 | insert: "crate::", | 145 | insert: "crate::", |
146 | kind: Keyword, | 146 | kind: Keyword, |
147 | }, | 147 | }, |
148 | CompletionItem { | 148 | CompletionItem { |
149 | label: "self", | 149 | label: "self", |
150 | source_range: [21; 21), | 150 | source_range: 21..21, |
151 | delete: [21; 21), | 151 | delete: 21..21, |
152 | insert: "self", | 152 | insert: "self", |
153 | kind: Keyword, | 153 | kind: Keyword, |
154 | }, | 154 | }, |
155 | CompletionItem { | 155 | CompletionItem { |
156 | label: "super", | 156 | label: "super", |
157 | source_range: [21; 21), | 157 | source_range: 21..21, |
158 | delete: [21; 21), | 158 | delete: 21..21, |
159 | insert: "super::", | 159 | insert: "super::", |
160 | kind: Keyword, | 160 | kind: Keyword, |
161 | }, | 161 | }, |
@@ -173,15 +173,15 @@ mod tests { | |||
173 | [ | 173 | [ |
174 | CompletionItem { | 174 | CompletionItem { |
175 | label: "self", | 175 | label: "self", |
176 | source_range: [24; 24), | 176 | source_range: 24..24, |
177 | delete: [24; 24), | 177 | delete: 24..24, |
178 | insert: "self", | 178 | insert: "self", |
179 | kind: Keyword, | 179 | kind: Keyword, |
180 | }, | 180 | }, |
181 | CompletionItem { | 181 | CompletionItem { |
182 | label: "super", | 182 | label: "super", |
183 | source_range: [24; 24), | 183 | source_range: 24..24, |
184 | delete: [24; 24), | 184 | delete: 24..24, |
185 | insert: "super::", | 185 | insert: "super::", |
186 | kind: Keyword, | 186 | kind: Keyword, |
187 | }, | 187 | }, |
@@ -199,15 +199,15 @@ mod tests { | |||
199 | [ | 199 | [ |
200 | CompletionItem { | 200 | CompletionItem { |
201 | label: "self", | 201 | label: "self", |
202 | source_range: [28; 28), | 202 | source_range: 28..28, |
203 | delete: [28; 28), | 203 | delete: 28..28, |
204 | insert: "self", | 204 | insert: "self", |
205 | kind: Keyword, | 205 | kind: Keyword, |
206 | }, | 206 | }, |
207 | CompletionItem { | 207 | CompletionItem { |
208 | label: "super", | 208 | label: "super", |
209 | source_range: [28; 28), | 209 | source_range: 28..28, |
210 | delete: [28; 28), | 210 | delete: 28..28, |
211 | insert: "super::", | 211 | insert: "super::", |
212 | kind: Keyword, | 212 | kind: Keyword, |
213 | }, | 213 | }, |
@@ -230,36 +230,36 @@ mod tests { | |||
230 | [ | 230 | [ |
231 | CompletionItem { | 231 | CompletionItem { |
232 | label: "if", | 232 | label: "if", |
233 | source_range: [49; 49), | 233 | source_range: 49..49, |
234 | delete: [49; 49), | 234 | delete: 49..49, |
235 | insert: "if $0 {}", | 235 | insert: "if $0 {}", |
236 | kind: Keyword, | 236 | kind: Keyword, |
237 | }, | 237 | }, |
238 | CompletionItem { | 238 | CompletionItem { |
239 | label: "loop", | 239 | label: "loop", |
240 | source_range: [49; 49), | 240 | source_range: 49..49, |
241 | delete: [49; 49), | 241 | delete: 49..49, |
242 | insert: "loop {$0}", | 242 | insert: "loop {$0}", |
243 | kind: Keyword, | 243 | kind: Keyword, |
244 | }, | 244 | }, |
245 | CompletionItem { | 245 | CompletionItem { |
246 | label: "match", | 246 | label: "match", |
247 | source_range: [49; 49), | 247 | source_range: 49..49, |
248 | delete: [49; 49), | 248 | delete: 49..49, |
249 | insert: "match $0 {}", | 249 | insert: "match $0 {}", |
250 | kind: Keyword, | 250 | kind: Keyword, |
251 | }, | 251 | }, |
252 | CompletionItem { | 252 | CompletionItem { |
253 | label: "return", | 253 | label: "return", |
254 | source_range: [49; 49), | 254 | source_range: 49..49, |
255 | delete: [49; 49), | 255 | delete: 49..49, |
256 | insert: "return;", | 256 | insert: "return;", |
257 | kind: Keyword, | 257 | kind: Keyword, |
258 | }, | 258 | }, |
259 | CompletionItem { | 259 | CompletionItem { |
260 | label: "while", | 260 | label: "while", |
261 | source_range: [49; 49), | 261 | source_range: 49..49, |
262 | delete: [49; 49), | 262 | delete: 49..49, |
263 | insert: "while $0 {}", | 263 | insert: "while $0 {}", |
264 | kind: Keyword, | 264 | kind: Keyword, |
265 | }, | 265 | }, |
@@ -284,50 +284,50 @@ mod tests { | |||
284 | [ | 284 | [ |
285 | CompletionItem { | 285 | CompletionItem { |
286 | label: "else", | 286 | label: "else", |
287 | source_range: [108; 108), | 287 | source_range: 108..108, |
288 | delete: [108; 108), | 288 | delete: 108..108, |
289 | insert: "else {$0}", | 289 | insert: "else {$0}", |
290 | kind: Keyword, | 290 | kind: Keyword, |
291 | }, | 291 | }, |
292 | CompletionItem { | 292 | CompletionItem { |
293 | label: "else if", | 293 | label: "else if", |
294 | source_range: [108; 108), | 294 | source_range: 108..108, |
295 | delete: [108; 108), | 295 | delete: 108..108, |
296 | insert: "else if $0 {}", | 296 | insert: "else if $0 {}", |
297 | kind: Keyword, | 297 | kind: Keyword, |
298 | }, | 298 | }, |
299 | CompletionItem { | 299 | CompletionItem { |
300 | label: "if", | 300 | label: "if", |
301 | source_range: [108; 108), | 301 | source_range: 108..108, |
302 | delete: [108; 108), | 302 | delete: 108..108, |
303 | insert: "if $0 {}", | 303 | insert: "if $0 {}", |
304 | kind: Keyword, | 304 | kind: Keyword, |
305 | }, | 305 | }, |
306 | CompletionItem { | 306 | CompletionItem { |
307 | label: "loop", | 307 | label: "loop", |
308 | source_range: [108; 108), | 308 | source_range: 108..108, |
309 | delete: [108; 108), | 309 | delete: 108..108, |
310 | insert: "loop {$0}", | 310 | insert: "loop {$0}", |
311 | kind: Keyword, | 311 | kind: Keyword, |
312 | }, | 312 | }, |
313 | CompletionItem { | 313 | CompletionItem { |
314 | label: "match", | 314 | label: "match", |
315 | source_range: [108; 108), | 315 | source_range: 108..108, |
316 | delete: [108; 108), | 316 | delete: 108..108, |
317 | insert: "match $0 {}", | 317 | insert: "match $0 {}", |
318 | kind: Keyword, | 318 | kind: Keyword, |
319 | }, | 319 | }, |
320 | CompletionItem { | 320 | CompletionItem { |
321 | label: "return", | 321 | label: "return", |
322 | source_range: [108; 108), | 322 | source_range: 108..108, |
323 | delete: [108; 108), | 323 | delete: 108..108, |
324 | insert: "return;", | 324 | insert: "return;", |
325 | kind: Keyword, | 325 | kind: Keyword, |
326 | }, | 326 | }, |
327 | CompletionItem { | 327 | CompletionItem { |
328 | label: "while", | 328 | label: "while", |
329 | source_range: [108; 108), | 329 | source_range: 108..108, |
330 | delete: [108; 108), | 330 | delete: 108..108, |
331 | insert: "while $0 {}", | 331 | insert: "while $0 {}", |
332 | kind: Keyword, | 332 | kind: Keyword, |
333 | }, | 333 | }, |
@@ -351,36 +351,36 @@ mod tests { | |||
351 | [ | 351 | [ |
352 | CompletionItem { | 352 | CompletionItem { |
353 | label: "if", | 353 | label: "if", |
354 | source_range: [56; 56), | 354 | source_range: 56..56, |
355 | delete: [56; 56), | 355 | delete: 56..56, |
356 | insert: "if $0 {}", | 356 | insert: "if $0 {}", |
357 | kind: Keyword, | 357 | kind: Keyword, |
358 | }, | 358 | }, |
359 | CompletionItem { | 359 | CompletionItem { |
360 | label: "loop", | 360 | label: "loop", |
361 | source_range: [56; 56), | 361 | source_range: 56..56, |
362 | delete: [56; 56), | 362 | delete: 56..56, |
363 | insert: "loop {$0}", | 363 | insert: "loop {$0}", |
364 | kind: Keyword, | 364 | kind: Keyword, |
365 | }, | 365 | }, |
366 | CompletionItem { | 366 | CompletionItem { |
367 | label: "match", | 367 | label: "match", |
368 | source_range: [56; 56), | 368 | source_range: 56..56, |
369 | delete: [56; 56), | 369 | delete: 56..56, |
370 | insert: "match $0 {}", | 370 | insert: "match $0 {}", |
371 | kind: Keyword, | 371 | kind: Keyword, |
372 | }, | 372 | }, |
373 | CompletionItem { | 373 | CompletionItem { |
374 | label: "return", | 374 | label: "return", |
375 | source_range: [56; 56), | 375 | source_range: 56..56, |
376 | delete: [56; 56), | 376 | delete: 56..56, |
377 | insert: "return $0;", | 377 | insert: "return $0;", |
378 | kind: Keyword, | 378 | kind: Keyword, |
379 | }, | 379 | }, |
380 | CompletionItem { | 380 | CompletionItem { |
381 | label: "while", | 381 | label: "while", |
382 | source_range: [56; 56), | 382 | source_range: 56..56, |
383 | delete: [56; 56), | 383 | delete: 56..56, |
384 | insert: "while $0 {}", | 384 | insert: "while $0 {}", |
385 | kind: Keyword, | 385 | kind: Keyword, |
386 | }, | 386 | }, |
@@ -400,36 +400,36 @@ mod tests { | |||
400 | [ | 400 | [ |
401 | CompletionItem { | 401 | CompletionItem { |
402 | label: "if", | 402 | label: "if", |
403 | source_range: [49; 49), | 403 | source_range: 49..49, |
404 | delete: [49; 49), | 404 | delete: 49..49, |
405 | insert: "if $0 {}", | 405 | insert: "if $0 {}", |
406 | kind: Keyword, | 406 | kind: Keyword, |
407 | }, | 407 | }, |
408 | CompletionItem { | 408 | CompletionItem { |
409 | label: "loop", | 409 | label: "loop", |
410 | source_range: [49; 49), | 410 | source_range: 49..49, |
411 | delete: [49; 49), | 411 | delete: 49..49, |
412 | insert: "loop {$0}", | 412 | insert: "loop {$0}", |
413 | kind: Keyword, | 413 | kind: Keyword, |
414 | }, | 414 | }, |
415 | CompletionItem { | 415 | CompletionItem { |
416 | label: "match", | 416 | label: "match", |
417 | source_range: [49; 49), | 417 | source_range: 49..49, |
418 | delete: [49; 49), | 418 | delete: 49..49, |
419 | insert: "match $0 {}", | 419 | insert: "match $0 {}", |
420 | kind: Keyword, | 420 | kind: Keyword, |
421 | }, | 421 | }, |
422 | CompletionItem { | 422 | CompletionItem { |
423 | label: "return", | 423 | label: "return", |
424 | source_range: [49; 49), | 424 | source_range: 49..49, |
425 | delete: [49; 49), | 425 | delete: 49..49, |
426 | insert: "return;", | 426 | insert: "return;", |
427 | kind: Keyword, | 427 | kind: Keyword, |
428 | }, | 428 | }, |
429 | CompletionItem { | 429 | CompletionItem { |
430 | label: "while", | 430 | label: "while", |
431 | source_range: [49; 49), | 431 | source_range: 49..49, |
432 | delete: [49; 49), | 432 | delete: 49..49, |
433 | insert: "while $0 {}", | 433 | insert: "while $0 {}", |
434 | kind: Keyword, | 434 | kind: Keyword, |
435 | }, | 435 | }, |
@@ -454,36 +454,36 @@ mod tests { | |||
454 | [ | 454 | [ |
455 | CompletionItem { | 455 | CompletionItem { |
456 | label: "if", | 456 | label: "if", |
457 | source_range: [97; 97), | 457 | source_range: 97..97, |
458 | delete: [97; 97), | 458 | delete: 97..97, |
459 | insert: "if $0 {}", | 459 | insert: "if $0 {}", |
460 | kind: Keyword, | 460 | kind: Keyword, |
461 | }, | 461 | }, |
462 | CompletionItem { | 462 | CompletionItem { |
463 | label: "loop", | 463 | label: "loop", |
464 | source_range: [97; 97), | 464 | source_range: 97..97, |
465 | delete: [97; 97), | 465 | delete: 97..97, |
466 | insert: "loop {$0}", | 466 | insert: "loop {$0}", |
467 | kind: Keyword, | 467 | kind: Keyword, |
468 | }, | 468 | }, |
469 | CompletionItem { | 469 | CompletionItem { |
470 | label: "match", | 470 | label: "match", |
471 | source_range: [97; 97), | 471 | source_range: 97..97, |
472 | delete: [97; 97), | 472 | delete: 97..97, |
473 | insert: "match $0 {}", | 473 | insert: "match $0 {}", |
474 | kind: Keyword, | 474 | kind: Keyword, |
475 | }, | 475 | }, |
476 | CompletionItem { | 476 | CompletionItem { |
477 | label: "return", | 477 | label: "return", |
478 | source_range: [97; 97), | 478 | source_range: 97..97, |
479 | delete: [97; 97), | 479 | delete: 97..97, |
480 | insert: "return $0", | 480 | insert: "return $0", |
481 | kind: Keyword, | 481 | kind: Keyword, |
482 | }, | 482 | }, |
483 | CompletionItem { | 483 | CompletionItem { |
484 | label: "while", | 484 | label: "while", |
485 | source_range: [97; 97), | 485 | source_range: 97..97, |
486 | delete: [97; 97), | 486 | delete: 97..97, |
487 | insert: "while $0 {}", | 487 | insert: "while $0 {}", |
488 | kind: Keyword, | 488 | kind: Keyword, |
489 | }, | 489 | }, |
@@ -508,36 +508,36 @@ mod tests { | |||
508 | [ | 508 | [ |
509 | CompletionItem { | 509 | CompletionItem { |
510 | label: "if", | 510 | label: "if", |
511 | source_range: [95; 95), | 511 | source_range: 95..95, |
512 | delete: [95; 95), | 512 | delete: 95..95, |
513 | insert: "if $0 {}", | 513 | insert: "if $0 {}", |
514 | kind: Keyword, | 514 | kind: Keyword, |
515 | }, | 515 | }, |
516 | CompletionItem { | 516 | CompletionItem { |
517 | label: "loop", | 517 | label: "loop", |
518 | source_range: [95; 95), | 518 | source_range: 95..95, |
519 | delete: [95; 95), | 519 | delete: 95..95, |
520 | insert: "loop {$0}", | 520 | insert: "loop {$0}", |
521 | kind: Keyword, | 521 | kind: Keyword, |
522 | }, | 522 | }, |
523 | CompletionItem { | 523 | CompletionItem { |
524 | label: "match", | 524 | label: "match", |
525 | source_range: [95; 95), | 525 | source_range: 95..95, |
526 | delete: [95; 95), | 526 | delete: 95..95, |
527 | insert: "match $0 {}", | 527 | insert: "match $0 {}", |
528 | kind: Keyword, | 528 | kind: Keyword, |
529 | }, | 529 | }, |
530 | CompletionItem { | 530 | CompletionItem { |
531 | label: "return", | 531 | label: "return", |
532 | source_range: [95; 95), | 532 | source_range: 95..95, |
533 | delete: [95; 95), | 533 | delete: 95..95, |
534 | insert: "return $0;", | 534 | insert: "return $0;", |
535 | kind: Keyword, | 535 | kind: Keyword, |
536 | }, | 536 | }, |
537 | CompletionItem { | 537 | CompletionItem { |
538 | label: "while", | 538 | label: "while", |
539 | source_range: [95; 95), | 539 | source_range: 95..95, |
540 | delete: [95; 95), | 540 | delete: 95..95, |
541 | insert: "while $0 {}", | 541 | insert: "while $0 {}", |
542 | kind: Keyword, | 542 | kind: Keyword, |
543 | }, | 543 | }, |
@@ -560,36 +560,36 @@ mod tests { | |||
560 | [ | 560 | [ |
561 | CompletionItem { | 561 | CompletionItem { |
562 | label: "if", | 562 | label: "if", |
563 | source_range: [95; 95), | 563 | source_range: 95..95, |
564 | delete: [95; 95), | 564 | delete: 95..95, |
565 | insert: "if $0 {}", | 565 | insert: "if $0 {}", |
566 | kind: Keyword, | 566 | kind: Keyword, |
567 | }, | 567 | }, |
568 | CompletionItem { | 568 | CompletionItem { |
569 | label: "loop", | 569 | label: "loop", |
570 | source_range: [95; 95), | 570 | source_range: 95..95, |
571 | delete: [95; 95), | 571 | delete: 95..95, |
572 | insert: "loop {$0}", | 572 | insert: "loop {$0}", |
573 | kind: Keyword, | 573 | kind: Keyword, |
574 | }, | 574 | }, |
575 | CompletionItem { | 575 | CompletionItem { |
576 | label: "match", | 576 | label: "match", |
577 | source_range: [95; 95), | 577 | source_range: 95..95, |
578 | delete: [95; 95), | 578 | delete: 95..95, |
579 | insert: "match $0 {}", | 579 | insert: "match $0 {}", |
580 | kind: Keyword, | 580 | kind: Keyword, |
581 | }, | 581 | }, |
582 | CompletionItem { | 582 | CompletionItem { |
583 | label: "return", | 583 | label: "return", |
584 | source_range: [95; 95), | 584 | source_range: 95..95, |
585 | delete: [95; 95), | 585 | delete: 95..95, |
586 | insert: "return $0;", | 586 | insert: "return $0;", |
587 | kind: Keyword, | 587 | kind: Keyword, |
588 | }, | 588 | }, |
589 | CompletionItem { | 589 | CompletionItem { |
590 | label: "while", | 590 | label: "while", |
591 | source_range: [95; 95), | 591 | source_range: 95..95, |
592 | delete: [95; 95), | 592 | delete: 95..95, |
593 | insert: "while $0 {}", | 593 | insert: "while $0 {}", |
594 | kind: Keyword, | 594 | kind: Keyword, |
595 | }, | 595 | }, |
@@ -612,50 +612,50 @@ mod tests { | |||
612 | [ | 612 | [ |
613 | CompletionItem { | 613 | CompletionItem { |
614 | label: "break", | 614 | label: "break", |
615 | source_range: [63; 63), | 615 | source_range: 63..63, |
616 | delete: [63; 63), | 616 | delete: 63..63, |
617 | insert: "break;", | 617 | insert: "break;", |
618 | kind: Keyword, | 618 | kind: Keyword, |
619 | }, | 619 | }, |
620 | CompletionItem { | 620 | CompletionItem { |
621 | label: "continue", | 621 | label: "continue", |
622 | source_range: [63; 63), | 622 | source_range: 63..63, |
623 | delete: [63; 63), | 623 | delete: 63..63, |
624 | insert: "continue;", | 624 | insert: "continue;", |
625 | kind: Keyword, | 625 | kind: Keyword, |
626 | }, | 626 | }, |
627 | CompletionItem { | 627 | CompletionItem { |
628 | label: "if", | 628 | label: "if", |
629 | source_range: [63; 63), | 629 | source_range: 63..63, |
630 | delete: [63; 63), | 630 | delete: 63..63, |
631 | insert: "if $0 {}", | 631 | insert: "if $0 {}", |
632 | kind: Keyword, | 632 | kind: Keyword, |
633 | }, | 633 | }, |
634 | CompletionItem { | 634 | CompletionItem { |
635 | label: "loop", | 635 | label: "loop", |
636 | source_range: [63; 63), | 636 | source_range: 63..63, |
637 | delete: [63; 63), | 637 | delete: 63..63, |
638 | insert: "loop {$0}", | 638 | insert: "loop {$0}", |
639 | kind: Keyword, | 639 | kind: Keyword, |
640 | }, | 640 | }, |
641 | CompletionItem { | 641 | CompletionItem { |
642 | label: "match", | 642 | label: "match", |
643 | source_range: [63; 63), | 643 | source_range: 63..63, |
644 | delete: [63; 63), | 644 | delete: 63..63, |
645 | insert: "match $0 {}", | 645 | insert: "match $0 {}", |
646 | kind: Keyword, | 646 | kind: Keyword, |
647 | }, | 647 | }, |
648 | CompletionItem { | 648 | CompletionItem { |
649 | label: "return", | 649 | label: "return", |
650 | source_range: [63; 63), | 650 | source_range: 63..63, |
651 | delete: [63; 63), | 651 | delete: 63..63, |
652 | insert: "return $0;", | 652 | insert: "return $0;", |
653 | kind: Keyword, | 653 | kind: Keyword, |
654 | }, | 654 | }, |
655 | CompletionItem { | 655 | CompletionItem { |
656 | label: "while", | 656 | label: "while", |
657 | source_range: [63; 63), | 657 | source_range: 63..63, |
658 | delete: [63; 63), | 658 | delete: 63..63, |
659 | insert: "while $0 {}", | 659 | insert: "while $0 {}", |
660 | kind: Keyword, | 660 | kind: Keyword, |
661 | }, | 661 | }, |
@@ -676,36 +676,36 @@ mod tests { | |||
676 | [ | 676 | [ |
677 | CompletionItem { | 677 | CompletionItem { |
678 | label: "if", | 678 | label: "if", |
679 | source_range: [68; 68), | 679 | source_range: 68..68, |
680 | delete: [68; 68), | 680 | delete: 68..68, |
681 | insert: "if $0 {}", | 681 | insert: "if $0 {}", |
682 | kind: Keyword, | 682 | kind: Keyword, |
683 | }, | 683 | }, |
684 | CompletionItem { | 684 | CompletionItem { |
685 | label: "loop", | 685 | label: "loop", |
686 | source_range: [68; 68), | 686 | source_range: 68..68, |
687 | delete: [68; 68), | 687 | delete: 68..68, |
688 | insert: "loop {$0}", | 688 | insert: "loop {$0}", |
689 | kind: Keyword, | 689 | kind: Keyword, |
690 | }, | 690 | }, |
691 | CompletionItem { | 691 | CompletionItem { |
692 | label: "match", | 692 | label: "match", |
693 | source_range: [68; 68), | 693 | source_range: 68..68, |
694 | delete: [68; 68), | 694 | delete: 68..68, |
695 | insert: "match $0 {}", | 695 | insert: "match $0 {}", |
696 | kind: Keyword, | 696 | kind: Keyword, |
697 | }, | 697 | }, |
698 | CompletionItem { | 698 | CompletionItem { |
699 | label: "return", | 699 | label: "return", |
700 | source_range: [68; 68), | 700 | source_range: 68..68, |
701 | delete: [68; 68), | 701 | delete: 68..68, |
702 | insert: "return $0;", | 702 | insert: "return $0;", |
703 | kind: Keyword, | 703 | kind: Keyword, |
704 | }, | 704 | }, |
705 | CompletionItem { | 705 | CompletionItem { |
706 | label: "while", | 706 | label: "while", |
707 | source_range: [68; 68), | 707 | source_range: 68..68, |
708 | delete: [68; 68), | 708 | delete: 68..68, |
709 | insert: "while $0 {}", | 709 | insert: "while $0 {}", |
710 | kind: Keyword, | 710 | kind: Keyword, |
711 | }, | 711 | }, |
@@ -732,50 +732,50 @@ mod tests { | |||
732 | [ | 732 | [ |
733 | CompletionItem { | 733 | CompletionItem { |
734 | label: "break", | 734 | label: "break", |
735 | source_range: [122; 124), | 735 | source_range: 122..124, |
736 | delete: [122; 124), | 736 | delete: 122..124, |
737 | insert: "break", | 737 | insert: "break", |
738 | kind: Keyword, | 738 | kind: Keyword, |
739 | }, | 739 | }, |
740 | CompletionItem { | 740 | CompletionItem { |
741 | label: "continue", | 741 | label: "continue", |
742 | source_range: [122; 124), | 742 | source_range: 122..124, |
743 | delete: [122; 124), | 743 | delete: 122..124, |
744 | insert: "continue", | 744 | insert: "continue", |
745 | kind: Keyword, | 745 | kind: Keyword, |
746 | }, | 746 | }, |
747 | CompletionItem { | 747 | CompletionItem { |
748 | label: "if", | 748 | label: "if", |
749 | source_range: [122; 124), | 749 | source_range: 122..124, |
750 | delete: [122; 124), | 750 | delete: 122..124, |
751 | insert: "if $0 {}", | 751 | insert: "if $0 {}", |
752 | kind: Keyword, | 752 | kind: Keyword, |
753 | }, | 753 | }, |
754 | CompletionItem { | 754 | CompletionItem { |
755 | label: "loop", | 755 | label: "loop", |
756 | source_range: [122; 124), | 756 | source_range: 122..124, |
757 | delete: [122; 124), | 757 | delete: 122..124, |
758 | insert: "loop {$0}", | 758 | insert: "loop {$0}", |
759 | kind: Keyword, | 759 | kind: Keyword, |
760 | }, | 760 | }, |
761 | CompletionItem { | 761 | CompletionItem { |
762 | label: "match", | 762 | label: "match", |
763 | source_range: [122; 124), | 763 | source_range: 122..124, |
764 | delete: [122; 124), | 764 | delete: 122..124, |
765 | insert: "match $0 {}", | 765 | insert: "match $0 {}", |
766 | kind: Keyword, | 766 | kind: Keyword, |
767 | }, | 767 | }, |
768 | CompletionItem { | 768 | CompletionItem { |
769 | label: "return", | 769 | label: "return", |
770 | source_range: [122; 124), | 770 | source_range: 122..124, |
771 | delete: [122; 124), | 771 | delete: 122..124, |
772 | insert: "return", | 772 | insert: "return", |
773 | kind: Keyword, | 773 | kind: Keyword, |
774 | }, | 774 | }, |
775 | CompletionItem { | 775 | CompletionItem { |
776 | label: "while", | 776 | label: "while", |
777 | source_range: [122; 124), | 777 | source_range: 122..124, |
778 | delete: [122; 124), | 778 | delete: 122..124, |
779 | insert: "while $0 {}", | 779 | insert: "while $0 {}", |
780 | kind: Keyword, | 780 | kind: Keyword, |
781 | }, | 781 | }, |
diff --git a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs b/crates/ra_ide/src/completion/complete_macro_in_item_position.rs index 270e96df0..d9bb5fd25 100644 --- a/crates/ra_ide/src/completion/complete_macro_in_item_position.rs +++ b/crates/ra_ide/src/completion/complete_macro_in_item_position.rs | |||
@@ -41,9 +41,9 @@ mod tests { | |||
41 | @r###" | 41 | @r###" |
42 | [ | 42 | [ |
43 | CompletionItem { | 43 | CompletionItem { |
44 | label: "foo!", | 44 | label: "foo!(…)", |
45 | source_range: [46; 46), | 45 | source_range: 46..46, |
46 | delete: [46; 46), | 46 | delete: 46..46, |
47 | insert: "foo!($0)", | 47 | insert: "foo!($0)", |
48 | kind: Macro, | 48 | kind: Macro, |
49 | detail: "macro_rules! foo", | 49 | detail: "macro_rules! foo", |
@@ -81,9 +81,9 @@ mod tests { | |||
81 | @r###" | 81 | @r###" |
82 | [ | 82 | [ |
83 | CompletionItem { | 83 | CompletionItem { |
84 | label: "vec!", | 84 | label: "vec![…]", |
85 | source_range: [280; 280), | 85 | source_range: 280..280, |
86 | delete: [280; 280), | 86 | delete: 280..280, |
87 | insert: "vec![$0]", | 87 | insert: "vec![$0]", |
88 | kind: Macro, | 88 | kind: Macro, |
89 | detail: "macro_rules! vec", | 89 | detail: "macro_rules! vec", |
@@ -118,9 +118,9 @@ mod tests { | |||
118 | @r###" | 118 | @r###" |
119 | [ | 119 | [ |
120 | CompletionItem { | 120 | CompletionItem { |
121 | label: "foo!", | 121 | label: "foo! {…}", |
122 | source_range: [163; 163), | 122 | source_range: 163..163, |
123 | delete: [163; 163), | 123 | delete: 163..163, |
124 | insert: "foo! {$0}", | 124 | insert: "foo! {$0}", |
125 | kind: Macro, | 125 | kind: Macro, |
126 | detail: "macro_rules! foo", | 126 | detail: "macro_rules! foo", |
@@ -130,8 +130,8 @@ mod tests { | |||
130 | }, | 130 | }, |
131 | CompletionItem { | 131 | CompletionItem { |
132 | label: "main()", | 132 | label: "main()", |
133 | source_range: [163; 163), | 133 | source_range: 163..163, |
134 | delete: [163; 163), | 134 | delete: 163..163, |
135 | insert: "main()$0", | 135 | insert: "main()$0", |
136 | kind: Function, | 136 | kind: Function, |
137 | lookup: "main", | 137 | lookup: "main", |
diff --git a/crates/ra_ide/src/completion/complete_pattern.rs b/crates/ra_ide/src/completion/complete_pattern.rs index a8b4ce114..fdd9e928b 100644 --- a/crates/ra_ide/src/completion/complete_pattern.rs +++ b/crates/ra_ide/src/completion/complete_pattern.rs | |||
@@ -63,37 +63,37 @@ mod tests { | |||
63 | [ | 63 | [ |
64 | CompletionItem { | 64 | CompletionItem { |
65 | label: "Bar", | 65 | label: "Bar", |
66 | source_range: [246; 246), | 66 | source_range: 246..246, |
67 | delete: [246; 246), | 67 | delete: 246..246, |
68 | insert: "Bar", | 68 | insert: "Bar", |
69 | kind: Struct, | 69 | kind: Struct, |
70 | }, | 70 | }, |
71 | CompletionItem { | 71 | CompletionItem { |
72 | label: "E", | 72 | label: "E", |
73 | source_range: [246; 246), | 73 | source_range: 246..246, |
74 | delete: [246; 246), | 74 | delete: 246..246, |
75 | insert: "E", | 75 | insert: "E", |
76 | kind: Enum, | 76 | kind: Enum, |
77 | }, | 77 | }, |
78 | CompletionItem { | 78 | CompletionItem { |
79 | label: "X", | 79 | label: "X", |
80 | source_range: [246; 246), | 80 | source_range: 246..246, |
81 | delete: [246; 246), | 81 | delete: 246..246, |
82 | insert: "X", | 82 | insert: "X", |
83 | kind: EnumVariant, | 83 | kind: EnumVariant, |
84 | detail: "()", | 84 | detail: "()", |
85 | }, | 85 | }, |
86 | CompletionItem { | 86 | CompletionItem { |
87 | label: "Z", | 87 | label: "Z", |
88 | source_range: [246; 246), | 88 | source_range: 246..246, |
89 | delete: [246; 246), | 89 | delete: 246..246, |
90 | insert: "Z", | 90 | insert: "Z", |
91 | kind: Const, | 91 | kind: Const, |
92 | }, | 92 | }, |
93 | CompletionItem { | 93 | CompletionItem { |
94 | label: "m", | 94 | label: "m", |
95 | source_range: [246; 246), | 95 | source_range: 246..246, |
96 | delete: [246; 246), | 96 | delete: 246..246, |
97 | insert: "m", | 97 | insert: "m", |
98 | kind: Module, | 98 | kind: Module, |
99 | }, | 99 | }, |
@@ -119,15 +119,15 @@ mod tests { | |||
119 | [ | 119 | [ |
120 | CompletionItem { | 120 | CompletionItem { |
121 | label: "E", | 121 | label: "E", |
122 | source_range: [151; 151), | 122 | source_range: 151..151, |
123 | delete: [151; 151), | 123 | delete: 151..151, |
124 | insert: "E", | 124 | insert: "E", |
125 | kind: Enum, | 125 | kind: Enum, |
126 | }, | 126 | }, |
127 | CompletionItem { | 127 | CompletionItem { |
128 | label: "m!", | 128 | label: "m!(…)", |
129 | source_range: [151; 151), | 129 | source_range: 151..151, |
130 | delete: [151; 151), | 130 | delete: 151..151, |
131 | insert: "m!($0)", | 131 | insert: "m!($0)", |
132 | kind: Macro, | 132 | kind: Macro, |
133 | detail: "macro_rules! m", | 133 | detail: "macro_rules! m", |
diff --git a/crates/ra_ide/src/completion/complete_postfix.rs b/crates/ra_ide/src/completion/complete_postfix.rs index 8d397b0fe..6a0f0c72e 100644 --- a/crates/ra_ide/src/completion/complete_postfix.rs +++ b/crates/ra_ide/src/completion/complete_postfix.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | ast::{self, AstNode}, | 4 | ast::{self, AstNode}, |
5 | TextRange, TextUnit, | 5 | TextRange, TextSize, |
6 | }; | 6 | }; |
7 | use ra_text_edit::TextEdit; | 7 | use ra_text_edit::TextEdit; |
8 | 8 | ||
@@ -115,7 +115,7 @@ pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) { | |||
115 | fn get_receiver_text(receiver: &ast::Expr, receiver_is_ambiguous_float_literal: bool) -> String { | 115 | fn get_receiver_text(receiver: &ast::Expr, receiver_is_ambiguous_float_literal: bool) -> String { |
116 | if receiver_is_ambiguous_float_literal { | 116 | if receiver_is_ambiguous_float_literal { |
117 | let text = receiver.syntax().text(); | 117 | let text = receiver.syntax().text(); |
118 | let without_dot = ..text.len() - TextUnit::of_char('.'); | 118 | let without_dot = ..text.len() - TextSize::of('.'); |
119 | text.slice(without_dot).to_string() | 119 | text.slice(without_dot).to_string() |
120 | } else { | 120 | } else { |
121 | receiver.to_string() | 121 | receiver.to_string() |
@@ -143,7 +143,7 @@ fn postfix_snippet( | |||
143 | let edit = { | 143 | let edit = { |
144 | let receiver_syntax = receiver.syntax(); | 144 | let receiver_syntax = receiver.syntax(); |
145 | let receiver_range = ctx.sema.original_range(receiver_syntax).range; | 145 | let receiver_range = ctx.sema.original_range(receiver_syntax).range; |
146 | let delete_range = TextRange::from_to(receiver_range.start(), ctx.source_range().end()); | 146 | let delete_range = TextRange::new(receiver_range.start(), ctx.source_range().end()); |
147 | TextEdit::replace(delete_range, snippet.to_string()) | 147 | TextEdit::replace(delete_range, snippet.to_string()) |
148 | }; | 148 | }; |
149 | CompletionItem::new(CompletionKind::Postfix, ctx.source_range(), label) | 149 | CompletionItem::new(CompletionKind::Postfix, ctx.source_range(), label) |
@@ -176,57 +176,57 @@ mod tests { | |||
176 | [ | 176 | [ |
177 | CompletionItem { | 177 | CompletionItem { |
178 | label: "box", | 178 | label: "box", |
179 | source_range: [89; 89), | 179 | source_range: 89..89, |
180 | delete: [85; 89), | 180 | delete: 85..89, |
181 | insert: "Box::new(bar)", | 181 | insert: "Box::new(bar)", |
182 | detail: "Box::new(expr)", | 182 | detail: "Box::new(expr)", |
183 | }, | 183 | }, |
184 | CompletionItem { | 184 | CompletionItem { |
185 | label: "dbg", | 185 | label: "dbg", |
186 | source_range: [89; 89), | 186 | source_range: 89..89, |
187 | delete: [85; 89), | 187 | delete: 85..89, |
188 | insert: "dbg!(bar)", | 188 | insert: "dbg!(bar)", |
189 | detail: "dbg!(expr)", | 189 | detail: "dbg!(expr)", |
190 | }, | 190 | }, |
191 | CompletionItem { | 191 | CompletionItem { |
192 | label: "if", | 192 | label: "if", |
193 | source_range: [89; 89), | 193 | source_range: 89..89, |
194 | delete: [85; 89), | 194 | delete: 85..89, |
195 | insert: "if bar {$0}", | 195 | insert: "if bar {$0}", |
196 | detail: "if expr {}", | 196 | detail: "if expr {}", |
197 | }, | 197 | }, |
198 | CompletionItem { | 198 | CompletionItem { |
199 | label: "match", | 199 | label: "match", |
200 | source_range: [89; 89), | 200 | source_range: 89..89, |
201 | delete: [85; 89), | 201 | delete: 85..89, |
202 | insert: "match bar {\n ${1:_} => {$0\\},\n}", | 202 | insert: "match bar {\n ${1:_} => {$0\\},\n}", |
203 | detail: "match expr {}", | 203 | detail: "match expr {}", |
204 | }, | 204 | }, |
205 | CompletionItem { | 205 | CompletionItem { |
206 | label: "not", | 206 | label: "not", |
207 | source_range: [89; 89), | 207 | source_range: 89..89, |
208 | delete: [85; 89), | 208 | delete: 85..89, |
209 | insert: "!bar", | 209 | insert: "!bar", |
210 | detail: "!expr", | 210 | detail: "!expr", |
211 | }, | 211 | }, |
212 | CompletionItem { | 212 | CompletionItem { |
213 | label: "ref", | 213 | label: "ref", |
214 | source_range: [89; 89), | 214 | source_range: 89..89, |
215 | delete: [85; 89), | 215 | delete: 85..89, |
216 | insert: "&bar", | 216 | insert: "&bar", |
217 | detail: "&expr", | 217 | detail: "&expr", |
218 | }, | 218 | }, |
219 | CompletionItem { | 219 | CompletionItem { |
220 | label: "refm", | 220 | label: "refm", |
221 | source_range: [89; 89), | 221 | source_range: 89..89, |
222 | delete: [85; 89), | 222 | delete: 85..89, |
223 | insert: "&mut bar", | 223 | insert: "&mut bar", |
224 | detail: "&mut expr", | 224 | detail: "&mut expr", |
225 | }, | 225 | }, |
226 | CompletionItem { | 226 | CompletionItem { |
227 | label: "while", | 227 | label: "while", |
228 | source_range: [89; 89), | 228 | source_range: 89..89, |
229 | delete: [85; 89), | 229 | delete: 85..89, |
230 | insert: "while bar {\n$0\n}", | 230 | insert: "while bar {\n$0\n}", |
231 | detail: "while expr {}", | 231 | detail: "while expr {}", |
232 | }, | 232 | }, |
@@ -250,43 +250,43 @@ mod tests { | |||
250 | [ | 250 | [ |
251 | CompletionItem { | 251 | CompletionItem { |
252 | label: "box", | 252 | label: "box", |
253 | source_range: [91; 91), | 253 | source_range: 91..91, |
254 | delete: [87; 91), | 254 | delete: 87..91, |
255 | insert: "Box::new(bar)", | 255 | insert: "Box::new(bar)", |
256 | detail: "Box::new(expr)", | 256 | detail: "Box::new(expr)", |
257 | }, | 257 | }, |
258 | CompletionItem { | 258 | CompletionItem { |
259 | label: "dbg", | 259 | label: "dbg", |
260 | source_range: [91; 91), | 260 | source_range: 91..91, |
261 | delete: [87; 91), | 261 | delete: 87..91, |
262 | insert: "dbg!(bar)", | 262 | insert: "dbg!(bar)", |
263 | detail: "dbg!(expr)", | 263 | detail: "dbg!(expr)", |
264 | }, | 264 | }, |
265 | CompletionItem { | 265 | CompletionItem { |
266 | label: "match", | 266 | label: "match", |
267 | source_range: [91; 91), | 267 | source_range: 91..91, |
268 | delete: [87; 91), | 268 | delete: 87..91, |
269 | insert: "match bar {\n ${1:_} => {$0\\},\n}", | 269 | insert: "match bar {\n ${1:_} => {$0\\},\n}", |
270 | detail: "match expr {}", | 270 | detail: "match expr {}", |
271 | }, | 271 | }, |
272 | CompletionItem { | 272 | CompletionItem { |
273 | label: "not", | 273 | label: "not", |
274 | source_range: [91; 91), | 274 | source_range: 91..91, |
275 | delete: [87; 91), | 275 | delete: 87..91, |
276 | insert: "!bar", | 276 | insert: "!bar", |
277 | detail: "!expr", | 277 | detail: "!expr", |
278 | }, | 278 | }, |
279 | CompletionItem { | 279 | CompletionItem { |
280 | label: "ref", | 280 | label: "ref", |
281 | source_range: [91; 91), | 281 | source_range: 91..91, |
282 | delete: [87; 91), | 282 | delete: 87..91, |
283 | insert: "&bar", | 283 | insert: "&bar", |
284 | detail: "&expr", | 284 | detail: "&expr", |
285 | }, | 285 | }, |
286 | CompletionItem { | 286 | CompletionItem { |
287 | label: "refm", | 287 | label: "refm", |
288 | source_range: [91; 91), | 288 | source_range: 91..91, |
289 | delete: [87; 91), | 289 | delete: 87..91, |
290 | insert: "&mut bar", | 290 | insert: "&mut bar", |
291 | detail: "&mut expr", | 291 | detail: "&mut expr", |
292 | }, | 292 | }, |
@@ -309,43 +309,43 @@ mod tests { | |||
309 | [ | 309 | [ |
310 | CompletionItem { | 310 | CompletionItem { |
311 | label: "box", | 311 | label: "box", |
312 | source_range: [52; 52), | 312 | source_range: 52..52, |
313 | delete: [49; 52), | 313 | delete: 49..52, |
314 | insert: "Box::new(42)", | 314 | insert: "Box::new(42)", |
315 | detail: "Box::new(expr)", | 315 | detail: "Box::new(expr)", |
316 | }, | 316 | }, |
317 | CompletionItem { | 317 | CompletionItem { |
318 | label: "dbg", | 318 | label: "dbg", |
319 | source_range: [52; 52), | 319 | source_range: 52..52, |
320 | delete: [49; 52), | 320 | delete: 49..52, |
321 | insert: "dbg!(42)", | 321 | insert: "dbg!(42)", |
322 | detail: "dbg!(expr)", | 322 | detail: "dbg!(expr)", |
323 | }, | 323 | }, |
324 | CompletionItem { | 324 | CompletionItem { |
325 | label: "match", | 325 | label: "match", |
326 | source_range: [52; 52), | 326 | source_range: 52..52, |
327 | delete: [49; 52), | 327 | delete: 49..52, |
328 | insert: "match 42 {\n ${1:_} => {$0\\},\n}", | 328 | insert: "match 42 {\n ${1:_} => {$0\\},\n}", |
329 | detail: "match expr {}", | 329 | detail: "match expr {}", |
330 | }, | 330 | }, |
331 | CompletionItem { | 331 | CompletionItem { |
332 | label: "not", | 332 | label: "not", |
333 | source_range: [52; 52), | 333 | source_range: 52..52, |
334 | delete: [49; 52), | 334 | delete: 49..52, |
335 | insert: "!42", | 335 | insert: "!42", |
336 | detail: "!expr", | 336 | detail: "!expr", |
337 | }, | 337 | }, |
338 | CompletionItem { | 338 | CompletionItem { |
339 | label: "ref", | 339 | label: "ref", |
340 | source_range: [52; 52), | 340 | source_range: 52..52, |
341 | delete: [49; 52), | 341 | delete: 49..52, |
342 | insert: "&42", | 342 | insert: "&42", |
343 | detail: "&expr", | 343 | detail: "&expr", |
344 | }, | 344 | }, |
345 | CompletionItem { | 345 | CompletionItem { |
346 | label: "refm", | 346 | label: "refm", |
347 | source_range: [52; 52), | 347 | source_range: 52..52, |
348 | delete: [49; 52), | 348 | delete: 49..52, |
349 | insert: "&mut 42", | 349 | insert: "&mut 42", |
350 | detail: "&mut expr", | 350 | detail: "&mut expr", |
351 | }, | 351 | }, |
@@ -370,43 +370,43 @@ mod tests { | |||
370 | [ | 370 | [ |
371 | CompletionItem { | 371 | CompletionItem { |
372 | label: "box", | 372 | label: "box", |
373 | source_range: [149; 150), | 373 | source_range: 149..150, |
374 | delete: [145; 150), | 374 | delete: 145..150, |
375 | insert: "Box::new(bar)", | 375 | insert: "Box::new(bar)", |
376 | detail: "Box::new(expr)", | 376 | detail: "Box::new(expr)", |
377 | }, | 377 | }, |
378 | CompletionItem { | 378 | CompletionItem { |
379 | label: "dbg", | 379 | label: "dbg", |
380 | source_range: [149; 150), | 380 | source_range: 149..150, |
381 | delete: [145; 150), | 381 | delete: 145..150, |
382 | insert: "dbg!(bar)", | 382 | insert: "dbg!(bar)", |
383 | detail: "dbg!(expr)", | 383 | detail: "dbg!(expr)", |
384 | }, | 384 | }, |
385 | CompletionItem { | 385 | CompletionItem { |
386 | label: "match", | 386 | label: "match", |
387 | source_range: [149; 150), | 387 | source_range: 149..150, |
388 | delete: [145; 150), | 388 | delete: 145..150, |
389 | insert: "match bar {\n ${1:_} => {$0\\},\n}", | 389 | insert: "match bar {\n ${1:_} => {$0\\},\n}", |
390 | detail: "match expr {}", | 390 | detail: "match expr {}", |
391 | }, | 391 | }, |
392 | CompletionItem { | 392 | CompletionItem { |
393 | label: "not", | 393 | label: "not", |
394 | source_range: [149; 150), | 394 | source_range: 149..150, |
395 | delete: [145; 150), | 395 | delete: 145..150, |
396 | insert: "!bar", | 396 | insert: "!bar", |
397 | detail: "!expr", | 397 | detail: "!expr", |
398 | }, | 398 | }, |
399 | CompletionItem { | 399 | CompletionItem { |
400 | label: "ref", | 400 | label: "ref", |
401 | source_range: [149; 150), | 401 | source_range: 149..150, |
402 | delete: [145; 150), | 402 | delete: 145..150, |
403 | insert: "&bar", | 403 | insert: "&bar", |
404 | detail: "&expr", | 404 | detail: "&expr", |
405 | }, | 405 | }, |
406 | CompletionItem { | 406 | CompletionItem { |
407 | label: "refm", | 407 | label: "refm", |
408 | source_range: [149; 150), | 408 | source_range: 149..150, |
409 | delete: [145; 150), | 409 | delete: 145..150, |
410 | insert: "&mut bar", | 410 | insert: "&mut bar", |
411 | detail: "&mut expr", | 411 | detail: "&mut expr", |
412 | }, | 412 | }, |
@@ -429,43 +429,43 @@ mod tests { | |||
429 | [ | 429 | [ |
430 | CompletionItem { | 430 | CompletionItem { |
431 | label: "box", | 431 | label: "box", |
432 | source_range: [56; 56), | 432 | source_range: 56..56, |
433 | delete: [49; 56), | 433 | delete: 49..56, |
434 | insert: "Box::new(&&&&42)", | 434 | insert: "Box::new(&&&&42)", |
435 | detail: "Box::new(expr)", | 435 | detail: "Box::new(expr)", |
436 | }, | 436 | }, |
437 | CompletionItem { | 437 | CompletionItem { |
438 | label: "dbg", | 438 | label: "dbg", |
439 | source_range: [56; 56), | 439 | source_range: 56..56, |
440 | delete: [49; 56), | 440 | delete: 49..56, |
441 | insert: "dbg!(&&&&42)", | 441 | insert: "dbg!(&&&&42)", |
442 | detail: "dbg!(expr)", | 442 | detail: "dbg!(expr)", |
443 | }, | 443 | }, |
444 | CompletionItem { | 444 | CompletionItem { |
445 | label: "match", | 445 | label: "match", |
446 | source_range: [56; 56), | 446 | source_range: 56..56, |
447 | delete: [49; 56), | 447 | delete: 49..56, |
448 | insert: "match &&&&42 {\n ${1:_} => {$0\\},\n}", | 448 | insert: "match &&&&42 {\n ${1:_} => {$0\\},\n}", |
449 | detail: "match expr {}", | 449 | detail: "match expr {}", |
450 | }, | 450 | }, |
451 | CompletionItem { | 451 | CompletionItem { |
452 | label: "not", | 452 | label: "not", |
453 | source_range: [56; 56), | 453 | source_range: 56..56, |
454 | delete: [53; 56), | 454 | delete: 53..56, |
455 | insert: "!42", | 455 | insert: "!42", |
456 | detail: "!expr", | 456 | detail: "!expr", |
457 | }, | 457 | }, |
458 | CompletionItem { | 458 | CompletionItem { |
459 | label: "ref", | 459 | label: "ref", |
460 | source_range: [56; 56), | 460 | source_range: 56..56, |
461 | delete: [53; 56), | 461 | delete: 53..56, |
462 | insert: "&42", | 462 | insert: "&42", |
463 | detail: "&expr", | 463 | detail: "&expr", |
464 | }, | 464 | }, |
465 | CompletionItem { | 465 | CompletionItem { |
466 | label: "refm", | 466 | label: "refm", |
467 | source_range: [56; 56), | 467 | source_range: 56..56, |
468 | delete: [53; 56), | 468 | delete: 53..56, |
469 | insert: "&mut 42", | 469 | insert: "&mut 42", |
470 | detail: "&mut expr", | 470 | detail: "&mut expr", |
471 | }, | 471 | }, |
diff --git a/crates/ra_ide/src/completion/complete_qualified_path.rs b/crates/ra_ide/src/completion/complete_qualified_path.rs index d98523406..dd10f74e6 100644 --- a/crates/ra_ide/src/completion/complete_qualified_path.rs +++ b/crates/ra_ide/src/completion/complete_qualified_path.rs | |||
@@ -57,9 +57,7 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
57 | } | 57 | } |
58 | match item { | 58 | match item { |
59 | hir::AssocItem::Function(func) => { | 59 | hir::AssocItem::Function(func) => { |
60 | if !func.has_self_param(ctx.db) { | 60 | acc.add_function(ctx, func, None); |
61 | acc.add_function(ctx, func, None); | ||
62 | } | ||
63 | } | 61 | } |
64 | hir::AssocItem::Const(ct) => acc.add_const(ctx, ct), | 62 | hir::AssocItem::Const(ct) => acc.add_const(ctx, ct), |
65 | hir::AssocItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), | 63 | hir::AssocItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), |
@@ -86,9 +84,7 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
86 | } | 84 | } |
87 | match item { | 85 | match item { |
88 | hir::AssocItem::Function(func) => { | 86 | hir::AssocItem::Function(func) => { |
89 | if !func.has_self_param(ctx.db) { | 87 | acc.add_function(ctx, func, None); |
90 | acc.add_function(ctx, func, None); | ||
91 | } | ||
92 | } | 88 | } |
93 | hir::AssocItem::Const(ct) => acc.add_const(ctx, ct), | 89 | hir::AssocItem::Const(ct) => acc.add_const(ctx, ct), |
94 | hir::AssocItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), | 90 | hir::AssocItem::TypeAlias(ty) => acc.add_type_alias(ctx, ty), |
@@ -166,8 +162,8 @@ mod tests { | |||
166 | [ | 162 | [ |
167 | CompletionItem { | 163 | CompletionItem { |
168 | label: "my", | 164 | label: "my", |
169 | source_range: [27; 29), | 165 | source_range: 27..29, |
170 | delete: [27; 29), | 166 | delete: 27..29, |
171 | insert: "my", | 167 | insert: "my", |
172 | kind: Module, | 168 | kind: Module, |
173 | documentation: Documentation( | 169 | documentation: Documentation( |
@@ -197,15 +193,15 @@ mod tests { | |||
197 | [ | 193 | [ |
198 | CompletionItem { | 194 | CompletionItem { |
199 | label: "Foo", | 195 | label: "Foo", |
200 | source_range: [31; 31), | 196 | source_range: 31..31, |
201 | delete: [31; 31), | 197 | delete: 31..31, |
202 | insert: "Foo", | 198 | insert: "Foo", |
203 | kind: Struct, | 199 | kind: Struct, |
204 | }, | 200 | }, |
205 | CompletionItem { | 201 | CompletionItem { |
206 | label: "PublicBar", | 202 | label: "PublicBar", |
207 | source_range: [31; 31), | 203 | source_range: 31..31, |
208 | delete: [31; 31), | 204 | delete: 31..31, |
209 | insert: "PublicBar", | 205 | insert: "PublicBar", |
210 | kind: Struct, | 206 | kind: Struct, |
211 | }, | 207 | }, |
@@ -230,8 +226,8 @@ mod tests { | |||
230 | [ | 226 | [ |
231 | CompletionItem { | 227 | CompletionItem { |
232 | label: "Bar", | 228 | label: "Bar", |
233 | source_range: [30; 30), | 229 | source_range: 30..30, |
234 | delete: [30; 30), | 230 | delete: 30..30, |
235 | insert: "Bar", | 231 | insert: "Bar", |
236 | kind: Struct, | 232 | kind: Struct, |
237 | }, | 233 | }, |
@@ -256,15 +252,15 @@ mod tests { | |||
256 | [ | 252 | [ |
257 | CompletionItem { | 253 | CompletionItem { |
258 | label: "Spam", | 254 | label: "Spam", |
259 | source_range: [11; 13), | 255 | source_range: 11..13, |
260 | delete: [11; 13), | 256 | delete: 11..13, |
261 | insert: "Spam", | 257 | insert: "Spam", |
262 | kind: Struct, | 258 | kind: Struct, |
263 | }, | 259 | }, |
264 | CompletionItem { | 260 | CompletionItem { |
265 | label: "foo", | 261 | label: "foo", |
266 | source_range: [11; 13), | 262 | source_range: 11..13, |
267 | delete: [11; 13), | 263 | delete: 11..13, |
268 | insert: "foo", | 264 | insert: "foo", |
269 | kind: Module, | 265 | kind: Module, |
270 | }, | 266 | }, |
@@ -289,15 +285,15 @@ mod tests { | |||
289 | [ | 285 | [ |
290 | CompletionItem { | 286 | CompletionItem { |
291 | label: "Spam", | 287 | label: "Spam", |
292 | source_range: [12; 14), | 288 | source_range: 12..14, |
293 | delete: [12; 14), | 289 | delete: 12..14, |
294 | insert: "Spam", | 290 | insert: "Spam", |
295 | kind: Struct, | 291 | kind: Struct, |
296 | }, | 292 | }, |
297 | CompletionItem { | 293 | CompletionItem { |
298 | label: "foo", | 294 | label: "foo", |
299 | source_range: [12; 14), | 295 | source_range: 12..14, |
300 | delete: [12; 14), | 296 | delete: 12..14, |
301 | insert: "foo", | 297 | insert: "foo", |
302 | kind: Module, | 298 | kind: Module, |
303 | }, | 299 | }, |
@@ -326,8 +322,8 @@ mod tests { | |||
326 | [ | 322 | [ |
327 | CompletionItem { | 323 | CompletionItem { |
328 | label: "Spam", | 324 | label: "Spam", |
329 | source_range: [23; 25), | 325 | source_range: 23..25, |
330 | delete: [23; 25), | 326 | delete: 23..25, |
331 | insert: "Spam", | 327 | insert: "Spam", |
332 | kind: Struct, | 328 | kind: Struct, |
333 | }, | 329 | }, |
@@ -356,8 +352,8 @@ mod tests { | |||
356 | [ | 352 | [ |
357 | CompletionItem { | 353 | CompletionItem { |
358 | label: "Bar(…)", | 354 | label: "Bar(…)", |
359 | source_range: [116; 116), | 355 | source_range: 116..116, |
360 | delete: [116; 116), | 356 | delete: 116..116, |
361 | insert: "Bar($0)", | 357 | insert: "Bar($0)", |
362 | kind: EnumVariant, | 358 | kind: EnumVariant, |
363 | lookup: "Bar", | 359 | lookup: "Bar", |
@@ -369,8 +365,8 @@ mod tests { | |||
369 | }, | 365 | }, |
370 | CompletionItem { | 366 | CompletionItem { |
371 | label: "Foo", | 367 | label: "Foo", |
372 | source_range: [116; 116), | 368 | source_range: 116..116, |
373 | delete: [116; 116), | 369 | delete: 116..116, |
374 | insert: "Foo", | 370 | insert: "Foo", |
375 | kind: EnumVariant, | 371 | kind: EnumVariant, |
376 | detail: "()", | 372 | detail: "()", |
@@ -406,8 +402,8 @@ mod tests { | |||
406 | [ | 402 | [ |
407 | CompletionItem { | 403 | CompletionItem { |
408 | label: "Bar(…)", | 404 | label: "Bar(…)", |
409 | source_range: [180; 180), | 405 | source_range: 180..180, |
410 | delete: [180; 180), | 406 | delete: 180..180, |
411 | insert: "Bar($0)", | 407 | insert: "Bar($0)", |
412 | kind: EnumVariant, | 408 | kind: EnumVariant, |
413 | lookup: "Bar", | 409 | lookup: "Bar", |
@@ -419,8 +415,8 @@ mod tests { | |||
419 | }, | 415 | }, |
420 | CompletionItem { | 416 | CompletionItem { |
421 | label: "Foo", | 417 | label: "Foo", |
422 | source_range: [180; 180), | 418 | source_range: 180..180, |
423 | delete: [180; 180), | 419 | delete: 180..180, |
424 | insert: "Foo", | 420 | insert: "Foo", |
425 | kind: EnumVariant, | 421 | kind: EnumVariant, |
426 | detail: "()", | 422 | detail: "()", |
@@ -430,8 +426,8 @@ mod tests { | |||
430 | }, | 426 | }, |
431 | CompletionItem { | 427 | CompletionItem { |
432 | label: "S(…)", | 428 | label: "S(…)", |
433 | source_range: [180; 180), | 429 | source_range: 180..180, |
434 | delete: [180; 180), | 430 | delete: 180..180, |
435 | insert: "S($0)", | 431 | insert: "S($0)", |
436 | kind: EnumVariant, | 432 | kind: EnumVariant, |
437 | lookup: "S", | 433 | lookup: "S", |
@@ -467,8 +463,8 @@ mod tests { | |||
467 | [ | 463 | [ |
468 | CompletionItem { | 464 | CompletionItem { |
469 | label: "m()", | 465 | label: "m()", |
470 | source_range: [100; 100), | 466 | source_range: 100..100, |
471 | delete: [100; 100), | 467 | delete: 100..100, |
472 | insert: "m()$0", | 468 | insert: "m()$0", |
473 | kind: Function, | 469 | kind: Function, |
474 | lookup: "m", | 470 | lookup: "m", |
@@ -483,6 +479,42 @@ mod tests { | |||
483 | } | 479 | } |
484 | 480 | ||
485 | #[test] | 481 | #[test] |
482 | fn completes_struct_associated_method_with_self() { | ||
483 | assert_debug_snapshot!( | ||
484 | do_reference_completion( | ||
485 | " | ||
486 | //- /lib.rs | ||
487 | /// A Struct | ||
488 | struct S; | ||
489 | |||
490 | impl S { | ||
491 | /// An associated method | ||
492 | fn m(&self) { } | ||
493 | } | ||
494 | |||
495 | fn foo() { let _ = S::<|> } | ||
496 | " | ||
497 | ), | ||
498 | @r###" | ||
499 | [ | ||
500 | CompletionItem { | ||
501 | label: "m()", | ||
502 | source_range: 105..105, | ||
503 | delete: 105..105, | ||
504 | insert: "m()$0", | ||
505 | kind: Method, | ||
506 | lookup: "m", | ||
507 | detail: "fn m(&self)", | ||
508 | documentation: Documentation( | ||
509 | "An associated method", | ||
510 | ), | ||
511 | }, | ||
512 | ] | ||
513 | "### | ||
514 | ); | ||
515 | } | ||
516 | |||
517 | #[test] | ||
486 | fn completes_struct_associated_const() { | 518 | fn completes_struct_associated_const() { |
487 | assert_debug_snapshot!( | 519 | assert_debug_snapshot!( |
488 | do_reference_completion( | 520 | do_reference_completion( |
@@ -503,8 +535,8 @@ mod tests { | |||
503 | [ | 535 | [ |
504 | CompletionItem { | 536 | CompletionItem { |
505 | label: "C", | 537 | label: "C", |
506 | source_range: [107; 107), | 538 | source_range: 107..107, |
507 | delete: [107; 107), | 539 | delete: 107..107, |
508 | insert: "C", | 540 | insert: "C", |
509 | kind: Const, | 541 | kind: Const, |
510 | detail: "const C: i32 = 42;", | 542 | detail: "const C: i32 = 42;", |
@@ -538,8 +570,8 @@ mod tests { | |||
538 | [ | 570 | [ |
539 | CompletionItem { | 571 | CompletionItem { |
540 | label: "T", | 572 | label: "T", |
541 | source_range: [101; 101), | 573 | source_range: 101..101, |
542 | delete: [101; 101), | 574 | delete: 101..101, |
543 | insert: "T", | 575 | insert: "T", |
544 | kind: TypeAlias, | 576 | kind: TypeAlias, |
545 | detail: "type T = i32;", | 577 | detail: "type T = i32;", |
@@ -578,24 +610,24 @@ mod tests { | |||
578 | [ | 610 | [ |
579 | CompletionItem { | 611 | CompletionItem { |
580 | label: "PUBLIC_CONST", | 612 | label: "PUBLIC_CONST", |
581 | source_range: [302; 302), | 613 | source_range: 302..302, |
582 | delete: [302; 302), | 614 | delete: 302..302, |
583 | insert: "PUBLIC_CONST", | 615 | insert: "PUBLIC_CONST", |
584 | kind: Const, | 616 | kind: Const, |
585 | detail: "pub(super) const PUBLIC_CONST: u32 = 1;", | 617 | detail: "pub(super) const PUBLIC_CONST: u32 = 1;", |
586 | }, | 618 | }, |
587 | CompletionItem { | 619 | CompletionItem { |
588 | label: "PublicType", | 620 | label: "PublicType", |
589 | source_range: [302; 302), | 621 | source_range: 302..302, |
590 | delete: [302; 302), | 622 | delete: 302..302, |
591 | insert: "PublicType", | 623 | insert: "PublicType", |
592 | kind: TypeAlias, | 624 | kind: TypeAlias, |
593 | detail: "pub(super) type PublicType = u32;", | 625 | detail: "pub(super) type PublicType = u32;", |
594 | }, | 626 | }, |
595 | CompletionItem { | 627 | CompletionItem { |
596 | label: "public_method()", | 628 | label: "public_method()", |
597 | source_range: [302; 302), | 629 | source_range: 302..302, |
598 | delete: [302; 302), | 630 | delete: 302..302, |
599 | insert: "public_method()$0", | 631 | insert: "public_method()$0", |
600 | kind: Function, | 632 | kind: Function, |
601 | lookup: "public_method", | 633 | lookup: "public_method", |
@@ -627,8 +659,8 @@ mod tests { | |||
627 | [ | 659 | [ |
628 | CompletionItem { | 660 | CompletionItem { |
629 | label: "m()", | 661 | label: "m()", |
630 | source_range: [100; 100), | 662 | source_range: 100..100, |
631 | delete: [100; 100), | 663 | delete: 100..100, |
632 | insert: "m()$0", | 664 | insert: "m()$0", |
633 | kind: Function, | 665 | kind: Function, |
634 | lookup: "m", | 666 | lookup: "m", |
@@ -663,8 +695,8 @@ mod tests { | |||
663 | [ | 695 | [ |
664 | CompletionItem { | 696 | CompletionItem { |
665 | label: "m()", | 697 | label: "m()", |
666 | source_range: [101; 101), | 698 | source_range: 101..101, |
667 | delete: [101; 101), | 699 | delete: 101..101, |
668 | insert: "m()$0", | 700 | insert: "m()$0", |
669 | kind: Function, | 701 | kind: Function, |
670 | lookup: "m", | 702 | lookup: "m", |
@@ -696,8 +728,8 @@ mod tests { | |||
696 | [ | 728 | [ |
697 | CompletionItem { | 729 | CompletionItem { |
698 | label: "bar", | 730 | label: "bar", |
699 | source_range: [9; 9), | 731 | source_range: 9..9, |
700 | delete: [9; 9), | 732 | delete: 9..9, |
701 | insert: "bar", | 733 | insert: "bar", |
702 | kind: Module, | 734 | kind: Module, |
703 | }, | 735 | }, |
@@ -724,8 +756,8 @@ mod tests { | |||
724 | [ | 756 | [ |
725 | CompletionItem { | 757 | CompletionItem { |
726 | label: "m()", | 758 | label: "m()", |
727 | source_range: [73; 73), | 759 | source_range: 73..73, |
728 | delete: [73; 73), | 760 | delete: 73..73, |
729 | insert: "m()$0", | 761 | insert: "m()$0", |
730 | kind: Function, | 762 | kind: Function, |
731 | lookup: "m", | 763 | lookup: "m", |
@@ -760,8 +792,8 @@ mod tests { | |||
760 | [ | 792 | [ |
761 | CompletionItem { | 793 | CompletionItem { |
762 | label: "m()", | 794 | label: "m()", |
763 | source_range: [99; 99), | 795 | source_range: 99..99, |
764 | delete: [99; 99), | 796 | delete: 99..99, |
765 | insert: "m()$0", | 797 | insert: "m()$0", |
766 | kind: Function, | 798 | kind: Function, |
767 | lookup: "m", | 799 | lookup: "m", |
@@ -796,8 +828,8 @@ mod tests { | |||
796 | [ | 828 | [ |
797 | CompletionItem { | 829 | CompletionItem { |
798 | label: "m()", | 830 | label: "m()", |
799 | source_range: [110; 110), | 831 | source_range: 110..110, |
800 | delete: [110; 110), | 832 | delete: 110..110, |
801 | insert: "m()$0", | 833 | insert: "m()$0", |
802 | kind: Function, | 834 | kind: Function, |
803 | lookup: "m", | 835 | lookup: "m", |
@@ -830,8 +862,8 @@ mod tests { | |||
830 | [ | 862 | [ |
831 | CompletionItem { | 863 | CompletionItem { |
832 | label: "bar()", | 864 | label: "bar()", |
833 | source_range: [185; 185), | 865 | source_range: 185..185, |
834 | delete: [185; 185), | 866 | delete: 185..185, |
835 | insert: "bar()$0", | 867 | insert: "bar()$0", |
836 | kind: Function, | 868 | kind: Function, |
837 | lookup: "bar", | 869 | lookup: "bar", |
@@ -839,8 +871,8 @@ mod tests { | |||
839 | }, | 871 | }, |
840 | CompletionItem { | 872 | CompletionItem { |
841 | label: "foo()", | 873 | label: "foo()", |
842 | source_range: [185; 185), | 874 | source_range: 185..185, |
843 | delete: [185; 185), | 875 | delete: 185..185, |
844 | insert: "foo()$0", | 876 | insert: "foo()$0", |
845 | kind: Function, | 877 | kind: Function, |
846 | lookup: "foo", | 878 | lookup: "foo", |
@@ -869,17 +901,17 @@ mod tests { | |||
869 | @r###" | 901 | @r###" |
870 | [ | 902 | [ |
871 | CompletionItem { | 903 | CompletionItem { |
872 | label: "foo!", | 904 | label: "foo!(…)", |
873 | source_range: [179; 179), | 905 | source_range: 179..179, |
874 | delete: [179; 179), | 906 | delete: 179..179, |
875 | insert: "foo!($0)", | 907 | insert: "foo!($0)", |
876 | kind: Macro, | 908 | kind: Macro, |
877 | detail: "#[macro_export]\nmacro_rules! foo", | 909 | detail: "#[macro_export]\nmacro_rules! foo", |
878 | }, | 910 | }, |
879 | CompletionItem { | 911 | CompletionItem { |
880 | label: "main()", | 912 | label: "main()", |
881 | source_range: [179; 179), | 913 | source_range: 179..179, |
882 | delete: [179; 179), | 914 | delete: 179..179, |
883 | insert: "main()$0", | 915 | insert: "main()$0", |
884 | kind: Function, | 916 | kind: Function, |
885 | lookup: "main", | 917 | lookup: "main", |
@@ -915,22 +947,22 @@ mod tests { | |||
915 | [ | 947 | [ |
916 | CompletionItem { | 948 | CompletionItem { |
917 | label: "RIGHT_CONST", | 949 | label: "RIGHT_CONST", |
918 | source_range: [57; 57), | 950 | source_range: 57..57, |
919 | delete: [57; 57), | 951 | delete: 57..57, |
920 | insert: "RIGHT_CONST", | 952 | insert: "RIGHT_CONST", |
921 | kind: Const, | 953 | kind: Const, |
922 | }, | 954 | }, |
923 | CompletionItem { | 955 | CompletionItem { |
924 | label: "RightType", | 956 | label: "RightType", |
925 | source_range: [57; 57), | 957 | source_range: 57..57, |
926 | delete: [57; 57), | 958 | delete: 57..57, |
927 | insert: "RightType", | 959 | insert: "RightType", |
928 | kind: Struct, | 960 | kind: Struct, |
929 | }, | 961 | }, |
930 | CompletionItem { | 962 | CompletionItem { |
931 | label: "right_fn()", | 963 | label: "right_fn()", |
932 | source_range: [57; 57), | 964 | source_range: 57..57, |
933 | delete: [57; 57), | 965 | delete: 57..57, |
934 | insert: "right_fn()$0", | 966 | insert: "right_fn()$0", |
935 | kind: Function, | 967 | kind: Function, |
936 | lookup: "right_fn", | 968 | lookup: "right_fn", |
@@ -954,8 +986,8 @@ mod tests { | |||
954 | [ | 986 | [ |
955 | CompletionItem { | 987 | CompletionItem { |
956 | label: "foo()", | 988 | label: "foo()", |
957 | source_range: [93; 94), | 989 | source_range: 93..94, |
958 | delete: [93; 94), | 990 | delete: 93..94, |
959 | insert: "foo()$0", | 991 | insert: "foo()$0", |
960 | kind: Function, | 992 | kind: Function, |
961 | lookup: "foo", | 993 | lookup: "foo", |
@@ -963,8 +995,8 @@ mod tests { | |||
963 | }, | 995 | }, |
964 | CompletionItem { | 996 | CompletionItem { |
965 | label: "main()", | 997 | label: "main()", |
966 | source_range: [93; 94), | 998 | source_range: 93..94, |
967 | delete: [93; 94), | 999 | delete: 93..94, |
968 | insert: "main()$0", | 1000 | insert: "main()$0", |
969 | kind: Function, | 1001 | kind: Function, |
970 | lookup: "main", | 1002 | lookup: "main", |
@@ -993,15 +1025,15 @@ mod tests { | |||
993 | [ | 1025 | [ |
994 | CompletionItem { | 1026 | CompletionItem { |
995 | label: "z", | 1027 | label: "z", |
996 | source_range: [57; 57), | 1028 | source_range: 57..57, |
997 | delete: [57; 57), | 1029 | delete: 57..57, |
998 | insert: "z", | 1030 | insert: "z", |
999 | kind: Module, | 1031 | kind: Module, |
1000 | }, | 1032 | }, |
1001 | CompletionItem { | 1033 | CompletionItem { |
1002 | label: "z()", | 1034 | label: "z()", |
1003 | source_range: [57; 57), | 1035 | source_range: 57..57, |
1004 | delete: [57; 57), | 1036 | delete: 57..57, |
1005 | insert: "z()$0", | 1037 | insert: "z()$0", |
1006 | kind: Function, | 1038 | kind: Function, |
1007 | lookup: "z", | 1039 | lookup: "z", |
@@ -1032,8 +1064,8 @@ mod tests { | |||
1032 | [ | 1064 | [ |
1033 | CompletionItem { | 1065 | CompletionItem { |
1034 | label: "new()", | 1066 | label: "new()", |
1035 | source_range: [292; 292), | 1067 | source_range: 292..292, |
1036 | delete: [292; 292), | 1068 | delete: 292..292, |
1037 | insert: "new()$0", | 1069 | insert: "new()$0", |
1038 | kind: Function, | 1070 | kind: Function, |
1039 | lookup: "new", | 1071 | lookup: "new", |
diff --git a/crates/ra_ide/src/completion/complete_record.rs b/crates/ra_ide/src/completion/complete_record.rs index 83a553155..b7ab654c5 100644 --- a/crates/ra_ide/src/completion/complete_record.rs +++ b/crates/ra_ide/src/completion/complete_record.rs | |||
@@ -44,8 +44,8 @@ mod tests { | |||
44 | [ | 44 | [ |
45 | CompletionItem { | 45 | CompletionItem { |
46 | label: "foo", | 46 | label: "foo", |
47 | source_range: [117; 118), | 47 | source_range: 117..118, |
48 | delete: [117; 118), | 48 | delete: 117..118, |
49 | insert: "foo", | 49 | insert: "foo", |
50 | kind: Field, | 50 | kind: Field, |
51 | detail: "u32", | 51 | detail: "u32", |
@@ -73,16 +73,16 @@ mod tests { | |||
73 | [ | 73 | [ |
74 | CompletionItem { | 74 | CompletionItem { |
75 | label: "bar", | 75 | label: "bar", |
76 | source_range: [161; 161), | 76 | source_range: 161..161, |
77 | delete: [161; 161), | 77 | delete: 161..161, |
78 | insert: "bar", | 78 | insert: "bar", |
79 | kind: Field, | 79 | kind: Field, |
80 | detail: "()", | 80 | detail: "()", |
81 | }, | 81 | }, |
82 | CompletionItem { | 82 | CompletionItem { |
83 | label: "foo", | 83 | label: "foo", |
84 | source_range: [161; 161), | 84 | source_range: 161..161, |
85 | delete: [161; 161), | 85 | delete: 161..161, |
86 | insert: "foo", | 86 | insert: "foo", |
87 | kind: Field, | 87 | kind: Field, |
88 | detail: "u32", | 88 | detail: "u32", |
@@ -109,8 +109,8 @@ mod tests { | |||
109 | [ | 109 | [ |
110 | CompletionItem { | 110 | CompletionItem { |
111 | label: "foo", | 111 | label: "foo", |
112 | source_range: [171; 172), | 112 | source_range: 171..172, |
113 | delete: [171; 172), | 113 | delete: 171..172, |
114 | insert: "foo", | 114 | insert: "foo", |
115 | kind: Field, | 115 | kind: Field, |
116 | detail: "u32", | 116 | detail: "u32", |
@@ -145,16 +145,16 @@ mod tests { | |||
145 | [ | 145 | [ |
146 | CompletionItem { | 146 | CompletionItem { |
147 | label: "bar", | 147 | label: "bar", |
148 | source_range: [372; 372), | 148 | source_range: 372..372, |
149 | delete: [372; 372), | 149 | delete: 372..372, |
150 | insert: "bar", | 150 | insert: "bar", |
151 | kind: Field, | 151 | kind: Field, |
152 | detail: "u32", | 152 | detail: "u32", |
153 | }, | 153 | }, |
154 | CompletionItem { | 154 | CompletionItem { |
155 | label: "baz", | 155 | label: "baz", |
156 | source_range: [372; 372), | 156 | source_range: 372..372, |
157 | delete: [372; 372), | 157 | delete: 372..372, |
158 | insert: "baz", | 158 | insert: "baz", |
159 | kind: Field, | 159 | kind: Field, |
160 | detail: "u32", | 160 | detail: "u32", |
@@ -190,8 +190,8 @@ mod tests { | |||
190 | [ | 190 | [ |
191 | CompletionItem { | 191 | CompletionItem { |
192 | label: "the_field", | 192 | label: "the_field", |
193 | source_range: [142; 145), | 193 | source_range: 142..145, |
194 | delete: [142; 145), | 194 | delete: 142..145, |
195 | insert: "the_field", | 195 | insert: "the_field", |
196 | kind: Field, | 196 | kind: Field, |
197 | detail: "u32", | 197 | detail: "u32", |
@@ -215,8 +215,8 @@ mod tests { | |||
215 | [ | 215 | [ |
216 | CompletionItem { | 216 | CompletionItem { |
217 | label: "the_field", | 217 | label: "the_field", |
218 | source_range: [83; 86), | 218 | source_range: 83..86, |
219 | delete: [83; 86), | 219 | delete: 83..86, |
220 | insert: "the_field", | 220 | insert: "the_field", |
221 | kind: Field, | 221 | kind: Field, |
222 | detail: "u32", | 222 | detail: "u32", |
@@ -241,8 +241,8 @@ mod tests { | |||
241 | [ | 241 | [ |
242 | CompletionItem { | 242 | CompletionItem { |
243 | label: "a", | 243 | label: "a", |
244 | source_range: [119; 119), | 244 | source_range: 119..119, |
245 | delete: [119; 119), | 245 | delete: 119..119, |
246 | insert: "a", | 246 | insert: "a", |
247 | kind: Field, | 247 | kind: Field, |
248 | detail: "u32", | 248 | detail: "u32", |
@@ -267,8 +267,8 @@ mod tests { | |||
267 | [ | 267 | [ |
268 | CompletionItem { | 268 | CompletionItem { |
269 | label: "b", | 269 | label: "b", |
270 | source_range: [119; 119), | 270 | source_range: 119..119, |
271 | delete: [119; 119), | 271 | delete: 119..119, |
272 | insert: "b", | 272 | insert: "b", |
273 | kind: Field, | 273 | kind: Field, |
274 | detail: "u32", | 274 | detail: "u32", |
@@ -292,8 +292,8 @@ mod tests { | |||
292 | [ | 292 | [ |
293 | CompletionItem { | 293 | CompletionItem { |
294 | label: "a", | 294 | label: "a", |
295 | source_range: [93; 93), | 295 | source_range: 93..93, |
296 | delete: [93; 93), | 296 | delete: 93..93, |
297 | insert: "a", | 297 | insert: "a", |
298 | kind: Field, | 298 | kind: Field, |
299 | detail: "u32", | 299 | detail: "u32", |
@@ -317,8 +317,8 @@ mod tests { | |||
317 | [ | 317 | [ |
318 | CompletionItem { | 318 | CompletionItem { |
319 | label: "the_field", | 319 | label: "the_field", |
320 | source_range: [137; 140), | 320 | source_range: 137..140, |
321 | delete: [137; 140), | 321 | delete: 137..140, |
322 | insert: "the_field", | 322 | insert: "the_field", |
323 | kind: Field, | 323 | kind: Field, |
324 | detail: "u32", | 324 | detail: "u32", |
@@ -352,16 +352,16 @@ mod tests { | |||
352 | [ | 352 | [ |
353 | CompletionItem { | 353 | CompletionItem { |
354 | label: "bar", | 354 | label: "bar", |
355 | source_range: [302; 302), | 355 | source_range: 302..302, |
356 | delete: [302; 302), | 356 | delete: 302..302, |
357 | insert: "bar", | 357 | insert: "bar", |
358 | kind: Field, | 358 | kind: Field, |
359 | detail: "u32", | 359 | detail: "u32", |
360 | }, | 360 | }, |
361 | CompletionItem { | 361 | CompletionItem { |
362 | label: "baz", | 362 | label: "baz", |
363 | source_range: [302; 302), | 363 | source_range: 302..302, |
364 | delete: [302; 302), | 364 | delete: 302..302, |
365 | insert: "baz", | 365 | insert: "baz", |
366 | kind: Field, | 366 | kind: Field, |
367 | detail: "u32", | 367 | detail: "u32", |
@@ -393,8 +393,8 @@ mod tests { | |||
393 | [ | 393 | [ |
394 | CompletionItem { | 394 | CompletionItem { |
395 | label: "foo2", | 395 | label: "foo2", |
396 | source_range: [221; 221), | 396 | source_range: 221..221, |
397 | delete: [221; 221), | 397 | delete: 221..221, |
398 | insert: "foo2", | 398 | insert: "foo2", |
399 | kind: Field, | 399 | kind: Field, |
400 | detail: "u32", | 400 | detail: "u32", |
diff --git a/crates/ra_ide/src/completion/complete_snippet.rs b/crates/ra_ide/src/completion/complete_snippet.rs index 4bccfbfed..a3f5d1b6a 100644 --- a/crates/ra_ide/src/completion/complete_snippet.rs +++ b/crates/ra_ide/src/completion/complete_snippet.rs | |||
@@ -67,15 +67,15 @@ mod tests { | |||
67 | [ | 67 | [ |
68 | CompletionItem { | 68 | CompletionItem { |
69 | label: "pd", | 69 | label: "pd", |
70 | source_range: [17; 17), | 70 | source_range: 17..17, |
71 | delete: [17; 17), | 71 | delete: 17..17, |
72 | insert: "eprintln!(\"$0 = {:?}\", $0);", | 72 | insert: "eprintln!(\"$0 = {:?}\", $0);", |
73 | kind: Snippet, | 73 | kind: Snippet, |
74 | }, | 74 | }, |
75 | CompletionItem { | 75 | CompletionItem { |
76 | label: "ppd", | 76 | label: "ppd", |
77 | source_range: [17; 17), | 77 | source_range: 17..17, |
78 | delete: [17; 17), | 78 | delete: 17..17, |
79 | insert: "eprintln!(\"$0 = {:#?}\", $0);", | 79 | insert: "eprintln!(\"$0 = {:#?}\", $0);", |
80 | kind: Snippet, | 80 | kind: Snippet, |
81 | }, | 81 | }, |
@@ -111,23 +111,23 @@ mod tests { | |||
111 | [ | 111 | [ |
112 | CompletionItem { | 112 | CompletionItem { |
113 | label: "Test function", | 113 | label: "Test function", |
114 | source_range: [78; 78), | 114 | source_range: 78..78, |
115 | delete: [78; 78), | 115 | delete: 78..78, |
116 | insert: "#[test]\nfn ${1:feature}() {\n $0\n}", | 116 | insert: "#[test]\nfn ${1:feature}() {\n $0\n}", |
117 | kind: Snippet, | 117 | kind: Snippet, |
118 | lookup: "tfn", | 118 | lookup: "tfn", |
119 | }, | 119 | }, |
120 | CompletionItem { | 120 | CompletionItem { |
121 | label: "macro_rules", | 121 | label: "macro_rules", |
122 | source_range: [78; 78), | 122 | source_range: 78..78, |
123 | delete: [78; 78), | 123 | delete: 78..78, |
124 | insert: "macro_rules! $1 {\n\t($2) => {\n\t\t$0\n\t};\n}", | 124 | insert: "macro_rules! $1 {\n\t($2) => {\n\t\t$0\n\t};\n}", |
125 | kind: Snippet, | 125 | kind: Snippet, |
126 | }, | 126 | }, |
127 | CompletionItem { | 127 | CompletionItem { |
128 | label: "pub(crate)", | 128 | label: "pub(crate)", |
129 | source_range: [78; 78), | 129 | source_range: 78..78, |
130 | delete: [78; 78), | 130 | delete: 78..78, |
131 | insert: "pub(crate) $0", | 131 | insert: "pub(crate) $0", |
132 | kind: Snippet, | 132 | kind: Snippet, |
133 | }, | 133 | }, |
diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs index c39943252..ee32d1ff6 100644 --- a/crates/ra_ide/src/completion/complete_trait_impl.rs +++ b/crates/ra_ide/src/completion/complete_trait_impl.rs | |||
@@ -141,7 +141,7 @@ fn add_function_impl( | |||
141 | } else { | 141 | } else { |
142 | CompletionItemKind::Function | 142 | CompletionItemKind::Function |
143 | }; | 143 | }; |
144 | let range = TextRange::from_to(fn_def_node.text_range().start(), ctx.source_range().end()); | 144 | let range = TextRange::new(fn_def_node.text_range().start(), ctx.source_range().end()); |
145 | 145 | ||
146 | match ctx.config.snippet_cap { | 146 | match ctx.config.snippet_cap { |
147 | Some(cap) => { | 147 | Some(cap) => { |
@@ -167,7 +167,7 @@ fn add_type_alias_impl( | |||
167 | 167 | ||
168 | let snippet = format!("type {} = ", alias_name); | 168 | let snippet = format!("type {} = ", alias_name); |
169 | 169 | ||
170 | let range = TextRange::from_to(type_def_node.text_range().start(), ctx.source_range().end()); | 170 | let range = TextRange::new(type_def_node.text_range().start(), ctx.source_range().end()); |
171 | 171 | ||
172 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone()) | 172 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone()) |
173 | .text_edit(TextEdit::replace(range, snippet)) | 173 | .text_edit(TextEdit::replace(range, snippet)) |
@@ -188,8 +188,7 @@ fn add_const_impl( | |||
188 | if let Some(const_name) = const_name { | 188 | if let Some(const_name) = const_name { |
189 | let snippet = make_const_compl_syntax(&const_.source(ctx.db).value); | 189 | let snippet = make_const_compl_syntax(&const_.source(ctx.db).value); |
190 | 190 | ||
191 | let range = | 191 | let range = TextRange::new(const_def_node.text_range().start(), ctx.source_range().end()); |
192 | TextRange::from_to(const_def_node.text_range().start(), ctx.source_range().end()); | ||
193 | 192 | ||
194 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone()) | 193 | CompletionItem::new(CompletionKind::Magic, ctx.source_range(), snippet.clone()) |
195 | .text_edit(TextEdit::replace(range, snippet)) | 194 | .text_edit(TextEdit::replace(range, snippet)) |
@@ -216,7 +215,7 @@ fn make_const_compl_syntax(const_: &ast::ConstDef) -> String { | |||
216 | .map_or(const_end, |f| f.text_range().start()); | 215 | .map_or(const_end, |f| f.text_range().start()); |
217 | 216 | ||
218 | let len = end - start; | 217 | let len = end - start; |
219 | let range = TextRange::from_to(0.into(), len); | 218 | let range = TextRange::new(0.into(), len); |
220 | 219 | ||
221 | let syntax = const_.syntax().text().slice(range).to_string(); | 220 | let syntax = const_.syntax().text().slice(range).to_string(); |
222 | 221 | ||
@@ -254,24 +253,24 @@ mod tests { | |||
254 | [ | 253 | [ |
255 | CompletionItem { | 254 | CompletionItem { |
256 | label: "const TEST_CONST: u16 = ", | 255 | label: "const TEST_CONST: u16 = ", |
257 | source_range: [209; 210), | 256 | source_range: 209..210, |
258 | delete: [209; 210), | 257 | delete: 209..210, |
259 | insert: "const TEST_CONST: u16 = ", | 258 | insert: "const TEST_CONST: u16 = ", |
260 | kind: Const, | 259 | kind: Const, |
261 | lookup: "TEST_CONST", | 260 | lookup: "TEST_CONST", |
262 | }, | 261 | }, |
263 | CompletionItem { | 262 | CompletionItem { |
264 | label: "fn test()", | 263 | label: "fn test()", |
265 | source_range: [209; 210), | 264 | source_range: 209..210, |
266 | delete: [209; 210), | 265 | delete: 209..210, |
267 | insert: "fn test() {\n $0\n}", | 266 | insert: "fn test() {\n $0\n}", |
268 | kind: Function, | 267 | kind: Function, |
269 | lookup: "test", | 268 | lookup: "test", |
270 | }, | 269 | }, |
271 | CompletionItem { | 270 | CompletionItem { |
272 | label: "type TestType = ", | 271 | label: "type TestType = ", |
273 | source_range: [209; 210), | 272 | source_range: 209..210, |
274 | delete: [209; 210), | 273 | delete: 209..210, |
275 | insert: "type TestType = ", | 274 | insert: "type TestType = ", |
276 | kind: TypeAlias, | 275 | kind: TypeAlias, |
277 | lookup: "TestType", | 276 | lookup: "TestType", |
@@ -320,8 +319,8 @@ mod tests { | |||
320 | [ | 319 | [ |
321 | CompletionItem { | 320 | CompletionItem { |
322 | label: "fn test()", | 321 | label: "fn test()", |
323 | source_range: [139; 140), | 322 | source_range: 139..140, |
324 | delete: [139; 140), | 323 | delete: 139..140, |
325 | insert: "fn test() {\n $0\n}", | 324 | insert: "fn test() {\n $0\n}", |
326 | kind: Function, | 325 | kind: Function, |
327 | lookup: "test", | 326 | lookup: "test", |
@@ -349,8 +348,8 @@ mod tests { | |||
349 | [ | 348 | [ |
350 | CompletionItem { | 349 | CompletionItem { |
351 | label: "fn foo()", | 350 | label: "fn foo()", |
352 | source_range: [141; 142), | 351 | source_range: 141..142, |
353 | delete: [138; 142), | 352 | delete: 138..142, |
354 | insert: "fn foo() {\n $0\n}", | 353 | insert: "fn foo() {\n $0\n}", |
355 | kind: Function, | 354 | kind: Function, |
356 | lookup: "foo", | 355 | lookup: "foo", |
@@ -381,8 +380,8 @@ mod tests { | |||
381 | [ | 380 | [ |
382 | CompletionItem { | 381 | CompletionItem { |
383 | label: "fn foo_bar()", | 382 | label: "fn foo_bar()", |
384 | source_range: [200; 201), | 383 | source_range: 200..201, |
385 | delete: [197; 201), | 384 | delete: 197..201, |
386 | insert: "fn foo_bar() {\n $0\n}", | 385 | insert: "fn foo_bar() {\n $0\n}", |
387 | kind: Function, | 386 | kind: Function, |
388 | lookup: "foo_bar", | 387 | lookup: "foo_bar", |
@@ -432,8 +431,8 @@ mod tests { | |||
432 | [ | 431 | [ |
433 | CompletionItem { | 432 | CompletionItem { |
434 | label: "fn foo()", | 433 | label: "fn foo()", |
435 | source_range: [144; 145), | 434 | source_range: 144..145, |
436 | delete: [141; 145), | 435 | delete: 141..145, |
437 | insert: "fn foo<T>() {\n $0\n}", | 436 | insert: "fn foo<T>() {\n $0\n}", |
438 | kind: Function, | 437 | kind: Function, |
439 | lookup: "foo", | 438 | lookup: "foo", |
@@ -461,8 +460,8 @@ mod tests { | |||
461 | [ | 460 | [ |
462 | CompletionItem { | 461 | CompletionItem { |
463 | label: "fn foo()", | 462 | label: "fn foo()", |
464 | source_range: [166; 167), | 463 | source_range: 166..167, |
465 | delete: [163; 167), | 464 | delete: 163..167, |
466 | insert: "fn foo<T>()\nwhere T: Into<String> {\n $0\n}", | 465 | insert: "fn foo<T>()\nwhere T: Into<String> {\n $0\n}", |
467 | kind: Function, | 466 | kind: Function, |
468 | lookup: "foo", | 467 | lookup: "foo", |
@@ -488,8 +487,8 @@ mod tests { | |||
488 | [ | 487 | [ |
489 | CompletionItem { | 488 | CompletionItem { |
490 | label: "type SomeType = ", | 489 | label: "type SomeType = ", |
491 | source_range: [124; 125), | 490 | source_range: 124..125, |
492 | delete: [119; 125), | 491 | delete: 119..125, |
493 | insert: "type SomeType = ", | 492 | insert: "type SomeType = ", |
494 | kind: TypeAlias, | 493 | kind: TypeAlias, |
495 | lookup: "SomeType", | 494 | lookup: "SomeType", |
@@ -515,8 +514,8 @@ mod tests { | |||
515 | [ | 514 | [ |
516 | CompletionItem { | 515 | CompletionItem { |
517 | label: "const SOME_CONST: u16 = ", | 516 | label: "const SOME_CONST: u16 = ", |
518 | source_range: [133; 134), | 517 | source_range: 133..134, |
519 | delete: [127; 134), | 518 | delete: 127..134, |
520 | insert: "const SOME_CONST: u16 = ", | 519 | insert: "const SOME_CONST: u16 = ", |
521 | kind: Const, | 520 | kind: Const, |
522 | lookup: "SOME_CONST", | 521 | lookup: "SOME_CONST", |
@@ -542,8 +541,8 @@ mod tests { | |||
542 | [ | 541 | [ |
543 | CompletionItem { | 542 | CompletionItem { |
544 | label: "const SOME_CONST: u16 = ", | 543 | label: "const SOME_CONST: u16 = ", |
545 | source_range: [138; 139), | 544 | source_range: 138..139, |
546 | delete: [132; 139), | 545 | delete: 132..139, |
547 | insert: "const SOME_CONST: u16 = ", | 546 | insert: "const SOME_CONST: u16 = ", |
548 | kind: Const, | 547 | kind: Const, |
549 | lookup: "SOME_CONST", | 548 | lookup: "SOME_CONST", |
diff --git a/crates/ra_ide/src/completion/complete_unqualified_path.rs b/crates/ra_ide/src/completion/complete_unqualified_path.rs index ad00154a3..56cd086c6 100644 --- a/crates/ra_ide/src/completion/complete_unqualified_path.rs +++ b/crates/ra_ide/src/completion/complete_unqualified_path.rs | |||
@@ -38,7 +38,15 @@ fn complete_enum_variants(acc: &mut Completions, ctx: &CompletionContext) { | |||
38 | if let Some(ty) = ctx.expected_type_of(&ctx.token.parent()) { | 38 | if let Some(ty) = ctx.expected_type_of(&ctx.token.parent()) { |
39 | if let Some(Adt::Enum(enum_data)) = ty.as_adt() { | 39 | if let Some(Adt::Enum(enum_data)) = ty.as_adt() { |
40 | let variants = enum_data.variants(ctx.db); | 40 | let variants = enum_data.variants(ctx.db); |
41 | let module = enum_data.module(ctx.db); | 41 | |
42 | let module = if let Some(module) = ctx.scope().module() { | ||
43 | // Compute path from the completion site if available. | ||
44 | module | ||
45 | } else { | ||
46 | // Otherwise fall back to the enum's definition site. | ||
47 | enum_data.module(ctx.db) | ||
48 | }; | ||
49 | |||
42 | for variant in variants { | 50 | for variant in variants { |
43 | if let Some(path) = module.find_use_path(ctx.db, ModuleDef::from(variant)) { | 51 | if let Some(path) = module.find_use_path(ctx.db, ModuleDef::from(variant)) { |
44 | // Variants with trivial paths are already added by the existing completion logic, | 52 | // Variants with trivial paths are already added by the existing completion logic, |
@@ -77,8 +85,8 @@ mod tests { | |||
77 | [ | 85 | [ |
78 | CompletionItem { | 86 | CompletionItem { |
79 | label: "collections", | 87 | label: "collections", |
80 | source_range: [21; 24), | 88 | source_range: 21..24, |
81 | delete: [21; 24), | 89 | delete: 21..24, |
82 | insert: "collections", | 90 | insert: "collections", |
83 | }, | 91 | }, |
84 | ] | 92 | ] |
@@ -149,8 +157,8 @@ mod tests { | |||
149 | [ | 157 | [ |
150 | CompletionItem { | 158 | CompletionItem { |
151 | label: "Enum", | 159 | label: "Enum", |
152 | source_range: [231; 233), | 160 | source_range: 231..233, |
153 | delete: [231; 233), | 161 | delete: 231..233, |
154 | insert: "Enum", | 162 | insert: "Enum", |
155 | kind: Enum, | 163 | kind: Enum, |
156 | }, | 164 | }, |
@@ -175,8 +183,8 @@ mod tests { | |||
175 | [ | 183 | [ |
176 | CompletionItem { | 184 | CompletionItem { |
177 | label: "quux(…)", | 185 | label: "quux(…)", |
178 | source_range: [91; 91), | 186 | source_range: 91..91, |
179 | delete: [91; 91), | 187 | delete: 91..91, |
180 | insert: "quux(${1:x})$0", | 188 | insert: "quux(${1:x})$0", |
181 | kind: Function, | 189 | kind: Function, |
182 | lookup: "quux", | 190 | lookup: "quux", |
@@ -185,16 +193,16 @@ mod tests { | |||
185 | }, | 193 | }, |
186 | CompletionItem { | 194 | CompletionItem { |
187 | label: "x", | 195 | label: "x", |
188 | source_range: [91; 91), | 196 | source_range: 91..91, |
189 | delete: [91; 91), | 197 | delete: 91..91, |
190 | insert: "x", | 198 | insert: "x", |
191 | kind: Binding, | 199 | kind: Binding, |
192 | detail: "i32", | 200 | detail: "i32", |
193 | }, | 201 | }, |
194 | CompletionItem { | 202 | CompletionItem { |
195 | label: "y", | 203 | label: "y", |
196 | source_range: [91; 91), | 204 | source_range: 91..91, |
197 | delete: [91; 91), | 205 | delete: 91..91, |
198 | insert: "y", | 206 | insert: "y", |
199 | kind: Binding, | 207 | kind: Binding, |
200 | detail: "i32", | 208 | detail: "i32", |
@@ -224,23 +232,23 @@ mod tests { | |||
224 | [ | 232 | [ |
225 | CompletionItem { | 233 | CompletionItem { |
226 | label: "a", | 234 | label: "a", |
227 | source_range: [242; 242), | 235 | source_range: 242..242, |
228 | delete: [242; 242), | 236 | delete: 242..242, |
229 | insert: "a", | 237 | insert: "a", |
230 | kind: Binding, | 238 | kind: Binding, |
231 | }, | 239 | }, |
232 | CompletionItem { | 240 | CompletionItem { |
233 | label: "b", | 241 | label: "b", |
234 | source_range: [242; 242), | 242 | source_range: 242..242, |
235 | delete: [242; 242), | 243 | delete: 242..242, |
236 | insert: "b", | 244 | insert: "b", |
237 | kind: Binding, | 245 | kind: Binding, |
238 | detail: "i32", | 246 | detail: "i32", |
239 | }, | 247 | }, |
240 | CompletionItem { | 248 | CompletionItem { |
241 | label: "quux()", | 249 | label: "quux()", |
242 | source_range: [242; 242), | 250 | source_range: 242..242, |
243 | delete: [242; 242), | 251 | delete: 242..242, |
244 | insert: "quux()$0", | 252 | insert: "quux()$0", |
245 | kind: Function, | 253 | kind: Function, |
246 | lookup: "quux", | 254 | lookup: "quux", |
@@ -267,8 +275,8 @@ mod tests { | |||
267 | [ | 275 | [ |
268 | CompletionItem { | 276 | CompletionItem { |
269 | label: "quux()", | 277 | label: "quux()", |
270 | source_range: [95; 95), | 278 | source_range: 95..95, |
271 | delete: [95; 95), | 279 | delete: 95..95, |
272 | insert: "quux()$0", | 280 | insert: "quux()$0", |
273 | kind: Function, | 281 | kind: Function, |
274 | lookup: "quux", | 282 | lookup: "quux", |
@@ -276,8 +284,8 @@ mod tests { | |||
276 | }, | 284 | }, |
277 | CompletionItem { | 285 | CompletionItem { |
278 | label: "x", | 286 | label: "x", |
279 | source_range: [95; 95), | 287 | source_range: 95..95, |
280 | delete: [95; 95), | 288 | delete: 95..95, |
281 | insert: "x", | 289 | insert: "x", |
282 | kind: Binding, | 290 | kind: Binding, |
283 | }, | 291 | }, |
@@ -300,15 +308,15 @@ mod tests { | |||
300 | [ | 308 | [ |
301 | CompletionItem { | 309 | CompletionItem { |
302 | label: "T", | 310 | label: "T", |
303 | source_range: [52; 52), | 311 | source_range: 52..52, |
304 | delete: [52; 52), | 312 | delete: 52..52, |
305 | insert: "T", | 313 | insert: "T", |
306 | kind: TypeParam, | 314 | kind: TypeParam, |
307 | }, | 315 | }, |
308 | CompletionItem { | 316 | CompletionItem { |
309 | label: "quux()", | 317 | label: "quux()", |
310 | source_range: [52; 52), | 318 | source_range: 52..52, |
311 | delete: [52; 52), | 319 | delete: 52..52, |
312 | insert: "quux()$0", | 320 | insert: "quux()$0", |
313 | kind: Function, | 321 | kind: Function, |
314 | lookup: "quux", | 322 | lookup: "quux", |
@@ -333,22 +341,22 @@ mod tests { | |||
333 | [ | 341 | [ |
334 | CompletionItem { | 342 | CompletionItem { |
335 | label: "Self", | 343 | label: "Self", |
336 | source_range: [54; 54), | 344 | source_range: 54..54, |
337 | delete: [54; 54), | 345 | delete: 54..54, |
338 | insert: "Self", | 346 | insert: "Self", |
339 | kind: TypeParam, | 347 | kind: TypeParam, |
340 | }, | 348 | }, |
341 | CompletionItem { | 349 | CompletionItem { |
342 | label: "T", | 350 | label: "T", |
343 | source_range: [54; 54), | 351 | source_range: 54..54, |
344 | delete: [54; 54), | 352 | delete: 54..54, |
345 | insert: "T", | 353 | insert: "T", |
346 | kind: TypeParam, | 354 | kind: TypeParam, |
347 | }, | 355 | }, |
348 | CompletionItem { | 356 | CompletionItem { |
349 | label: "X<…>", | 357 | label: "X<…>", |
350 | source_range: [54; 54), | 358 | source_range: 54..54, |
351 | delete: [54; 54), | 359 | delete: 54..54, |
352 | insert: "X<$0>", | 360 | insert: "X<$0>", |
353 | kind: Struct, | 361 | kind: Struct, |
354 | lookup: "X", | 362 | lookup: "X", |
@@ -372,15 +380,15 @@ mod tests { | |||
372 | [ | 380 | [ |
373 | CompletionItem { | 381 | CompletionItem { |
374 | label: "Self", | 382 | label: "Self", |
375 | source_range: [48; 48), | 383 | source_range: 48..48, |
376 | delete: [48; 48), | 384 | delete: 48..48, |
377 | insert: "Self", | 385 | insert: "Self", |
378 | kind: TypeParam, | 386 | kind: TypeParam, |
379 | }, | 387 | }, |
380 | CompletionItem { | 388 | CompletionItem { |
381 | label: "X", | 389 | label: "X", |
382 | source_range: [48; 48), | 390 | source_range: 48..48, |
383 | delete: [48; 48), | 391 | delete: 48..48, |
384 | insert: "X", | 392 | insert: "X", |
385 | kind: Enum, | 393 | kind: Enum, |
386 | }, | 394 | }, |
@@ -405,22 +413,22 @@ mod tests { | |||
405 | [ | 413 | [ |
406 | CompletionItem { | 414 | CompletionItem { |
407 | label: "Baz", | 415 | label: "Baz", |
408 | source_range: [105; 105), | 416 | source_range: 105..105, |
409 | delete: [105; 105), | 417 | delete: 105..105, |
410 | insert: "Baz", | 418 | insert: "Baz", |
411 | kind: Enum, | 419 | kind: Enum, |
412 | }, | 420 | }, |
413 | CompletionItem { | 421 | CompletionItem { |
414 | label: "Foo", | 422 | label: "Foo", |
415 | source_range: [105; 105), | 423 | source_range: 105..105, |
416 | delete: [105; 105), | 424 | delete: 105..105, |
417 | insert: "Foo", | 425 | insert: "Foo", |
418 | kind: Struct, | 426 | kind: Struct, |
419 | }, | 427 | }, |
420 | CompletionItem { | 428 | CompletionItem { |
421 | label: "quux()", | 429 | label: "quux()", |
422 | source_range: [105; 105), | 430 | source_range: 105..105, |
423 | delete: [105; 105), | 431 | delete: 105..105, |
424 | insert: "quux()$0", | 432 | insert: "quux()$0", |
425 | kind: Function, | 433 | kind: Function, |
426 | lookup: "quux", | 434 | lookup: "quux", |
@@ -447,8 +455,8 @@ mod tests { | |||
447 | [ | 455 | [ |
448 | CompletionItem { | 456 | CompletionItem { |
449 | label: "other_crate", | 457 | label: "other_crate", |
450 | source_range: [4; 4), | 458 | source_range: 4..4, |
451 | delete: [4; 4), | 459 | delete: 4..4, |
452 | insert: "other_crate", | 460 | insert: "other_crate", |
453 | kind: Module, | 461 | kind: Module, |
454 | }, | 462 | }, |
@@ -473,15 +481,15 @@ mod tests { | |||
473 | [ | 481 | [ |
474 | CompletionItem { | 482 | CompletionItem { |
475 | label: "Bar", | 483 | label: "Bar", |
476 | source_range: [117; 117), | 484 | source_range: 117..117, |
477 | delete: [117; 117), | 485 | delete: 117..117, |
478 | insert: "Bar", | 486 | insert: "Bar", |
479 | kind: Struct, | 487 | kind: Struct, |
480 | }, | 488 | }, |
481 | CompletionItem { | 489 | CompletionItem { |
482 | label: "quux()", | 490 | label: "quux()", |
483 | source_range: [117; 117), | 491 | source_range: 117..117, |
484 | delete: [117; 117), | 492 | delete: 117..117, |
485 | insert: "quux()$0", | 493 | insert: "quux()$0", |
486 | kind: Function, | 494 | kind: Function, |
487 | lookup: "quux", | 495 | lookup: "quux", |
@@ -505,15 +513,15 @@ mod tests { | |||
505 | [ | 513 | [ |
506 | CompletionItem { | 514 | CompletionItem { |
507 | label: "Foo", | 515 | label: "Foo", |
508 | source_range: [55; 55), | 516 | source_range: 55..55, |
509 | delete: [55; 55), | 517 | delete: 55..55, |
510 | insert: "Foo", | 518 | insert: "Foo", |
511 | kind: Struct, | 519 | kind: Struct, |
512 | }, | 520 | }, |
513 | CompletionItem { | 521 | CompletionItem { |
514 | label: "x()", | 522 | label: "x()", |
515 | source_range: [55; 55), | 523 | source_range: 55..55, |
516 | delete: [55; 55), | 524 | delete: 55..55, |
517 | insert: "x()$0", | 525 | insert: "x()$0", |
518 | kind: Function, | 526 | kind: Function, |
519 | lookup: "x", | 527 | lookup: "x", |
@@ -542,16 +550,16 @@ mod tests { | |||
542 | [ | 550 | [ |
543 | CompletionItem { | 551 | CompletionItem { |
544 | label: "bar", | 552 | label: "bar", |
545 | source_range: [146; 146), | 553 | source_range: 146..146, |
546 | delete: [146; 146), | 554 | delete: 146..146, |
547 | insert: "bar", | 555 | insert: "bar", |
548 | kind: Binding, | 556 | kind: Binding, |
549 | detail: "i32", | 557 | detail: "i32", |
550 | }, | 558 | }, |
551 | CompletionItem { | 559 | CompletionItem { |
552 | label: "foo()", | 560 | label: "foo()", |
553 | source_range: [146; 146), | 561 | source_range: 146..146, |
554 | delete: [146; 146), | 562 | delete: 146..146, |
555 | insert: "foo()$0", | 563 | insert: "foo()$0", |
556 | kind: Function, | 564 | kind: Function, |
557 | lookup: "foo", | 565 | lookup: "foo", |
@@ -570,15 +578,15 @@ mod tests { | |||
570 | [ | 578 | [ |
571 | CompletionItem { | 579 | CompletionItem { |
572 | label: "Self", | 580 | label: "Self", |
573 | source_range: [25; 25), | 581 | source_range: 25..25, |
574 | delete: [25; 25), | 582 | delete: 25..25, |
575 | insert: "Self", | 583 | insert: "Self", |
576 | kind: TypeParam, | 584 | kind: TypeParam, |
577 | }, | 585 | }, |
578 | CompletionItem { | 586 | CompletionItem { |
579 | label: "self", | 587 | label: "self", |
580 | source_range: [25; 25), | 588 | source_range: 25..25, |
581 | delete: [25; 25), | 589 | delete: 25..25, |
582 | insert: "self", | 590 | insert: "self", |
583 | kind: Binding, | 591 | kind: Binding, |
584 | detail: "&{unknown}", | 592 | detail: "&{unknown}", |
@@ -609,15 +617,15 @@ mod tests { | |||
609 | [ | 617 | [ |
610 | CompletionItem { | 618 | CompletionItem { |
611 | label: "Option", | 619 | label: "Option", |
612 | source_range: [18; 18), | 620 | source_range: 18..18, |
613 | delete: [18; 18), | 621 | delete: 18..18, |
614 | insert: "Option", | 622 | insert: "Option", |
615 | kind: Struct, | 623 | kind: Struct, |
616 | }, | 624 | }, |
617 | CompletionItem { | 625 | CompletionItem { |
618 | label: "foo()", | 626 | label: "foo()", |
619 | source_range: [18; 18), | 627 | source_range: 18..18, |
620 | delete: [18; 18), | 628 | delete: 18..18, |
621 | insert: "foo()$0", | 629 | insert: "foo()$0", |
622 | kind: Function, | 630 | kind: Function, |
623 | lookup: "foo", | 631 | lookup: "foo", |
@@ -625,8 +633,8 @@ mod tests { | |||
625 | }, | 633 | }, |
626 | CompletionItem { | 634 | CompletionItem { |
627 | label: "std", | 635 | label: "std", |
628 | source_range: [18; 18), | 636 | source_range: 18..18, |
629 | delete: [18; 18), | 637 | delete: 18..18, |
630 | insert: "std", | 638 | insert: "std", |
631 | kind: Module, | 639 | kind: Module, |
632 | }, | 640 | }, |
@@ -664,22 +672,22 @@ mod tests { | |||
664 | [ | 672 | [ |
665 | CompletionItem { | 673 | CompletionItem { |
666 | label: "String", | 674 | label: "String", |
667 | source_range: [18; 18), | 675 | source_range: 18..18, |
668 | delete: [18; 18), | 676 | delete: 18..18, |
669 | insert: "String", | 677 | insert: "String", |
670 | kind: Struct, | 678 | kind: Struct, |
671 | }, | 679 | }, |
672 | CompletionItem { | 680 | CompletionItem { |
673 | label: "core", | 681 | label: "core", |
674 | source_range: [18; 18), | 682 | source_range: 18..18, |
675 | delete: [18; 18), | 683 | delete: 18..18, |
676 | insert: "core", | 684 | insert: "core", |
677 | kind: Module, | 685 | kind: Module, |
678 | }, | 686 | }, |
679 | CompletionItem { | 687 | CompletionItem { |
680 | label: "foo()", | 688 | label: "foo()", |
681 | source_range: [18; 18), | 689 | source_range: 18..18, |
682 | delete: [18; 18), | 690 | delete: 18..18, |
683 | insert: "foo()$0", | 691 | insert: "foo()$0", |
684 | kind: Function, | 692 | kind: Function, |
685 | lookup: "foo", | 693 | lookup: "foo", |
@@ -687,8 +695,8 @@ mod tests { | |||
687 | }, | 695 | }, |
688 | CompletionItem { | 696 | CompletionItem { |
689 | label: "std", | 697 | label: "std", |
690 | source_range: [18; 18), | 698 | source_range: 18..18, |
691 | delete: [18; 18), | 699 | delete: 18..18, |
692 | insert: "std", | 700 | insert: "std", |
693 | kind: Module, | 701 | kind: Module, |
694 | }, | 702 | }, |
@@ -733,47 +741,47 @@ mod tests { | |||
733 | @r###" | 741 | @r###" |
734 | [ | 742 | [ |
735 | CompletionItem { | 743 | CompletionItem { |
736 | label: "bar!", | 744 | label: "bar!(…)", |
737 | source_range: [252; 252), | 745 | source_range: 252..252, |
738 | delete: [252; 252), | 746 | delete: 252..252, |
739 | insert: "bar!($0)", | 747 | insert: "bar!($0)", |
740 | kind: Macro, | 748 | kind: Macro, |
741 | detail: "macro_rules! bar", | 749 | detail: "macro_rules! bar", |
742 | }, | 750 | }, |
743 | CompletionItem { | 751 | CompletionItem { |
744 | label: "baz!", | 752 | label: "baz!(…)", |
745 | source_range: [252; 252), | 753 | source_range: 252..252, |
746 | delete: [252; 252), | 754 | delete: 252..252, |
747 | insert: "baz!($0)", | 755 | insert: "baz!($0)", |
748 | kind: Macro, | 756 | kind: Macro, |
749 | detail: "#[macro_export]\nmacro_rules! baz", | 757 | detail: "#[macro_export]\nmacro_rules! baz", |
750 | }, | 758 | }, |
751 | CompletionItem { | 759 | CompletionItem { |
752 | label: "foo!", | 760 | label: "foo!(…)", |
753 | source_range: [252; 252), | 761 | source_range: 252..252, |
754 | delete: [252; 252), | 762 | delete: 252..252, |
755 | insert: "foo!($0)", | 763 | insert: "foo!($0)", |
756 | kind: Macro, | 764 | kind: Macro, |
757 | detail: "macro_rules! foo", | 765 | detail: "macro_rules! foo", |
758 | }, | 766 | }, |
759 | CompletionItem { | 767 | CompletionItem { |
760 | label: "m1", | 768 | label: "m1", |
761 | source_range: [252; 252), | 769 | source_range: 252..252, |
762 | delete: [252; 252), | 770 | delete: 252..252, |
763 | insert: "m1", | 771 | insert: "m1", |
764 | kind: Module, | 772 | kind: Module, |
765 | }, | 773 | }, |
766 | CompletionItem { | 774 | CompletionItem { |
767 | label: "m2", | 775 | label: "m2", |
768 | source_range: [252; 252), | 776 | source_range: 252..252, |
769 | delete: [252; 252), | 777 | delete: 252..252, |
770 | insert: "m2", | 778 | insert: "m2", |
771 | kind: Module, | 779 | kind: Module, |
772 | }, | 780 | }, |
773 | CompletionItem { | 781 | CompletionItem { |
774 | label: "main()", | 782 | label: "main()", |
775 | source_range: [252; 252), | 783 | source_range: 252..252, |
776 | delete: [252; 252), | 784 | delete: 252..252, |
777 | insert: "main()$0", | 785 | insert: "main()$0", |
778 | kind: Function, | 786 | kind: Function, |
779 | lookup: "main", | 787 | lookup: "main", |
@@ -802,17 +810,17 @@ mod tests { | |||
802 | @r###" | 810 | @r###" |
803 | [ | 811 | [ |
804 | CompletionItem { | 812 | CompletionItem { |
805 | label: "foo!", | 813 | label: "foo!(…)", |
806 | source_range: [49; 49), | 814 | source_range: 49..49, |
807 | delete: [49; 49), | 815 | delete: 49..49, |
808 | insert: "foo!($0)", | 816 | insert: "foo!($0)", |
809 | kind: Macro, | 817 | kind: Macro, |
810 | detail: "macro_rules! foo", | 818 | detail: "macro_rules! foo", |
811 | }, | 819 | }, |
812 | CompletionItem { | 820 | CompletionItem { |
813 | label: "foo()", | 821 | label: "foo()", |
814 | source_range: [49; 49), | 822 | source_range: 49..49, |
815 | delete: [49; 49), | 823 | delete: 49..49, |
816 | insert: "foo()$0", | 824 | insert: "foo()$0", |
817 | kind: Function, | 825 | kind: Function, |
818 | lookup: "foo", | 826 | lookup: "foo", |
@@ -841,17 +849,17 @@ mod tests { | |||
841 | @r###" | 849 | @r###" |
842 | [ | 850 | [ |
843 | CompletionItem { | 851 | CompletionItem { |
844 | label: "foo!", | 852 | label: "foo!(…)", |
845 | source_range: [57; 57), | 853 | source_range: 57..57, |
846 | delete: [57; 57), | 854 | delete: 57..57, |
847 | insert: "foo!($0)", | 855 | insert: "foo!($0)", |
848 | kind: Macro, | 856 | kind: Macro, |
849 | detail: "macro_rules! foo", | 857 | detail: "macro_rules! foo", |
850 | }, | 858 | }, |
851 | CompletionItem { | 859 | CompletionItem { |
852 | label: "main()", | 860 | label: "main()", |
853 | source_range: [57; 57), | 861 | source_range: 57..57, |
854 | delete: [57; 57), | 862 | delete: 57..57, |
855 | insert: "main()$0", | 863 | insert: "main()$0", |
856 | kind: Function, | 864 | kind: Function, |
857 | lookup: "main", | 865 | lookup: "main", |
@@ -880,17 +888,17 @@ mod tests { | |||
880 | @r###" | 888 | @r###" |
881 | [ | 889 | [ |
882 | CompletionItem { | 890 | CompletionItem { |
883 | label: "foo!", | 891 | label: "foo!(…)", |
884 | source_range: [50; 50), | 892 | source_range: 50..50, |
885 | delete: [50; 50), | 893 | delete: 50..50, |
886 | insert: "foo!($0)", | 894 | insert: "foo!($0)", |
887 | kind: Macro, | 895 | kind: Macro, |
888 | detail: "macro_rules! foo", | 896 | detail: "macro_rules! foo", |
889 | }, | 897 | }, |
890 | CompletionItem { | 898 | CompletionItem { |
891 | label: "main()", | 899 | label: "main()", |
892 | source_range: [50; 50), | 900 | source_range: 50..50, |
893 | delete: [50; 50), | 901 | delete: 50..50, |
894 | insert: "main()$0", | 902 | insert: "main()$0", |
895 | kind: Function, | 903 | kind: Function, |
896 | lookup: "main", | 904 | lookup: "main", |
@@ -917,8 +925,8 @@ mod tests { | |||
917 | [ | 925 | [ |
918 | CompletionItem { | 926 | CompletionItem { |
919 | label: "frobnicate()", | 927 | label: "frobnicate()", |
920 | source_range: [23; 24), | 928 | source_range: 23..24, |
921 | delete: [23; 24), | 929 | delete: 23..24, |
922 | insert: "frobnicate()$0", | 930 | insert: "frobnicate()$0", |
923 | kind: Function, | 931 | kind: Function, |
924 | lookup: "frobnicate", | 932 | lookup: "frobnicate", |
@@ -926,8 +934,8 @@ mod tests { | |||
926 | }, | 934 | }, |
927 | CompletionItem { | 935 | CompletionItem { |
928 | label: "main()", | 936 | label: "main()", |
929 | source_range: [23; 24), | 937 | source_range: 23..24, |
930 | delete: [23; 24), | 938 | delete: 23..24, |
931 | insert: "main()$0", | 939 | insert: "main()$0", |
932 | kind: Function, | 940 | kind: Function, |
933 | lookup: "main", | 941 | lookup: "main", |
@@ -953,17 +961,17 @@ mod tests { | |||
953 | @r###" | 961 | @r###" |
954 | [ | 962 | [ |
955 | CompletionItem { | 963 | CompletionItem { |
956 | label: "m!", | 964 | label: "m!(…)", |
957 | source_range: [145; 145), | 965 | source_range: 145..145, |
958 | delete: [145; 145), | 966 | delete: 145..145, |
959 | insert: "m!($0)", | 967 | insert: "m!($0)", |
960 | kind: Macro, | 968 | kind: Macro, |
961 | detail: "macro_rules! m", | 969 | detail: "macro_rules! m", |
962 | }, | 970 | }, |
963 | CompletionItem { | 971 | CompletionItem { |
964 | label: "quux(…)", | 972 | label: "quux(…)", |
965 | source_range: [145; 145), | 973 | source_range: 145..145, |
966 | delete: [145; 145), | 974 | delete: 145..145, |
967 | insert: "quux(${1:x})$0", | 975 | insert: "quux(${1:x})$0", |
968 | kind: Function, | 976 | kind: Function, |
969 | lookup: "quux", | 977 | lookup: "quux", |
@@ -972,16 +980,16 @@ mod tests { | |||
972 | }, | 980 | }, |
973 | CompletionItem { | 981 | CompletionItem { |
974 | label: "x", | 982 | label: "x", |
975 | source_range: [145; 145), | 983 | source_range: 145..145, |
976 | delete: [145; 145), | 984 | delete: 145..145, |
977 | insert: "x", | 985 | insert: "x", |
978 | kind: Binding, | 986 | kind: Binding, |
979 | detail: "i32", | 987 | detail: "i32", |
980 | }, | 988 | }, |
981 | CompletionItem { | 989 | CompletionItem { |
982 | label: "y", | 990 | label: "y", |
983 | source_range: [145; 145), | 991 | source_range: 145..145, |
984 | delete: [145; 145), | 992 | delete: 145..145, |
985 | insert: "y", | 993 | insert: "y", |
986 | kind: Binding, | 994 | kind: Binding, |
987 | detail: "i32", | 995 | detail: "i32", |
@@ -1006,17 +1014,17 @@ mod tests { | |||
1006 | @r###" | 1014 | @r###" |
1007 | [ | 1015 | [ |
1008 | CompletionItem { | 1016 | CompletionItem { |
1009 | label: "m!", | 1017 | label: "m!(…)", |
1010 | source_range: [145; 146), | 1018 | source_range: 145..146, |
1011 | delete: [145; 146), | 1019 | delete: 145..146, |
1012 | insert: "m!($0)", | 1020 | insert: "m!($0)", |
1013 | kind: Macro, | 1021 | kind: Macro, |
1014 | detail: "macro_rules! m", | 1022 | detail: "macro_rules! m", |
1015 | }, | 1023 | }, |
1016 | CompletionItem { | 1024 | CompletionItem { |
1017 | label: "quux(…)", | 1025 | label: "quux(…)", |
1018 | source_range: [145; 146), | 1026 | source_range: 145..146, |
1019 | delete: [145; 146), | 1027 | delete: 145..146, |
1020 | insert: "quux(${1:x})$0", | 1028 | insert: "quux(${1:x})$0", |
1021 | kind: Function, | 1029 | kind: Function, |
1022 | lookup: "quux", | 1030 | lookup: "quux", |
@@ -1025,16 +1033,16 @@ mod tests { | |||
1025 | }, | 1033 | }, |
1026 | CompletionItem { | 1034 | CompletionItem { |
1027 | label: "x", | 1035 | label: "x", |
1028 | source_range: [145; 146), | 1036 | source_range: 145..146, |
1029 | delete: [145; 146), | 1037 | delete: 145..146, |
1030 | insert: "x", | 1038 | insert: "x", |
1031 | kind: Binding, | 1039 | kind: Binding, |
1032 | detail: "i32", | 1040 | detail: "i32", |
1033 | }, | 1041 | }, |
1034 | CompletionItem { | 1042 | CompletionItem { |
1035 | label: "y", | 1043 | label: "y", |
1036 | source_range: [145; 146), | 1044 | source_range: 145..146, |
1037 | delete: [145; 146), | 1045 | delete: 145..146, |
1038 | insert: "y", | 1046 | insert: "y", |
1039 | kind: Binding, | 1047 | kind: Binding, |
1040 | detail: "i32", | 1048 | detail: "i32", |
@@ -1059,17 +1067,17 @@ mod tests { | |||
1059 | @r###" | 1067 | @r###" |
1060 | [ | 1068 | [ |
1061 | CompletionItem { | 1069 | CompletionItem { |
1062 | label: "m!", | 1070 | label: "m!(…)", |
1063 | source_range: [145; 146), | 1071 | source_range: 145..146, |
1064 | delete: [145; 146), | 1072 | delete: 145..146, |
1065 | insert: "m!($0)", | 1073 | insert: "m!($0)", |
1066 | kind: Macro, | 1074 | kind: Macro, |
1067 | detail: "macro_rules! m", | 1075 | detail: "macro_rules! m", |
1068 | }, | 1076 | }, |
1069 | CompletionItem { | 1077 | CompletionItem { |
1070 | label: "quux(…)", | 1078 | label: "quux(…)", |
1071 | source_range: [145; 146), | 1079 | source_range: 145..146, |
1072 | delete: [145; 146), | 1080 | delete: 145..146, |
1073 | insert: "quux(${1:x})$0", | 1081 | insert: "quux(${1:x})$0", |
1074 | kind: Function, | 1082 | kind: Function, |
1075 | lookup: "quux", | 1083 | lookup: "quux", |
@@ -1078,16 +1086,16 @@ mod tests { | |||
1078 | }, | 1086 | }, |
1079 | CompletionItem { | 1087 | CompletionItem { |
1080 | label: "x", | 1088 | label: "x", |
1081 | source_range: [145; 146), | 1089 | source_range: 145..146, |
1082 | delete: [145; 146), | 1090 | delete: 145..146, |
1083 | insert: "x", | 1091 | insert: "x", |
1084 | kind: Binding, | 1092 | kind: Binding, |
1085 | detail: "i32", | 1093 | detail: "i32", |
1086 | }, | 1094 | }, |
1087 | CompletionItem { | 1095 | CompletionItem { |
1088 | label: "y", | 1096 | label: "y", |
1089 | source_range: [145; 146), | 1097 | source_range: 145..146, |
1090 | delete: [145; 146), | 1098 | delete: 145..146, |
1091 | insert: "y", | 1099 | insert: "y", |
1092 | kind: Binding, | 1100 | kind: Binding, |
1093 | detail: "i32", | 1101 | detail: "i32", |
@@ -1113,14 +1121,14 @@ mod tests { | |||
1113 | [ | 1121 | [ |
1114 | CompletionItem { | 1122 | CompletionItem { |
1115 | label: "Quux", | 1123 | label: "Quux", |
1116 | source_range: [82; 82), | 1124 | source_range: 82..82, |
1117 | delete: [82; 82), | 1125 | delete: 82..82, |
1118 | insert: "Quux", | 1126 | insert: "Quux", |
1119 | }, | 1127 | }, |
1120 | CompletionItem { | 1128 | CompletionItem { |
1121 | label: "main()", | 1129 | label: "main()", |
1122 | source_range: [82; 82), | 1130 | source_range: 82..82, |
1123 | delete: [82; 82), | 1131 | delete: 82..82, |
1124 | insert: "main()$0", | 1132 | insert: "main()$0", |
1125 | kind: Function, | 1133 | kind: Function, |
1126 | lookup: "main", | 1134 | lookup: "main", |
@@ -1154,31 +1162,31 @@ mod tests { | |||
1154 | [ | 1162 | [ |
1155 | CompletionItem { | 1163 | CompletionItem { |
1156 | label: "Foo", | 1164 | label: "Foo", |
1157 | source_range: [248; 250), | 1165 | source_range: 248..250, |
1158 | delete: [248; 250), | 1166 | delete: 248..250, |
1159 | insert: "Foo", | 1167 | insert: "Foo", |
1160 | kind: Enum, | 1168 | kind: Enum, |
1161 | }, | 1169 | }, |
1162 | CompletionItem { | 1170 | CompletionItem { |
1163 | label: "Foo::Bar", | 1171 | label: "Foo::Bar", |
1164 | source_range: [248; 250), | 1172 | source_range: 248..250, |
1165 | delete: [248; 250), | 1173 | delete: 248..250, |
1166 | insert: "Foo::Bar", | 1174 | insert: "Foo::Bar", |
1167 | kind: EnumVariant, | 1175 | kind: EnumVariant, |
1168 | detail: "()", | 1176 | detail: "()", |
1169 | }, | 1177 | }, |
1170 | CompletionItem { | 1178 | CompletionItem { |
1171 | label: "Foo::Baz", | 1179 | label: "Foo::Baz", |
1172 | source_range: [248; 250), | 1180 | source_range: 248..250, |
1173 | delete: [248; 250), | 1181 | delete: 248..250, |
1174 | insert: "Foo::Baz", | 1182 | insert: "Foo::Baz", |
1175 | kind: EnumVariant, | 1183 | kind: EnumVariant, |
1176 | detail: "()", | 1184 | detail: "()", |
1177 | }, | 1185 | }, |
1178 | CompletionItem { | 1186 | CompletionItem { |
1179 | label: "Foo::Quux", | 1187 | label: "Foo::Quux", |
1180 | source_range: [248; 250), | 1188 | source_range: 248..250, |
1181 | delete: [248; 250), | 1189 | delete: 248..250, |
1182 | insert: "Foo::Quux", | 1190 | insert: "Foo::Quux", |
1183 | kind: EnumVariant, | 1191 | kind: EnumVariant, |
1184 | detail: "()", | 1192 | detail: "()", |
@@ -1212,31 +1220,31 @@ mod tests { | |||
1212 | [ | 1220 | [ |
1213 | CompletionItem { | 1221 | CompletionItem { |
1214 | label: "Foo", | 1222 | label: "Foo", |
1215 | source_range: [219; 221), | 1223 | source_range: 219..221, |
1216 | delete: [219; 221), | 1224 | delete: 219..221, |
1217 | insert: "Foo", | 1225 | insert: "Foo", |
1218 | kind: Enum, | 1226 | kind: Enum, |
1219 | }, | 1227 | }, |
1220 | CompletionItem { | 1228 | CompletionItem { |
1221 | label: "Foo::Bar", | 1229 | label: "Foo::Bar", |
1222 | source_range: [219; 221), | 1230 | source_range: 219..221, |
1223 | delete: [219; 221), | 1231 | delete: 219..221, |
1224 | insert: "Foo::Bar", | 1232 | insert: "Foo::Bar", |
1225 | kind: EnumVariant, | 1233 | kind: EnumVariant, |
1226 | detail: "()", | 1234 | detail: "()", |
1227 | }, | 1235 | }, |
1228 | CompletionItem { | 1236 | CompletionItem { |
1229 | label: "Foo::Baz", | 1237 | label: "Foo::Baz", |
1230 | source_range: [219; 221), | 1238 | source_range: 219..221, |
1231 | delete: [219; 221), | 1239 | delete: 219..221, |
1232 | insert: "Foo::Baz", | 1240 | insert: "Foo::Baz", |
1233 | kind: EnumVariant, | 1241 | kind: EnumVariant, |
1234 | detail: "()", | 1242 | detail: "()", |
1235 | }, | 1243 | }, |
1236 | CompletionItem { | 1244 | CompletionItem { |
1237 | label: "Foo::Quux", | 1245 | label: "Foo::Quux", |
1238 | source_range: [219; 221), | 1246 | source_range: 219..221, |
1239 | delete: [219; 221), | 1247 | delete: 219..221, |
1240 | insert: "Foo::Quux", | 1248 | insert: "Foo::Quux", |
1241 | kind: EnumVariant, | 1249 | kind: EnumVariant, |
1242 | detail: "()", | 1250 | detail: "()", |
@@ -1266,39 +1274,39 @@ mod tests { | |||
1266 | [ | 1274 | [ |
1267 | CompletionItem { | 1275 | CompletionItem { |
1268 | label: "Foo", | 1276 | label: "Foo", |
1269 | source_range: [185; 186), | 1277 | source_range: 185..186, |
1270 | delete: [185; 186), | 1278 | delete: 185..186, |
1271 | insert: "Foo", | 1279 | insert: "Foo", |
1272 | kind: Enum, | 1280 | kind: Enum, |
1273 | }, | 1281 | }, |
1274 | CompletionItem { | 1282 | CompletionItem { |
1275 | label: "Foo::Bar", | 1283 | label: "Foo::Bar", |
1276 | source_range: [185; 186), | 1284 | source_range: 185..186, |
1277 | delete: [185; 186), | 1285 | delete: 185..186, |
1278 | insert: "Foo::Bar", | 1286 | insert: "Foo::Bar", |
1279 | kind: EnumVariant, | 1287 | kind: EnumVariant, |
1280 | detail: "()", | 1288 | detail: "()", |
1281 | }, | 1289 | }, |
1282 | CompletionItem { | 1290 | CompletionItem { |
1283 | label: "Foo::Baz", | 1291 | label: "Foo::Baz", |
1284 | source_range: [185; 186), | 1292 | source_range: 185..186, |
1285 | delete: [185; 186), | 1293 | delete: 185..186, |
1286 | insert: "Foo::Baz", | 1294 | insert: "Foo::Baz", |
1287 | kind: EnumVariant, | 1295 | kind: EnumVariant, |
1288 | detail: "()", | 1296 | detail: "()", |
1289 | }, | 1297 | }, |
1290 | CompletionItem { | 1298 | CompletionItem { |
1291 | label: "Foo::Quux", | 1299 | label: "Foo::Quux", |
1292 | source_range: [185; 186), | 1300 | source_range: 185..186, |
1293 | delete: [185; 186), | 1301 | delete: 185..186, |
1294 | insert: "Foo::Quux", | 1302 | insert: "Foo::Quux", |
1295 | kind: EnumVariant, | 1303 | kind: EnumVariant, |
1296 | detail: "()", | 1304 | detail: "()", |
1297 | }, | 1305 | }, |
1298 | CompletionItem { | 1306 | CompletionItem { |
1299 | label: "main()", | 1307 | label: "main()", |
1300 | source_range: [185; 186), | 1308 | source_range: 185..186, |
1301 | delete: [185; 186), | 1309 | delete: 185..186, |
1302 | insert: "main()$0", | 1310 | insert: "main()$0", |
1303 | kind: Function, | 1311 | kind: Function, |
1304 | lookup: "main", | 1312 | lookup: "main", |
@@ -1308,4 +1316,47 @@ mod tests { | |||
1308 | "### | 1316 | "### |
1309 | ) | 1317 | ) |
1310 | } | 1318 | } |
1319 | |||
1320 | #[test] | ||
1321 | fn completes_enum_variant_from_module() { | ||
1322 | assert_debug_snapshot!( | ||
1323 | do_reference_completion( | ||
1324 | r" | ||
1325 | mod m { pub enum E { V } } | ||
1326 | |||
1327 | fn f() -> m::E { | ||
1328 | V<|> | ||
1329 | } | ||
1330 | " | ||
1331 | ), | ||
1332 | @r###" | ||
1333 | [ | ||
1334 | CompletionItem { | ||
1335 | label: "f()", | ||
1336 | source_range: 98..99, | ||
1337 | delete: 98..99, | ||
1338 | insert: "f()$0", | ||
1339 | kind: Function, | ||
1340 | lookup: "f", | ||
1341 | detail: "fn f() -> m::E", | ||
1342 | }, | ||
1343 | CompletionItem { | ||
1344 | label: "m", | ||
1345 | source_range: 98..99, | ||
1346 | delete: 98..99, | ||
1347 | insert: "m", | ||
1348 | kind: Module, | ||
1349 | }, | ||
1350 | CompletionItem { | ||
1351 | label: "m::E::V", | ||
1352 | source_range: 98..99, | ||
1353 | delete: 98..99, | ||
1354 | insert: "m::E::V", | ||
1355 | kind: EnumVariant, | ||
1356 | detail: "()", | ||
1357 | }, | ||
1358 | ] | ||
1359 | "### | ||
1360 | ) | ||
1361 | } | ||
1311 | } | 1362 | } |
diff --git a/crates/ra_ide/src/completion/completion_context.rs b/crates/ra_ide/src/completion/completion_context.rs index a76d1ce45..5f2797e41 100644 --- a/crates/ra_ide/src/completion/completion_context.rs +++ b/crates/ra_ide/src/completion/completion_context.rs | |||
@@ -7,7 +7,7 @@ use ra_syntax::{ | |||
7 | algo::{find_covering_element, find_node_at_offset}, | 7 | algo::{find_covering_element, find_node_at_offset}, |
8 | ast, AstNode, | 8 | ast, AstNode, |
9 | SyntaxKind::*, | 9 | SyntaxKind::*, |
10 | SyntaxNode, SyntaxToken, TextRange, TextUnit, | 10 | SyntaxNode, SyntaxToken, TextRange, TextSize, |
11 | }; | 11 | }; |
12 | use ra_text_edit::AtomTextEdit; | 12 | use ra_text_edit::AtomTextEdit; |
13 | 13 | ||
@@ -20,7 +20,7 @@ pub(crate) struct CompletionContext<'a> { | |||
20 | pub(super) sema: Semantics<'a, RootDatabase>, | 20 | pub(super) sema: Semantics<'a, RootDatabase>, |
21 | pub(super) db: &'a RootDatabase, | 21 | pub(super) db: &'a RootDatabase, |
22 | pub(super) config: &'a CompletionConfig, | 22 | pub(super) config: &'a CompletionConfig, |
23 | pub(super) offset: TextUnit, | 23 | pub(super) offset: TextSize, |
24 | /// The token before the cursor, in the original file. | 24 | /// The token before the cursor, in the original file. |
25 | pub(super) original_token: SyntaxToken, | 25 | pub(super) original_token: SyntaxToken, |
26 | /// The token before the cursor, in the macro-expanded file. | 26 | /// The token before the cursor, in the macro-expanded file. |
@@ -57,6 +57,7 @@ pub(crate) struct CompletionContext<'a> { | |||
57 | pub(super) is_macro_call: bool, | 57 | pub(super) is_macro_call: bool, |
58 | pub(super) is_path_type: bool, | 58 | pub(super) is_path_type: bool, |
59 | pub(super) has_type_args: bool, | 59 | pub(super) has_type_args: bool, |
60 | pub(super) is_attribute: bool, | ||
60 | } | 61 | } |
61 | 62 | ||
62 | impl<'a> CompletionContext<'a> { | 63 | impl<'a> CompletionContext<'a> { |
@@ -113,6 +114,7 @@ impl<'a> CompletionContext<'a> { | |||
113 | is_path_type: false, | 114 | is_path_type: false, |
114 | has_type_args: false, | 115 | has_type_args: false, |
115 | dot_receiver_is_ambiguous_float_literal: false, | 116 | dot_receiver_is_ambiguous_float_literal: false, |
117 | is_attribute: false, | ||
116 | }; | 118 | }; |
117 | 119 | ||
118 | let mut original_file = original_file.syntax().clone(); | 120 | let mut original_file = original_file.syntax().clone(); |
@@ -165,7 +167,7 @@ impl<'a> CompletionContext<'a> { | |||
165 | match self.token.kind() { | 167 | match self.token.kind() { |
166 | // workaroud when completion is triggered by trigger characters. | 168 | // workaroud when completion is triggered by trigger characters. |
167 | IDENT => self.original_token.text_range(), | 169 | IDENT => self.original_token.text_range(), |
168 | _ => TextRange::offset_len(self.offset, 0.into()), | 170 | _ => TextRange::empty(self.offset), |
169 | } | 171 | } |
170 | } | 172 | } |
171 | 173 | ||
@@ -188,7 +190,7 @@ impl<'a> CompletionContext<'a> { | |||
188 | &mut self, | 190 | &mut self, |
189 | original_file: &SyntaxNode, | 191 | original_file: &SyntaxNode, |
190 | file_with_fake_ident: SyntaxNode, | 192 | file_with_fake_ident: SyntaxNode, |
191 | offset: TextUnit, | 193 | offset: TextSize, |
192 | ) { | 194 | ) { |
193 | // First, let's try to complete a reference to some declaration. | 195 | // First, let's try to complete a reference to some declaration. |
194 | if let Some(name_ref) = find_node_at_offset::<ast::NameRef>(&file_with_fake_ident, offset) { | 196 | if let Some(name_ref) = find_node_at_offset::<ast::NameRef>(&file_with_fake_ident, offset) { |
@@ -222,7 +224,8 @@ impl<'a> CompletionContext<'a> { | |||
222 | } | 224 | } |
223 | if let Some(let_stmt) = bind_pat.syntax().ancestors().find_map(ast::LetStmt::cast) { | 225 | if let Some(let_stmt) = bind_pat.syntax().ancestors().find_map(ast::LetStmt::cast) { |
224 | if let Some(pat) = let_stmt.pat() { | 226 | if let Some(pat) = let_stmt.pat() { |
225 | if bind_pat.syntax().text_range().is_subrange(&pat.syntax().text_range()) { | 227 | if pat.syntax().text_range().contains_range(bind_pat.syntax().text_range()) |
228 | { | ||
226 | self.is_pat_binding_or_const = false; | 229 | self.is_pat_binding_or_const = false; |
227 | } | 230 | } |
228 | } | 231 | } |
@@ -244,7 +247,7 @@ impl<'a> CompletionContext<'a> { | |||
244 | &mut self, | 247 | &mut self, |
245 | original_file: &SyntaxNode, | 248 | original_file: &SyntaxNode, |
246 | name_ref: ast::NameRef, | 249 | name_ref: ast::NameRef, |
247 | offset: TextUnit, | 250 | offset: TextSize, |
248 | ) { | 251 | ) { |
249 | self.name_ref_syntax = | 252 | self.name_ref_syntax = |
250 | find_node_at_offset(&original_file, name_ref.syntax().text_range().start()); | 253 | find_node_at_offset(&original_file, name_ref.syntax().text_range().start()); |
@@ -306,6 +309,7 @@ impl<'a> CompletionContext<'a> { | |||
306 | .and_then(|it| it.syntax().parent().and_then(ast::CallExpr::cast)) | 309 | .and_then(|it| it.syntax().parent().and_then(ast::CallExpr::cast)) |
307 | .is_some(); | 310 | .is_some(); |
308 | self.is_macro_call = path.syntax().parent().and_then(ast::MacroCall::cast).is_some(); | 311 | self.is_macro_call = path.syntax().parent().and_then(ast::MacroCall::cast).is_some(); |
312 | self.is_attribute = path.syntax().parent().and_then(ast::Attr::cast).is_some(); | ||
309 | 313 | ||
310 | self.is_path_type = path.syntax().parent().and_then(ast::PathType::cast).is_some(); | 314 | self.is_path_type = path.syntax().parent().and_then(ast::PathType::cast).is_some(); |
311 | self.has_type_args = segment.type_arg_list().is_some(); | 315 | self.has_type_args = segment.type_arg_list().is_some(); |
diff --git a/crates/ra_ide/src/completion/completion_item.rs b/crates/ra_ide/src/completion/completion_item.rs index fb06cc125..5936fb8f7 100644 --- a/crates/ra_ide/src/completion/completion_item.rs +++ b/crates/ra_ide/src/completion/completion_item.rs | |||
@@ -121,6 +121,7 @@ pub enum CompletionItemKind { | |||
121 | Method, | 121 | Method, |
122 | TypeParam, | 122 | TypeParam, |
123 | Macro, | 123 | Macro, |
124 | Attribute, | ||
124 | } | 125 | } |
125 | 126 | ||
126 | #[derive(Debug, PartialEq, Eq, Copy, Clone)] | 127 | #[derive(Debug, PartialEq, Eq, Copy, Clone)] |
@@ -134,6 +135,7 @@ pub(crate) enum CompletionKind { | |||
134 | Snippet, | 135 | Snippet, |
135 | Postfix, | 136 | Postfix, |
136 | BuiltinType, | 137 | BuiltinType, |
138 | Attribute, | ||
137 | } | 139 | } |
138 | 140 | ||
139 | #[derive(Debug, PartialEq, Eq, Copy, Clone)] | 141 | #[derive(Debug, PartialEq, Eq, Copy, Clone)] |
diff --git a/crates/ra_ide/src/completion/presentation.rs b/crates/ra_ide/src/completion/presentation.rs index 5e2b8b920..9f9f06bf0 100644 --- a/crates/ra_ide/src/completion/presentation.rs +++ b/crates/ra_ide/src/completion/presentation.rs | |||
@@ -133,29 +133,6 @@ impl Completions { | |||
133 | completion_item.kind(kind).set_documentation(docs).add_to(self) | 133 | completion_item.kind(kind).set_documentation(docs).add_to(self) |
134 | } | 134 | } |
135 | 135 | ||
136 | fn guess_macro_braces(&self, macro_name: &str, docs: &str) -> &'static str { | ||
137 | let mut votes = [0, 0, 0]; | ||
138 | for (idx, s) in docs.match_indices(¯o_name) { | ||
139 | let (before, after) = (&docs[..idx], &docs[idx + s.len()..]); | ||
140 | // Ensure to match the full word | ||
141 | if after.starts_with('!') | ||
142 | && !before.ends_with(|c: char| c == '_' || c.is_ascii_alphanumeric()) | ||
143 | { | ||
144 | // It may have spaces before the braces like `foo! {}` | ||
145 | match after[1..].chars().find(|&c| !c.is_whitespace()) { | ||
146 | Some('{') => votes[0] += 1, | ||
147 | Some('[') => votes[1] += 1, | ||
148 | Some('(') => votes[2] += 1, | ||
149 | _ => {} | ||
150 | } | ||
151 | } | ||
152 | } | ||
153 | |||
154 | // Insert a space before `{}`. | ||
155 | // We prefer the last one when some votes equal. | ||
156 | *votes.iter().zip(&[" {$0}", "[$0]", "($0)"]).max_by_key(|&(&vote, _)| vote).unwrap().1 | ||
157 | } | ||
158 | |||
159 | pub(crate) fn add_macro( | 136 | pub(crate) fn add_macro( |
160 | &mut self, | 137 | &mut self, |
161 | ctx: &CompletionContext, | 138 | ctx: &CompletionContext, |
@@ -177,21 +154,27 @@ impl Completions { | |||
177 | let detail = macro_label(&ast_node); | 154 | let detail = macro_label(&ast_node); |
178 | 155 | ||
179 | let docs = macro_.docs(ctx.db); | 156 | let docs = macro_.docs(ctx.db); |
180 | let macro_declaration = format!("{}!", name); | ||
181 | 157 | ||
182 | let mut builder = | 158 | let mut builder = CompletionItem::new( |
183 | CompletionItem::new(CompletionKind::Reference, ctx.source_range(), ¯o_declaration) | 159 | CompletionKind::Reference, |
184 | .kind(CompletionItemKind::Macro) | 160 | ctx.source_range(), |
185 | .set_documentation(docs.clone()) | 161 | &format!("{}!", name), |
186 | .set_deprecated(is_deprecated(macro_, ctx.db)) | 162 | ) |
187 | .detail(detail); | 163 | .kind(CompletionItemKind::Macro) |
164 | .set_documentation(docs.clone()) | ||
165 | .set_deprecated(is_deprecated(macro_, ctx.db)) | ||
166 | .detail(detail); | ||
188 | 167 | ||
168 | let needs_bang = ctx.use_item_syntax.is_none() && !ctx.is_macro_call; | ||
189 | builder = match ctx.config.snippet_cap { | 169 | builder = match ctx.config.snippet_cap { |
190 | Some(cap) if ctx.use_item_syntax.is_none() && !ctx.is_macro_call => { | 170 | Some(cap) if needs_bang => { |
191 | let macro_braces_to_insert = | 171 | let docs = docs.as_ref().map_or("", |s| s.as_str()); |
192 | self.guess_macro_braces(&name, docs.as_ref().map_or("", |s| s.as_str())); | 172 | let (bra, ket) = guess_macro_braces(&name, docs); |
193 | builder.insert_snippet(cap, macro_declaration + macro_braces_to_insert) | 173 | builder |
174 | .insert_snippet(cap, format!("{}!{}$0{}", name, bra, ket)) | ||
175 | .label(format!("{}!{}…{}", name, bra, ket)) | ||
194 | } | 176 | } |
177 | None if needs_bang => builder.insert_text(format!("{}!", name)), | ||
195 | _ => { | 178 | _ => { |
196 | tested_by!(dont_insert_macro_call_parens_unncessary); | 179 | tested_by!(dont_insert_macro_call_parens_unncessary); |
197 | builder.insert_text(name) | 180 | builder.insert_text(name) |
@@ -404,6 +387,34 @@ fn is_deprecated(node: impl HasAttrs, db: &RootDatabase) -> bool { | |||
404 | node.attrs(db).by_key("deprecated").exists() | 387 | node.attrs(db).by_key("deprecated").exists() |
405 | } | 388 | } |
406 | 389 | ||
390 | fn guess_macro_braces(macro_name: &str, docs: &str) -> (&'static str, &'static str) { | ||
391 | let mut votes = [0, 0, 0]; | ||
392 | for (idx, s) in docs.match_indices(¯o_name) { | ||
393 | let (before, after) = (&docs[..idx], &docs[idx + s.len()..]); | ||
394 | // Ensure to match the full word | ||
395 | if after.starts_with('!') | ||
396 | && !before.ends_with(|c: char| c == '_' || c.is_ascii_alphanumeric()) | ||
397 | { | ||
398 | // It may have spaces before the braces like `foo! {}` | ||
399 | match after[1..].chars().find(|&c| !c.is_whitespace()) { | ||
400 | Some('{') => votes[0] += 1, | ||
401 | Some('[') => votes[1] += 1, | ||
402 | Some('(') => votes[2] += 1, | ||
403 | _ => {} | ||
404 | } | ||
405 | } | ||
406 | } | ||
407 | |||
408 | // Insert a space before `{}`. | ||
409 | // We prefer the last one when some votes equal. | ||
410 | let (_vote, (bra, ket)) = votes | ||
411 | .iter() | ||
412 | .zip(&[(" {", "}"), ("[", "]"), ("(", ")")]) | ||
413 | .max_by_key(|&(&vote, _)| vote) | ||
414 | .unwrap(); | ||
415 | (*bra, *ket) | ||
416 | } | ||
417 | |||
407 | #[cfg(test)] | 418 | #[cfg(test)] |
408 | mod tests { | 419 | mod tests { |
409 | use insta::assert_debug_snapshot; | 420 | use insta::assert_debug_snapshot; |
@@ -441,8 +452,8 @@ mod tests { | |||
441 | [ | 452 | [ |
442 | CompletionItem { | 453 | CompletionItem { |
443 | label: "Foo", | 454 | label: "Foo", |
444 | source_range: [121; 123), | 455 | source_range: 121..123, |
445 | delete: [121; 123), | 456 | delete: 121..123, |
446 | insert: "Foo", | 457 | insert: "Foo", |
447 | kind: EnumVariant, | 458 | kind: EnumVariant, |
448 | detail: "{ x: i32, y: i32 }", | 459 | detail: "{ x: i32, y: i32 }", |
@@ -467,8 +478,8 @@ mod tests { | |||
467 | [ | 478 | [ |
468 | CompletionItem { | 479 | CompletionItem { |
469 | label: "Foo(…)", | 480 | label: "Foo(…)", |
470 | source_range: [115; 117), | 481 | source_range: 115..117, |
471 | delete: [115; 117), | 482 | delete: 115..117, |
472 | insert: "Foo($0)", | 483 | insert: "Foo($0)", |
473 | kind: EnumVariant, | 484 | kind: EnumVariant, |
474 | lookup: "Foo", | 485 | lookup: "Foo", |
@@ -495,8 +506,8 @@ mod tests { | |||
495 | [ | 506 | [ |
496 | CompletionItem { | 507 | CompletionItem { |
497 | label: "Foo", | 508 | label: "Foo", |
498 | source_range: [104; 106), | 509 | source_range: 104..106, |
499 | delete: [104; 106), | 510 | delete: 104..106, |
500 | insert: "Foo", | 511 | insert: "Foo", |
501 | kind: EnumVariant, | 512 | kind: EnumVariant, |
502 | detail: "()", | 513 | detail: "()", |
@@ -523,8 +534,8 @@ mod tests { | |||
523 | [ | 534 | [ |
524 | CompletionItem { | 535 | CompletionItem { |
525 | label: "main()", | 536 | label: "main()", |
526 | source_range: [203; 206), | 537 | source_range: 203..206, |
527 | delete: [203; 206), | 538 | delete: 203..206, |
528 | insert: "main()$0", | 539 | insert: "main()$0", |
529 | kind: Function, | 540 | kind: Function, |
530 | lookup: "main", | 541 | lookup: "main", |
@@ -532,8 +543,8 @@ mod tests { | |||
532 | }, | 543 | }, |
533 | CompletionItem { | 544 | CompletionItem { |
534 | label: "something_deprecated()", | 545 | label: "something_deprecated()", |
535 | source_range: [203; 206), | 546 | source_range: 203..206, |
536 | delete: [203; 206), | 547 | delete: 203..206, |
537 | insert: "something_deprecated()$0", | 548 | insert: "something_deprecated()$0", |
538 | kind: Function, | 549 | kind: Function, |
539 | lookup: "something_deprecated", | 550 | lookup: "something_deprecated", |
@@ -542,8 +553,8 @@ mod tests { | |||
542 | }, | 553 | }, |
543 | CompletionItem { | 554 | CompletionItem { |
544 | label: "something_else_deprecated()", | 555 | label: "something_else_deprecated()", |
545 | source_range: [203; 206), | 556 | source_range: 203..206, |
546 | delete: [203; 206), | 557 | delete: 203..206, |
547 | insert: "something_else_deprecated()$0", | 558 | insert: "something_else_deprecated()$0", |
548 | kind: Function, | 559 | kind: Function, |
549 | lookup: "something_else_deprecated", | 560 | lookup: "something_else_deprecated", |
@@ -569,8 +580,8 @@ mod tests { | |||
569 | [ | 580 | [ |
570 | CompletionItem { | 581 | CompletionItem { |
571 | label: "main()", | 582 | label: "main()", |
572 | source_range: [61; 64), | 583 | source_range: 61..64, |
573 | delete: [61; 64), | 584 | delete: 61..64, |
574 | insert: "main()$0", | 585 | insert: "main()$0", |
575 | kind: Function, | 586 | kind: Function, |
576 | lookup: "main", | 587 | lookup: "main", |
@@ -578,8 +589,8 @@ mod tests { | |||
578 | }, | 589 | }, |
579 | CompletionItem { | 590 | CompletionItem { |
580 | label: "no_args()", | 591 | label: "no_args()", |
581 | source_range: [61; 64), | 592 | source_range: 61..64, |
582 | delete: [61; 64), | 593 | delete: 61..64, |
583 | insert: "no_args()$0", | 594 | insert: "no_args()$0", |
584 | kind: Function, | 595 | kind: Function, |
585 | lookup: "no_args", | 596 | lookup: "no_args", |
@@ -599,8 +610,8 @@ mod tests { | |||
599 | [ | 610 | [ |
600 | CompletionItem { | 611 | CompletionItem { |
601 | label: "main()", | 612 | label: "main()", |
602 | source_range: [80; 85), | 613 | source_range: 80..85, |
603 | delete: [80; 85), | 614 | delete: 80..85, |
604 | insert: "main()$0", | 615 | insert: "main()$0", |
605 | kind: Function, | 616 | kind: Function, |
606 | lookup: "main", | 617 | lookup: "main", |
@@ -608,8 +619,8 @@ mod tests { | |||
608 | }, | 619 | }, |
609 | CompletionItem { | 620 | CompletionItem { |
610 | label: "with_args(…)", | 621 | label: "with_args(…)", |
611 | source_range: [80; 85), | 622 | source_range: 80..85, |
612 | delete: [80; 85), | 623 | delete: 80..85, |
613 | insert: "with_args(${1:x}, ${2:y})$0", | 624 | insert: "with_args(${1:x}, ${2:y})$0", |
614 | kind: Function, | 625 | kind: Function, |
615 | lookup: "with_args", | 626 | lookup: "with_args", |
@@ -635,8 +646,8 @@ mod tests { | |||
635 | [ | 646 | [ |
636 | CompletionItem { | 647 | CompletionItem { |
637 | label: "foo()", | 648 | label: "foo()", |
638 | source_range: [163; 164), | 649 | source_range: 163..164, |
639 | delete: [163; 164), | 650 | delete: 163..164, |
640 | insert: "foo()$0", | 651 | insert: "foo()$0", |
641 | kind: Method, | 652 | kind: Method, |
642 | lookup: "foo", | 653 | lookup: "foo", |
@@ -663,23 +674,23 @@ mod tests { | |||
663 | [ | 674 | [ |
664 | CompletionItem { | 675 | CompletionItem { |
665 | label: "None", | 676 | label: "None", |
666 | source_range: [144; 147), | 677 | source_range: 144..147, |
667 | delete: [144; 147), | 678 | delete: 144..147, |
668 | insert: "None", | 679 | insert: "None", |
669 | kind: EnumVariant, | 680 | kind: EnumVariant, |
670 | detail: "()", | 681 | detail: "()", |
671 | }, | 682 | }, |
672 | CompletionItem { | 683 | CompletionItem { |
673 | label: "Option", | 684 | label: "Option", |
674 | source_range: [144; 147), | 685 | source_range: 144..147, |
675 | delete: [144; 147), | 686 | delete: 144..147, |
676 | insert: "Option", | 687 | insert: "Option", |
677 | kind: Enum, | 688 | kind: Enum, |
678 | }, | 689 | }, |
679 | CompletionItem { | 690 | CompletionItem { |
680 | label: "Some(…)", | 691 | label: "Some(…)", |
681 | source_range: [144; 147), | 692 | source_range: 144..147, |
682 | delete: [144; 147), | 693 | delete: 144..147, |
683 | insert: "Some($0)", | 694 | insert: "Some($0)", |
684 | kind: EnumVariant, | 695 | kind: EnumVariant, |
685 | lookup: "Some", | 696 | lookup: "Some", |
@@ -688,8 +699,8 @@ mod tests { | |||
688 | }, | 699 | }, |
689 | CompletionItem { | 700 | CompletionItem { |
690 | label: "main()", | 701 | label: "main()", |
691 | source_range: [144; 147), | 702 | source_range: 144..147, |
692 | delete: [144; 147), | 703 | delete: 144..147, |
693 | insert: "main()$0", | 704 | insert: "main()$0", |
694 | kind: Function, | 705 | kind: Function, |
695 | lookup: "main", | 706 | lookup: "main", |
@@ -714,23 +725,23 @@ mod tests { | |||
714 | [ | 725 | [ |
715 | CompletionItem { | 726 | CompletionItem { |
716 | label: "None", | 727 | label: "None", |
717 | source_range: [185; 188), | 728 | source_range: 185..188, |
718 | delete: [185; 188), | 729 | delete: 185..188, |
719 | insert: "None", | 730 | insert: "None", |
720 | kind: EnumVariant, | 731 | kind: EnumVariant, |
721 | detail: "()", | 732 | detail: "()", |
722 | }, | 733 | }, |
723 | CompletionItem { | 734 | CompletionItem { |
724 | label: "Option", | 735 | label: "Option", |
725 | source_range: [185; 188), | 736 | source_range: 185..188, |
726 | delete: [185; 188), | 737 | delete: 185..188, |
727 | insert: "Option", | 738 | insert: "Option", |
728 | kind: Enum, | 739 | kind: Enum, |
729 | }, | 740 | }, |
730 | CompletionItem { | 741 | CompletionItem { |
731 | label: "Some(…)", | 742 | label: "Some(…)", |
732 | source_range: [185; 188), | 743 | source_range: 185..188, |
733 | delete: [185; 188), | 744 | delete: 185..188, |
734 | insert: "Some($0)", | 745 | insert: "Some($0)", |
735 | kind: EnumVariant, | 746 | kind: EnumVariant, |
736 | lookup: "Some", | 747 | lookup: "Some", |
@@ -760,8 +771,8 @@ mod tests { | |||
760 | [ | 771 | [ |
761 | CompletionItem { | 772 | CompletionItem { |
762 | label: "foo(…)", | 773 | label: "foo(…)", |
763 | source_range: [171; 172), | 774 | source_range: 171..172, |
764 | delete: [171; 172), | 775 | delete: 171..172, |
765 | insert: "foo(${1:x})$0", | 776 | insert: "foo(${1:x})$0", |
766 | kind: Method, | 777 | kind: Method, |
767 | lookup: "foo", | 778 | lookup: "foo", |
@@ -795,8 +806,8 @@ mod tests { | |||
795 | [ | 806 | [ |
796 | CompletionItem { | 807 | CompletionItem { |
797 | label: "foo(…)", | 808 | label: "foo(…)", |
798 | source_range: [171; 172), | 809 | source_range: 171..172, |
799 | delete: [171; 172), | 810 | delete: 171..172, |
800 | insert: "foo($0)", | 811 | insert: "foo($0)", |
801 | kind: Method, | 812 | kind: Method, |
802 | lookup: "foo", | 813 | lookup: "foo", |
@@ -822,8 +833,8 @@ mod tests { | |||
822 | [ | 833 | [ |
823 | CompletionItem { | 834 | CompletionItem { |
824 | label: "foo", | 835 | label: "foo", |
825 | source_range: [40; 41), | 836 | source_range: 40..41, |
826 | delete: [40; 41), | 837 | delete: 40..41, |
827 | insert: "foo", | 838 | insert: "foo", |
828 | kind: Function, | 839 | kind: Function, |
829 | detail: "pub fn foo()", | 840 | detail: "pub fn foo()", |
@@ -849,16 +860,16 @@ mod tests { | |||
849 | [ | 860 | [ |
850 | CompletionItem { | 861 | CompletionItem { |
851 | label: "frobnicate", | 862 | label: "frobnicate", |
852 | source_range: [35; 39), | 863 | source_range: 35..39, |
853 | delete: [35; 39), | 864 | delete: 35..39, |
854 | insert: "frobnicate", | 865 | insert: "frobnicate", |
855 | kind: Function, | 866 | kind: Function, |
856 | detail: "fn frobnicate()", | 867 | detail: "fn frobnicate()", |
857 | }, | 868 | }, |
858 | CompletionItem { | 869 | CompletionItem { |
859 | label: "main", | 870 | label: "main", |
860 | source_range: [35; 39), | 871 | source_range: 35..39, |
861 | delete: [35; 39), | 872 | delete: 35..39, |
862 | insert: "main", | 873 | insert: "main", |
863 | kind: Function, | 874 | kind: Function, |
864 | detail: "fn main()", | 875 | detail: "fn main()", |
@@ -881,8 +892,8 @@ mod tests { | |||
881 | [ | 892 | [ |
882 | CompletionItem { | 893 | CompletionItem { |
883 | label: "new", | 894 | label: "new", |
884 | source_range: [67; 69), | 895 | source_range: 67..69, |
885 | delete: [67; 69), | 896 | delete: 67..69, |
886 | insert: "new", | 897 | insert: "new", |
887 | kind: Function, | 898 | kind: Function, |
888 | detail: "fn new() -> Foo", | 899 | detail: "fn new() -> Foo", |
@@ -906,16 +917,16 @@ mod tests { | |||
906 | [ | 917 | [ |
907 | CompletionItem { | 918 | CompletionItem { |
908 | label: "Vec<…>", | 919 | label: "Vec<…>", |
909 | source_range: [61; 63), | 920 | source_range: 61..63, |
910 | delete: [61; 63), | 921 | delete: 61..63, |
911 | insert: "Vec<$0>", | 922 | insert: "Vec<$0>", |
912 | kind: Struct, | 923 | kind: Struct, |
913 | lookup: "Vec", | 924 | lookup: "Vec", |
914 | }, | 925 | }, |
915 | CompletionItem { | 926 | CompletionItem { |
916 | label: "foo(…)", | 927 | label: "foo(…)", |
917 | source_range: [61; 63), | 928 | source_range: 61..63, |
918 | delete: [61; 63), | 929 | delete: 61..63, |
919 | insert: "foo(${1:xs})$0", | 930 | insert: "foo(${1:xs})$0", |
920 | kind: Function, | 931 | kind: Function, |
921 | lookup: "foo", | 932 | lookup: "foo", |
@@ -936,16 +947,16 @@ mod tests { | |||
936 | [ | 947 | [ |
937 | CompletionItem { | 948 | CompletionItem { |
938 | label: "Vec<…>", | 949 | label: "Vec<…>", |
939 | source_range: [64; 66), | 950 | source_range: 64..66, |
940 | delete: [64; 66), | 951 | delete: 64..66, |
941 | insert: "Vec<$0>", | 952 | insert: "Vec<$0>", |
942 | kind: TypeAlias, | 953 | kind: TypeAlias, |
943 | lookup: "Vec", | 954 | lookup: "Vec", |
944 | }, | 955 | }, |
945 | CompletionItem { | 956 | CompletionItem { |
946 | label: "foo(…)", | 957 | label: "foo(…)", |
947 | source_range: [64; 66), | 958 | source_range: 64..66, |
948 | delete: [64; 66), | 959 | delete: 64..66, |
949 | insert: "foo(${1:xs})$0", | 960 | insert: "foo(${1:xs})$0", |
950 | kind: Function, | 961 | kind: Function, |
951 | lookup: "foo", | 962 | lookup: "foo", |
@@ -966,15 +977,15 @@ mod tests { | |||
966 | [ | 977 | [ |
967 | CompletionItem { | 978 | CompletionItem { |
968 | label: "Vec", | 979 | label: "Vec", |
969 | source_range: [68; 70), | 980 | source_range: 68..70, |
970 | delete: [68; 70), | 981 | delete: 68..70, |
971 | insert: "Vec", | 982 | insert: "Vec", |
972 | kind: Struct, | 983 | kind: Struct, |
973 | }, | 984 | }, |
974 | CompletionItem { | 985 | CompletionItem { |
975 | label: "foo(…)", | 986 | label: "foo(…)", |
976 | source_range: [68; 70), | 987 | source_range: 68..70, |
977 | delete: [68; 70), | 988 | delete: 68..70, |
978 | insert: "foo(${1:xs})$0", | 989 | insert: "foo(${1:xs})$0", |
979 | kind: Function, | 990 | kind: Function, |
980 | lookup: "foo", | 991 | lookup: "foo", |
@@ -995,15 +1006,15 @@ mod tests { | |||
995 | [ | 1006 | [ |
996 | CompletionItem { | 1007 | CompletionItem { |
997 | label: "Vec", | 1008 | label: "Vec", |
998 | source_range: [61; 63), | 1009 | source_range: 61..63, |
999 | delete: [61; 63), | 1010 | delete: 61..63, |
1000 | insert: "Vec", | 1011 | insert: "Vec", |
1001 | kind: Struct, | 1012 | kind: Struct, |
1002 | }, | 1013 | }, |
1003 | CompletionItem { | 1014 | CompletionItem { |
1004 | label: "foo(…)", | 1015 | label: "foo(…)", |
1005 | source_range: [61; 63), | 1016 | source_range: 61..63, |
1006 | delete: [61; 63), | 1017 | delete: 61..63, |
1007 | insert: "foo(${1:xs})$0", | 1018 | insert: "foo(${1:xs})$0", |
1008 | kind: Function, | 1019 | kind: Function, |
1009 | lookup: "foo", | 1020 | lookup: "foo", |
@@ -1035,8 +1046,8 @@ mod tests { | |||
1035 | [ | 1046 | [ |
1036 | CompletionItem { | 1047 | CompletionItem { |
1037 | label: "frobnicate!", | 1048 | label: "frobnicate!", |
1038 | source_range: [9; 9), | 1049 | source_range: 9..9, |
1039 | delete: [9; 9), | 1050 | delete: 9..9, |
1040 | insert: "frobnicate", | 1051 | insert: "frobnicate", |
1041 | kind: Macro, | 1052 | kind: Macro, |
1042 | detail: "#[macro_export]\nmacro_rules! frobnicate", | 1053 | detail: "#[macro_export]\nmacro_rules! frobnicate", |
@@ -1061,16 +1072,16 @@ mod tests { | |||
1061 | [ | 1072 | [ |
1062 | CompletionItem { | 1073 | CompletionItem { |
1063 | label: "frobnicate!", | 1074 | label: "frobnicate!", |
1064 | source_range: [56; 60), | 1075 | source_range: 56..60, |
1065 | delete: [56; 60), | 1076 | delete: 56..60, |
1066 | insert: "frobnicate", | 1077 | insert: "frobnicate", |
1067 | kind: Macro, | 1078 | kind: Macro, |
1068 | detail: "macro_rules! frobnicate", | 1079 | detail: "macro_rules! frobnicate", |
1069 | }, | 1080 | }, |
1070 | CompletionItem { | 1081 | CompletionItem { |
1071 | label: "main()", | 1082 | label: "main()", |
1072 | source_range: [56; 60), | 1083 | source_range: 56..60, |
1073 | delete: [56; 60), | 1084 | delete: 56..60, |
1074 | insert: "main()$0", | 1085 | insert: "main()$0", |
1075 | kind: Function, | 1086 | kind: Function, |
1076 | lookup: "main", | 1087 | lookup: "main", |
@@ -1098,24 +1109,24 @@ mod tests { | |||
1098 | [ | 1109 | [ |
1099 | CompletionItem { | 1110 | CompletionItem { |
1100 | label: "another_field", | 1111 | label: "another_field", |
1101 | source_range: [201; 201), | 1112 | source_range: 201..201, |
1102 | delete: [201; 201), | 1113 | delete: 201..201, |
1103 | insert: "another_field", | 1114 | insert: "another_field", |
1104 | kind: Field, | 1115 | kind: Field, |
1105 | detail: "i64", | 1116 | detail: "i64", |
1106 | }, | 1117 | }, |
1107 | CompletionItem { | 1118 | CompletionItem { |
1108 | label: "my_string", | 1119 | label: "my_string", |
1109 | source_range: [201; 201), | 1120 | source_range: 201..201, |
1110 | delete: [201; 201), | 1121 | delete: 201..201, |
1111 | insert: "my_string", | 1122 | insert: "my_string", |
1112 | kind: Field, | 1123 | kind: Field, |
1113 | detail: "{unknown}", | 1124 | detail: "{unknown}", |
1114 | }, | 1125 | }, |
1115 | CompletionItem { | 1126 | CompletionItem { |
1116 | label: "the_field", | 1127 | label: "the_field", |
1117 | source_range: [201; 201), | 1128 | source_range: 201..201, |
1118 | delete: [201; 201), | 1129 | delete: 201..201, |
1119 | insert: "the_field", | 1130 | insert: "the_field", |
1120 | kind: Field, | 1131 | kind: Field, |
1121 | detail: "u32", | 1132 | detail: "u32", |
@@ -1142,16 +1153,16 @@ mod tests { | |||
1142 | [ | 1153 | [ |
1143 | CompletionItem { | 1154 | CompletionItem { |
1144 | label: "another_field", | 1155 | label: "another_field", |
1145 | source_range: [208; 208), | 1156 | source_range: 208..208, |
1146 | delete: [208; 208), | 1157 | delete: 208..208, |
1147 | insert: "another_field", | 1158 | insert: "another_field", |
1148 | kind: Field, | 1159 | kind: Field, |
1149 | detail: "i64", | 1160 | detail: "i64", |
1150 | }, | 1161 | }, |
1151 | CompletionItem { | 1162 | CompletionItem { |
1152 | label: "another_good_type", | 1163 | label: "another_good_type", |
1153 | source_range: [208; 208), | 1164 | source_range: 208..208, |
1154 | delete: [208; 208), | 1165 | delete: 208..208, |
1155 | insert: "another_good_type", | 1166 | insert: "another_good_type", |
1156 | kind: Field, | 1167 | kind: Field, |
1157 | detail: "u32", | 1168 | detail: "u32", |
@@ -1159,8 +1170,8 @@ mod tests { | |||
1159 | }, | 1170 | }, |
1160 | CompletionItem { | 1171 | CompletionItem { |
1161 | label: "the_field", | 1172 | label: "the_field", |
1162 | source_range: [208; 208), | 1173 | source_range: 208..208, |
1163 | delete: [208; 208), | 1174 | delete: 208..208, |
1164 | insert: "the_field", | 1175 | insert: "the_field", |
1165 | kind: Field, | 1176 | kind: Field, |
1166 | detail: "u32", | 1177 | detail: "u32", |
@@ -1190,16 +1201,16 @@ mod tests { | |||
1190 | [ | 1201 | [ |
1191 | CompletionItem { | 1202 | CompletionItem { |
1192 | label: "another_field", | 1203 | label: "another_field", |
1193 | source_range: [270; 270), | 1204 | source_range: 270..270, |
1194 | delete: [270; 270), | 1205 | delete: 270..270, |
1195 | insert: "another_field", | 1206 | insert: "another_field", |
1196 | kind: Field, | 1207 | kind: Field, |
1197 | detail: "i64", | 1208 | detail: "i64", |
1198 | }, | 1209 | }, |
1199 | CompletionItem { | 1210 | CompletionItem { |
1200 | label: "another_good_type", | 1211 | label: "another_good_type", |
1201 | source_range: [270; 270), | 1212 | source_range: 270..270, |
1202 | delete: [270; 270), | 1213 | delete: 270..270, |
1203 | insert: "another_good_type", | 1214 | insert: "another_good_type", |
1204 | kind: Field, | 1215 | kind: Field, |
1205 | detail: "u32", | 1216 | detail: "u32", |
@@ -1207,8 +1218,8 @@ mod tests { | |||
1207 | }, | 1218 | }, |
1208 | CompletionItem { | 1219 | CompletionItem { |
1209 | label: "the_field", | 1220 | label: "the_field", |
1210 | source_range: [270; 270), | 1221 | source_range: 270..270, |
1211 | delete: [270; 270), | 1222 | delete: 270..270, |
1212 | insert: "the_field", | 1223 | insert: "the_field", |
1213 | kind: Field, | 1224 | kind: Field, |
1214 | detail: "u32", | 1225 | detail: "u32", |
@@ -1238,8 +1249,8 @@ mod tests { | |||
1238 | [ | 1249 | [ |
1239 | CompletionItem { | 1250 | CompletionItem { |
1240 | label: "another_field", | 1251 | label: "another_field", |
1241 | source_range: [336; 336), | 1252 | source_range: 336..336, |
1242 | delete: [336; 336), | 1253 | delete: 336..336, |
1243 | insert: "another_field", | 1254 | insert: "another_field", |
1244 | kind: Field, | 1255 | kind: Field, |
1245 | detail: "i64", | 1256 | detail: "i64", |
@@ -1247,16 +1258,16 @@ mod tests { | |||
1247 | }, | 1258 | }, |
1248 | CompletionItem { | 1259 | CompletionItem { |
1249 | label: "another_good_type", | 1260 | label: "another_good_type", |
1250 | source_range: [336; 336), | 1261 | source_range: 336..336, |
1251 | delete: [336; 336), | 1262 | delete: 336..336, |
1252 | insert: "another_good_type", | 1263 | insert: "another_good_type", |
1253 | kind: Field, | 1264 | kind: Field, |
1254 | detail: "u32", | 1265 | detail: "u32", |
1255 | }, | 1266 | }, |
1256 | CompletionItem { | 1267 | CompletionItem { |
1257 | label: "the_field", | 1268 | label: "the_field", |
1258 | source_range: [336; 336), | 1269 | source_range: 336..336, |
1259 | delete: [336; 336), | 1270 | delete: 336..336, |
1260 | insert: "the_field", | 1271 | insert: "the_field", |
1261 | kind: Field, | 1272 | kind: Field, |
1262 | detail: "u32", | 1273 | detail: "u32", |
@@ -1285,16 +1296,16 @@ mod tests { | |||
1285 | [ | 1296 | [ |
1286 | CompletionItem { | 1297 | CompletionItem { |
1287 | label: "another_field", | 1298 | label: "another_field", |
1288 | source_range: [328; 328), | 1299 | source_range: 328..328, |
1289 | delete: [328; 328), | 1300 | delete: 328..328, |
1290 | insert: "another_field", | 1301 | insert: "another_field", |
1291 | kind: Field, | 1302 | kind: Field, |
1292 | detail: "i64", | 1303 | detail: "i64", |
1293 | }, | 1304 | }, |
1294 | CompletionItem { | 1305 | CompletionItem { |
1295 | label: "another_good_type", | 1306 | label: "another_good_type", |
1296 | source_range: [328; 328), | 1307 | source_range: 328..328, |
1297 | delete: [328; 328), | 1308 | delete: 328..328, |
1298 | insert: "another_good_type", | 1309 | insert: "another_good_type", |
1299 | kind: Field, | 1310 | kind: Field, |
1300 | detail: "u32", | 1311 | detail: "u32", |
@@ -1302,8 +1313,8 @@ mod tests { | |||
1302 | }, | 1313 | }, |
1303 | CompletionItem { | 1314 | CompletionItem { |
1304 | label: "the_field", | 1315 | label: "the_field", |
1305 | source_range: [328; 328), | 1316 | source_range: 328..328, |
1306 | delete: [328; 328), | 1317 | delete: 328..328, |
1307 | insert: "the_field", | 1318 | insert: "the_field", |
1308 | kind: Field, | 1319 | kind: Field, |
1309 | detail: "u32", | 1320 | detail: "u32", |
diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs index e7e201709..a6b4c2c28 100644 --- a/crates/ra_ide/src/diagnostics.rs +++ b/crates/ra_ide/src/diagnostics.rs | |||
@@ -171,7 +171,7 @@ fn text_edit_for_remove_unnecessary_braces_with_self_in_use_statement( | |||
171 | if single_use_tree.path()?.segment()?.syntax().first_child_or_token()?.kind() == T![self] { | 171 | if single_use_tree.path()?.segment()?.syntax().first_child_or_token()?.kind() == T![self] { |
172 | let start = use_tree_list_node.prev_sibling_or_token()?.text_range().start(); | 172 | let start = use_tree_list_node.prev_sibling_or_token()?.text_range().start(); |
173 | let end = use_tree_list_node.text_range().end(); | 173 | let end = use_tree_list_node.text_range().end(); |
174 | let range = TextRange::from_to(start, end); | 174 | let range = TextRange::new(start, end); |
175 | return Some(TextEdit::delete(range)); | 175 | return Some(TextEdit::delete(range)); |
176 | } | 176 | } |
177 | None | 177 | None |
@@ -277,7 +277,7 @@ mod tests { | |||
277 | assert!( | 277 | assert!( |
278 | diagnostic.range.start() <= file_position.offset | 278 | diagnostic.range.start() <= file_position.offset |
279 | && diagnostic.range.end() >= file_position.offset, | 279 | && diagnostic.range.end() >= file_position.offset, |
280 | "diagnostic range {} does not touch cursor position {}", | 280 | "diagnostic range {:?} does not touch cursor position {:?}", |
281 | diagnostic.range, | 281 | diagnostic.range, |
282 | file_position.offset | 282 | file_position.offset |
283 | ); | 283 | ); |
@@ -603,7 +603,7 @@ mod tests { | |||
603 | [ | 603 | [ |
604 | Diagnostic { | 604 | Diagnostic { |
605 | message: "unresolved module", | 605 | message: "unresolved module", |
606 | range: [0; 8), | 606 | range: 0..8, |
607 | fix: Some( | 607 | fix: Some( |
608 | SourceChange { | 608 | SourceChange { |
609 | label: "create module", | 609 | label: "create module", |
@@ -652,7 +652,7 @@ mod tests { | |||
652 | [ | 652 | [ |
653 | Diagnostic { | 653 | Diagnostic { |
654 | message: "Missing structure fields:\n- b", | 654 | message: "Missing structure fields:\n- b", |
655 | range: [224; 233), | 655 | range: 224..233, |
656 | fix: Some( | 656 | fix: Some( |
657 | SourceChange { | 657 | SourceChange { |
658 | label: "fill struct fields", | 658 | label: "fill struct fields", |
@@ -664,7 +664,7 @@ mod tests { | |||
664 | edit: TextEdit { | 664 | edit: TextEdit { |
665 | atoms: [ | 665 | atoms: [ |
666 | AtomTextEdit { | 666 | AtomTextEdit { |
667 | delete: [3; 9), | 667 | delete: 3..9, |
668 | insert: "{a:42, b: ()}", | 668 | insert: "{a:42, b: ()}", |
669 | }, | 669 | }, |
670 | ], | 670 | ], |
diff --git a/crates/ra_ide/src/display/structure.rs b/crates/ra_ide/src/display/structure.rs index 7a774785c..967eee5d2 100644 --- a/crates/ra_ide/src/display/structure.rs +++ b/crates/ra_ide/src/display/structure.rs | |||
@@ -224,8 +224,8 @@ fn very_obsolete() {} | |||
224 | StructureNode { | 224 | StructureNode { |
225 | parent: None, | 225 | parent: None, |
226 | label: "Foo", | 226 | label: "Foo", |
227 | navigation_range: [8; 11), | 227 | navigation_range: 8..11, |
228 | node_range: [1; 26), | 228 | node_range: 1..26, |
229 | kind: STRUCT_DEF, | 229 | kind: STRUCT_DEF, |
230 | detail: None, | 230 | detail: None, |
231 | deprecated: false, | 231 | deprecated: false, |
@@ -235,8 +235,8 @@ fn very_obsolete() {} | |||
235 | 0, | 235 | 0, |
236 | ), | 236 | ), |
237 | label: "x", | 237 | label: "x", |
238 | navigation_range: [18; 19), | 238 | navigation_range: 18..19, |
239 | node_range: [18; 24), | 239 | node_range: 18..24, |
240 | kind: RECORD_FIELD_DEF, | 240 | kind: RECORD_FIELD_DEF, |
241 | detail: Some( | 241 | detail: Some( |
242 | "i32", | 242 | "i32", |
@@ -246,8 +246,8 @@ fn very_obsolete() {} | |||
246 | StructureNode { | 246 | StructureNode { |
247 | parent: None, | 247 | parent: None, |
248 | label: "m", | 248 | label: "m", |
249 | navigation_range: [32; 33), | 249 | navigation_range: 32..33, |
250 | node_range: [28; 158), | 250 | node_range: 28..158, |
251 | kind: MODULE, | 251 | kind: MODULE, |
252 | detail: None, | 252 | detail: None, |
253 | deprecated: false, | 253 | deprecated: false, |
@@ -257,8 +257,8 @@ fn very_obsolete() {} | |||
257 | 2, | 257 | 2, |
258 | ), | 258 | ), |
259 | label: "bar1", | 259 | label: "bar1", |
260 | navigation_range: [43; 47), | 260 | navigation_range: 43..47, |
261 | node_range: [40; 52), | 261 | node_range: 40..52, |
262 | kind: FN_DEF, | 262 | kind: FN_DEF, |
263 | detail: Some( | 263 | detail: Some( |
264 | "fn()", | 264 | "fn()", |
@@ -270,8 +270,8 @@ fn very_obsolete() {} | |||
270 | 2, | 270 | 2, |
271 | ), | 271 | ), |
272 | label: "bar2", | 272 | label: "bar2", |
273 | navigation_range: [60; 64), | 273 | navigation_range: 60..64, |
274 | node_range: [57; 81), | 274 | node_range: 57..81, |
275 | kind: FN_DEF, | 275 | kind: FN_DEF, |
276 | detail: Some( | 276 | detail: Some( |
277 | "fn<T>(t: T) -> T", | 277 | "fn<T>(t: T) -> T", |
@@ -283,8 +283,8 @@ fn very_obsolete() {} | |||
283 | 2, | 283 | 2, |
284 | ), | 284 | ), |
285 | label: "bar3", | 285 | label: "bar3", |
286 | navigation_range: [89; 93), | 286 | navigation_range: 89..93, |
287 | node_range: [86; 156), | 287 | node_range: 86..156, |
288 | kind: FN_DEF, | 288 | kind: FN_DEF, |
289 | detail: Some( | 289 | detail: Some( |
290 | "fn<A, B>(a: A, b: B) -> Vec< u32 >", | 290 | "fn<A, B>(a: A, b: B) -> Vec< u32 >", |
@@ -294,8 +294,8 @@ fn very_obsolete() {} | |||
294 | StructureNode { | 294 | StructureNode { |
295 | parent: None, | 295 | parent: None, |
296 | label: "E", | 296 | label: "E", |
297 | navigation_range: [165; 166), | 297 | navigation_range: 165..166, |
298 | node_range: [160; 180), | 298 | node_range: 160..180, |
299 | kind: ENUM_DEF, | 299 | kind: ENUM_DEF, |
300 | detail: None, | 300 | detail: None, |
301 | deprecated: false, | 301 | deprecated: false, |
@@ -305,8 +305,8 @@ fn very_obsolete() {} | |||
305 | 6, | 305 | 6, |
306 | ), | 306 | ), |
307 | label: "X", | 307 | label: "X", |
308 | navigation_range: [169; 170), | 308 | navigation_range: 169..170, |
309 | node_range: [169; 170), | 309 | node_range: 169..170, |
310 | kind: ENUM_VARIANT, | 310 | kind: ENUM_VARIANT, |
311 | detail: None, | 311 | detail: None, |
312 | deprecated: false, | 312 | deprecated: false, |
@@ -316,8 +316,8 @@ fn very_obsolete() {} | |||
316 | 6, | 316 | 6, |
317 | ), | 317 | ), |
318 | label: "Y", | 318 | label: "Y", |
319 | navigation_range: [172; 173), | 319 | navigation_range: 172..173, |
320 | node_range: [172; 178), | 320 | node_range: 172..178, |
321 | kind: ENUM_VARIANT, | 321 | kind: ENUM_VARIANT, |
322 | detail: None, | 322 | detail: None, |
323 | deprecated: false, | 323 | deprecated: false, |
@@ -325,8 +325,8 @@ fn very_obsolete() {} | |||
325 | StructureNode { | 325 | StructureNode { |
326 | parent: None, | 326 | parent: None, |
327 | label: "T", | 327 | label: "T", |
328 | navigation_range: [186; 187), | 328 | navigation_range: 186..187, |
329 | node_range: [181; 193), | 329 | node_range: 181..193, |
330 | kind: TYPE_ALIAS_DEF, | 330 | kind: TYPE_ALIAS_DEF, |
331 | detail: Some( | 331 | detail: Some( |
332 | "()", | 332 | "()", |
@@ -336,8 +336,8 @@ fn very_obsolete() {} | |||
336 | StructureNode { | 336 | StructureNode { |
337 | parent: None, | 337 | parent: None, |
338 | label: "S", | 338 | label: "S", |
339 | navigation_range: [201; 202), | 339 | navigation_range: 201..202, |
340 | node_range: [194; 213), | 340 | node_range: 194..213, |
341 | kind: STATIC_DEF, | 341 | kind: STATIC_DEF, |
342 | detail: Some( | 342 | detail: Some( |
343 | "i32", | 343 | "i32", |
@@ -347,8 +347,8 @@ fn very_obsolete() {} | |||
347 | StructureNode { | 347 | StructureNode { |
348 | parent: None, | 348 | parent: None, |
349 | label: "C", | 349 | label: "C", |
350 | navigation_range: [220; 221), | 350 | navigation_range: 220..221, |
351 | node_range: [214; 232), | 351 | node_range: 214..232, |
352 | kind: CONST_DEF, | 352 | kind: CONST_DEF, |
353 | detail: Some( | 353 | detail: Some( |
354 | "i32", | 354 | "i32", |
@@ -358,8 +358,8 @@ fn very_obsolete() {} | |||
358 | StructureNode { | 358 | StructureNode { |
359 | parent: None, | 359 | parent: None, |
360 | label: "impl E", | 360 | label: "impl E", |
361 | navigation_range: [239; 240), | 361 | navigation_range: 239..240, |
362 | node_range: [234; 243), | 362 | node_range: 234..243, |
363 | kind: IMPL_DEF, | 363 | kind: IMPL_DEF, |
364 | detail: None, | 364 | detail: None, |
365 | deprecated: false, | 365 | deprecated: false, |
@@ -367,8 +367,8 @@ fn very_obsolete() {} | |||
367 | StructureNode { | 367 | StructureNode { |
368 | parent: None, | 368 | parent: None, |
369 | label: "impl fmt::Debug for E", | 369 | label: "impl fmt::Debug for E", |
370 | navigation_range: [265; 266), | 370 | navigation_range: 265..266, |
371 | node_range: [245; 269), | 371 | node_range: 245..269, |
372 | kind: IMPL_DEF, | 372 | kind: IMPL_DEF, |
373 | detail: None, | 373 | detail: None, |
374 | deprecated: false, | 374 | deprecated: false, |
@@ -376,8 +376,8 @@ fn very_obsolete() {} | |||
376 | StructureNode { | 376 | StructureNode { |
377 | parent: None, | 377 | parent: None, |
378 | label: "mc", | 378 | label: "mc", |
379 | navigation_range: [284; 286), | 379 | navigation_range: 284..286, |
380 | node_range: [271; 303), | 380 | node_range: 271..303, |
381 | kind: MACRO_CALL, | 381 | kind: MACRO_CALL, |
382 | detail: None, | 382 | detail: None, |
383 | deprecated: false, | 383 | deprecated: false, |
@@ -385,8 +385,8 @@ fn very_obsolete() {} | |||
385 | StructureNode { | 385 | StructureNode { |
386 | parent: None, | 386 | parent: None, |
387 | label: "mcexp", | 387 | label: "mcexp", |
388 | navigation_range: [334; 339), | 388 | navigation_range: 334..339, |
389 | node_range: [305; 356), | 389 | node_range: 305..356, |
390 | kind: MACRO_CALL, | 390 | kind: MACRO_CALL, |
391 | detail: None, | 391 | detail: None, |
392 | deprecated: false, | 392 | deprecated: false, |
@@ -394,8 +394,8 @@ fn very_obsolete() {} | |||
394 | StructureNode { | 394 | StructureNode { |
395 | parent: None, | 395 | parent: None, |
396 | label: "mcexp", | 396 | label: "mcexp", |
397 | navigation_range: [387; 392), | 397 | navigation_range: 387..392, |
398 | node_range: [358; 409), | 398 | node_range: 358..409, |
399 | kind: MACRO_CALL, | 399 | kind: MACRO_CALL, |
400 | detail: None, | 400 | detail: None, |
401 | deprecated: false, | 401 | deprecated: false, |
@@ -403,8 +403,8 @@ fn very_obsolete() {} | |||
403 | StructureNode { | 403 | StructureNode { |
404 | parent: None, | 404 | parent: None, |
405 | label: "obsolete", | 405 | label: "obsolete", |
406 | navigation_range: [428; 436), | 406 | navigation_range: 428..436, |
407 | node_range: [411; 441), | 407 | node_range: 411..441, |
408 | kind: FN_DEF, | 408 | kind: FN_DEF, |
409 | detail: Some( | 409 | detail: Some( |
410 | "fn()", | 410 | "fn()", |
@@ -414,8 +414,8 @@ fn very_obsolete() {} | |||
414 | StructureNode { | 414 | StructureNode { |
415 | parent: None, | 415 | parent: None, |
416 | label: "very_obsolete", | 416 | label: "very_obsolete", |
417 | navigation_range: [481; 494), | 417 | navigation_range: 481..494, |
418 | node_range: [443; 499), | 418 | node_range: 443..499, |
419 | kind: FN_DEF, | 419 | kind: FN_DEF, |
420 | detail: Some( | 420 | detail: Some( |
421 | "fn()", | 421 | "fn()", |
diff --git a/crates/ra_ide/src/extend_selection.rs b/crates/ra_ide/src/extend_selection.rs index 753d2ef6a..554594a43 100644 --- a/crates/ra_ide/src/extend_selection.rs +++ b/crates/ra_ide/src/extend_selection.rs | |||
@@ -9,7 +9,7 @@ use ra_syntax::{ | |||
9 | ast::{self, AstNode, AstToken}, | 9 | ast::{self, AstNode, AstToken}, |
10 | Direction, NodeOrToken, | 10 | Direction, NodeOrToken, |
11 | SyntaxKind::{self, *}, | 11 | SyntaxKind::{self, *}, |
12 | SyntaxNode, SyntaxToken, TextRange, TextUnit, TokenAtOffset, T, | 12 | SyntaxNode, SyntaxToken, TextRange, TextSize, TokenAtOffset, T, |
13 | }; | 13 | }; |
14 | 14 | ||
15 | use crate::FileRange; | 15 | use crate::FileRange; |
@@ -121,10 +121,10 @@ fn extend_tokens_from_range( | |||
121 | let mut first_token = skip_trivia_token(first_token, Direction::Next)?; | 121 | let mut first_token = skip_trivia_token(first_token, Direction::Next)?; |
122 | let mut last_token = skip_trivia_token(last_token, Direction::Prev)?; | 122 | let mut last_token = skip_trivia_token(last_token, Direction::Prev)?; |
123 | 123 | ||
124 | while !first_token.text_range().is_subrange(&original_range) { | 124 | while !original_range.contains_range(first_token.text_range()) { |
125 | first_token = skip_trivia_token(first_token.next_token()?, Direction::Next)?; | 125 | first_token = skip_trivia_token(first_token.next_token()?, Direction::Next)?; |
126 | } | 126 | } |
127 | while !last_token.text_range().is_subrange(&original_range) { | 127 | while !original_range.contains_range(last_token.text_range()) { |
128 | last_token = skip_trivia_token(last_token.prev_token()?, Direction::Prev)?; | 128 | last_token = skip_trivia_token(last_token.prev_token()?, Direction::Prev)?; |
129 | } | 129 | } |
130 | 130 | ||
@@ -161,8 +161,8 @@ fn extend_tokens_from_range( | |||
161 | .take_while(validate) | 161 | .take_while(validate) |
162 | .last()?; | 162 | .last()?; |
163 | 163 | ||
164 | let range = first.text_range().extend_to(&last.text_range()); | 164 | let range = first.text_range().cover(last.text_range()); |
165 | if original_range.is_subrange(&range) && original_range != range { | 165 | if range.contains_range(original_range) && original_range != range { |
166 | Some(range) | 166 | Some(range) |
167 | } else { | 167 | } else { |
168 | None | 168 | None |
@@ -176,7 +176,7 @@ fn shallowest_node(node: &SyntaxNode) -> SyntaxNode { | |||
176 | 176 | ||
177 | fn extend_single_word_in_comment_or_string( | 177 | fn extend_single_word_in_comment_or_string( |
178 | leaf: &SyntaxToken, | 178 | leaf: &SyntaxToken, |
179 | offset: TextUnit, | 179 | offset: TextSize, |
180 | ) -> Option<TextRange> { | 180 | ) -> Option<TextRange> { |
181 | let text: &str = leaf.text(); | 181 | let text: &str = leaf.text(); |
182 | let cursor_position: u32 = (offset - leaf.text_range().start()).into(); | 182 | let cursor_position: u32 = (offset - leaf.text_range().start()).into(); |
@@ -190,10 +190,10 @@ fn extend_single_word_in_comment_or_string( | |||
190 | let start_idx = before.rfind(non_word_char)? as u32; | 190 | let start_idx = before.rfind(non_word_char)? as u32; |
191 | let end_idx = after.find(non_word_char).unwrap_or_else(|| after.len()) as u32; | 191 | let end_idx = after.find(non_word_char).unwrap_or_else(|| after.len()) as u32; |
192 | 192 | ||
193 | let from: TextUnit = (start_idx + 1).into(); | 193 | let from: TextSize = (start_idx + 1).into(); |
194 | let to: TextUnit = (cursor_position + end_idx).into(); | 194 | let to: TextSize = (cursor_position + end_idx).into(); |
195 | 195 | ||
196 | let range = TextRange::from_to(from, to); | 196 | let range = TextRange::new(from, to); |
197 | if range.is_empty() { | 197 | if range.is_empty() { |
198 | None | 198 | None |
199 | } else { | 199 | } else { |
@@ -201,24 +201,24 @@ fn extend_single_word_in_comment_or_string( | |||
201 | } | 201 | } |
202 | } | 202 | } |
203 | 203 | ||
204 | fn extend_ws(root: &SyntaxNode, ws: SyntaxToken, offset: TextUnit) -> TextRange { | 204 | fn extend_ws(root: &SyntaxNode, ws: SyntaxToken, offset: TextSize) -> TextRange { |
205 | let ws_text = ws.text(); | 205 | let ws_text = ws.text(); |
206 | let suffix = TextRange::from_to(offset, ws.text_range().end()) - ws.text_range().start(); | 206 | let suffix = TextRange::new(offset, ws.text_range().end()) - ws.text_range().start(); |
207 | let prefix = TextRange::from_to(ws.text_range().start(), offset) - ws.text_range().start(); | 207 | let prefix = TextRange::new(ws.text_range().start(), offset) - ws.text_range().start(); |
208 | let ws_suffix = &ws_text.as_str()[suffix]; | 208 | let ws_suffix = &ws_text.as_str()[suffix]; |
209 | let ws_prefix = &ws_text.as_str()[prefix]; | 209 | let ws_prefix = &ws_text.as_str()[prefix]; |
210 | if ws_text.contains('\n') && !ws_suffix.contains('\n') { | 210 | if ws_text.contains('\n') && !ws_suffix.contains('\n') { |
211 | if let Some(node) = ws.next_sibling_or_token() { | 211 | if let Some(node) = ws.next_sibling_or_token() { |
212 | let start = match ws_prefix.rfind('\n') { | 212 | let start = match ws_prefix.rfind('\n') { |
213 | Some(idx) => ws.text_range().start() + TextUnit::from((idx + 1) as u32), | 213 | Some(idx) => ws.text_range().start() + TextSize::from((idx + 1) as u32), |
214 | None => node.text_range().start(), | 214 | None => node.text_range().start(), |
215 | }; | 215 | }; |
216 | let end = if root.text().char_at(node.text_range().end()) == Some('\n') { | 216 | let end = if root.text().char_at(node.text_range().end()) == Some('\n') { |
217 | node.text_range().end() + TextUnit::of_char('\n') | 217 | node.text_range().end() + TextSize::of('\n') |
218 | } else { | 218 | } else { |
219 | node.text_range().end() | 219 | node.text_range().end() |
220 | }; | 220 | }; |
221 | return TextRange::from_to(start, end); | 221 | return TextRange::new(start, end); |
222 | } | 222 | } |
223 | } | 223 | } |
224 | ws.text_range() | 224 | ws.text_range() |
@@ -270,13 +270,10 @@ fn extend_list_item(node: &SyntaxNode) -> Option<TextRange> { | |||
270 | .filter(|node| is_single_line_ws(node)) | 270 | .filter(|node| is_single_line_ws(node)) |
271 | .unwrap_or(delimiter_node); | 271 | .unwrap_or(delimiter_node); |
272 | 272 | ||
273 | return Some(TextRange::from_to(node.text_range().start(), final_node.text_range().end())); | 273 | return Some(TextRange::new(node.text_range().start(), final_node.text_range().end())); |
274 | } | 274 | } |
275 | if let Some(delimiter_node) = nearby_delimiter(delimiter, node, Direction::Prev) { | 275 | if let Some(delimiter_node) = nearby_delimiter(delimiter, node, Direction::Prev) { |
276 | return Some(TextRange::from_to( | 276 | return Some(TextRange::new(delimiter_node.text_range().start(), node.text_range().end())); |
277 | delimiter_node.text_range().start(), | ||
278 | node.text_range().end(), | ||
279 | )); | ||
280 | } | 277 | } |
281 | 278 | ||
282 | None | 279 | None |
@@ -286,10 +283,7 @@ fn extend_comments(comment: ast::Comment) -> Option<TextRange> { | |||
286 | let prev = adj_comments(&comment, Direction::Prev); | 283 | let prev = adj_comments(&comment, Direction::Prev); |
287 | let next = adj_comments(&comment, Direction::Next); | 284 | let next = adj_comments(&comment, Direction::Next); |
288 | if prev != next { | 285 | if prev != next { |
289 | Some(TextRange::from_to( | 286 | Some(TextRange::new(prev.syntax().text_range().start(), next.syntax().text_range().end())) |
290 | prev.syntax().text_range().start(), | ||
291 | next.syntax().text_range().end(), | ||
292 | )) | ||
293 | } else { | 287 | } else { |
294 | None | 288 | None |
295 | } | 289 | } |
@@ -322,7 +316,7 @@ mod tests { | |||
322 | fn do_check(before: &str, afters: &[&str]) { | 316 | fn do_check(before: &str, afters: &[&str]) { |
323 | let (cursor, before) = extract_offset(before); | 317 | let (cursor, before) = extract_offset(before); |
324 | let (analysis, file_id) = single_file(&before); | 318 | let (analysis, file_id) = single_file(&before); |
325 | let range = TextRange::offset_len(cursor, 0.into()); | 319 | let range = TextRange::empty(cursor); |
326 | let mut frange = FileRange { file_id, range }; | 320 | let mut frange = FileRange { file_id, range }; |
327 | 321 | ||
328 | for &after in afters { | 322 | for &after in afters { |
diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ra_ide/src/folding_ranges.rs index 4eeb76d14..4379005aa 100644 --- a/crates/ra_ide/src/folding_ranges.rs +++ b/crates/ra_ide/src/folding_ranges.rs | |||
@@ -141,7 +141,7 @@ fn contiguous_range_for_group_unless( | |||
141 | } | 141 | } |
142 | 142 | ||
143 | if first != &last { | 143 | if first != &last { |
144 | Some(TextRange::from_to(first.text_range().start(), last.text_range().end())) | 144 | Some(TextRange::new(first.text_range().start(), last.text_range().end())) |
145 | } else { | 145 | } else { |
146 | // The group consists of only one element, therefore it cannot be folded | 146 | // The group consists of only one element, therefore it cannot be folded |
147 | None | 147 | None |
@@ -187,10 +187,7 @@ fn contiguous_range_for_comment( | |||
187 | } | 187 | } |
188 | 188 | ||
189 | if first != last { | 189 | if first != last { |
190 | Some(TextRange::from_to( | 190 | Some(TextRange::new(first.syntax().text_range().start(), last.syntax().text_range().end())) |
191 | first.syntax().text_range().start(), | ||
192 | last.syntax().text_range().end(), | ||
193 | )) | ||
194 | } else { | 191 | } else { |
195 | // The group consists of only one element, therefore it cannot be folded | 192 | // The group consists of only one element, therefore it cannot be folded |
196 | None | 193 | None |
diff --git a/crates/ra_ide/src/goto_definition.rs b/crates/ra_ide/src/goto_definition.rs index 9998ca5a3..1dfca819d 100644 --- a/crates/ra_ide/src/goto_definition.rs +++ b/crates/ra_ide/src/goto_definition.rs | |||
@@ -140,7 +140,7 @@ mod tests { | |||
140 | struct Foo; | 140 | struct Foo; |
141 | enum E { X(Foo<|>) } | 141 | enum E { X(Foo<|>) } |
142 | ", | 142 | ", |
143 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 143 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
144 | "struct Foo;|Foo", | 144 | "struct Foo;|Foo", |
145 | ); | 145 | ); |
146 | } | 146 | } |
@@ -153,7 +153,7 @@ mod tests { | |||
153 | struct Foo; | 153 | struct Foo; |
154 | enum E { X(<|>Foo) } | 154 | enum E { X(<|>Foo) } |
155 | ", | 155 | ", |
156 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 156 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
157 | "struct Foo;|Foo", | 157 | "struct Foo;|Foo", |
158 | ); | 158 | ); |
159 | } | 159 | } |
@@ -174,7 +174,7 @@ mod tests { | |||
174 | //- /b.rs | 174 | //- /b.rs |
175 | struct Foo; | 175 | struct Foo; |
176 | ", | 176 | ", |
177 | "Foo STRUCT_DEF FileId(2) [0; 11) [7; 10)", | 177 | "Foo STRUCT_DEF FileId(2) 0..11 7..10", |
178 | "struct Foo;|Foo", | 178 | "struct Foo;|Foo", |
179 | ); | 179 | ); |
180 | } | 180 | } |
@@ -189,7 +189,7 @@ mod tests { | |||
189 | //- /foo.rs | 189 | //- /foo.rs |
190 | // empty | 190 | // empty |
191 | ", | 191 | ", |
192 | "foo SOURCE_FILE FileId(2) [0; 10)", | 192 | "foo SOURCE_FILE FileId(2) 0..10", |
193 | "// empty\n\n", | 193 | "// empty\n\n", |
194 | ); | 194 | ); |
195 | 195 | ||
@@ -201,7 +201,7 @@ mod tests { | |||
201 | //- /foo/mod.rs | 201 | //- /foo/mod.rs |
202 | // empty | 202 | // empty |
203 | ", | 203 | ", |
204 | "foo SOURCE_FILE FileId(2) [0; 10)", | 204 | "foo SOURCE_FILE FileId(2) 0..10", |
205 | "// empty\n\n", | 205 | "// empty\n\n", |
206 | ); | 206 | ); |
207 | } | 207 | } |
@@ -218,7 +218,7 @@ mod tests { | |||
218 | <|>foo!(); | 218 | <|>foo!(); |
219 | } | 219 | } |
220 | ", | 220 | ", |
221 | "foo MACRO_CALL FileId(1) [0; 33) [13; 16)", | 221 | "foo MACRO_CALL FileId(1) 0..33 13..16", |
222 | "macro_rules! foo { () => { () } }|foo", | 222 | "macro_rules! foo { () => { () } }|foo", |
223 | ); | 223 | ); |
224 | } | 224 | } |
@@ -238,7 +238,7 @@ mod tests { | |||
238 | #[macro_export] | 238 | #[macro_export] |
239 | macro_rules! foo { () => { () } } | 239 | macro_rules! foo { () => { () } } |
240 | ", | 240 | ", |
241 | "foo MACRO_CALL FileId(2) [0; 49) [29; 32)", | 241 | "foo MACRO_CALL FileId(2) 0..49 29..32", |
242 | "#[macro_export]\nmacro_rules! foo { () => { () } }|foo", | 242 | "#[macro_export]\nmacro_rules! foo { () => { () } }|foo", |
243 | ); | 243 | ); |
244 | } | 244 | } |
@@ -254,7 +254,7 @@ mod tests { | |||
254 | #[macro_export] | 254 | #[macro_export] |
255 | macro_rules! foo { () => { () } } | 255 | macro_rules! foo { () => { () } } |
256 | ", | 256 | ", |
257 | "foo MACRO_CALL FileId(2) [0; 49) [29; 32)", | 257 | "foo MACRO_CALL FileId(2) 0..49 29..32", |
258 | "#[macro_export]\nmacro_rules! foo { () => { () } }|foo", | 258 | "#[macro_export]\nmacro_rules! foo { () => { () } }|foo", |
259 | ); | 259 | ); |
260 | } | 260 | } |
@@ -274,7 +274,7 @@ mod tests { | |||
274 | <|>foo(); | 274 | <|>foo(); |
275 | } | 275 | } |
276 | ", | 276 | ", |
277 | "foo FN_DEF FileId(1) [64; 80) [75; 78)", | 277 | "foo FN_DEF FileId(1) 64..80 75..78", |
278 | "define_fn!(foo);|foo", | 278 | "define_fn!(foo);|foo", |
279 | ); | 279 | ); |
280 | } | 280 | } |
@@ -294,7 +294,7 @@ mod tests { | |||
294 | <|>foo(); | 294 | <|>foo(); |
295 | } | 295 | } |
296 | ", | 296 | ", |
297 | "foo FN_DEF FileId(1) [51; 64) [51; 64)", | 297 | "foo FN_DEF FileId(1) 51..64 51..64", |
298 | "define_fn!();|define_fn!();", | 298 | "define_fn!();|define_fn!();", |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -312,7 +312,7 @@ mod tests { | |||
312 | } | 312 | } |
313 | } | 313 | } |
314 | ", | 314 | ", |
315 | "foo MACRO_CALL FileId(1) [0; 28) [13; 16)", | 315 | "foo MACRO_CALL FileId(1) 0..28 13..16", |
316 | "macro_rules! foo {() => {0}}|foo", | 316 | "macro_rules! foo {() => {0}}|foo", |
317 | ); | 317 | ); |
318 | } | 318 | } |
@@ -330,7 +330,7 @@ mod tests { | |||
330 | } | 330 | } |
331 | } | 331 | } |
332 | ", | 332 | ", |
333 | "foo MACRO_CALL FileId(1) [0; 28) [13; 16)", | 333 | "foo MACRO_CALL FileId(1) 0..28 13..16", |
334 | "macro_rules! foo {() => {0}}|foo", | 334 | "macro_rules! foo {() => {0}}|foo", |
335 | ); | 335 | ); |
336 | } | 336 | } |
@@ -350,7 +350,7 @@ mod tests { | |||
350 | foo.frobnicate<|>(); | 350 | foo.frobnicate<|>(); |
351 | } | 351 | } |
352 | ", | 352 | ", |
353 | "frobnicate FN_DEF FileId(1) [27; 51) [30; 40)", | 353 | "frobnicate FN_DEF FileId(1) 27..51 30..40", |
354 | "fn frobnicate(&self) { }|frobnicate", | 354 | "fn frobnicate(&self) { }|frobnicate", |
355 | ); | 355 | ); |
356 | } | 356 | } |
@@ -369,7 +369,7 @@ mod tests { | |||
369 | foo.spam<|>; | 369 | foo.spam<|>; |
370 | } | 370 | } |
371 | ", | 371 | ", |
372 | "spam RECORD_FIELD_DEF FileId(1) [17; 26) [17; 21)", | 372 | "spam RECORD_FIELD_DEF FileId(1) 17..26 17..21", |
373 | "spam: u32|spam", | 373 | "spam: u32|spam", |
374 | ); | 374 | ); |
375 | } | 375 | } |
@@ -390,7 +390,7 @@ mod tests { | |||
390 | } | 390 | } |
391 | } | 391 | } |
392 | ", | 392 | ", |
393 | "spam RECORD_FIELD_DEF FileId(1) [17; 26) [17; 21)", | 393 | "spam RECORD_FIELD_DEF FileId(1) 17..26 17..21", |
394 | "spam: u32|spam", | 394 | "spam: u32|spam", |
395 | ); | 395 | ); |
396 | } | 396 | } |
@@ -409,7 +409,7 @@ mod tests { | |||
409 | let Foo { spam<|>: _, } = foo | 409 | let Foo { spam<|>: _, } = foo |
410 | } | 410 | } |
411 | ", | 411 | ", |
412 | "spam RECORD_FIELD_DEF FileId(1) [17; 26) [17; 21)", | 412 | "spam RECORD_FIELD_DEF FileId(1) 17..26 17..21", |
413 | "spam: u32|spam", | 413 | "spam: u32|spam", |
414 | ); | 414 | ); |
415 | } | 415 | } |
@@ -426,7 +426,7 @@ mod tests { | |||
426 | Foo { spam<|>: m!() } | 426 | Foo { spam<|>: m!() } |
427 | } | 427 | } |
428 | ", | 428 | ", |
429 | "spam RECORD_FIELD_DEF FileId(1) [45; 54) [45; 49)", | 429 | "spam RECORD_FIELD_DEF FileId(1) 45..54 45..49", |
430 | "spam: u32|spam", | 430 | "spam: u32|spam", |
431 | ); | 431 | ); |
432 | } | 432 | } |
@@ -443,7 +443,7 @@ mod tests { | |||
443 | foo.<|>0; | 443 | foo.<|>0; |
444 | } | 444 | } |
445 | ", | 445 | ", |
446 | "TUPLE_FIELD_DEF FileId(1) [11; 14)", | 446 | "TUPLE_FIELD_DEF FileId(1) 11..14", |
447 | "u32", | 447 | "u32", |
448 | ); | 448 | ); |
449 | } | 449 | } |
@@ -462,7 +462,7 @@ mod tests { | |||
462 | Foo::frobnicate<|>(); | 462 | Foo::frobnicate<|>(); |
463 | } | 463 | } |
464 | ", | 464 | ", |
465 | "frobnicate FN_DEF FileId(1) [27; 46) [30; 40)", | 465 | "frobnicate FN_DEF FileId(1) 27..46 30..40", |
466 | "fn frobnicate() { }|frobnicate", | 466 | "fn frobnicate() { }|frobnicate", |
467 | ); | 467 | ); |
468 | } | 468 | } |
@@ -480,7 +480,7 @@ mod tests { | |||
480 | Foo::frobnicate<|>(); | 480 | Foo::frobnicate<|>(); |
481 | } | 481 | } |
482 | ", | 482 | ", |
483 | "frobnicate FN_DEF FileId(1) [16; 32) [19; 29)", | 483 | "frobnicate FN_DEF FileId(1) 16..32 19..29", |
484 | "fn frobnicate();|frobnicate", | 484 | "fn frobnicate();|frobnicate", |
485 | ); | 485 | ); |
486 | } | 486 | } |
@@ -500,7 +500,7 @@ mod tests { | |||
500 | Foo::frobnicate<|>(); | 500 | Foo::frobnicate<|>(); |
501 | } | 501 | } |
502 | ", | 502 | ", |
503 | "frobnicate FN_DEF FileId(1) [30; 46) [33; 43)", | 503 | "frobnicate FN_DEF FileId(1) 30..46 33..43", |
504 | "fn frobnicate();|frobnicate", | 504 | "fn frobnicate();|frobnicate", |
505 | ); | 505 | ); |
506 | } | 506 | } |
@@ -517,7 +517,7 @@ mod tests { | |||
517 | } | 517 | } |
518 | } | 518 | } |
519 | ", | 519 | ", |
520 | "impl IMPL_DEF FileId(1) [12; 73)", | 520 | "impl IMPL_DEF FileId(1) 12..73", |
521 | "impl Foo {...}", | 521 | "impl Foo {...}", |
522 | ); | 522 | ); |
523 | 523 | ||
@@ -531,7 +531,7 @@ mod tests { | |||
531 | } | 531 | } |
532 | } | 532 | } |
533 | ", | 533 | ", |
534 | "impl IMPL_DEF FileId(1) [12; 73)", | 534 | "impl IMPL_DEF FileId(1) 12..73", |
535 | "impl Foo {...}", | 535 | "impl Foo {...}", |
536 | ); | 536 | ); |
537 | 537 | ||
@@ -545,7 +545,7 @@ mod tests { | |||
545 | } | 545 | } |
546 | } | 546 | } |
547 | ", | 547 | ", |
548 | "impl IMPL_DEF FileId(1) [15; 75)", | 548 | "impl IMPL_DEF FileId(1) 15..75", |
549 | "impl Foo {...}", | 549 | "impl Foo {...}", |
550 | ); | 550 | ); |
551 | 551 | ||
@@ -558,7 +558,7 @@ mod tests { | |||
558 | } | 558 | } |
559 | } | 559 | } |
560 | ", | 560 | ", |
561 | "impl IMPL_DEF FileId(1) [15; 62)", | 561 | "impl IMPL_DEF FileId(1) 15..62", |
562 | "impl Foo {...}", | 562 | "impl Foo {...}", |
563 | ); | 563 | ); |
564 | } | 564 | } |
@@ -578,7 +578,7 @@ mod tests { | |||
578 | } | 578 | } |
579 | } | 579 | } |
580 | ", | 580 | ", |
581 | "impl IMPL_DEF FileId(1) [49; 115)", | 581 | "impl IMPL_DEF FileId(1) 49..115", |
582 | "impl Make for Foo {...}", | 582 | "impl Make for Foo {...}", |
583 | ); | 583 | ); |
584 | 584 | ||
@@ -595,7 +595,7 @@ mod tests { | |||
595 | } | 595 | } |
596 | } | 596 | } |
597 | ", | 597 | ", |
598 | "impl IMPL_DEF FileId(1) [49; 115)", | 598 | "impl IMPL_DEF FileId(1) 49..115", |
599 | "impl Make for Foo {...}", | 599 | "impl Make for Foo {...}", |
600 | ); | 600 | ); |
601 | } | 601 | } |
@@ -607,7 +607,7 @@ mod tests { | |||
607 | //- /lib.rs | 607 | //- /lib.rs |
608 | struct Foo<|> { value: u32 } | 608 | struct Foo<|> { value: u32 } |
609 | ", | 609 | ", |
610 | "Foo STRUCT_DEF FileId(1) [0; 25) [7; 10)", | 610 | "Foo STRUCT_DEF FileId(1) 0..25 7..10", |
611 | "struct Foo { value: u32 }|Foo", | 611 | "struct Foo { value: u32 }|Foo", |
612 | ); | 612 | ); |
613 | 613 | ||
@@ -618,7 +618,7 @@ mod tests { | |||
618 | field<|>: string, | 618 | field<|>: string, |
619 | } | 619 | } |
620 | "#, | 620 | "#, |
621 | "field RECORD_FIELD_DEF FileId(1) [17; 30) [17; 22)", | 621 | "field RECORD_FIELD_DEF FileId(1) 17..30 17..22", |
622 | "field: string|field", | 622 | "field: string|field", |
623 | ); | 623 | ); |
624 | 624 | ||
@@ -627,7 +627,7 @@ mod tests { | |||
627 | //- /lib.rs | 627 | //- /lib.rs |
628 | fn foo_test<|>() { } | 628 | fn foo_test<|>() { } |
629 | ", | 629 | ", |
630 | "foo_test FN_DEF FileId(1) [0; 17) [3; 11)", | 630 | "foo_test FN_DEF FileId(1) 0..17 3..11", |
631 | "fn foo_test() { }|foo_test", | 631 | "fn foo_test() { }|foo_test", |
632 | ); | 632 | ); |
633 | 633 | ||
@@ -638,7 +638,7 @@ mod tests { | |||
638 | Variant, | 638 | Variant, |
639 | } | 639 | } |
640 | ", | 640 | ", |
641 | "Foo ENUM_DEF FileId(1) [0; 25) [5; 8)", | 641 | "Foo ENUM_DEF FileId(1) 0..25 5..8", |
642 | "enum Foo {...}|Foo", | 642 | "enum Foo {...}|Foo", |
643 | ); | 643 | ); |
644 | 644 | ||
@@ -651,7 +651,7 @@ mod tests { | |||
651 | Variant3, | 651 | Variant3, |
652 | } | 652 | } |
653 | ", | 653 | ", |
654 | "Variant2 ENUM_VARIANT FileId(1) [29; 37) [29; 37)", | 654 | "Variant2 ENUM_VARIANT FileId(1) 29..37 29..37", |
655 | "Variant2|Variant2", | 655 | "Variant2|Variant2", |
656 | ); | 656 | ); |
657 | 657 | ||
@@ -660,7 +660,7 @@ mod tests { | |||
660 | //- /lib.rs | 660 | //- /lib.rs |
661 | static INNER<|>: &str = ""; | 661 | static INNER<|>: &str = ""; |
662 | "#, | 662 | "#, |
663 | "INNER STATIC_DEF FileId(1) [0; 24) [7; 12)", | 663 | "INNER STATIC_DEF FileId(1) 0..24 7..12", |
664 | "static INNER: &str = \"\";|INNER", | 664 | "static INNER: &str = \"\";|INNER", |
665 | ); | 665 | ); |
666 | 666 | ||
@@ -669,7 +669,7 @@ mod tests { | |||
669 | //- /lib.rs | 669 | //- /lib.rs |
670 | const INNER<|>: &str = ""; | 670 | const INNER<|>: &str = ""; |
671 | "#, | 671 | "#, |
672 | "INNER CONST_DEF FileId(1) [0; 23) [6; 11)", | 672 | "INNER CONST_DEF FileId(1) 0..23 6..11", |
673 | "const INNER: &str = \"\";|INNER", | 673 | "const INNER: &str = \"\";|INNER", |
674 | ); | 674 | ); |
675 | 675 | ||
@@ -678,7 +678,7 @@ mod tests { | |||
678 | //- /lib.rs | 678 | //- /lib.rs |
679 | type Thing<|> = Option<()>; | 679 | type Thing<|> = Option<()>; |
680 | "#, | 680 | "#, |
681 | "Thing TYPE_ALIAS_DEF FileId(1) [0; 24) [5; 10)", | 681 | "Thing TYPE_ALIAS_DEF FileId(1) 0..24 5..10", |
682 | "type Thing = Option<()>;|Thing", | 682 | "type Thing = Option<()>;|Thing", |
683 | ); | 683 | ); |
684 | 684 | ||
@@ -687,7 +687,7 @@ mod tests { | |||
687 | //- /lib.rs | 687 | //- /lib.rs |
688 | trait Foo<|> { } | 688 | trait Foo<|> { } |
689 | "#, | 689 | "#, |
690 | "Foo TRAIT_DEF FileId(1) [0; 13) [6; 9)", | 690 | "Foo TRAIT_DEF FileId(1) 0..13 6..9", |
691 | "trait Foo { }|Foo", | 691 | "trait Foo { }|Foo", |
692 | ); | 692 | ); |
693 | 693 | ||
@@ -696,7 +696,7 @@ mod tests { | |||
696 | //- /lib.rs | 696 | //- /lib.rs |
697 | mod bar<|> { } | 697 | mod bar<|> { } |
698 | "#, | 698 | "#, |
699 | "bar MODULE FileId(1) [0; 11) [4; 7)", | 699 | "bar MODULE FileId(1) 0..11 4..7", |
700 | "mod bar { }|bar", | 700 | "mod bar { }|bar", |
701 | ); | 701 | ); |
702 | } | 702 | } |
@@ -717,7 +717,7 @@ mod tests { | |||
717 | } | 717 | } |
718 | mod confuse_index { fn foo(); } | 718 | mod confuse_index { fn foo(); } |
719 | ", | 719 | ", |
720 | "foo FN_DEF FileId(1) [52; 63) [55; 58)", | 720 | "foo FN_DEF FileId(1) 52..63 55..58", |
721 | "fn foo() {}|foo", | 721 | "fn foo() {}|foo", |
722 | ); | 722 | ); |
723 | } | 723 | } |
@@ -746,7 +746,7 @@ mod tests { | |||
746 | format!(\"{}\", fo<|>o()) | 746 | format!(\"{}\", fo<|>o()) |
747 | } | 747 | } |
748 | ", | 748 | ", |
749 | "foo FN_DEF FileId(1) [398; 415) [401; 404)", | 749 | "foo FN_DEF FileId(1) 398..415 401..404", |
750 | "fn foo() -> i8 {}|foo", | 750 | "fn foo() -> i8 {}|foo", |
751 | ); | 751 | ); |
752 | } | 752 | } |
@@ -760,7 +760,7 @@ mod tests { | |||
760 | t: <|>T, | 760 | t: <|>T, |
761 | } | 761 | } |
762 | ", | 762 | ", |
763 | "T TYPE_PARAM FileId(1) [11; 12)", | 763 | "T TYPE_PARAM FileId(1) 11..12", |
764 | "T", | 764 | "T", |
765 | ); | 765 | ); |
766 | } | 766 | } |
@@ -782,7 +782,7 @@ mod tests { | |||
782 | }); | 782 | }); |
783 | } | 783 | } |
784 | ", | 784 | ", |
785 | "x BIND_PAT FileId(1) [69; 70)", | 785 | "x BIND_PAT FileId(1) 69..70", |
786 | "x", | 786 | "x", |
787 | ); | 787 | ); |
788 | 788 | ||
@@ -801,7 +801,7 @@ mod tests { | |||
801 | }); | 801 | }); |
802 | } | 802 | } |
803 | ", | 803 | ", |
804 | "y BIND_PAT FileId(1) [98; 99)", | 804 | "y BIND_PAT FileId(1) 98..99", |
805 | "y", | 805 | "y", |
806 | ); | 806 | ); |
807 | } | 807 | } |
@@ -818,7 +818,7 @@ mod tests { | |||
818 | } | 818 | } |
819 | } | 819 | } |
820 | ", | 820 | ", |
821 | "x BIND_PAT FileId(1) [39; 40)", | 821 | "x BIND_PAT FileId(1) 39..40", |
822 | "x", | 822 | "x", |
823 | ); | 823 | ); |
824 | } | 824 | } |
@@ -833,7 +833,7 @@ mod tests { | |||
833 | <|>foo!(); | 833 | <|>foo!(); |
834 | } | 834 | } |
835 | ", | 835 | ", |
836 | "foo MACRO_CALL FileId(1) [15; 48) [28; 31)", | 836 | "foo MACRO_CALL FileId(1) 15..48 28..31", |
837 | "macro_rules! foo { () => { () } }|foo", | 837 | "macro_rules! foo { () => { () } }|foo", |
838 | ); | 838 | ); |
839 | } | 839 | } |
@@ -850,7 +850,7 @@ mod tests { | |||
850 | Foo { x<|> }; | 850 | Foo { x<|> }; |
851 | } | 851 | } |
852 | ", | 852 | ", |
853 | "x BIND_PAT FileId(1) [42; 43)", | 853 | "x BIND_PAT FileId(1) 42..43", |
854 | "x", | 854 | "x", |
855 | ) | 855 | ) |
856 | } | 856 | } |
diff --git a/crates/ra_ide/src/goto_type_definition.rs b/crates/ra_ide/src/goto_type_definition.rs index bd2688df1..a84637489 100644 --- a/crates/ra_ide/src/goto_type_definition.rs +++ b/crates/ra_ide/src/goto_type_definition.rs | |||
@@ -68,7 +68,7 @@ mod tests { | |||
68 | f<|> | 68 | f<|> |
69 | } | 69 | } |
70 | ", | 70 | ", |
71 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 71 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
72 | ); | 72 | ); |
73 | } | 73 | } |
74 | 74 | ||
@@ -83,7 +83,7 @@ mod tests { | |||
83 | f<|> | 83 | f<|> |
84 | } | 84 | } |
85 | ", | 85 | ", |
86 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 86 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
87 | ); | 87 | ); |
88 | } | 88 | } |
89 | 89 | ||
@@ -102,7 +102,7 @@ mod tests { | |||
102 | } | 102 | } |
103 | } | 103 | } |
104 | ", | 104 | ", |
105 | "Foo STRUCT_DEF FileId(1) [52; 65) [59; 62)", | 105 | "Foo STRUCT_DEF FileId(1) 52..65 59..62", |
106 | ); | 106 | ); |
107 | } | 107 | } |
108 | 108 | ||
@@ -114,7 +114,7 @@ mod tests { | |||
114 | struct Foo; | 114 | struct Foo; |
115 | fn foo(<|>f: Foo) {} | 115 | fn foo(<|>f: Foo) {} |
116 | ", | 116 | ", |
117 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 117 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
118 | ); | 118 | ); |
119 | } | 119 | } |
120 | 120 | ||
@@ -130,7 +130,7 @@ mod tests { | |||
130 | bar.<|>0; | 130 | bar.<|>0; |
131 | } | 131 | } |
132 | ", | 132 | ", |
133 | "Foo STRUCT_DEF FileId(1) [0; 11) [7; 10)", | 133 | "Foo STRUCT_DEF FileId(1) 0..11 7..10", |
134 | ); | 134 | ); |
135 | } | 135 | } |
136 | } | 136 | } |
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index a31187994..fcc2ab7fb 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs | |||
@@ -275,7 +275,7 @@ mod tests { | |||
275 | ", | 275 | ", |
276 | ); | 276 | ); |
277 | let hover = analysis.hover(position).unwrap().unwrap(); | 277 | let hover = analysis.hover(position).unwrap().unwrap(); |
278 | assert_eq!(hover.range, TextRange::from_to(95.into(), 100.into())); | 278 | assert_eq!(hover.range, TextRange::new(95.into(), 100.into())); |
279 | assert_eq!(trim_markup_opt(hover.info.first()), Some("u32")); | 279 | assert_eq!(trim_markup_opt(hover.info.first()), Some("u32")); |
280 | } | 280 | } |
281 | 281 | ||
diff --git a/crates/ra_ide/src/impls.rs b/crates/ra_ide/src/impls.rs index 68529c8a5..ea2225f70 100644 --- a/crates/ra_ide/src/impls.rs +++ b/crates/ra_ide/src/impls.rs | |||
@@ -86,7 +86,7 @@ mod tests { | |||
86 | struct Foo<|>; | 86 | struct Foo<|>; |
87 | impl Foo {} | 87 | impl Foo {} |
88 | ", | 88 | ", |
89 | &["impl IMPL_DEF FileId(1) [12; 23)"], | 89 | &["impl IMPL_DEF FileId(1) 12..23"], |
90 | ); | 90 | ); |
91 | } | 91 | } |
92 | 92 | ||
@@ -99,7 +99,7 @@ mod tests { | |||
99 | impl Foo {} | 99 | impl Foo {} |
100 | impl Foo {} | 100 | impl Foo {} |
101 | ", | 101 | ", |
102 | &["impl IMPL_DEF FileId(1) [12; 23)", "impl IMPL_DEF FileId(1) [24; 35)"], | 102 | &["impl IMPL_DEF FileId(1) 12..23", "impl IMPL_DEF FileId(1) 24..35"], |
103 | ); | 103 | ); |
104 | } | 104 | } |
105 | 105 | ||
@@ -116,7 +116,7 @@ mod tests { | |||
116 | impl super::Foo {} | 116 | impl super::Foo {} |
117 | } | 117 | } |
118 | ", | 118 | ", |
119 | &["impl IMPL_DEF FileId(1) [24; 42)", "impl IMPL_DEF FileId(1) [57; 75)"], | 119 | &["impl IMPL_DEF FileId(1) 24..42", "impl IMPL_DEF FileId(1) 57..75"], |
120 | ); | 120 | ); |
121 | } | 121 | } |
122 | 122 | ||
@@ -133,7 +133,7 @@ mod tests { | |||
133 | //- /b.rs | 133 | //- /b.rs |
134 | impl crate::Foo {} | 134 | impl crate::Foo {} |
135 | ", | 135 | ", |
136 | &["impl IMPL_DEF FileId(2) [0; 18)", "impl IMPL_DEF FileId(3) [0; 18)"], | 136 | &["impl IMPL_DEF FileId(2) 0..18", "impl IMPL_DEF FileId(3) 0..18"], |
137 | ); | 137 | ); |
138 | } | 138 | } |
139 | 139 | ||
@@ -146,7 +146,7 @@ mod tests { | |||
146 | struct Foo; | 146 | struct Foo; |
147 | impl T for Foo {} | 147 | impl T for Foo {} |
148 | ", | 148 | ", |
149 | &["impl IMPL_DEF FileId(1) [23; 40)"], | 149 | &["impl IMPL_DEF FileId(1) 23..40"], |
150 | ); | 150 | ); |
151 | } | 151 | } |
152 | 152 | ||
@@ -164,7 +164,7 @@ mod tests { | |||
164 | //- /b.rs | 164 | //- /b.rs |
165 | impl crate::T for crate::Foo {} | 165 | impl crate::T for crate::Foo {} |
166 | ", | 166 | ", |
167 | &["impl IMPL_DEF FileId(2) [0; 31)", "impl IMPL_DEF FileId(3) [0; 31)"], | 167 | &["impl IMPL_DEF FileId(2) 0..31", "impl IMPL_DEF FileId(3) 0..31"], |
168 | ); | 168 | ); |
169 | } | 169 | } |
170 | 170 | ||
@@ -180,9 +180,9 @@ mod tests { | |||
180 | impl T for &Foo {} | 180 | impl T for &Foo {} |
181 | ", | 181 | ", |
182 | &[ | 182 | &[ |
183 | "impl IMPL_DEF FileId(1) [23; 34)", | 183 | "impl IMPL_DEF FileId(1) 23..34", |
184 | "impl IMPL_DEF FileId(1) [35; 52)", | 184 | "impl IMPL_DEF FileId(1) 35..52", |
185 | "impl IMPL_DEF FileId(1) [53; 71)", | 185 | "impl IMPL_DEF FileId(1) 53..71", |
186 | ], | 186 | ], |
187 | ); | 187 | ); |
188 | } | 188 | } |
@@ -195,7 +195,7 @@ mod tests { | |||
195 | #[derive(Copy)] | 195 | #[derive(Copy)] |
196 | struct Foo<|>; | 196 | struct Foo<|>; |
197 | ", | 197 | ", |
198 | &["impl IMPL_DEF FileId(1) [0; 15)"], | 198 | &["impl IMPL_DEF FileId(1) 0..15"], |
199 | ); | 199 | ); |
200 | } | 200 | } |
201 | } | 201 | } |
diff --git a/crates/ra_ide/src/inlay_hints.rs b/crates/ra_ide/src/inlay_hints.rs index 0774fa0a1..98483df32 100644 --- a/crates/ra_ide/src/inlay_hints.rs +++ b/crates/ra_ide/src/inlay_hints.rs | |||
@@ -322,12 +322,12 @@ mod tests { | |||
322 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: true, type_hints: false, chaining_hints: false, max_length: None}).unwrap(), @r###" | 322 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: true, type_hints: false, chaining_hints: false, max_length: None}).unwrap(), @r###" |
323 | [ | 323 | [ |
324 | InlayHint { | 324 | InlayHint { |
325 | range: [106; 107), | 325 | range: 106..107, |
326 | kind: ParameterHint, | 326 | kind: ParameterHint, |
327 | label: "a", | 327 | label: "a", |
328 | }, | 328 | }, |
329 | InlayHint { | 329 | InlayHint { |
330 | range: [109; 110), | 330 | range: 109..110, |
331 | kind: ParameterHint, | 331 | kind: ParameterHint, |
332 | label: "b", | 332 | label: "b", |
333 | }, | 333 | }, |
@@ -358,7 +358,7 @@ mod tests { | |||
358 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ type_hints: true, parameter_hints: false, chaining_hints: false, max_length: None}).unwrap(), @r###" | 358 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ type_hints: true, parameter_hints: false, chaining_hints: false, max_length: None}).unwrap(), @r###" |
359 | [ | 359 | [ |
360 | InlayHint { | 360 | InlayHint { |
361 | range: [97; 99), | 361 | range: 97..99, |
362 | kind: TypeHint, | 362 | kind: TypeHint, |
363 | label: "i32", | 363 | label: "i32", |
364 | }, | 364 | }, |
@@ -382,12 +382,12 @@ fn main() { | |||
382 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 382 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
383 | [ | 383 | [ |
384 | InlayHint { | 384 | InlayHint { |
385 | range: [69; 71), | 385 | range: 69..71, |
386 | kind: TypeHint, | 386 | kind: TypeHint, |
387 | label: "Test<i32>", | 387 | label: "Test<i32>", |
388 | }, | 388 | }, |
389 | InlayHint { | 389 | InlayHint { |
390 | range: [105; 111), | 390 | range: 105..111, |
391 | kind: TypeHint, | 391 | kind: TypeHint, |
392 | label: "&Test<i32>", | 392 | label: "&Test<i32>", |
393 | }, | 393 | }, |
@@ -439,57 +439,57 @@ fn main() { | |||
439 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 439 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
440 | [ | 440 | [ |
441 | InlayHint { | 441 | InlayHint { |
442 | range: [193; 197), | 442 | range: 193..197, |
443 | kind: TypeHint, | 443 | kind: TypeHint, |
444 | label: "i32", | 444 | label: "i32", |
445 | }, | 445 | }, |
446 | InlayHint { | 446 | InlayHint { |
447 | range: [236; 244), | 447 | range: 236..244, |
448 | kind: TypeHint, | 448 | kind: TypeHint, |
449 | label: "i32", | 449 | label: "i32", |
450 | }, | 450 | }, |
451 | InlayHint { | 451 | InlayHint { |
452 | range: [275; 279), | 452 | range: 275..279, |
453 | kind: TypeHint, | 453 | kind: TypeHint, |
454 | label: "&str", | 454 | label: "&str", |
455 | }, | 455 | }, |
456 | InlayHint { | 456 | InlayHint { |
457 | range: [539; 543), | 457 | range: 539..543, |
458 | kind: TypeHint, | 458 | kind: TypeHint, |
459 | label: "(i32, char)", | 459 | label: "(i32, char)", |
460 | }, | 460 | }, |
461 | InlayHint { | 461 | InlayHint { |
462 | range: [566; 567), | 462 | range: 566..567, |
463 | kind: TypeHint, | 463 | kind: TypeHint, |
464 | label: "i32", | 464 | label: "i32", |
465 | }, | 465 | }, |
466 | InlayHint { | 466 | InlayHint { |
467 | range: [570; 571), | 467 | range: 570..571, |
468 | kind: TypeHint, | 468 | kind: TypeHint, |
469 | label: "i32", | 469 | label: "i32", |
470 | }, | 470 | }, |
471 | InlayHint { | 471 | InlayHint { |
472 | range: [573; 574), | 472 | range: 573..574, |
473 | kind: TypeHint, | 473 | kind: TypeHint, |
474 | label: "i32", | 474 | label: "i32", |
475 | }, | 475 | }, |
476 | InlayHint { | 476 | InlayHint { |
477 | range: [577; 578), | 477 | range: 577..578, |
478 | kind: TypeHint, | 478 | kind: TypeHint, |
479 | label: "f64", | 479 | label: "f64", |
480 | }, | 480 | }, |
481 | InlayHint { | 481 | InlayHint { |
482 | range: [580; 581), | 482 | range: 580..581, |
483 | kind: TypeHint, | 483 | kind: TypeHint, |
484 | label: "f64", | 484 | label: "f64", |
485 | }, | 485 | }, |
486 | InlayHint { | 486 | InlayHint { |
487 | range: [584; 585), | 487 | range: 584..585, |
488 | kind: TypeHint, | 488 | kind: TypeHint, |
489 | label: "i32", | 489 | label: "i32", |
490 | }, | 490 | }, |
491 | InlayHint { | 491 | InlayHint { |
492 | range: [627; 628), | 492 | range: 627..628, |
493 | kind: TypeHint, | 493 | kind: TypeHint, |
494 | label: "i32", | 494 | label: "i32", |
495 | }, | 495 | }, |
@@ -519,47 +519,47 @@ fn main() { | |||
519 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 519 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
520 | [ | 520 | [ |
521 | InlayHint { | 521 | InlayHint { |
522 | range: [21; 30), | 522 | range: 21..30, |
523 | kind: TypeHint, | 523 | kind: TypeHint, |
524 | label: "i32", | 524 | label: "i32", |
525 | }, | 525 | }, |
526 | InlayHint { | 526 | InlayHint { |
527 | range: [57; 66), | 527 | range: 57..66, |
528 | kind: TypeHint, | 528 | kind: TypeHint, |
529 | label: "i32", | 529 | label: "i32", |
530 | }, | 530 | }, |
531 | InlayHint { | 531 | InlayHint { |
532 | range: [115; 123), | 532 | range: 115..123, |
533 | kind: TypeHint, | 533 | kind: TypeHint, |
534 | label: "|…| -> i32", | 534 | label: "|…| -> i32", |
535 | }, | 535 | }, |
536 | InlayHint { | 536 | InlayHint { |
537 | range: [127; 128), | 537 | range: 127..128, |
538 | kind: TypeHint, | 538 | kind: TypeHint, |
539 | label: "i32", | 539 | label: "i32", |
540 | }, | 540 | }, |
541 | InlayHint { | 541 | InlayHint { |
542 | range: [130; 131), | 542 | range: 130..131, |
543 | kind: TypeHint, | 543 | kind: TypeHint, |
544 | label: "i32", | 544 | label: "i32", |
545 | }, | 545 | }, |
546 | InlayHint { | 546 | InlayHint { |
547 | range: [133; 134), | 547 | range: 133..134, |
548 | kind: TypeHint, | 548 | kind: TypeHint, |
549 | label: "i32", | 549 | label: "i32", |
550 | }, | 550 | }, |
551 | InlayHint { | 551 | InlayHint { |
552 | range: [136; 137), | 552 | range: 136..137, |
553 | kind: TypeHint, | 553 | kind: TypeHint, |
554 | label: "i32", | 554 | label: "i32", |
555 | }, | 555 | }, |
556 | InlayHint { | 556 | InlayHint { |
557 | range: [201; 213), | 557 | range: 201..213, |
558 | kind: TypeHint, | 558 | kind: TypeHint, |
559 | label: "&|…| -> i32", | 559 | label: "&|…| -> i32", |
560 | }, | 560 | }, |
561 | InlayHint { | 561 | InlayHint { |
562 | range: [236; 245), | 562 | range: 236..245, |
563 | kind: TypeHint, | 563 | kind: TypeHint, |
564 | label: "|| -> i32", | 564 | label: "|| -> i32", |
565 | }, | 565 | }, |
@@ -583,12 +583,12 @@ fn main() { | |||
583 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 583 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
584 | [ | 584 | [ |
585 | InlayHint { | 585 | InlayHint { |
586 | range: [21; 30), | 586 | range: 21..30, |
587 | kind: TypeHint, | 587 | kind: TypeHint, |
588 | label: "i32", | 588 | label: "i32", |
589 | }, | 589 | }, |
590 | InlayHint { | 590 | InlayHint { |
591 | range: [44; 53), | 591 | range: 44..53, |
592 | kind: TypeHint, | 592 | kind: TypeHint, |
593 | label: "i32", | 593 | label: "i32", |
594 | }, | 594 | }, |
@@ -633,57 +633,57 @@ fn main() { | |||
633 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 633 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
634 | [ | 634 | [ |
635 | InlayHint { | 635 | InlayHint { |
636 | range: [188; 192), | 636 | range: 188..192, |
637 | kind: TypeHint, | 637 | kind: TypeHint, |
638 | label: "CustomOption<Test>", | 638 | label: "CustomOption<Test>", |
639 | }, | 639 | }, |
640 | InlayHint { | 640 | InlayHint { |
641 | range: [267; 271), | 641 | range: 267..271, |
642 | kind: TypeHint, | 642 | kind: TypeHint, |
643 | label: "&CustomOption<Test>", | 643 | label: "&CustomOption<Test>", |
644 | }, | 644 | }, |
645 | InlayHint { | 645 | InlayHint { |
646 | range: [300; 304), | 646 | range: 300..304, |
647 | kind: TypeHint, | 647 | kind: TypeHint, |
648 | label: "&Test", | 648 | label: "&Test", |
649 | }, | 649 | }, |
650 | InlayHint { | 650 | InlayHint { |
651 | range: [341; 342), | 651 | range: 341..342, |
652 | kind: TypeHint, | 652 | kind: TypeHint, |
653 | label: "&CustomOption<u32>", | 653 | label: "&CustomOption<u32>", |
654 | }, | 654 | }, |
655 | InlayHint { | 655 | InlayHint { |
656 | range: [344; 345), | 656 | range: 344..345, |
657 | kind: TypeHint, | 657 | kind: TypeHint, |
658 | label: "&u8", | 658 | label: "&u8", |
659 | }, | 659 | }, |
660 | InlayHint { | 660 | InlayHint { |
661 | range: [387; 388), | 661 | range: 387..388, |
662 | kind: TypeHint, | 662 | kind: TypeHint, |
663 | label: "&CustomOption<u32>", | 663 | label: "&CustomOption<u32>", |
664 | }, | 664 | }, |
665 | InlayHint { | 665 | InlayHint { |
666 | range: [393; 394), | 666 | range: 393..394, |
667 | kind: TypeHint, | 667 | kind: TypeHint, |
668 | label: "&u8", | 668 | label: "&u8", |
669 | }, | 669 | }, |
670 | InlayHint { | 670 | InlayHint { |
671 | range: [441; 442), | 671 | range: 441..442, |
672 | kind: TypeHint, | 672 | kind: TypeHint, |
673 | label: "&u32", | 673 | label: "&u32", |
674 | }, | 674 | }, |
675 | InlayHint { | 675 | InlayHint { |
676 | range: [448; 449), | 676 | range: 448..449, |
677 | kind: TypeHint, | 677 | kind: TypeHint, |
678 | label: "&u8", | 678 | label: "&u8", |
679 | }, | 679 | }, |
680 | InlayHint { | 680 | InlayHint { |
681 | range: [500; 501), | 681 | range: 500..501, |
682 | kind: TypeHint, | 682 | kind: TypeHint, |
683 | label: "&u8", | 683 | label: "&u8", |
684 | }, | 684 | }, |
685 | InlayHint { | 685 | InlayHint { |
686 | range: [543; 544), | 686 | range: 543..544, |
687 | kind: TypeHint, | 687 | kind: TypeHint, |
688 | label: "&u8", | 688 | label: "&u8", |
689 | }, | 689 | }, |
@@ -728,57 +728,57 @@ fn main() { | |||
728 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 728 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
729 | [ | 729 | [ |
730 | InlayHint { | 730 | InlayHint { |
731 | range: [188; 192), | 731 | range: 188..192, |
732 | kind: TypeHint, | 732 | kind: TypeHint, |
733 | label: "CustomOption<Test>", | 733 | label: "CustomOption<Test>", |
734 | }, | 734 | }, |
735 | InlayHint { | 735 | InlayHint { |
736 | range: [273; 277), | 736 | range: 273..277, |
737 | kind: TypeHint, | 737 | kind: TypeHint, |
738 | label: "&CustomOption<Test>", | 738 | label: "&CustomOption<Test>", |
739 | }, | 739 | }, |
740 | InlayHint { | 740 | InlayHint { |
741 | range: [309; 313), | 741 | range: 309..313, |
742 | kind: TypeHint, | 742 | kind: TypeHint, |
743 | label: "&Test", | 743 | label: "&Test", |
744 | }, | 744 | }, |
745 | InlayHint { | 745 | InlayHint { |
746 | range: [353; 354), | 746 | range: 353..354, |
747 | kind: TypeHint, | 747 | kind: TypeHint, |
748 | label: "&CustomOption<u32>", | 748 | label: "&CustomOption<u32>", |
749 | }, | 749 | }, |
750 | InlayHint { | 750 | InlayHint { |
751 | range: [356; 357), | 751 | range: 356..357, |
752 | kind: TypeHint, | 752 | kind: TypeHint, |
753 | label: "&u8", | 753 | label: "&u8", |
754 | }, | 754 | }, |
755 | InlayHint { | 755 | InlayHint { |
756 | range: [402; 403), | 756 | range: 402..403, |
757 | kind: TypeHint, | 757 | kind: TypeHint, |
758 | label: "&CustomOption<u32>", | 758 | label: "&CustomOption<u32>", |
759 | }, | 759 | }, |
760 | InlayHint { | 760 | InlayHint { |
761 | range: [408; 409), | 761 | range: 408..409, |
762 | kind: TypeHint, | 762 | kind: TypeHint, |
763 | label: "&u8", | 763 | label: "&u8", |
764 | }, | 764 | }, |
765 | InlayHint { | 765 | InlayHint { |
766 | range: [459; 460), | 766 | range: 459..460, |
767 | kind: TypeHint, | 767 | kind: TypeHint, |
768 | label: "&u32", | 768 | label: "&u32", |
769 | }, | 769 | }, |
770 | InlayHint { | 770 | InlayHint { |
771 | range: [466; 467), | 771 | range: 466..467, |
772 | kind: TypeHint, | 772 | kind: TypeHint, |
773 | label: "&u8", | 773 | label: "&u8", |
774 | }, | 774 | }, |
775 | InlayHint { | 775 | InlayHint { |
776 | range: [521; 522), | 776 | range: 521..522, |
777 | kind: TypeHint, | 777 | kind: TypeHint, |
778 | label: "&u8", | 778 | label: "&u8", |
779 | }, | 779 | }, |
780 | InlayHint { | 780 | InlayHint { |
781 | range: [567; 568), | 781 | range: 567..568, |
782 | kind: TypeHint, | 782 | kind: TypeHint, |
783 | label: "&u8", | 783 | label: "&u8", |
784 | }, | 784 | }, |
@@ -823,52 +823,52 @@ fn main() { | |||
823 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 823 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
824 | [ | 824 | [ |
825 | InlayHint { | 825 | InlayHint { |
826 | range: [252; 256), | 826 | range: 252..256, |
827 | kind: TypeHint, | 827 | kind: TypeHint, |
828 | label: "CustomOption<Test>", | 828 | label: "CustomOption<Test>", |
829 | }, | 829 | }, |
830 | InlayHint { | 830 | InlayHint { |
831 | range: [277; 281), | 831 | range: 277..281, |
832 | kind: TypeHint, | 832 | kind: TypeHint, |
833 | label: "Test", | 833 | label: "Test", |
834 | }, | 834 | }, |
835 | InlayHint { | 835 | InlayHint { |
836 | range: [310; 311), | 836 | range: 310..311, |
837 | kind: TypeHint, | 837 | kind: TypeHint, |
838 | label: "CustomOption<u32>", | 838 | label: "CustomOption<u32>", |
839 | }, | 839 | }, |
840 | InlayHint { | 840 | InlayHint { |
841 | range: [313; 314), | 841 | range: 313..314, |
842 | kind: TypeHint, | 842 | kind: TypeHint, |
843 | label: "u8", | 843 | label: "u8", |
844 | }, | 844 | }, |
845 | InlayHint { | 845 | InlayHint { |
846 | range: [348; 349), | 846 | range: 348..349, |
847 | kind: TypeHint, | 847 | kind: TypeHint, |
848 | label: "CustomOption<u32>", | 848 | label: "CustomOption<u32>", |
849 | }, | 849 | }, |
850 | InlayHint { | 850 | InlayHint { |
851 | range: [354; 355), | 851 | range: 354..355, |
852 | kind: TypeHint, | 852 | kind: TypeHint, |
853 | label: "u8", | 853 | label: "u8", |
854 | }, | 854 | }, |
855 | InlayHint { | 855 | InlayHint { |
856 | range: [394; 395), | 856 | range: 394..395, |
857 | kind: TypeHint, | 857 | kind: TypeHint, |
858 | label: "u32", | 858 | label: "u32", |
859 | }, | 859 | }, |
860 | InlayHint { | 860 | InlayHint { |
861 | range: [401; 402), | 861 | range: 401..402, |
862 | kind: TypeHint, | 862 | kind: TypeHint, |
863 | label: "u8", | 863 | label: "u8", |
864 | }, | 864 | }, |
865 | InlayHint { | 865 | InlayHint { |
866 | range: [445; 446), | 866 | range: 445..446, |
867 | kind: TypeHint, | 867 | kind: TypeHint, |
868 | label: "u8", | 868 | label: "u8", |
869 | }, | 869 | }, |
870 | InlayHint { | 870 | InlayHint { |
871 | range: [480; 481), | 871 | range: 480..481, |
872 | kind: TypeHint, | 872 | kind: TypeHint, |
873 | label: "u8", | 873 | label: "u8", |
874 | }, | 874 | }, |
@@ -895,17 +895,17 @@ fn main() { | |||
895 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig { max_length: Some(8), ..Default::default() }).unwrap(), @r###" | 895 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig { max_length: Some(8), ..Default::default() }).unwrap(), @r###" |
896 | [ | 896 | [ |
897 | InlayHint { | 897 | InlayHint { |
898 | range: [74; 75), | 898 | range: 74..75, |
899 | kind: TypeHint, | 899 | kind: TypeHint, |
900 | label: "Smol<u32>", | 900 | label: "Smol<u32>", |
901 | }, | 901 | }, |
902 | InlayHint { | 902 | InlayHint { |
903 | range: [98; 99), | 903 | range: 98..99, |
904 | kind: TypeHint, | 904 | kind: TypeHint, |
905 | label: "VeryLongOuterName<…>", | 905 | label: "VeryLongOuterName<…>", |
906 | }, | 906 | }, |
907 | InlayHint { | 907 | InlayHint { |
908 | range: [137; 138), | 908 | range: 137..138, |
909 | kind: TypeHint, | 909 | kind: TypeHint, |
910 | label: "Smol<Smol<…>>", | 910 | label: "Smol<Smol<…>>", |
911 | }, | 911 | }, |
@@ -983,77 +983,77 @@ fn main() { | |||
983 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" | 983 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig::default()).unwrap(), @r###" |
984 | [ | 984 | [ |
985 | InlayHint { | 985 | InlayHint { |
986 | range: [798; 809), | 986 | range: 798..809, |
987 | kind: TypeHint, | 987 | kind: TypeHint, |
988 | label: "i32", | 988 | label: "i32", |
989 | }, | 989 | }, |
990 | InlayHint { | 990 | InlayHint { |
991 | range: [842; 843), | 991 | range: 842..843, |
992 | kind: ParameterHint, | 992 | kind: ParameterHint, |
993 | label: "foo", | 993 | label: "foo", |
994 | }, | 994 | }, |
995 | InlayHint { | 995 | InlayHint { |
996 | range: [845; 846), | 996 | range: 845..846, |
997 | kind: ParameterHint, | 997 | kind: ParameterHint, |
998 | label: "bar", | 998 | label: "bar", |
999 | }, | 999 | }, |
1000 | InlayHint { | 1000 | InlayHint { |
1001 | range: [848; 855), | 1001 | range: 848..855, |
1002 | kind: ParameterHint, | 1002 | kind: ParameterHint, |
1003 | label: "msg", | 1003 | label: "msg", |
1004 | }, | 1004 | }, |
1005 | InlayHint { | 1005 | InlayHint { |
1006 | range: [860; 871), | 1006 | range: 860..871, |
1007 | kind: ParameterHint, | 1007 | kind: ParameterHint, |
1008 | label: "last", | 1008 | label: "last", |
1009 | }, | 1009 | }, |
1010 | InlayHint { | 1010 | InlayHint { |
1011 | range: [914; 917), | 1011 | range: 914..917, |
1012 | kind: ParameterHint, | 1012 | kind: ParameterHint, |
1013 | label: "param", | 1013 | label: "param", |
1014 | }, | 1014 | }, |
1015 | InlayHint { | 1015 | InlayHint { |
1016 | range: [937; 939), | 1016 | range: 937..939, |
1017 | kind: ParameterHint, | 1017 | kind: ParameterHint, |
1018 | label: "&self", | 1018 | label: "&self", |
1019 | }, | 1019 | }, |
1020 | InlayHint { | 1020 | InlayHint { |
1021 | range: [941; 945), | 1021 | range: 941..945, |
1022 | kind: ParameterHint, | 1022 | kind: ParameterHint, |
1023 | label: "param", | 1023 | label: "param", |
1024 | }, | 1024 | }, |
1025 | InlayHint { | 1025 | InlayHint { |
1026 | range: [980; 989), | 1026 | range: 980..989, |
1027 | kind: ParameterHint, | 1027 | kind: ParameterHint, |
1028 | label: "file_id", | 1028 | label: "file_id", |
1029 | }, | 1029 | }, |
1030 | InlayHint { | 1030 | InlayHint { |
1031 | range: [999; 1012), | 1031 | range: 999..1012, |
1032 | kind: ParameterHint, | 1032 | kind: ParameterHint, |
1033 | label: "name", | 1033 | label: "name", |
1034 | }, | 1034 | }, |
1035 | InlayHint { | 1035 | InlayHint { |
1036 | range: [1022; 1026), | 1036 | range: 1022..1026, |
1037 | kind: ParameterHint, | 1037 | kind: ParameterHint, |
1038 | label: "focus_range", | 1038 | label: "focus_range", |
1039 | }, | 1039 | }, |
1040 | InlayHint { | 1040 | InlayHint { |
1041 | range: [1036; 1048), | 1041 | range: 1036..1048, |
1042 | kind: ParameterHint, | 1042 | kind: ParameterHint, |
1043 | label: "full_range", | 1043 | label: "full_range", |
1044 | }, | 1044 | }, |
1045 | InlayHint { | 1045 | InlayHint { |
1046 | range: [1058; 1071), | 1046 | range: 1058..1071, |
1047 | kind: ParameterHint, | 1047 | kind: ParameterHint, |
1048 | label: "kind", | 1048 | label: "kind", |
1049 | }, | 1049 | }, |
1050 | InlayHint { | 1050 | InlayHint { |
1051 | range: [1081; 1085), | 1051 | range: 1081..1085, |
1052 | kind: ParameterHint, | 1052 | kind: ParameterHint, |
1053 | label: "docs", | 1053 | label: "docs", |
1054 | }, | 1054 | }, |
1055 | InlayHint { | 1055 | InlayHint { |
1056 | range: [1095; 1099), | 1056 | range: 1095..1099, |
1057 | kind: ParameterHint, | 1057 | kind: ParameterHint, |
1058 | label: "description", | 1058 | label: "description", |
1059 | }, | 1059 | }, |
@@ -1184,12 +1184,12 @@ fn main() { | |||
1184 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" | 1184 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" |
1185 | [ | 1185 | [ |
1186 | InlayHint { | 1186 | InlayHint { |
1187 | range: [232; 269), | 1187 | range: 232..269, |
1188 | kind: ChainingHint, | 1188 | kind: ChainingHint, |
1189 | label: "B", | 1189 | label: "B", |
1190 | }, | 1190 | }, |
1191 | InlayHint { | 1191 | InlayHint { |
1192 | range: [232; 239), | 1192 | range: 232..239, |
1193 | kind: ChainingHint, | 1193 | kind: ChainingHint, |
1194 | label: "A", | 1194 | label: "A", |
1195 | }, | 1195 | }, |
@@ -1238,12 +1238,12 @@ fn main() { | |||
1238 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" | 1238 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" |
1239 | [ | 1239 | [ |
1240 | InlayHint { | 1240 | InlayHint { |
1241 | range: [252; 323), | 1241 | range: 252..323, |
1242 | kind: ChainingHint, | 1242 | kind: ChainingHint, |
1243 | label: "C", | 1243 | label: "C", |
1244 | }, | 1244 | }, |
1245 | InlayHint { | 1245 | InlayHint { |
1246 | range: [252; 300), | 1246 | range: 252..300, |
1247 | kind: ChainingHint, | 1247 | kind: ChainingHint, |
1248 | label: "B", | 1248 | label: "B", |
1249 | }, | 1249 | }, |
@@ -1276,12 +1276,12 @@ fn main() { | |||
1276 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" | 1276 | assert_debug_snapshot!(analysis.inlay_hints(file_id, &InlayHintsConfig{ parameter_hints: false, type_hints: false, chaining_hints: true, max_length: None}).unwrap(), @r###" |
1277 | [ | 1277 | [ |
1278 | InlayHint { | 1278 | InlayHint { |
1279 | range: [403; 452), | 1279 | range: 403..452, |
1280 | kind: ChainingHint, | 1280 | kind: ChainingHint, |
1281 | label: "B<X<i32, bool>>", | 1281 | label: "B<X<i32, bool>>", |
1282 | }, | 1282 | }, |
1283 | InlayHint { | 1283 | InlayHint { |
1284 | range: [403; 422), | 1284 | range: 403..422, |
1285 | kind: ChainingHint, | 1285 | kind: ChainingHint, |
1286 | label: "A<X<i32, bool>>", | 1286 | label: "A<X<i32, bool>>", |
1287 | }, | 1287 | }, |
diff --git a/crates/ra_ide/src/join_lines.rs b/crates/ra_ide/src/join_lines.rs index 7d70dab9c..fde0bfa98 100644 --- a/crates/ra_ide/src/join_lines.rs +++ b/crates/ra_ide/src/join_lines.rs | |||
@@ -7,7 +7,7 @@ use ra_syntax::{ | |||
7 | ast::{self, AstNode, AstToken}, | 7 | ast::{self, AstNode, AstToken}, |
8 | Direction, NodeOrToken, SourceFile, | 8 | Direction, NodeOrToken, SourceFile, |
9 | SyntaxKind::{self, WHITESPACE}, | 9 | SyntaxKind::{self, WHITESPACE}, |
10 | SyntaxNode, SyntaxToken, TextRange, TextUnit, T, | 10 | SyntaxNode, SyntaxToken, TextRange, TextSize, T, |
11 | }; | 11 | }; |
12 | use ra_text_edit::{TextEdit, TextEditBuilder}; | 12 | use ra_text_edit::{TextEdit, TextEditBuilder}; |
13 | 13 | ||
@@ -19,7 +19,7 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { | |||
19 | None => return TextEditBuilder::default().finish(), | 19 | None => return TextEditBuilder::default().finish(), |
20 | Some(pos) => pos, | 20 | Some(pos) => pos, |
21 | }; | 21 | }; |
22 | TextRange::offset_len(range.start() + pos, TextUnit::of_char('\n')) | 22 | TextRange::at(range.start() + pos, TextSize::of('\n')) |
23 | } else { | 23 | } else { |
24 | range | 24 | range |
25 | }; | 25 | }; |
@@ -30,13 +30,13 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { | |||
30 | }; | 30 | }; |
31 | let mut edit = TextEditBuilder::default(); | 31 | let mut edit = TextEditBuilder::default(); |
32 | for token in node.descendants_with_tokens().filter_map(|it| it.into_token()) { | 32 | for token in node.descendants_with_tokens().filter_map(|it| it.into_token()) { |
33 | let range = match range.intersection(&token.text_range()) { | 33 | let range = match range.intersect(token.text_range()) { |
34 | Some(range) => range, | 34 | Some(range) => range, |
35 | None => continue, | 35 | None => continue, |
36 | } - token.text_range().start(); | 36 | } - token.text_range().start(); |
37 | let text = token.text(); | 37 | let text = token.text(); |
38 | for (pos, _) in text[range].bytes().enumerate().filter(|&(_, b)| b == b'\n') { | 38 | for (pos, _) in text[range].bytes().enumerate().filter(|&(_, b)| b == b'\n') { |
39 | let pos: TextUnit = (pos as u32).into(); | 39 | let pos: TextSize = (pos as u32).into(); |
40 | let off = token.text_range().start() + range.start() + pos; | 40 | let off = token.text_range().start() + range.start() + pos; |
41 | if !edit.invalidates_offset(off) { | 41 | if !edit.invalidates_offset(off) { |
42 | remove_newline(&mut edit, &token, off); | 42 | remove_newline(&mut edit, &token, off); |
@@ -47,16 +47,16 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> TextEdit { | |||
47 | edit.finish() | 47 | edit.finish() |
48 | } | 48 | } |
49 | 49 | ||
50 | fn remove_newline(edit: &mut TextEditBuilder, token: &SyntaxToken, offset: TextUnit) { | 50 | fn remove_newline(edit: &mut TextEditBuilder, token: &SyntaxToken, offset: TextSize) { |
51 | if token.kind() != WHITESPACE || token.text().bytes().filter(|&b| b == b'\n').count() != 1 { | 51 | if token.kind() != WHITESPACE || token.text().bytes().filter(|&b| b == b'\n').count() != 1 { |
52 | // The node is either the first or the last in the file | 52 | // The node is either the first or the last in the file |
53 | let suff = &token.text()[TextRange::from_to( | 53 | let suff = &token.text()[TextRange::new( |
54 | offset - token.text_range().start() + TextUnit::of_char('\n'), | 54 | offset - token.text_range().start() + TextSize::of('\n'), |
55 | TextUnit::of_str(token.text()), | 55 | TextSize::of(token.text().as_str()), |
56 | )]; | 56 | )]; |
57 | let spaces = suff.bytes().take_while(|&b| b == b' ').count(); | 57 | let spaces = suff.bytes().take_while(|&b| b == b' ').count(); |
58 | 58 | ||
59 | edit.replace(TextRange::offset_len(offset, ((spaces + 1) as u32).into()), " ".to_string()); | 59 | edit.replace(TextRange::at(offset, ((spaces + 1) as u32).into()), " ".to_string()); |
60 | return; | 60 | return; |
61 | } | 61 | } |
62 | 62 | ||
@@ -65,7 +65,7 @@ fn remove_newline(edit: &mut TextEditBuilder, token: &SyntaxToken, offset: TextU | |||
65 | let next = token.next_sibling_or_token().unwrap(); | 65 | let next = token.next_sibling_or_token().unwrap(); |
66 | if is_trailing_comma(prev.kind(), next.kind()) { | 66 | if is_trailing_comma(prev.kind(), next.kind()) { |
67 | // Removes: trailing comma, newline (incl. surrounding whitespace) | 67 | // Removes: trailing comma, newline (incl. surrounding whitespace) |
68 | edit.delete(TextRange::from_to(prev.text_range().start(), token.text_range().end())); | 68 | edit.delete(TextRange::new(prev.text_range().start(), token.text_range().end())); |
69 | return; | 69 | return; |
70 | } | 70 | } |
71 | if prev.kind() == T![,] && next.kind() == T!['}'] { | 71 | if prev.kind() == T![,] && next.kind() == T!['}'] { |
@@ -76,7 +76,7 @@ fn remove_newline(edit: &mut TextEditBuilder, token: &SyntaxToken, offset: TextU | |||
76 | " " | 76 | " " |
77 | }; | 77 | }; |
78 | edit.replace( | 78 | edit.replace( |
79 | TextRange::from_to(prev.text_range().start(), token.text_range().end()), | 79 | TextRange::new(prev.text_range().start(), token.text_range().end()), |
80 | space.to_string(), | 80 | space.to_string(), |
81 | ); | 81 | ); |
82 | return; | 82 | return; |
@@ -87,9 +87,9 @@ fn remove_newline(edit: &mut TextEditBuilder, token: &SyntaxToken, offset: TextU | |||
87 | next.as_token().cloned().and_then(ast::Comment::cast), | 87 | next.as_token().cloned().and_then(ast::Comment::cast), |
88 | ) { | 88 | ) { |
89 | // Removes: newline (incl. surrounding whitespace), start of the next comment | 89 | // Removes: newline (incl. surrounding whitespace), start of the next comment |
90 | edit.delete(TextRange::from_to( | 90 | edit.delete(TextRange::new( |
91 | token.text_range().start(), | 91 | token.text_range().start(), |
92 | next.syntax().text_range().start() + TextUnit::of_str(next.prefix()), | 92 | next.syntax().text_range().start() + TextSize::of(next.prefix()), |
93 | )); | 93 | )); |
94 | return; | 94 | return; |
95 | } | 95 | } |
@@ -170,7 +170,7 @@ mod tests { | |||
170 | 170 | ||
171 | fn check_join_lines(before: &str, after: &str) { | 171 | fn check_join_lines(before: &str, after: &str) { |
172 | check_action(before, after, |file, offset| { | 172 | check_action(before, after, |file, offset| { |
173 | let range = TextRange::offset_len(offset, 0.into()); | 173 | let range = TextRange::empty(offset); |
174 | let res = join_lines(file, range); | 174 | let res = join_lines(file, range); |
175 | Some(res) | 175 | Some(res) |
176 | }) | 176 | }) |
@@ -420,10 +420,10 @@ fn foo() { | |||
420 | check_join_lines( | 420 | check_join_lines( |
421 | r" | 421 | r" |
422 | <|>use ra_syntax::{ | 422 | <|>use ra_syntax::{ |
423 | TextUnit, TextRange, | 423 | TextSize, TextRange, |
424 | };", | 424 | };", |
425 | r" | 425 | r" |
426 | <|>use ra_syntax::{TextUnit, TextRange, | 426 | <|>use ra_syntax::{TextSize, TextRange, |
427 | };", | 427 | };", |
428 | ); | 428 | ); |
429 | } | 429 | } |
@@ -434,11 +434,11 @@ fn foo() { | |||
434 | check_join_lines( | 434 | check_join_lines( |
435 | r" | 435 | r" |
436 | use ra_syntax::{ | 436 | use ra_syntax::{ |
437 | <|> TextUnit, TextRange | 437 | <|> TextSize, TextRange |
438 | };", | 438 | };", |
439 | r" | 439 | r" |
440 | use ra_syntax::{ | 440 | use ra_syntax::{ |
441 | <|> TextUnit, TextRange};", | 441 | <|> TextSize, TextRange};", |
442 | ); | 442 | ); |
443 | } | 443 | } |
444 | 444 | ||
@@ -448,11 +448,11 @@ use ra_syntax::{ | |||
448 | check_join_lines( | 448 | check_join_lines( |
449 | r" | 449 | r" |
450 | use ra_syntax::{ | 450 | use ra_syntax::{ |
451 | <|> TextUnit, TextRange, | 451 | <|> TextSize, TextRange, |
452 | };", | 452 | };", |
453 | r" | 453 | r" |
454 | use ra_syntax::{ | 454 | use ra_syntax::{ |
455 | <|> TextUnit, TextRange};", | 455 | <|> TextSize, TextRange};", |
456 | ); | 456 | ); |
457 | } | 457 | } |
458 | 458 | ||
diff --git a/crates/ra_ide/src/lib.rs b/crates/ra_ide/src/lib.rs index f692fbaa2..09f602fe1 100644 --- a/crates/ra_ide/src/lib.rs +++ b/crates/ra_ide/src/lib.rs | |||
@@ -60,7 +60,7 @@ use ra_ide_db::{ | |||
60 | symbol_index::{self, FileSymbol}, | 60 | symbol_index::{self, FileSymbol}, |
61 | LineIndexDatabase, | 61 | LineIndexDatabase, |
62 | }; | 62 | }; |
63 | use ra_syntax::{SourceFile, TextRange, TextUnit}; | 63 | use ra_syntax::{SourceFile, TextRange, TextSize}; |
64 | 64 | ||
65 | use crate::display::ToNav; | 65 | use crate::display::ToNav; |
66 | 66 | ||
@@ -265,7 +265,7 @@ impl Analysis { | |||
265 | 265 | ||
266 | /// Returns position of the matching brace (all types of braces are | 266 | /// Returns position of the matching brace (all types of braces are |
267 | /// supported). | 267 | /// supported). |
268 | pub fn matching_brace(&self, position: FilePosition) -> Cancelable<Option<TextUnit>> { | 268 | pub fn matching_brace(&self, position: FilePosition) -> Cancelable<Option<TextSize>> { |
269 | self.with_db(|db| { | 269 | self.with_db(|db| { |
270 | let parse = db.parse(position.file_id); | 270 | let parse = db.parse(position.file_id); |
271 | let file = parse.tree(); | 271 | let file = parse.tree(); |
diff --git a/crates/ra_ide/src/matching_brace.rs b/crates/ra_ide/src/matching_brace.rs index d1204fac0..b85348706 100644 --- a/crates/ra_ide/src/matching_brace.rs +++ b/crates/ra_ide/src/matching_brace.rs | |||
@@ -1,8 +1,8 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use ra_syntax::{ast::AstNode, SourceFile, SyntaxKind, TextUnit, T}; | 3 | use ra_syntax::{ast::AstNode, SourceFile, SyntaxKind, TextSize, T}; |
4 | 4 | ||
5 | pub fn matching_brace(file: &SourceFile, offset: TextUnit) -> Option<TextUnit> { | 5 | pub fn matching_brace(file: &SourceFile, offset: TextSize) -> Option<TextSize> { |
6 | const BRACES: &[SyntaxKind] = | 6 | const BRACES: &[SyntaxKind] = |
7 | &[T!['{'], T!['}'], T!['['], T![']'], T!['('], T![')'], T![<], T![>]]; | 7 | &[T!['{'], T!['}'], T!['['], T![']'], T!['('], T![')'], T![<], T![>]]; |
8 | let (brace_node, brace_idx) = file | 8 | let (brace_node, brace_idx) = file |
diff --git a/crates/ra_ide/src/parent_module.rs b/crates/ra_ide/src/parent_module.rs index 958b92bed..aaf4460df 100644 --- a/crates/ra_ide/src/parent_module.rs +++ b/crates/ra_ide/src/parent_module.rs | |||
@@ -76,7 +76,7 @@ mod tests { | |||
76 | ", | 76 | ", |
77 | ); | 77 | ); |
78 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); | 78 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); |
79 | nav.assert_match("foo MODULE FileId(1) [0; 8)"); | 79 | nav.assert_match("foo MODULE FileId(1) 0..8"); |
80 | } | 80 | } |
81 | 81 | ||
82 | #[test] | 82 | #[test] |
@@ -95,7 +95,7 @@ mod tests { | |||
95 | ", | 95 | ", |
96 | ); | 96 | ); |
97 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); | 97 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); |
98 | nav.assert_match("foo MODULE FileId(1) [0; 8)"); | 98 | nav.assert_match("foo MODULE FileId(1) 0..8"); |
99 | } | 99 | } |
100 | 100 | ||
101 | #[test] | 101 | #[test] |
@@ -111,7 +111,7 @@ mod tests { | |||
111 | ", | 111 | ", |
112 | ); | 112 | ); |
113 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); | 113 | let nav = analysis.parent_module(pos).unwrap().pop().unwrap(); |
114 | nav.assert_match("baz MODULE FileId(1) [32; 44)"); | 114 | nav.assert_match("baz MODULE FileId(1) 32..44"); |
115 | } | 115 | } |
116 | 116 | ||
117 | #[test] | 117 | #[test] |
diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index 7d0544ff4..a3970bf83 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs | |||
@@ -214,8 +214,8 @@ mod tests { | |||
214 | let refs = get_all_refs(code); | 214 | let refs = get_all_refs(code); |
215 | check_result( | 215 | check_result( |
216 | refs, | 216 | refs, |
217 | "Foo STRUCT_DEF FileId(1) [5; 39) [12; 15) Other", | 217 | "Foo STRUCT_DEF FileId(1) 5..39 12..15 Other", |
218 | &["FileId(1) [138; 141) StructLiteral"], | 218 | &["FileId(1) 138..141 StructLiteral"], |
219 | ); | 219 | ); |
220 | } | 220 | } |
221 | 221 | ||
@@ -231,8 +231,8 @@ mod tests { | |||
231 | let refs = get_all_refs(code); | 231 | let refs = get_all_refs(code); |
232 | check_result( | 232 | check_result( |
233 | refs, | 233 | refs, |
234 | "Foo STRUCT_DEF FileId(1) [5; 18) [12; 15) Other", | 234 | "Foo STRUCT_DEF FileId(1) 5..18 12..15 Other", |
235 | &["FileId(1) [54; 57) Other", "FileId(1) [71; 74) StructLiteral"], | 235 | &["FileId(1) 54..57 Other", "FileId(1) 71..74 StructLiteral"], |
236 | ); | 236 | ); |
237 | } | 237 | } |
238 | 238 | ||
@@ -248,8 +248,8 @@ mod tests { | |||
248 | let refs = get_all_refs(code); | 248 | let refs = get_all_refs(code); |
249 | check_result( | 249 | check_result( |
250 | refs, | 250 | refs, |
251 | "Foo STRUCT_DEF FileId(1) [5; 21) [12; 15) Other", | 251 | "Foo STRUCT_DEF FileId(1) 5..21 12..15 Other", |
252 | &["FileId(1) [81; 84) StructLiteral"], | 252 | &["FileId(1) 81..84 StructLiteral"], |
253 | ); | 253 | ); |
254 | } | 254 | } |
255 | 255 | ||
@@ -266,8 +266,8 @@ mod tests { | |||
266 | let refs = get_all_refs(code); | 266 | let refs = get_all_refs(code); |
267 | check_result( | 267 | check_result( |
268 | refs, | 268 | refs, |
269 | "Foo STRUCT_DEF FileId(1) [5; 21) [12; 15) Other", | 269 | "Foo STRUCT_DEF FileId(1) 5..21 12..15 Other", |
270 | &["FileId(1) [71; 74) StructLiteral"], | 270 | &["FileId(1) 71..74 StructLiteral"], |
271 | ); | 271 | ); |
272 | } | 272 | } |
273 | 273 | ||
@@ -289,12 +289,12 @@ mod tests { | |||
289 | let refs = get_all_refs(code); | 289 | let refs = get_all_refs(code); |
290 | check_result( | 290 | check_result( |
291 | refs, | 291 | refs, |
292 | "i BIND_PAT FileId(1) [33; 34) Other Write", | 292 | "i BIND_PAT FileId(1) 33..34 Other Write", |
293 | &[ | 293 | &[ |
294 | "FileId(1) [67; 68) Other Write", | 294 | "FileId(1) 67..68 Other Write", |
295 | "FileId(1) [71; 72) Other Read", | 295 | "FileId(1) 71..72 Other Read", |
296 | "FileId(1) [101; 102) Other Write", | 296 | "FileId(1) 101..102 Other Write", |
297 | "FileId(1) [127; 128) Other Write", | 297 | "FileId(1) 127..128 Other Write", |
298 | ], | 298 | ], |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -315,8 +315,8 @@ mod tests { | |||
315 | let refs = get_all_refs(code); | 315 | let refs = get_all_refs(code); |
316 | check_result( | 316 | check_result( |
317 | refs, | 317 | refs, |
318 | "spam BIND_PAT FileId(1) [44; 48) Other", | 318 | "spam BIND_PAT FileId(1) 44..48 Other", |
319 | &["FileId(1) [71; 75) Other Read", "FileId(1) [78; 82) Other Read"], | 319 | &["FileId(1) 71..75 Other Read", "FileId(1) 78..82 Other Read"], |
320 | ); | 320 | ); |
321 | } | 321 | } |
322 | 322 | ||
@@ -328,11 +328,7 @@ mod tests { | |||
328 | }"#; | 328 | }"#; |
329 | 329 | ||
330 | let refs = get_all_refs(code); | 330 | let refs = get_all_refs(code); |
331 | check_result( | 331 | check_result(refs, "i BIND_PAT FileId(1) 12..13 Other", &["FileId(1) 38..39 Other Read"]); |
332 | refs, | ||
333 | "i BIND_PAT FileId(1) [12; 13) Other", | ||
334 | &["FileId(1) [38; 39) Other Read"], | ||
335 | ); | ||
336 | } | 332 | } |
337 | 333 | ||
338 | #[test] | 334 | #[test] |
@@ -343,11 +339,7 @@ mod tests { | |||
343 | }"#; | 339 | }"#; |
344 | 340 | ||
345 | let refs = get_all_refs(code); | 341 | let refs = get_all_refs(code); |
346 | check_result( | 342 | check_result(refs, "i BIND_PAT FileId(1) 12..13 Other", &["FileId(1) 38..39 Other Read"]); |
347 | refs, | ||
348 | "i BIND_PAT FileId(1) [12; 13) Other", | ||
349 | &["FileId(1) [38; 39) Other Read"], | ||
350 | ); | ||
351 | } | 343 | } |
352 | 344 | ||
353 | #[test] | 345 | #[test] |
@@ -366,8 +358,8 @@ mod tests { | |||
366 | let refs = get_all_refs(code); | 358 | let refs = get_all_refs(code); |
367 | check_result( | 359 | check_result( |
368 | refs, | 360 | refs, |
369 | "spam RECORD_FIELD_DEF FileId(1) [66; 79) [70; 74) Other", | 361 | "spam RECORD_FIELD_DEF FileId(1) 66..79 70..74 Other", |
370 | &["FileId(1) [152; 156) Other Read"], | 362 | &["FileId(1) 152..156 Other Read"], |
371 | ); | 363 | ); |
372 | } | 364 | } |
373 | 365 | ||
@@ -382,7 +374,7 @@ mod tests { | |||
382 | "#; | 374 | "#; |
383 | 375 | ||
384 | let refs = get_all_refs(code); | 376 | let refs = get_all_refs(code); |
385 | check_result(refs, "f FN_DEF FileId(1) [88; 104) [91; 92) Other", &[]); | 377 | check_result(refs, "f FN_DEF FileId(1) 88..104 91..92 Other", &[]); |
386 | } | 378 | } |
387 | 379 | ||
388 | #[test] | 380 | #[test] |
@@ -397,7 +389,7 @@ mod tests { | |||
397 | "#; | 389 | "#; |
398 | 390 | ||
399 | let refs = get_all_refs(code); | 391 | let refs = get_all_refs(code); |
400 | check_result(refs, "B ENUM_VARIANT FileId(1) [83; 84) [83; 84) Other", &[]); | 392 | check_result(refs, "B ENUM_VARIANT FileId(1) 83..84 83..84 Other", &[]); |
401 | } | 393 | } |
402 | 394 | ||
403 | #[test] | 395 | #[test] |
@@ -438,8 +430,8 @@ mod tests { | |||
438 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); | 430 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); |
439 | check_result( | 431 | check_result( |
440 | refs, | 432 | refs, |
441 | "Foo STRUCT_DEF FileId(2) [16; 50) [27; 30) Other", | 433 | "Foo STRUCT_DEF FileId(2) 16..50 27..30 Other", |
442 | &["FileId(1) [52; 55) StructLiteral", "FileId(3) [77; 80) StructLiteral"], | 434 | &["FileId(1) 52..55 StructLiteral", "FileId(3) 77..80 StructLiteral"], |
443 | ); | 435 | ); |
444 | } | 436 | } |
445 | 437 | ||
@@ -466,11 +458,7 @@ mod tests { | |||
466 | 458 | ||
467 | let (analysis, pos) = analysis_and_position(code); | 459 | let (analysis, pos) = analysis_and_position(code); |
468 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); | 460 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); |
469 | check_result( | 461 | check_result(refs, "foo SOURCE_FILE FileId(2) 0..35 Other", &["FileId(1) 13..16 Other"]); |
470 | refs, | ||
471 | "foo SOURCE_FILE FileId(2) [0; 35) Other", | ||
472 | &["FileId(1) [13; 16) Other"], | ||
473 | ); | ||
474 | } | 462 | } |
475 | 463 | ||
476 | #[test] | 464 | #[test] |
@@ -497,8 +485,8 @@ mod tests { | |||
497 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); | 485 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); |
498 | check_result( | 486 | check_result( |
499 | refs, | 487 | refs, |
500 | "Foo STRUCT_DEF FileId(3) [0; 41) [18; 21) Other", | 488 | "Foo STRUCT_DEF FileId(3) 0..41 18..21 Other", |
501 | &["FileId(2) [20; 23) Other", "FileId(2) [46; 49) StructLiteral"], | 489 | &["FileId(2) 20..23 Other", "FileId(2) 46..49 StructLiteral"], |
502 | ); | 490 | ); |
503 | } | 491 | } |
504 | 492 | ||
@@ -525,16 +513,16 @@ mod tests { | |||
525 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); | 513 | let refs = analysis.find_all_refs(pos, None).unwrap().unwrap(); |
526 | check_result( | 514 | check_result( |
527 | refs, | 515 | refs, |
528 | "quux FN_DEF FileId(1) [18; 34) [25; 29) Other", | 516 | "quux FN_DEF FileId(1) 18..34 25..29 Other", |
529 | &["FileId(2) [16; 20) StructLiteral", "FileId(3) [16; 20) StructLiteral"], | 517 | &["FileId(2) 16..20 StructLiteral", "FileId(3) 16..20 StructLiteral"], |
530 | ); | 518 | ); |
531 | 519 | ||
532 | let refs = | 520 | let refs = |
533 | analysis.find_all_refs(pos, Some(SearchScope::single_file(bar))).unwrap().unwrap(); | 521 | analysis.find_all_refs(pos, Some(SearchScope::single_file(bar))).unwrap().unwrap(); |
534 | check_result( | 522 | check_result( |
535 | refs, | 523 | refs, |
536 | "quux FN_DEF FileId(1) [18; 34) [25; 29) Other", | 524 | "quux FN_DEF FileId(1) 18..34 25..29 Other", |
537 | &["FileId(3) [16; 20) StructLiteral"], | 525 | &["FileId(3) 16..20 StructLiteral"], |
538 | ); | 526 | ); |
539 | } | 527 | } |
540 | 528 | ||
@@ -552,8 +540,8 @@ mod tests { | |||
552 | let refs = get_all_refs(code); | 540 | let refs = get_all_refs(code); |
553 | check_result( | 541 | check_result( |
554 | refs, | 542 | refs, |
555 | "m1 MACRO_CALL FileId(1) [9; 63) [46; 48) Other", | 543 | "m1 MACRO_CALL FileId(1) 9..63 46..48 Other", |
556 | &["FileId(1) [96; 98) StructLiteral", "FileId(1) [114; 116) StructLiteral"], | 544 | &["FileId(1) 96..98 StructLiteral", "FileId(1) 114..116 StructLiteral"], |
557 | ); | 545 | ); |
558 | } | 546 | } |
559 | 547 | ||
@@ -568,8 +556,8 @@ mod tests { | |||
568 | let refs = get_all_refs(code); | 556 | let refs = get_all_refs(code); |
569 | check_result( | 557 | check_result( |
570 | refs, | 558 | refs, |
571 | "i BIND_PAT FileId(1) [40; 41) Other Write", | 559 | "i BIND_PAT FileId(1) 40..41 Other Write", |
572 | &["FileId(1) [59; 60) Other Write", "FileId(1) [63; 64) Other Read"], | 560 | &["FileId(1) 59..60 Other Write", "FileId(1) 63..64 Other Read"], |
573 | ); | 561 | ); |
574 | } | 562 | } |
575 | 563 | ||
@@ -588,8 +576,8 @@ mod tests { | |||
588 | let refs = get_all_refs(code); | 576 | let refs = get_all_refs(code); |
589 | check_result( | 577 | check_result( |
590 | refs, | 578 | refs, |
591 | "f RECORD_FIELD_DEF FileId(1) [32; 38) [32; 33) Other", | 579 | "f RECORD_FIELD_DEF FileId(1) 32..38 32..33 Other", |
592 | &["FileId(1) [96; 97) Other Read", "FileId(1) [117; 118) Other Write"], | 580 | &["FileId(1) 96..97 Other Read", "FileId(1) 117..118 Other Write"], |
593 | ); | 581 | ); |
594 | } | 582 | } |
595 | 583 | ||
@@ -602,11 +590,7 @@ mod tests { | |||
602 | }"#; | 590 | }"#; |
603 | 591 | ||
604 | let refs = get_all_refs(code); | 592 | let refs = get_all_refs(code); |
605 | check_result( | 593 | check_result(refs, "i BIND_PAT FileId(1) 36..37 Other", &["FileId(1) 51..52 Other Write"]); |
606 | refs, | ||
607 | "i BIND_PAT FileId(1) [36; 37) Other", | ||
608 | &["FileId(1) [51; 52) Other Write"], | ||
609 | ); | ||
610 | } | 594 | } |
611 | 595 | ||
612 | fn get_all_refs(text: &str) -> ReferenceSearchResult { | 596 | fn get_all_refs(text: &str) -> ReferenceSearchResult { |
diff --git a/crates/ra_ide/src/references/rename.rs b/crates/ra_ide/src/references/rename.rs index 9acc6158a..a8f320e2f 100644 --- a/crates/ra_ide/src/references/rename.rs +++ b/crates/ra_ide/src/references/rename.rs | |||
@@ -54,15 +54,12 @@ fn source_edit_from_reference(reference: Reference, new_name: &str) -> SourceFil | |||
54 | ReferenceKind::StructFieldShorthandForField => { | 54 | ReferenceKind::StructFieldShorthandForField => { |
55 | replacement_text.push_str(new_name); | 55 | replacement_text.push_str(new_name); |
56 | replacement_text.push_str(": "); | 56 | replacement_text.push_str(": "); |
57 | TextRange::from_to( | 57 | TextRange::new(reference.file_range.range.start(), reference.file_range.range.start()) |
58 | reference.file_range.range.start(), | ||
59 | reference.file_range.range.start(), | ||
60 | ) | ||
61 | } | 58 | } |
62 | ReferenceKind::StructFieldShorthandForLocal => { | 59 | ReferenceKind::StructFieldShorthandForLocal => { |
63 | replacement_text.push_str(": "); | 60 | replacement_text.push_str(": "); |
64 | replacement_text.push_str(new_name); | 61 | replacement_text.push_str(new_name); |
65 | TextRange::from_to(reference.file_range.range.end(), reference.file_range.range.end()) | 62 | TextRange::new(reference.file_range.range.end(), reference.file_range.range.end()) |
66 | } | 63 | } |
67 | _ => { | 64 | _ => { |
68 | replacement_text.push_str(new_name); | 65 | replacement_text.push_str(new_name); |
@@ -528,7 +525,7 @@ mod tests { | |||
528 | @r###" | 525 | @r###" |
529 | Some( | 526 | Some( |
530 | RangeInfo { | 527 | RangeInfo { |
531 | range: [4; 7), | 528 | range: 4..7, |
532 | info: SourceChange { | 529 | info: SourceChange { |
533 | label: "rename", | 530 | label: "rename", |
534 | source_file_edits: [ | 531 | source_file_edits: [ |
@@ -539,7 +536,7 @@ mod tests { | |||
539 | edit: TextEdit { | 536 | edit: TextEdit { |
540 | atoms: [ | 537 | atoms: [ |
541 | AtomTextEdit { | 538 | AtomTextEdit { |
542 | delete: [4; 7), | 539 | delete: 4..7, |
543 | insert: "foo2", | 540 | insert: "foo2", |
544 | }, | 541 | }, |
545 | ], | 542 | ], |
@@ -580,7 +577,7 @@ mod tests { | |||
580 | @r###" | 577 | @r###" |
581 | Some( | 578 | Some( |
582 | RangeInfo { | 579 | RangeInfo { |
583 | range: [4; 7), | 580 | range: 4..7, |
584 | info: SourceChange { | 581 | info: SourceChange { |
585 | label: "rename", | 582 | label: "rename", |
586 | source_file_edits: [ | 583 | source_file_edits: [ |
@@ -591,7 +588,7 @@ mod tests { | |||
591 | edit: TextEdit { | 588 | edit: TextEdit { |
592 | atoms: [ | 589 | atoms: [ |
593 | AtomTextEdit { | 590 | AtomTextEdit { |
594 | delete: [4; 7), | 591 | delete: 4..7, |
595 | insert: "foo2", | 592 | insert: "foo2", |
596 | }, | 593 | }, |
597 | ], | 594 | ], |
@@ -663,7 +660,7 @@ mod tests { | |||
663 | @r###" | 660 | @r###" |
664 | Some( | 661 | Some( |
665 | RangeInfo { | 662 | RangeInfo { |
666 | range: [8; 11), | 663 | range: 8..11, |
667 | info: SourceChange { | 664 | info: SourceChange { |
668 | label: "rename", | 665 | label: "rename", |
669 | source_file_edits: [ | 666 | source_file_edits: [ |
@@ -674,7 +671,7 @@ mod tests { | |||
674 | edit: TextEdit { | 671 | edit: TextEdit { |
675 | atoms: [ | 672 | atoms: [ |
676 | AtomTextEdit { | 673 | AtomTextEdit { |
677 | delete: [8; 11), | 674 | delete: 8..11, |
678 | insert: "foo2", | 675 | insert: "foo2", |
679 | }, | 676 | }, |
680 | ], | 677 | ], |
@@ -687,7 +684,7 @@ mod tests { | |||
687 | edit: TextEdit { | 684 | edit: TextEdit { |
688 | atoms: [ | 685 | atoms: [ |
689 | AtomTextEdit { | 686 | AtomTextEdit { |
690 | delete: [27; 30), | 687 | delete: 27..30, |
691 | insert: "foo2", | 688 | insert: "foo2", |
692 | }, | 689 | }, |
693 | ], | 690 | ], |
diff --git a/crates/ra_ide/src/runnables.rs b/crates/ra_ide/src/runnables.rs index 05a66e03c..38637c19c 100644 --- a/crates/ra_ide/src/runnables.rs +++ b/crates/ra_ide/src/runnables.rs | |||
@@ -164,11 +164,11 @@ mod tests { | |||
164 | @r###" | 164 | @r###" |
165 | [ | 165 | [ |
166 | Runnable { | 166 | Runnable { |
167 | range: [1; 21), | 167 | range: 1..21, |
168 | kind: Bin, | 168 | kind: Bin, |
169 | }, | 169 | }, |
170 | Runnable { | 170 | Runnable { |
171 | range: [22; 46), | 171 | range: 22..46, |
172 | kind: Test { | 172 | kind: Test { |
173 | test_id: Path( | 173 | test_id: Path( |
174 | "test_foo", | 174 | "test_foo", |
@@ -179,7 +179,7 @@ mod tests { | |||
179 | }, | 179 | }, |
180 | }, | 180 | }, |
181 | Runnable { | 181 | Runnable { |
182 | range: [47; 81), | 182 | range: 47..81, |
183 | kind: Test { | 183 | kind: Test { |
184 | test_id: Path( | 184 | test_id: Path( |
185 | "test_foo", | 185 | "test_foo", |
@@ -211,13 +211,13 @@ mod tests { | |||
211 | @r###" | 211 | @r###" |
212 | [ | 212 | [ |
213 | Runnable { | 213 | Runnable { |
214 | range: [1; 59), | 214 | range: 1..59, |
215 | kind: TestMod { | 215 | kind: TestMod { |
216 | path: "test_mod", | 216 | path: "test_mod", |
217 | }, | 217 | }, |
218 | }, | 218 | }, |
219 | Runnable { | 219 | Runnable { |
220 | range: [28; 57), | 220 | range: 28..57, |
221 | kind: Test { | 221 | kind: Test { |
222 | test_id: Path( | 222 | test_id: Path( |
223 | "test_mod::test_foo1", | 223 | "test_mod::test_foo1", |
@@ -251,13 +251,13 @@ mod tests { | |||
251 | @r###" | 251 | @r###" |
252 | [ | 252 | [ |
253 | Runnable { | 253 | Runnable { |
254 | range: [23; 85), | 254 | range: 23..85, |
255 | kind: TestMod { | 255 | kind: TestMod { |
256 | path: "foo::test_mod", | 256 | path: "foo::test_mod", |
257 | }, | 257 | }, |
258 | }, | 258 | }, |
259 | Runnable { | 259 | Runnable { |
260 | range: [46; 79), | 260 | range: 46..79, |
261 | kind: Test { | 261 | kind: Test { |
262 | test_id: Path( | 262 | test_id: Path( |
263 | "foo::test_mod::test_foo1", | 263 | "foo::test_mod::test_foo1", |
@@ -293,13 +293,13 @@ mod tests { | |||
293 | @r###" | 293 | @r###" |
294 | [ | 294 | [ |
295 | Runnable { | 295 | Runnable { |
296 | range: [41; 115), | 296 | range: 41..115, |
297 | kind: TestMod { | 297 | kind: TestMod { |
298 | path: "foo::bar::test_mod", | 298 | path: "foo::bar::test_mod", |
299 | }, | 299 | }, |
300 | }, | 300 | }, |
301 | Runnable { | 301 | Runnable { |
302 | range: [68; 105), | 302 | range: 68..105, |
303 | kind: Test { | 303 | kind: Test { |
304 | test_id: Path( | 304 | test_id: Path( |
305 | "foo::bar::test_mod::test_foo1", | 305 | "foo::bar::test_mod::test_foo1", |
diff --git a/crates/ra_ide/src/snapshots/highlight_strings.html b/crates/ra_ide/src/snapshots/highlight_strings.html new file mode 100644 index 000000000..433f2e0c5 --- /dev/null +++ b/crates/ra_ide/src/snapshots/highlight_strings.html | |||
@@ -0,0 +1,82 @@ | |||
1 | |||
2 | <style> | ||
3 | body { margin: 0; } | ||
4 | pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padding: 0.4em; } | ||
5 | |||
6 | .lifetime { color: #DFAF8F; font-style: italic; } | ||
7 | .comment { color: #7F9F7F; } | ||
8 | .struct, .enum { color: #7CB8BB; } | ||
9 | .enum_variant { color: #BDE0F3; } | ||
10 | .string_literal { color: #CC9393; } | ||
11 | .field { color: #94BFF3; } | ||
12 | .function { color: #93E0E3; } | ||
13 | .parameter { color: #94BFF3; } | ||
14 | .text { color: #DCDCCC; } | ||
15 | .type { color: #7CB8BB; } | ||
16 | .builtin_type { color: #8CD0D3; } | ||
17 | .type_param { color: #DFAF8F; } | ||
18 | .attribute { color: #94BFF3; } | ||
19 | .numeric_literal { color: #BFEBBF; } | ||
20 | .macro { color: #94BFF3; } | ||
21 | .module { color: #AFD8AF; } | ||
22 | .variable { color: #DCDCCC; } | ||
23 | .mutable { text-decoration: underline; } | ||
24 | |||
25 | .keyword { color: #F0DFAF; font-weight: bold; } | ||
26 | .keyword.unsafe { color: #BC8383; font-weight: bold; } | ||
27 | .control { font-style: italic; } | ||
28 | </style> | ||
29 | <pre><code><span class="macro">macro_rules!</span> println { | ||
30 | ($($arg:tt)*) => ({ | ||
31 | $<span class="keyword">crate</span>::io::_print($<span class="keyword">crate</span>::format_args_nl!($($arg)*)); | ||
32 | }) | ||
33 | } | ||
34 | #[rustc_builtin_macro] | ||
35 | <span class="macro">macro_rules!</span> format_args_nl { | ||
36 | ($fmt:expr) => {{ <span class="comment">/* compiler built-in */</span> }}; | ||
37 | ($fmt:expr, $($args:tt)*) => {{ <span class="comment">/* compiler built-in */</span> }}; | ||
38 | } | ||
39 | |||
40 | <span class="keyword">fn</span> <span class="function declaration">main</span>() { | ||
41 | <span class="comment">// from https://doc.rust-lang.org/std/fmt/index.html</span> | ||
42 | <span class="macro">println!</span>(<span class="string_literal">"Hello"</span>); <span class="comment">// => "Hello"</span> | ||
43 | <span class="macro">println!</span>(<span class="string_literal">"Hello, </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"world"</span>); <span class="comment">// => "Hello, world!"</span> | ||
44 | <span class="macro">println!</span>(<span class="string_literal">"The number is </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">1</span>); <span class="comment">// => "The number is 1"</span> | ||
45 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">?</span><span class="attribute">}</span><span class="string_literal">"</span>, (<span class="numeric_literal">3</span>, <span class="numeric_literal">4</span>)); <span class="comment">// => "(3, 4)"</span> | ||
46 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">value</span><span class="attribute">}</span><span class="string_literal">"</span>, value=<span class="numeric_literal">4</span>); <span class="comment">// => "4"</span> | ||
47 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">1</span>, <span class="numeric_literal">2</span>); <span class="comment">// => "1 2"</span> | ||
48 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">:</span><span class="numeric_literal">0</span><span class="numeric_literal">4</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">42</span>); <span class="comment">// => "0042" with leading zerosV</span> | ||
49 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="numeric_literal">1</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="numeric_literal">0</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">1</span>, <span class="numeric_literal">2</span>); <span class="comment">// => "2 1 1 2"</span> | ||
50 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">argument</span><span class="attribute">}</span><span class="string_literal">"</span>, argument = <span class="string_literal">"test"</span>); <span class="comment">// => "test"</span> | ||
51 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">name</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">1</span>, name = <span class="numeric_literal">2</span>); <span class="comment">// => "2 1"</span> | ||
52 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">a</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="variable">c</span><span class="attribute">}</span><span class="string_literal"> </span><span class="attribute">{</span><span class="variable">b</span><span class="attribute">}</span><span class="string_literal">"</span>, a=<span class="string_literal">"a"</span>, b=<span class="char_literal">'b'</span>, c=<span class="numeric_literal">3</span>); <span class="comment">// => "a 3 b"</span> | ||
53 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>); | ||
54 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="numeric_literal">1</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">5</span>); | ||
55 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="numeric_literal">1</span><span class="attribute">:</span><span class="numeric_literal">0</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="numeric_literal">5</span>, <span class="string_literal">"x"</span>); | ||
56 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="variable">width</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>, width = <span class="numeric_literal">5</span>); | ||
57 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute"><</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>); | ||
58 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">-</span><span class="attribute"><</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>); | ||
59 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">^</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>); | ||
60 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">></span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"x"</span>); | ||
61 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">+</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="numeric_literal">5</span>); | ||
62 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">#</span><span class="variable">x</span><span class="string_literal">}!"</span>, <span class="numeric_literal">27</span>); | ||
63 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="numeric_literal">0</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="numeric_literal">5</span>); | ||
64 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">:</span><span class="numeric_literal">0</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">!"</span>, -<span class="numeric_literal">5</span>); | ||
65 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">#</span><span class="numeric_literal">0</span><span class="numeric_literal">10</span><span class="variable">x</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="numeric_literal">27</span>); | ||
66 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="numeric_literal">0</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="numeric_literal">1</span><span class="attribute">:</span><span class="attribute">.</span><span class="numeric_literal">5</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">0.01</span>); | ||
67 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="numeric_literal">1</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="numeric_literal">2</span><span class="attribute">:</span><span class="attribute">.</span><span class="numeric_literal">0</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="numeric_literal">5</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">0.01</span>); | ||
68 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="numeric_literal">0</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="numeric_literal">2</span><span class="attribute">:</span><span class="attribute">.</span><span class="numeric_literal">1</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">5</span>, <span class="numeric_literal">0.01</span>); | ||
69 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="attribute">:</span><span class="attribute">.</span><span class="attribute">*</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">5</span>, <span class="numeric_literal">0.01</span>); | ||
70 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="numeric_literal">2</span><span class="attribute">:</span><span class="attribute">.</span><span class="attribute">*</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="string_literal">"x"</span>, <span class="numeric_literal">5</span>, <span class="numeric_literal">0.01</span>); | ||
71 | <span class="macro">println!</span>(<span class="string_literal">"Hello </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal"> is </span><span class="attribute">{</span><span class="variable">number</span><span class="attribute">:</span><span class="attribute">.</span><span class="variable">prec</span><span class="attribute">$</span><span class="attribute">}</span><span class="string_literal">"</span>, <span class="string_literal">"x"</span>, prec = <span class="numeric_literal">5</span>, number = <span class="numeric_literal">0.01</span>); | ||
72 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">, `</span><span class="attribute">{</span><span class="variable">name</span><span class="attribute">:</span><span class="attribute">.</span><span class="attribute">*</span><span class="attribute">}</span><span class="string_literal">` has 3 fractional digits"</span>, <span class="string_literal">"Hello"</span>, <span class="numeric_literal">3</span>, name=<span class="numeric_literal">1234.56</span>); | ||
73 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">, `</span><span class="attribute">{</span><span class="variable">name</span><span class="attribute">:</span><span class="attribute">.</span><span class="attribute">*</span><span class="attribute">}</span><span class="string_literal">` has 3 characters"</span>, <span class="string_literal">"Hello"</span>, <span class="numeric_literal">3</span>, name=<span class="string_literal">"1234.56"</span>); | ||
74 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">, `</span><span class="attribute">{</span><span class="variable">name</span><span class="attribute">:</span><span class="attribute">></span><span class="numeric_literal">8</span><span class="attribute">.</span><span class="attribute">*</span><span class="attribute">}</span><span class="string_literal">` has 3 right-aligned characters"</span>, <span class="string_literal">"Hello"</span>, <span class="numeric_literal">3</span>, name=<span class="string_literal">"1234.56"</span>); | ||
75 | <span class="macro">println!</span>(<span class="string_literal">"Hello {{}}"</span>); | ||
76 | <span class="macro">println!</span>(<span class="string_literal">"{{ Hello"</span>); | ||
77 | |||
78 | <span class="macro">println!</span>(<span class="string_literal">r"Hello, </span><span class="attribute">{</span><span class="attribute">}</span><span class="string_literal">!"</span>, <span class="string_literal">"world"</span>); | ||
79 | |||
80 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">\x41</span><span class="attribute">}</span><span class="string_literal">"</span>, A = <span class="numeric_literal">92</span>); | ||
81 | <span class="macro">println!</span>(<span class="string_literal">"</span><span class="attribute">{</span><span class="variable">ничоси</span><span class="attribute">}</span><span class="string_literal">"</span>, ничоси = <span class="numeric_literal">92</span>); | ||
82 | }</code></pre> \ No newline at end of file | ||
diff --git a/crates/ra_ide/src/source_change.rs b/crates/ra_ide/src/source_change.rs index f5f7f8807..71b0e8f75 100644 --- a/crates/ra_ide/src/source_change.rs +++ b/crates/ra_ide/src/source_change.rs | |||
@@ -6,7 +6,7 @@ | |||
6 | use ra_db::RelativePathBuf; | 6 | use ra_db::RelativePathBuf; |
7 | use ra_text_edit::TextEdit; | 7 | use ra_text_edit::TextEdit; |
8 | 8 | ||
9 | use crate::{FileId, FilePosition, SourceRootId, TextUnit}; | 9 | use crate::{FileId, FilePosition, SourceRootId, TextSize}; |
10 | 10 | ||
11 | #[derive(Debug)] | 11 | #[derive(Debug)] |
12 | pub struct SourceChange { | 12 | pub struct SourceChange { |
@@ -104,7 +104,7 @@ pub enum FileSystemEdit { | |||
104 | pub(crate) struct SingleFileChange { | 104 | pub(crate) struct SingleFileChange { |
105 | pub label: String, | 105 | pub label: String, |
106 | pub edit: TextEdit, | 106 | pub edit: TextEdit, |
107 | pub cursor_position: Option<TextUnit>, | 107 | pub cursor_position: Option<TextSize>, |
108 | } | 108 | } |
109 | 109 | ||
110 | impl SingleFileChange { | 110 | impl SingleFileChange { |
diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index d9912155b..6f02614a6 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs | |||
@@ -12,7 +12,7 @@ use ra_ide_db::{ | |||
12 | }; | 12 | }; |
13 | use ra_prof::profile; | 13 | use ra_prof::profile; |
14 | use ra_syntax::{ | 14 | use ra_syntax::{ |
15 | ast::{self, HasQuotes, HasStringValue}, | 15 | ast::{self, HasFormatSpecifier, HasQuotes, HasStringValue}, |
16 | AstNode, AstToken, Direction, NodeOrToken, SyntaxElement, | 16 | AstNode, AstToken, Direction, NodeOrToken, SyntaxElement, |
17 | SyntaxKind::*, | 17 | SyntaxKind::*, |
18 | SyntaxToken, TextRange, WalkEvent, T, | 18 | SyntaxToken, TextRange, WalkEvent, T, |
@@ -21,6 +21,7 @@ use rustc_hash::FxHashMap; | |||
21 | 21 | ||
22 | use crate::{call_info::ActiveParameter, Analysis, FileId}; | 22 | use crate::{call_info::ActiveParameter, Analysis, FileId}; |
23 | 23 | ||
24 | use ast::FormatSpecifier; | ||
24 | pub(crate) use html::highlight_as_html; | 25 | pub(crate) use html::highlight_as_html; |
25 | pub use tags::{Highlight, HighlightModifier, HighlightModifiers, HighlightTag}; | 26 | pub use tags::{Highlight, HighlightModifier, HighlightModifiers, HighlightTag}; |
26 | 27 | ||
@@ -31,6 +32,81 @@ pub struct HighlightedRange { | |||
31 | pub binding_hash: Option<u64>, | 32 | pub binding_hash: Option<u64>, |
32 | } | 33 | } |
33 | 34 | ||
35 | #[derive(Debug)] | ||
36 | struct HighlightedRangeStack { | ||
37 | stack: Vec<Vec<HighlightedRange>>, | ||
38 | } | ||
39 | |||
40 | /// We use a stack to implement the flattening logic for the highlighted | ||
41 | /// syntax ranges. | ||
42 | impl HighlightedRangeStack { | ||
43 | fn new() -> Self { | ||
44 | Self { stack: vec![Vec::new()] } | ||
45 | } | ||
46 | |||
47 | fn push(&mut self) { | ||
48 | self.stack.push(Vec::new()); | ||
49 | } | ||
50 | |||
51 | /// Flattens the highlighted ranges. | ||
52 | /// | ||
53 | /// For example `#[cfg(feature = "foo")]` contains the nested ranges: | ||
54 | /// 1) parent-range: Attribute [0, 23) | ||
55 | /// 2) child-range: String [16, 21) | ||
56 | /// | ||
57 | /// The following code implements the flattening, for our example this results to: | ||
58 | /// `[Attribute [0, 16), String [16, 21), Attribute [21, 23)]` | ||
59 | fn pop(&mut self) { | ||
60 | let children = self.stack.pop().unwrap(); | ||
61 | let prev = self.stack.last_mut().unwrap(); | ||
62 | let needs_flattening = !children.is_empty() | ||
63 | && !prev.is_empty() | ||
64 | && prev.last().unwrap().range.contains_range(children.first().unwrap().range); | ||
65 | if !needs_flattening { | ||
66 | prev.extend(children); | ||
67 | } else { | ||
68 | let mut parent = prev.pop().unwrap(); | ||
69 | for ele in children { | ||
70 | assert!(parent.range.contains_range(ele.range)); | ||
71 | let mut cloned = parent.clone(); | ||
72 | parent.range = TextRange::new(parent.range.start(), ele.range.start()); | ||
73 | cloned.range = TextRange::new(ele.range.end(), cloned.range.end()); | ||
74 | if !parent.range.is_empty() { | ||
75 | prev.push(parent); | ||
76 | } | ||
77 | prev.push(ele); | ||
78 | parent = cloned; | ||
79 | } | ||
80 | if !parent.range.is_empty() { | ||
81 | prev.push(parent); | ||
82 | } | ||
83 | } | ||
84 | } | ||
85 | |||
86 | fn add(&mut self, range: HighlightedRange) { | ||
87 | self.stack | ||
88 | .last_mut() | ||
89 | .expect("during DFS traversal, the stack must not be empty") | ||
90 | .push(range) | ||
91 | } | ||
92 | |||
93 | fn flattened(mut self) -> Vec<HighlightedRange> { | ||
94 | assert_eq!( | ||
95 | self.stack.len(), | ||
96 | 1, | ||
97 | "after DFS traversal, the stack should only contain a single element" | ||
98 | ); | ||
99 | let mut res = self.stack.pop().unwrap(); | ||
100 | res.sort_by_key(|range| range.range.start()); | ||
101 | // Check that ranges are sorted and disjoint | ||
102 | assert!(res | ||
103 | .iter() | ||
104 | .zip(res.iter().skip(1)) | ||
105 | .all(|(left, right)| left.range.end() <= right.range.start())); | ||
106 | res | ||
107 | } | ||
108 | } | ||
109 | |||
34 | pub(crate) fn highlight( | 110 | pub(crate) fn highlight( |
35 | db: &RootDatabase, | 111 | db: &RootDatabase, |
36 | file_id: FileId, | 112 | file_id: FileId, |
@@ -57,52 +133,18 @@ pub(crate) fn highlight( | |||
57 | let mut bindings_shadow_count: FxHashMap<Name, u32> = FxHashMap::default(); | 133 | let mut bindings_shadow_count: FxHashMap<Name, u32> = FxHashMap::default(); |
58 | // We use a stack for the DFS traversal below. | 134 | // We use a stack for the DFS traversal below. |
59 | // When we leave a node, the we use it to flatten the highlighted ranges. | 135 | // When we leave a node, the we use it to flatten the highlighted ranges. |
60 | let mut res: Vec<Vec<HighlightedRange>> = vec![Vec::new()]; | 136 | let mut stack = HighlightedRangeStack::new(); |
61 | 137 | ||
62 | let mut current_macro_call: Option<ast::MacroCall> = None; | 138 | let mut current_macro_call: Option<ast::MacroCall> = None; |
139 | let mut format_string: Option<SyntaxElement> = None; | ||
63 | 140 | ||
64 | // Walk all nodes, keeping track of whether we are inside a macro or not. | 141 | // Walk all nodes, keeping track of whether we are inside a macro or not. |
65 | // If in macro, expand it first and highlight the expanded code. | 142 | // If in macro, expand it first and highlight the expanded code. |
66 | for event in root.preorder_with_tokens() { | 143 | for event in root.preorder_with_tokens() { |
67 | match &event { | 144 | match &event { |
68 | WalkEvent::Enter(_) => res.push(Vec::new()), | 145 | WalkEvent::Enter(_) => stack.push(), |
69 | WalkEvent::Leave(_) => { | 146 | WalkEvent::Leave(_) => stack.pop(), |
70 | /* Flattens the highlighted ranges. | ||
71 | * | ||
72 | * For example `#[cfg(feature = "foo")]` contains the nested ranges: | ||
73 | * 1) parent-range: Attribute [0, 23) | ||
74 | * 2) child-range: String [16, 21) | ||
75 | * | ||
76 | * The following code implements the flattening, for our example this results to: | ||
77 | * `[Attribute [0, 16), String [16, 21), Attribute [21, 23)]` | ||
78 | */ | ||
79 | let children = res.pop().unwrap(); | ||
80 | let prev = res.last_mut().unwrap(); | ||
81 | let needs_flattening = !children.is_empty() | ||
82 | && !prev.is_empty() | ||
83 | && children.first().unwrap().range.is_subrange(&prev.last().unwrap().range); | ||
84 | if !needs_flattening { | ||
85 | prev.extend(children); | ||
86 | } else { | ||
87 | let mut parent = prev.pop().unwrap(); | ||
88 | for ele in children { | ||
89 | assert!(ele.range.is_subrange(&parent.range)); | ||
90 | let mut cloned = parent.clone(); | ||
91 | parent.range = TextRange::from_to(parent.range.start(), ele.range.start()); | ||
92 | cloned.range = TextRange::from_to(ele.range.end(), cloned.range.end()); | ||
93 | if !parent.range.is_empty() { | ||
94 | prev.push(parent); | ||
95 | } | ||
96 | prev.push(ele); | ||
97 | parent = cloned; | ||
98 | } | ||
99 | if !parent.range.is_empty() { | ||
100 | prev.push(parent); | ||
101 | } | ||
102 | } | ||
103 | } | ||
104 | }; | 147 | }; |
105 | let current = res.last_mut().expect("during DFS traversal, the stack must not be empty"); | ||
106 | 148 | ||
107 | let event_range = match &event { | 149 | let event_range = match &event { |
108 | WalkEvent::Enter(it) => it.text_range(), | 150 | WalkEvent::Enter(it) => it.text_range(), |
@@ -110,7 +152,7 @@ pub(crate) fn highlight( | |||
110 | }; | 152 | }; |
111 | 153 | ||
112 | // Element outside of the viewport, no need to highlight | 154 | // Element outside of the viewport, no need to highlight |
113 | if range_to_highlight.intersection(&event_range).is_none() { | 155 | if range_to_highlight.intersect(event_range).is_none() { |
114 | continue; | 156 | continue; |
115 | } | 157 | } |
116 | 158 | ||
@@ -119,7 +161,7 @@ pub(crate) fn highlight( | |||
119 | WalkEvent::Enter(Some(mc)) => { | 161 | WalkEvent::Enter(Some(mc)) => { |
120 | current_macro_call = Some(mc.clone()); | 162 | current_macro_call = Some(mc.clone()); |
121 | if let Some(range) = macro_call_range(&mc) { | 163 | if let Some(range) = macro_call_range(&mc) { |
122 | current.push(HighlightedRange { | 164 | stack.add(HighlightedRange { |
123 | range, | 165 | range, |
124 | highlight: HighlightTag::Macro.into(), | 166 | highlight: HighlightTag::Macro.into(), |
125 | binding_hash: None, | 167 | binding_hash: None, |
@@ -130,6 +172,7 @@ pub(crate) fn highlight( | |||
130 | WalkEvent::Leave(Some(mc)) => { | 172 | WalkEvent::Leave(Some(mc)) => { |
131 | assert!(current_macro_call == Some(mc)); | 173 | assert!(current_macro_call == Some(mc)); |
132 | current_macro_call = None; | 174 | current_macro_call = None; |
175 | format_string = None; | ||
133 | continue; | 176 | continue; |
134 | } | 177 | } |
135 | _ => (), | 178 | _ => (), |
@@ -150,6 +193,30 @@ pub(crate) fn highlight( | |||
150 | }; | 193 | }; |
151 | let token = sema.descend_into_macros(token.clone()); | 194 | let token = sema.descend_into_macros(token.clone()); |
152 | let parent = token.parent(); | 195 | let parent = token.parent(); |
196 | |||
197 | // Check if macro takes a format string and remember it for highlighting later. | ||
198 | // The macros that accept a format string expand to a compiler builtin macros | ||
199 | // `format_args` and `format_args_nl`. | ||
200 | if let Some(fmt_macro_call) = parent.parent().and_then(ast::MacroCall::cast) { | ||
201 | if let Some(name) = | ||
202 | fmt_macro_call.path().and_then(|p| p.segment()).and_then(|s| s.name_ref()) | ||
203 | { | ||
204 | match name.text().as_str() { | ||
205 | "format_args" | "format_args_nl" => { | ||
206 | format_string = parent | ||
207 | .children_with_tokens() | ||
208 | .filter(|t| t.kind() != WHITESPACE) | ||
209 | .nth(1) | ||
210 | .filter(|e| { | ||
211 | ast::String::can_cast(e.kind()) | ||
212 | || ast::RawString::can_cast(e.kind()) | ||
213 | }) | ||
214 | } | ||
215 | _ => {} | ||
216 | } | ||
217 | } | ||
218 | } | ||
219 | |||
153 | // We only care Name and Name_ref | 220 | // We only care Name and Name_ref |
154 | match (token.kind(), parent.kind()) { | 221 | match (token.kind(), parent.kind()) { |
155 | (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(), | 222 | (IDENT, NAME) | (IDENT, NAME_REF) => parent.into(), |
@@ -161,27 +228,72 @@ pub(crate) fn highlight( | |||
161 | 228 | ||
162 | if let Some(token) = element.as_token().cloned().and_then(ast::RawString::cast) { | 229 | if let Some(token) = element.as_token().cloned().and_then(ast::RawString::cast) { |
163 | let expanded = element_to_highlight.as_token().unwrap().clone(); | 230 | let expanded = element_to_highlight.as_token().unwrap().clone(); |
164 | if highlight_injection(current, &sema, token, expanded).is_some() { | 231 | if highlight_injection(&mut stack, &sema, token, expanded).is_some() { |
165 | continue; | 232 | continue; |
166 | } | 233 | } |
167 | } | 234 | } |
168 | 235 | ||
236 | let is_format_string = format_string.as_ref() == Some(&element_to_highlight); | ||
237 | |||
169 | if let Some((highlight, binding_hash)) = | 238 | if let Some((highlight, binding_hash)) = |
170 | highlight_element(&sema, &mut bindings_shadow_count, element_to_highlight) | 239 | highlight_element(&sema, &mut bindings_shadow_count, element_to_highlight.clone()) |
171 | { | 240 | { |
172 | current.push(HighlightedRange { range, highlight, binding_hash }); | 241 | stack.add(HighlightedRange { range, highlight, binding_hash }); |
242 | if let Some(string) = | ||
243 | element_to_highlight.as_token().cloned().and_then(ast::String::cast) | ||
244 | { | ||
245 | stack.push(); | ||
246 | if is_format_string { | ||
247 | string.lex_format_specifier(|piece_range, kind| { | ||
248 | if let Some(highlight) = highlight_format_specifier(kind) { | ||
249 | stack.add(HighlightedRange { | ||
250 | range: piece_range + range.start(), | ||
251 | highlight: highlight.into(), | ||
252 | binding_hash: None, | ||
253 | }); | ||
254 | } | ||
255 | }); | ||
256 | } | ||
257 | stack.pop(); | ||
258 | } else if let Some(string) = | ||
259 | element_to_highlight.as_token().cloned().and_then(ast::RawString::cast) | ||
260 | { | ||
261 | stack.push(); | ||
262 | if is_format_string { | ||
263 | string.lex_format_specifier(|piece_range, kind| { | ||
264 | if let Some(highlight) = highlight_format_specifier(kind) { | ||
265 | stack.add(HighlightedRange { | ||
266 | range: piece_range + range.start(), | ||
267 | highlight: highlight.into(), | ||
268 | binding_hash: None, | ||
269 | }); | ||
270 | } | ||
271 | }); | ||
272 | } | ||
273 | stack.pop(); | ||
274 | } | ||
173 | } | 275 | } |
174 | } | 276 | } |
175 | 277 | ||
176 | assert_eq!(res.len(), 1, "after DFS traversal, the stack should only contain a single element"); | 278 | stack.flattened() |
177 | let mut res = res.pop().unwrap(); | 279 | } |
178 | res.sort_by_key(|range| range.range.start()); | 280 | |
179 | // Check that ranges are sorted and disjoint | 281 | fn highlight_format_specifier(kind: FormatSpecifier) -> Option<HighlightTag> { |
180 | assert!(res | 282 | Some(match kind { |
181 | .iter() | 283 | FormatSpecifier::Open |
182 | .zip(res.iter().skip(1)) | 284 | | FormatSpecifier::Close |
183 | .all(|(left, right)| left.range.end() <= right.range.start())); | 285 | | FormatSpecifier::Colon |
184 | res | 286 | | FormatSpecifier::Fill |
287 | | FormatSpecifier::Align | ||
288 | | FormatSpecifier::Sign | ||
289 | | FormatSpecifier::NumberSign | ||
290 | | FormatSpecifier::DollarSign | ||
291 | | FormatSpecifier::Dot | ||
292 | | FormatSpecifier::Asterisk | ||
293 | | FormatSpecifier::QuestionMark => HighlightTag::Attribute, | ||
294 | FormatSpecifier::Integer | FormatSpecifier::Zero => HighlightTag::NumericLiteral, | ||
295 | FormatSpecifier::Identifier => HighlightTag::Local, | ||
296 | }) | ||
185 | } | 297 | } |
186 | 298 | ||
187 | fn macro_call_range(macro_call: &ast::MacroCall) -> Option<TextRange> { | 299 | fn macro_call_range(macro_call: &ast::MacroCall) -> Option<TextRange> { |
@@ -197,7 +309,7 @@ fn macro_call_range(macro_call: &ast::MacroCall) -> Option<TextRange> { | |||
197 | } | 309 | } |
198 | } | 310 | } |
199 | 311 | ||
200 | Some(TextRange::from_to(range_start, range_end)) | 312 | Some(TextRange::new(range_start, range_end)) |
201 | } | 313 | } |
202 | 314 | ||
203 | fn highlight_element( | 315 | fn highlight_element( |
@@ -359,7 +471,7 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { | |||
359 | } | 471 | } |
360 | 472 | ||
361 | fn highlight_injection( | 473 | fn highlight_injection( |
362 | acc: &mut Vec<HighlightedRange>, | 474 | acc: &mut HighlightedRangeStack, |
363 | sema: &Semantics<RootDatabase>, | 475 | sema: &Semantics<RootDatabase>, |
364 | literal: ast::RawString, | 476 | literal: ast::RawString, |
365 | expanded: SyntaxToken, | 477 | expanded: SyntaxToken, |
@@ -372,7 +484,7 @@ fn highlight_injection( | |||
372 | let (analysis, tmp_file_id) = Analysis::from_single_file(value); | 484 | let (analysis, tmp_file_id) = Analysis::from_single_file(value); |
373 | 485 | ||
374 | if let Some(range) = literal.open_quote_text_range() { | 486 | if let Some(range) = literal.open_quote_text_range() { |
375 | acc.push(HighlightedRange { | 487 | acc.add(HighlightedRange { |
376 | range, | 488 | range, |
377 | highlight: HighlightTag::StringLiteral.into(), | 489 | highlight: HighlightTag::StringLiteral.into(), |
378 | binding_hash: None, | 490 | binding_hash: None, |
@@ -382,12 +494,12 @@ fn highlight_injection( | |||
382 | for mut h in analysis.highlight(tmp_file_id).unwrap() { | 494 | for mut h in analysis.highlight(tmp_file_id).unwrap() { |
383 | if let Some(r) = literal.map_range_up(h.range) { | 495 | if let Some(r) = literal.map_range_up(h.range) { |
384 | h.range = r; | 496 | h.range = r; |
385 | acc.push(h) | 497 | acc.add(h) |
386 | } | 498 | } |
387 | } | 499 | } |
388 | 500 | ||
389 | if let Some(range) = literal.close_quote_text_range() { | 501 | if let Some(range) = literal.close_quote_text_range() { |
390 | acc.push(HighlightedRange { | 502 | acc.add(HighlightedRange { |
391 | range, | 503 | range, |
392 | highlight: HighlightTag::StringLiteral.into(), | 504 | highlight: HighlightTag::StringLiteral.into(), |
393 | binding_hash: None, | 505 | binding_hash: None, |
diff --git a/crates/ra_ide/src/syntax_highlighting/html.rs b/crates/ra_ide/src/syntax_highlighting/html.rs index 4496529a1..010db4017 100644 --- a/crates/ra_ide/src/syntax_highlighting/html.rs +++ b/crates/ra_ide/src/syntax_highlighting/html.rs | |||
@@ -1,11 +1,9 @@ | |||
1 | //! Renders a bit of code as HTML. | 1 | //! Renders a bit of code as HTML. |
2 | 2 | ||
3 | use ra_db::SourceDatabase; | 3 | use ra_db::SourceDatabase; |
4 | use ra_syntax::{AstNode, TextUnit}; | 4 | use ra_syntax::{AstNode, TextRange, TextSize}; |
5 | 5 | ||
6 | use crate::{FileId, RootDatabase}; | 6 | use crate::{syntax_highlighting::highlight, FileId, RootDatabase}; |
7 | |||
8 | use super::highlight; | ||
9 | 7 | ||
10 | pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: bool) -> String { | 8 | pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: bool) -> String { |
11 | let parse = db.parse(file_id); | 9 | let parse = db.parse(file_id); |
@@ -23,17 +21,17 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo | |||
23 | 21 | ||
24 | let ranges = highlight(db, file_id, None); | 22 | let ranges = highlight(db, file_id, None); |
25 | let text = parse.tree().syntax().to_string(); | 23 | let text = parse.tree().syntax().to_string(); |
26 | let mut prev_pos = TextUnit::from(0); | 24 | let mut prev_pos = TextSize::from(0); |
27 | let mut buf = String::new(); | 25 | let mut buf = String::new(); |
28 | buf.push_str(&STYLE); | 26 | buf.push_str(&STYLE); |
29 | buf.push_str("<pre><code>"); | 27 | buf.push_str("<pre><code>"); |
30 | for range in &ranges { | 28 | for range in &ranges { |
31 | if range.range.start() > prev_pos { | 29 | if range.range.start() > prev_pos { |
32 | let curr = &text[prev_pos.to_usize()..range.range.start().to_usize()]; | 30 | let curr = &text[TextRange::new(prev_pos, range.range.start())]; |
33 | let text = html_escape(curr); | 31 | let text = html_escape(curr); |
34 | buf.push_str(&text); | 32 | buf.push_str(&text); |
35 | } | 33 | } |
36 | let curr = &text[range.range.start().to_usize()..range.range.end().to_usize()]; | 34 | let curr = &text[TextRange::new(range.range.start(), range.range.end())]; |
37 | 35 | ||
38 | let class = range.highlight.to_string().replace('.', " "); | 36 | let class = range.highlight.to_string().replace('.', " "); |
39 | let color = match (rainbow, range.binding_hash) { | 37 | let color = match (rainbow, range.binding_hash) { |
@@ -47,7 +45,7 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo | |||
47 | prev_pos = range.range.end(); | 45 | prev_pos = range.range.end(); |
48 | } | 46 | } |
49 | // Add the remaining (non-highlighted) text | 47 | // Add the remaining (non-highlighted) text |
50 | let curr = &text[prev_pos.to_usize()..]; | 48 | let curr = &text[TextRange::new(prev_pos, TextSize::of(&text))]; |
51 | let text = html_escape(curr); | 49 | let text = html_escape(curr); |
52 | buf.push_str(&text); | 50 | buf.push_str(&text); |
53 | buf.push_str("</code></pre>"); | 51 | buf.push_str("</code></pre>"); |
diff --git a/crates/ra_ide/src/syntax_highlighting/tests.rs b/crates/ra_ide/src/syntax_highlighting/tests.rs index 73611e23a..d2926ba78 100644 --- a/crates/ra_ide/src/syntax_highlighting/tests.rs +++ b/crates/ra_ide/src/syntax_highlighting/tests.rs | |||
@@ -126,7 +126,7 @@ fn test_ranges() { | |||
126 | 126 | ||
127 | // The "x" | 127 | // The "x" |
128 | let highlights = &analysis | 128 | let highlights = &analysis |
129 | .highlight_range(FileRange { file_id, range: TextRange::offset_len(82.into(), 1.into()) }) | 129 | .highlight_range(FileRange { file_id, range: TextRange::at(82.into(), 1.into()) }) |
130 | .unwrap(); | 130 | .unwrap(); |
131 | 131 | ||
132 | assert_eq!(&highlights[0].highlight.to_string(), "field.declaration"); | 132 | assert_eq!(&highlights[0].highlight.to_string(), "field.declaration"); |
@@ -168,3 +168,73 @@ macro_rules! test {} | |||
168 | ); | 168 | ); |
169 | let _ = analysis.highlight(file_id).unwrap(); | 169 | let _ = analysis.highlight(file_id).unwrap(); |
170 | } | 170 | } |
171 | |||
172 | #[test] | ||
173 | fn test_string_highlighting() { | ||
174 | // The format string detection is based on macro-expansion, | ||
175 | // thus, we have to copy the macro definition from `std` | ||
176 | let (analysis, file_id) = single_file( | ||
177 | r#" | ||
178 | macro_rules! println { | ||
179 | ($($arg:tt)*) => ({ | ||
180 | $crate::io::_print($crate::format_args_nl!($($arg)*)); | ||
181 | }) | ||
182 | } | ||
183 | #[rustc_builtin_macro] | ||
184 | macro_rules! format_args_nl { | ||
185 | ($fmt:expr) => {{ /* compiler built-in */ }}; | ||
186 | ($fmt:expr, $($args:tt)*) => {{ /* compiler built-in */ }}; | ||
187 | } | ||
188 | |||
189 | fn main() { | ||
190 | // from https://doc.rust-lang.org/std/fmt/index.html | ||
191 | println!("Hello"); // => "Hello" | ||
192 | println!("Hello, {}!", "world"); // => "Hello, world!" | ||
193 | println!("The number is {}", 1); // => "The number is 1" | ||
194 | println!("{:?}", (3, 4)); // => "(3, 4)" | ||
195 | println!("{value}", value=4); // => "4" | ||
196 | println!("{} {}", 1, 2); // => "1 2" | ||
197 | println!("{:04}", 42); // => "0042" with leading zerosV | ||
198 | println!("{1} {} {0} {}", 1, 2); // => "2 1 1 2" | ||
199 | println!("{argument}", argument = "test"); // => "test" | ||
200 | println!("{name} {}", 1, name = 2); // => "2 1" | ||
201 | println!("{a} {c} {b}", a="a", b='b', c=3); // => "a 3 b" | ||
202 | println!("Hello {:5}!", "x"); | ||
203 | println!("Hello {:1$}!", "x", 5); | ||
204 | println!("Hello {1:0$}!", 5, "x"); | ||
205 | println!("Hello {:width$}!", "x", width = 5); | ||
206 | println!("Hello {:<5}!", "x"); | ||
207 | println!("Hello {:-<5}!", "x"); | ||
208 | println!("Hello {:^5}!", "x"); | ||
209 | println!("Hello {:>5}!", "x"); | ||
210 | println!("Hello {:+}!", 5); | ||
211 | println!("{:#x}!", 27); | ||
212 | println!("Hello {:05}!", 5); | ||
213 | println!("Hello {:05}!", -5); | ||
214 | println!("{:#010x}!", 27); | ||
215 | println!("Hello {0} is {1:.5}", "x", 0.01); | ||
216 | println!("Hello {1} is {2:.0$}", 5, "x", 0.01); | ||
217 | println!("Hello {0} is {2:.1$}", "x", 5, 0.01); | ||
218 | println!("Hello {} is {:.*}", "x", 5, 0.01); | ||
219 | println!("Hello {} is {2:.*}", "x", 5, 0.01); | ||
220 | println!("Hello {} is {number:.prec$}", "x", prec = 5, number = 0.01); | ||
221 | println!("{}, `{name:.*}` has 3 fractional digits", "Hello", 3, name=1234.56); | ||
222 | println!("{}, `{name:.*}` has 3 characters", "Hello", 3, name="1234.56"); | ||
223 | println!("{}, `{name:>8.*}` has 3 right-aligned characters", "Hello", 3, name="1234.56"); | ||
224 | println!("Hello {{}}"); | ||
225 | println!("{{ Hello"); | ||
226 | |||
227 | println!(r"Hello, {}!", "world"); | ||
228 | |||
229 | println!("{\x41}", A = 92); | ||
230 | println!("{ничоси}", ничоси = 92); | ||
231 | }"# | ||
232 | .trim(), | ||
233 | ); | ||
234 | |||
235 | let dst_file = project_dir().join("crates/ra_ide/src/snapshots/highlight_strings.html"); | ||
236 | let actual_html = &analysis.highlight_as_html(file_id, false).unwrap(); | ||
237 | let expected_html = &read_text(&dst_file); | ||
238 | fs::write(dst_file, &actual_html).unwrap(); | ||
239 | assert_eq_text!(expected_html, actual_html); | ||
240 | } | ||
diff --git a/crates/ra_ide/src/syntax_tree.rs b/crates/ra_ide/src/syntax_tree.rs index 5842ae2e8..bf97f8c56 100644 --- a/crates/ra_ide/src/syntax_tree.rs +++ b/crates/ra_ide/src/syntax_tree.rs | |||
@@ -5,7 +5,7 @@ use ra_ide_db::RootDatabase; | |||
5 | use ra_syntax::{ | 5 | use ra_syntax::{ |
6 | algo, AstNode, NodeOrToken, SourceFile, | 6 | algo, AstNode, NodeOrToken, SourceFile, |
7 | SyntaxKind::{RAW_STRING, STRING}, | 7 | SyntaxKind::{RAW_STRING, STRING}, |
8 | SyntaxToken, TextRange, TextUnit, | 8 | SyntaxToken, TextRange, TextSize, |
9 | }; | 9 | }; |
10 | 10 | ||
11 | pub use ra_db::FileId; | 11 | pub use ra_db::FileId; |
@@ -66,13 +66,10 @@ fn syntax_tree_for_token(node: &SyntaxToken, text_range: TextRange) -> Option<St | |||
66 | let len = len.min(node_len); | 66 | let len = len.min(node_len); |
67 | 67 | ||
68 | // Ensure our slice is inside the actual string | 68 | // Ensure our slice is inside the actual string |
69 | let end = if start + len < TextUnit::of_str(&text) { | 69 | let end = |
70 | start + len | 70 | if start + len < TextSize::of(&text) { start + len } else { TextSize::of(&text) - start }; |
71 | } else { | ||
72 | TextUnit::of_str(&text) - start | ||
73 | }; | ||
74 | 71 | ||
75 | let text = &text[TextRange::from_to(start, end)]; | 72 | let text = &text[TextRange::new(start, end)]; |
76 | 73 | ||
77 | // Remove possible extra string quotes from the start | 74 | // Remove possible extra string quotes from the start |
78 | // and the end of the string | 75 | // and the end of the string |
@@ -112,20 +109,20 @@ mod tests { | |||
112 | assert_eq_text!( | 109 | assert_eq_text!( |
113 | syn.trim(), | 110 | syn.trim(), |
114 | r#" | 111 | r#" |
115 | SOURCE_FILE@[0; 11) | 112 | SOURCE_FILE@0..11 |
116 | FN_DEF@[0; 11) | 113 | FN_DEF@0..11 |
117 | FN_KW@[0; 2) "fn" | 114 | FN_KW@0..2 "fn" |
118 | WHITESPACE@[2; 3) " " | 115 | WHITESPACE@2..3 " " |
119 | NAME@[3; 6) | 116 | NAME@3..6 |
120 | IDENT@[3; 6) "foo" | 117 | IDENT@3..6 "foo" |
121 | PARAM_LIST@[6; 8) | 118 | PARAM_LIST@6..8 |
122 | L_PAREN@[6; 7) "(" | 119 | L_PAREN@6..7 "(" |
123 | R_PAREN@[7; 8) ")" | 120 | R_PAREN@7..8 ")" |
124 | WHITESPACE@[8; 9) " " | 121 | WHITESPACE@8..9 " " |
125 | BLOCK_EXPR@[9; 11) | 122 | BLOCK_EXPR@9..11 |
126 | BLOCK@[9; 11) | 123 | BLOCK@9..11 |
127 | L_CURLY@[9; 10) "{" | 124 | L_CURLY@9..10 "{" |
128 | R_CURLY@[10; 11) "}" | 125 | R_CURLY@10..11 "}" |
129 | "# | 126 | "# |
130 | .trim() | 127 | .trim() |
131 | ); | 128 | ); |
@@ -145,37 +142,37 @@ fn test() { | |||
145 | assert_eq_text!( | 142 | assert_eq_text!( |
146 | syn.trim(), | 143 | syn.trim(), |
147 | r#" | 144 | r#" |
148 | SOURCE_FILE@[0; 60) | 145 | SOURCE_FILE@0..60 |
149 | FN_DEF@[0; 60) | 146 | FN_DEF@0..60 |
150 | FN_KW@[0; 2) "fn" | 147 | FN_KW@0..2 "fn" |
151 | WHITESPACE@[2; 3) " " | 148 | WHITESPACE@2..3 " " |
152 | NAME@[3; 7) | 149 | NAME@3..7 |
153 | IDENT@[3; 7) "test" | 150 | IDENT@3..7 "test" |
154 | PARAM_LIST@[7; 9) | 151 | PARAM_LIST@7..9 |
155 | L_PAREN@[7; 8) "(" | 152 | L_PAREN@7..8 "(" |
156 | R_PAREN@[8; 9) ")" | 153 | R_PAREN@8..9 ")" |
157 | WHITESPACE@[9; 10) " " | 154 | WHITESPACE@9..10 " " |
158 | BLOCK_EXPR@[10; 60) | 155 | BLOCK_EXPR@10..60 |
159 | BLOCK@[10; 60) | 156 | BLOCK@10..60 |
160 | L_CURLY@[10; 11) "{" | 157 | L_CURLY@10..11 "{" |
161 | WHITESPACE@[11; 16) "\n " | 158 | WHITESPACE@11..16 "\n " |
162 | EXPR_STMT@[16; 58) | 159 | EXPR_STMT@16..58 |
163 | MACRO_CALL@[16; 57) | 160 | MACRO_CALL@16..57 |
164 | PATH@[16; 22) | 161 | PATH@16..22 |
165 | PATH_SEGMENT@[16; 22) | 162 | PATH_SEGMENT@16..22 |
166 | NAME_REF@[16; 22) | 163 | NAME_REF@16..22 |
167 | IDENT@[16; 22) "assert" | 164 | IDENT@16..22 "assert" |
168 | BANG@[22; 23) "!" | 165 | BANG@22..23 "!" |
169 | TOKEN_TREE@[23; 57) | 166 | TOKEN_TREE@23..57 |
170 | L_PAREN@[23; 24) "(" | 167 | L_PAREN@23..24 "(" |
171 | STRING@[24; 52) "\"\n fn foo() {\n ..." | 168 | STRING@24..52 "\"\n fn foo() {\n ..." |
172 | COMMA@[52; 53) "," | 169 | COMMA@52..53 "," |
173 | WHITESPACE@[53; 54) " " | 170 | WHITESPACE@53..54 " " |
174 | STRING@[54; 56) "\"\"" | 171 | STRING@54..56 "\"\"" |
175 | R_PAREN@[56; 57) ")" | 172 | R_PAREN@56..57 ")" |
176 | SEMICOLON@[57; 58) ";" | 173 | SEMICOLON@57..58 ";" |
177 | WHITESPACE@[58; 59) "\n" | 174 | WHITESPACE@58..59 "\n" |
178 | R_CURLY@[59; 60) "}" | 175 | R_CURLY@59..60 "}" |
179 | "# | 176 | "# |
180 | .trim() | 177 | .trim() |
181 | ); | 178 | ); |
@@ -189,19 +186,19 @@ SOURCE_FILE@[0; 60) | |||
189 | assert_eq_text!( | 186 | assert_eq_text!( |
190 | syn.trim(), | 187 | syn.trim(), |
191 | r#" | 188 | r#" |
192 | FN_DEF@[0; 11) | 189 | FN_DEF@0..11 |
193 | FN_KW@[0; 2) "fn" | 190 | FN_KW@0..2 "fn" |
194 | WHITESPACE@[2; 3) " " | 191 | WHITESPACE@2..3 " " |
195 | NAME@[3; 6) | 192 | NAME@3..6 |
196 | IDENT@[3; 6) "foo" | 193 | IDENT@3..6 "foo" |
197 | PARAM_LIST@[6; 8) | 194 | PARAM_LIST@6..8 |
198 | L_PAREN@[6; 7) "(" | 195 | L_PAREN@6..7 "(" |
199 | R_PAREN@[7; 8) ")" | 196 | R_PAREN@7..8 ")" |
200 | WHITESPACE@[8; 9) " " | 197 | WHITESPACE@8..9 " " |
201 | BLOCK_EXPR@[9; 11) | 198 | BLOCK_EXPR@9..11 |
202 | BLOCK@[9; 11) | 199 | BLOCK@9..11 |
203 | L_CURLY@[9; 10) "{" | 200 | L_CURLY@9..10 "{" |
204 | R_CURLY@[10; 11) "}" | 201 | R_CURLY@10..11 "}" |
205 | "# | 202 | "# |
206 | .trim() | 203 | .trim() |
207 | ); | 204 | ); |
@@ -220,21 +217,21 @@ FN_DEF@[0; 11) | |||
220 | assert_eq_text!( | 217 | assert_eq_text!( |
221 | syn.trim(), | 218 | syn.trim(), |
222 | r#" | 219 | r#" |
223 | EXPR_STMT@[16; 58) | 220 | EXPR_STMT@16..58 |
224 | MACRO_CALL@[16; 57) | 221 | MACRO_CALL@16..57 |
225 | PATH@[16; 22) | 222 | PATH@16..22 |
226 | PATH_SEGMENT@[16; 22) | 223 | PATH_SEGMENT@16..22 |
227 | NAME_REF@[16; 22) | 224 | NAME_REF@16..22 |
228 | IDENT@[16; 22) "assert" | 225 | IDENT@16..22 "assert" |
229 | BANG@[22; 23) "!" | 226 | BANG@22..23 "!" |
230 | TOKEN_TREE@[23; 57) | 227 | TOKEN_TREE@23..57 |
231 | L_PAREN@[23; 24) "(" | 228 | L_PAREN@23..24 "(" |
232 | STRING@[24; 52) "\"\n fn foo() {\n ..." | 229 | STRING@24..52 "\"\n fn foo() {\n ..." |
233 | COMMA@[52; 53) "," | 230 | COMMA@52..53 "," |
234 | WHITESPACE@[53; 54) " " | 231 | WHITESPACE@53..54 " " |
235 | STRING@[54; 56) "\"\"" | 232 | STRING@54..56 "\"\"" |
236 | R_PAREN@[56; 57) ")" | 233 | R_PAREN@56..57 ")" |
237 | SEMICOLON@[57; 58) ";" | 234 | SEMICOLON@57..58 ";" |
238 | "# | 235 | "# |
239 | .trim() | 236 | .trim() |
240 | ); | 237 | ); |
@@ -257,21 +254,21 @@ fn bar() { | |||
257 | assert_eq_text!( | 254 | assert_eq_text!( |
258 | syn.trim(), | 255 | syn.trim(), |
259 | r#" | 256 | r#" |
260 | SOURCE_FILE@[0; 12) | 257 | SOURCE_FILE@0..12 |
261 | FN_DEF@[0; 12) | 258 | FN_DEF@0..12 |
262 | FN_KW@[0; 2) "fn" | 259 | FN_KW@0..2 "fn" |
263 | WHITESPACE@[2; 3) " " | 260 | WHITESPACE@2..3 " " |
264 | NAME@[3; 6) | 261 | NAME@3..6 |
265 | IDENT@[3; 6) "foo" | 262 | IDENT@3..6 "foo" |
266 | PARAM_LIST@[6; 8) | 263 | PARAM_LIST@6..8 |
267 | L_PAREN@[6; 7) "(" | 264 | L_PAREN@6..7 "(" |
268 | R_PAREN@[7; 8) ")" | 265 | R_PAREN@7..8 ")" |
269 | WHITESPACE@[8; 9) " " | 266 | WHITESPACE@8..9 " " |
270 | BLOCK_EXPR@[9; 12) | 267 | BLOCK_EXPR@9..12 |
271 | BLOCK@[9; 12) | 268 | BLOCK@9..12 |
272 | L_CURLY@[9; 10) "{" | 269 | L_CURLY@9..10 "{" |
273 | WHITESPACE@[10; 11) "\n" | 270 | WHITESPACE@10..11 "\n" |
274 | R_CURLY@[11; 12) "}" | 271 | R_CURLY@11..12 "}" |
275 | "# | 272 | "# |
276 | .trim() | 273 | .trim() |
277 | ); | 274 | ); |
@@ -292,21 +289,21 @@ fn bar() { | |||
292 | assert_eq_text!( | 289 | assert_eq_text!( |
293 | syn.trim(), | 290 | syn.trim(), |
294 | r#" | 291 | r#" |
295 | SOURCE_FILE@[0; 12) | 292 | SOURCE_FILE@0..12 |
296 | FN_DEF@[0; 12) | 293 | FN_DEF@0..12 |
297 | FN_KW@[0; 2) "fn" | 294 | FN_KW@0..2 "fn" |
298 | WHITESPACE@[2; 3) " " | 295 | WHITESPACE@2..3 " " |
299 | NAME@[3; 6) | 296 | NAME@3..6 |
300 | IDENT@[3; 6) "foo" | 297 | IDENT@3..6 "foo" |
301 | PARAM_LIST@[6; 8) | 298 | PARAM_LIST@6..8 |
302 | L_PAREN@[6; 7) "(" | 299 | L_PAREN@6..7 "(" |
303 | R_PAREN@[7; 8) ")" | 300 | R_PAREN@7..8 ")" |
304 | WHITESPACE@[8; 9) " " | 301 | WHITESPACE@8..9 " " |
305 | BLOCK_EXPR@[9; 12) | 302 | BLOCK_EXPR@9..12 |
306 | BLOCK@[9; 12) | 303 | BLOCK@9..12 |
307 | L_CURLY@[9; 10) "{" | 304 | L_CURLY@9..10 "{" |
308 | WHITESPACE@[10; 11) "\n" | 305 | WHITESPACE@10..11 "\n" |
309 | R_CURLY@[11; 12) "}" | 306 | R_CURLY@11..12 "}" |
310 | "# | 307 | "# |
311 | .trim() | 308 | .trim() |
312 | ); | 309 | ); |
@@ -326,36 +323,36 @@ fn bar() { | |||
326 | assert_eq_text!( | 323 | assert_eq_text!( |
327 | syn.trim(), | 324 | syn.trim(), |
328 | r#" | 325 | r#" |
329 | SOURCE_FILE@[0; 25) | 326 | SOURCE_FILE@0..25 |
330 | FN_DEF@[0; 12) | 327 | FN_DEF@0..12 |
331 | FN_KW@[0; 2) "fn" | 328 | FN_KW@0..2 "fn" |
332 | WHITESPACE@[2; 3) " " | 329 | WHITESPACE@2..3 " " |
333 | NAME@[3; 6) | 330 | NAME@3..6 |
334 | IDENT@[3; 6) "foo" | 331 | IDENT@3..6 "foo" |
335 | PARAM_LIST@[6; 8) | 332 | PARAM_LIST@6..8 |
336 | L_PAREN@[6; 7) "(" | 333 | L_PAREN@6..7 "(" |
337 | R_PAREN@[7; 8) ")" | 334 | R_PAREN@7..8 ")" |
338 | WHITESPACE@[8; 9) " " | 335 | WHITESPACE@8..9 " " |
339 | BLOCK_EXPR@[9; 12) | 336 | BLOCK_EXPR@9..12 |
340 | BLOCK@[9; 12) | 337 | BLOCK@9..12 |
341 | L_CURLY@[9; 10) "{" | 338 | L_CURLY@9..10 "{" |
342 | WHITESPACE@[10; 11) "\n" | 339 | WHITESPACE@10..11 "\n" |
343 | R_CURLY@[11; 12) "}" | 340 | R_CURLY@11..12 "}" |
344 | WHITESPACE@[12; 13) "\n" | 341 | WHITESPACE@12..13 "\n" |
345 | FN_DEF@[13; 25) | 342 | FN_DEF@13..25 |
346 | FN_KW@[13; 15) "fn" | 343 | FN_KW@13..15 "fn" |
347 | WHITESPACE@[15; 16) " " | 344 | WHITESPACE@15..16 " " |
348 | NAME@[16; 19) | 345 | NAME@16..19 |
349 | IDENT@[16; 19) "bar" | 346 | IDENT@16..19 "bar" |
350 | PARAM_LIST@[19; 21) | 347 | PARAM_LIST@19..21 |
351 | L_PAREN@[19; 20) "(" | 348 | L_PAREN@19..20 "(" |
352 | R_PAREN@[20; 21) ")" | 349 | R_PAREN@20..21 ")" |
353 | WHITESPACE@[21; 22) " " | 350 | WHITESPACE@21..22 " " |
354 | BLOCK_EXPR@[22; 25) | 351 | BLOCK_EXPR@22..25 |
355 | BLOCK@[22; 25) | 352 | BLOCK@22..25 |
356 | L_CURLY@[22; 23) "{" | 353 | L_CURLY@22..23 "{" |
357 | WHITESPACE@[23; 24) "\n" | 354 | WHITESPACE@23..24 "\n" |
358 | R_CURLY@[24; 25) "}" | 355 | R_CURLY@24..25 "}" |
359 | "# | 356 | "# |
360 | .trim() | 357 | .trim() |
361 | ); | 358 | ); |
diff --git a/crates/ra_ide/src/test_utils.rs b/crates/ra_ide/src/test_utils.rs index 8adb214d4..f14533e14 100644 --- a/crates/ra_ide/src/test_utils.rs +++ b/crates/ra_ide/src/test_utils.rs | |||
@@ -1,11 +1,11 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use ra_syntax::{SourceFile, TextUnit}; | 3 | use ra_syntax::{SourceFile, TextSize}; |
4 | use ra_text_edit::TextEdit; | 4 | use ra_text_edit::TextEdit; |
5 | 5 | ||
6 | pub use test_utils::*; | 6 | pub use test_utils::*; |
7 | 7 | ||
8 | pub fn check_action<F: Fn(&SourceFile, TextUnit) -> Option<TextEdit>>( | 8 | pub fn check_action<F: Fn(&SourceFile, TextSize) -> Option<TextEdit>>( |
9 | before: &str, | 9 | before: &str, |
10 | after: &str, | 10 | after: &str, |
11 | f: F, | 11 | f: F, |
diff --git a/crates/ra_ide/src/typing.rs b/crates/ra_ide/src/typing.rs index f55cd3bf5..2a8b4327f 100644 --- a/crates/ra_ide/src/typing.rs +++ b/crates/ra_ide/src/typing.rs | |||
@@ -21,7 +21,7 @@ use ra_ide_db::RootDatabase; | |||
21 | use ra_syntax::{ | 21 | use ra_syntax::{ |
22 | algo::find_node_at_offset, | 22 | algo::find_node_at_offset, |
23 | ast::{self, AstToken}, | 23 | ast::{self, AstToken}, |
24 | AstNode, SourceFile, TextRange, TextUnit, | 24 | AstNode, SourceFile, TextRange, TextSize, |
25 | }; | 25 | }; |
26 | use ra_text_edit::TextEdit; | 26 | use ra_text_edit::TextEdit; |
27 | 27 | ||
@@ -45,7 +45,7 @@ pub(crate) fn on_char_typed( | |||
45 | 45 | ||
46 | fn on_char_typed_inner( | 46 | fn on_char_typed_inner( |
47 | file: &SourceFile, | 47 | file: &SourceFile, |
48 | offset: TextUnit, | 48 | offset: TextSize, |
49 | char_typed: char, | 49 | char_typed: char, |
50 | ) -> Option<SingleFileChange> { | 50 | ) -> Option<SingleFileChange> { |
51 | assert!(TRIGGER_CHARS.contains(char_typed)); | 51 | assert!(TRIGGER_CHARS.contains(char_typed)); |
@@ -60,7 +60,7 @@ fn on_char_typed_inner( | |||
60 | /// Returns an edit which should be applied after `=` was typed. Primarily, | 60 | /// Returns an edit which should be applied after `=` was typed. Primarily, |
61 | /// this works when adding `let =`. | 61 | /// this works when adding `let =`. |
62 | // FIXME: use a snippet completion instead of this hack here. | 62 | // FIXME: use a snippet completion instead of this hack here. |
63 | fn on_eq_typed(file: &SourceFile, offset: TextUnit) -> Option<SingleFileChange> { | 63 | fn on_eq_typed(file: &SourceFile, offset: TextSize) -> Option<SingleFileChange> { |
64 | assert_eq!(file.syntax().text().char_at(offset), Some('=')); | 64 | assert_eq!(file.syntax().text().char_at(offset), Some('=')); |
65 | let let_stmt: ast::LetStmt = find_node_at_offset(file.syntax(), offset)?; | 65 | let let_stmt: ast::LetStmt = find_node_at_offset(file.syntax(), offset)?; |
66 | if let_stmt.semicolon_token().is_some() { | 66 | if let_stmt.semicolon_token().is_some() { |
@@ -86,7 +86,7 @@ fn on_eq_typed(file: &SourceFile, offset: TextUnit) -> Option<SingleFileChange> | |||
86 | } | 86 | } |
87 | 87 | ||
88 | /// Returns an edit which should be applied when a dot ('.') is typed on a blank line, indenting the line appropriately. | 88 | /// Returns an edit which should be applied when a dot ('.') is typed on a blank line, indenting the line appropriately. |
89 | fn on_dot_typed(file: &SourceFile, offset: TextUnit) -> Option<SingleFileChange> { | 89 | fn on_dot_typed(file: &SourceFile, offset: TextSize) -> Option<SingleFileChange> { |
90 | assert_eq!(file.syntax().text().char_at(offset), Some('.')); | 90 | assert_eq!(file.syntax().text().char_at(offset), Some('.')); |
91 | let whitespace = | 91 | let whitespace = |
92 | file.syntax().token_at_offset(offset).left_biased().and_then(ast::Whitespace::cast)?; | 92 | file.syntax().token_at_offset(offset).left_biased().and_then(ast::Whitespace::cast)?; |
@@ -96,34 +96,29 @@ fn on_dot_typed(file: &SourceFile, offset: TextUnit) -> Option<SingleFileChange> | |||
96 | let newline = text.rfind('\n')?; | 96 | let newline = text.rfind('\n')?; |
97 | &text[newline + 1..] | 97 | &text[newline + 1..] |
98 | }; | 98 | }; |
99 | let current_indent_len = TextUnit::of_str(current_indent); | 99 | let current_indent_len = TextSize::of(current_indent); |
100 | 100 | ||
101 | // Make sure dot is a part of call chain | 101 | // Make sure dot is a part of call chain |
102 | let field_expr = ast::FieldExpr::cast(whitespace.syntax().parent())?; | 102 | let field_expr = ast::FieldExpr::cast(whitespace.syntax().parent())?; |
103 | let prev_indent = leading_indent(field_expr.syntax())?; | 103 | let prev_indent = leading_indent(field_expr.syntax())?; |
104 | let target_indent = format!(" {}", prev_indent); | 104 | let target_indent = format!(" {}", prev_indent); |
105 | let target_indent_len = TextUnit::of_str(&target_indent); | 105 | let target_indent_len = TextSize::of(&target_indent); |
106 | if current_indent_len == target_indent_len { | 106 | if current_indent_len == target_indent_len { |
107 | return None; | 107 | return None; |
108 | } | 108 | } |
109 | 109 | ||
110 | Some(SingleFileChange { | 110 | Some(SingleFileChange { |
111 | label: "reindent dot".to_string(), | 111 | label: "reindent dot".to_string(), |
112 | edit: TextEdit::replace( | 112 | edit: TextEdit::replace(TextRange::new(offset - current_indent_len, offset), target_indent), |
113 | TextRange::from_to(offset - current_indent_len, offset), | 113 | cursor_position: Some(offset + target_indent_len - current_indent_len + TextSize::of('.')), |
114 | target_indent, | ||
115 | ), | ||
116 | cursor_position: Some( | ||
117 | offset + target_indent_len - current_indent_len + TextUnit::of_char('.'), | ||
118 | ), | ||
119 | }) | 114 | }) |
120 | } | 115 | } |
121 | 116 | ||
122 | /// Adds a space after an arrow when `fn foo() { ... }` is turned into `fn foo() -> { ... }` | 117 | /// Adds a space after an arrow when `fn foo() { ... }` is turned into `fn foo() -> { ... }` |
123 | fn on_arrow_typed(file: &SourceFile, offset: TextUnit) -> Option<SingleFileChange> { | 118 | fn on_arrow_typed(file: &SourceFile, offset: TextSize) -> Option<SingleFileChange> { |
124 | let file_text = file.syntax().text(); | 119 | let file_text = file.syntax().text(); |
125 | assert_eq!(file_text.char_at(offset), Some('>')); | 120 | assert_eq!(file_text.char_at(offset), Some('>')); |
126 | let after_arrow = offset + TextUnit::of_char('>'); | 121 | let after_arrow = offset + TextSize::of('>'); |
127 | if file_text.char_at(after_arrow) != Some('{') { | 122 | if file_text.char_at(after_arrow) != Some('{') { |
128 | return None; | 123 | return None; |
129 | } | 124 | } |
diff --git a/crates/ra_ide/src/typing/on_enter.rs b/crates/ra_ide/src/typing/on_enter.rs index 6bcf2d72b..30c8c5572 100644 --- a/crates/ra_ide/src/typing/on_enter.rs +++ b/crates/ra_ide/src/typing/on_enter.rs | |||
@@ -7,7 +7,7 @@ use ra_syntax::{ | |||
7 | ast::{self, AstToken}, | 7 | ast::{self, AstToken}, |
8 | AstNode, SmolStr, SourceFile, | 8 | AstNode, SmolStr, SourceFile, |
9 | SyntaxKind::*, | 9 | SyntaxKind::*, |
10 | SyntaxToken, TextUnit, TokenAtOffset, | 10 | SyntaxToken, TextSize, TokenAtOffset, |
11 | }; | 11 | }; |
12 | use ra_text_edit::TextEdit; | 12 | use ra_text_edit::TextEdit; |
13 | 13 | ||
@@ -28,7 +28,7 @@ pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option<Sour | |||
28 | 28 | ||
29 | let prefix = comment.prefix(); | 29 | let prefix = comment.prefix(); |
30 | let comment_range = comment.syntax().text_range(); | 30 | let comment_range = comment.syntax().text_range(); |
31 | if position.offset < comment_range.start() + TextUnit::of_str(prefix) { | 31 | if position.offset < comment_range.start() + TextSize::of(prefix) { |
32 | return None; | 32 | return None; |
33 | } | 33 | } |
34 | 34 | ||
@@ -39,7 +39,7 @@ pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option<Sour | |||
39 | 39 | ||
40 | let indent = node_indent(&file, comment.syntax())?; | 40 | let indent = node_indent(&file, comment.syntax())?; |
41 | let inserted = format!("\n{}{} ", indent, prefix); | 41 | let inserted = format!("\n{}{} ", indent, prefix); |
42 | let cursor_position = position.offset + TextUnit::of_str(&inserted); | 42 | let cursor_position = position.offset + TextSize::of(&inserted); |
43 | let edit = TextEdit::insert(position.offset, inserted); | 43 | let edit = TextEdit::insert(position.offset, inserted); |
44 | 44 | ||
45 | Some( | 45 | Some( |
diff --git a/crates/ra_ide_db/src/line_index.rs b/crates/ra_ide_db/src/line_index.rs index 8ae745ff2..00ba95913 100644 --- a/crates/ra_ide_db/src/line_index.rs +++ b/crates/ra_ide_db/src/line_index.rs | |||
@@ -1,14 +1,14 @@ | |||
1 | //! `LineIndex` maps flat `TextUnit` offsets into `(Line, Column)` | 1 | //! `LineIndex` maps flat `TextSize` offsets into `(Line, Column)` |
2 | //! representation. | 2 | //! representation. |
3 | use std::iter; | 3 | use std::iter; |
4 | 4 | ||
5 | use ra_syntax::{TextRange, TextUnit}; | 5 | use ra_syntax::{TextRange, TextSize}; |
6 | use rustc_hash::FxHashMap; | 6 | use rustc_hash::FxHashMap; |
7 | use superslice::Ext; | 7 | use superslice::Ext; |
8 | 8 | ||
9 | #[derive(Clone, Debug, PartialEq, Eq)] | 9 | #[derive(Clone, Debug, PartialEq, Eq)] |
10 | pub struct LineIndex { | 10 | pub struct LineIndex { |
11 | pub(crate) newlines: Vec<TextUnit>, | 11 | pub(crate) newlines: Vec<TextSize>, |
12 | pub(crate) utf16_lines: FxHashMap<u32, Vec<Utf16Char>>, | 12 | pub(crate) utf16_lines: FxHashMap<u32, Vec<Utf16Char>>, |
13 | } | 13 | } |
14 | 14 | ||
@@ -22,12 +22,12 @@ pub struct LineCol { | |||
22 | 22 | ||
23 | #[derive(Clone, Debug, Hash, PartialEq, Eq)] | 23 | #[derive(Clone, Debug, Hash, PartialEq, Eq)] |
24 | pub(crate) struct Utf16Char { | 24 | pub(crate) struct Utf16Char { |
25 | pub(crate) start: TextUnit, | 25 | pub(crate) start: TextSize, |
26 | pub(crate) end: TextUnit, | 26 | pub(crate) end: TextSize, |
27 | } | 27 | } |
28 | 28 | ||
29 | impl Utf16Char { | 29 | impl Utf16Char { |
30 | fn len(&self) -> TextUnit { | 30 | fn len(&self) -> TextSize { |
31 | self.end - self.start | 31 | self.end - self.start |
32 | } | 32 | } |
33 | } | 33 | } |
@@ -42,7 +42,8 @@ impl LineIndex { | |||
42 | let mut curr_col = 0.into(); | 42 | let mut curr_col = 0.into(); |
43 | let mut line = 0; | 43 | let mut line = 0; |
44 | for c in text.chars() { | 44 | for c in text.chars() { |
45 | curr_row += TextUnit::of_char(c); | 45 | let c_len = TextSize::of(c); |
46 | curr_row += c_len; | ||
46 | if c == '\n' { | 47 | if c == '\n' { |
47 | newlines.push(curr_row); | 48 | newlines.push(curr_row); |
48 | 49 | ||
@@ -58,12 +59,11 @@ impl LineIndex { | |||
58 | continue; | 59 | continue; |
59 | } | 60 | } |
60 | 61 | ||
61 | let char_len = TextUnit::of_char(c); | 62 | if !c.is_ascii() { |
62 | if char_len > TextUnit::from_usize(1) { | 63 | utf16_chars.push(Utf16Char { start: curr_col, end: curr_col + c_len }); |
63 | utf16_chars.push(Utf16Char { start: curr_col, end: curr_col + char_len }); | ||
64 | } | 64 | } |
65 | 65 | ||
66 | curr_col += char_len; | 66 | curr_col += c_len; |
67 | } | 67 | } |
68 | 68 | ||
69 | // Save any utf-16 characters seen in the last line | 69 | // Save any utf-16 characters seen in the last line |
@@ -74,7 +74,7 @@ impl LineIndex { | |||
74 | LineIndex { newlines, utf16_lines } | 74 | LineIndex { newlines, utf16_lines } |
75 | } | 75 | } |
76 | 76 | ||
77 | pub fn line_col(&self, offset: TextUnit) -> LineCol { | 77 | pub fn line_col(&self, offset: TextSize) -> LineCol { |
78 | let line = self.newlines.upper_bound(&offset) - 1; | 78 | let line = self.newlines.upper_bound(&offset) - 1; |
79 | let line_start_offset = self.newlines[line]; | 79 | let line_start_offset = self.newlines[line]; |
80 | let col = offset - line_start_offset; | 80 | let col = offset - line_start_offset; |
@@ -82,7 +82,7 @@ impl LineIndex { | |||
82 | LineCol { line: line as u32, col_utf16: self.utf8_to_utf16_col(line as u32, col) as u32 } | 82 | LineCol { line: line as u32, col_utf16: self.utf8_to_utf16_col(line as u32, col) as u32 } |
83 | } | 83 | } |
84 | 84 | ||
85 | pub fn offset(&self, line_col: LineCol) -> TextUnit { | 85 | pub fn offset(&self, line_col: LineCol) -> TextSize { |
86 | //FIXME: return Result | 86 | //FIXME: return Result |
87 | let col = self.utf16_to_utf8_col(line_col.line, line_col.col_utf16); | 87 | let col = self.utf16_to_utf8_col(line_col.line, line_col.col_utf16); |
88 | self.newlines[line_col.line as usize] + col | 88 | self.newlines[line_col.line as usize] + col |
@@ -97,35 +97,31 @@ impl LineIndex { | |||
97 | 97 | ||
98 | all.clone() | 98 | all.clone() |
99 | .zip(all.skip(1)) | 99 | .zip(all.skip(1)) |
100 | .map(|(lo, hi)| TextRange::from_to(lo, hi)) | 100 | .map(|(lo, hi)| TextRange::new(lo, hi)) |
101 | .filter(|it| !it.is_empty()) | 101 | .filter(|it| !it.is_empty()) |
102 | } | 102 | } |
103 | 103 | ||
104 | fn utf8_to_utf16_col(&self, line: u32, col: TextUnit) -> usize { | 104 | fn utf8_to_utf16_col(&self, line: u32, col: TextSize) -> usize { |
105 | let mut res: usize = col.into(); | ||
105 | if let Some(utf16_chars) = self.utf16_lines.get(&line) { | 106 | if let Some(utf16_chars) = self.utf16_lines.get(&line) { |
106 | let mut correction = 0; | ||
107 | for c in utf16_chars { | 107 | for c in utf16_chars { |
108 | if col >= c.end { | 108 | if c.end <= col { |
109 | correction += c.len().to_usize() - 1; | 109 | res -= usize::from(c.len()) - 1; |
110 | } else { | 110 | } else { |
111 | // From here on, all utf16 characters come *after* the character we are mapping, | 111 | // From here on, all utf16 characters come *after* the character we are mapping, |
112 | // so we don't need to take them into account | 112 | // so we don't need to take them into account |
113 | break; | 113 | break; |
114 | } | 114 | } |
115 | } | 115 | } |
116 | |||
117 | col.to_usize() - correction | ||
118 | } else { | ||
119 | col.to_usize() | ||
120 | } | 116 | } |
117 | res | ||
121 | } | 118 | } |
122 | 119 | ||
123 | fn utf16_to_utf8_col(&self, line: u32, col: u32) -> TextUnit { | 120 | fn utf16_to_utf8_col(&self, line: u32, mut col: u32) -> TextSize { |
124 | let mut col: TextUnit = col.into(); | ||
125 | if let Some(utf16_chars) = self.utf16_lines.get(&line) { | 121 | if let Some(utf16_chars) = self.utf16_lines.get(&line) { |
126 | for c in utf16_chars { | 122 | for c in utf16_chars { |
127 | if col >= c.start { | 123 | if col >= u32::from(c.start) { |
128 | col += c.len() - TextUnit::from_usize(1); | 124 | col += u32::from(c.len()) - 1; |
129 | } else { | 125 | } else { |
130 | // From here on, all utf16 characters come *after* the character we are mapping, | 126 | // From here on, all utf16 characters come *after* the character we are mapping, |
131 | // so we don't need to take them into account | 127 | // so we don't need to take them into account |
@@ -134,12 +130,12 @@ impl LineIndex { | |||
134 | } | 130 | } |
135 | } | 131 | } |
136 | 132 | ||
137 | col | 133 | col.into() |
138 | } | 134 | } |
139 | } | 135 | } |
140 | 136 | ||
141 | #[cfg(test)] | 137 | #[cfg(test)] |
142 | mod test_line_index { | 138 | mod tests { |
143 | use super::*; | 139 | use super::*; |
144 | 140 | ||
145 | #[test] | 141 | #[test] |
@@ -200,10 +196,10 @@ const C: char = 'メ'; | |||
200 | assert_eq!(col_index.utf8_to_utf16_col(1, 22.into()), 20); | 196 | assert_eq!(col_index.utf8_to_utf16_col(1, 22.into()), 20); |
201 | 197 | ||
202 | // UTF-16 to UTF-8, no changes | 198 | // UTF-16 to UTF-8, no changes |
203 | assert_eq!(col_index.utf16_to_utf8_col(1, 15), TextUnit::from(15)); | 199 | assert_eq!(col_index.utf16_to_utf8_col(1, 15), TextSize::from(15)); |
204 | 200 | ||
205 | // UTF-16 to UTF-8 | 201 | // UTF-16 to UTF-8 |
206 | assert_eq!(col_index.utf16_to_utf8_col(1, 19), TextUnit::from(21)); | 202 | assert_eq!(col_index.utf16_to_utf8_col(1, 19), TextSize::from(21)); |
207 | } | 203 | } |
208 | 204 | ||
209 | #[test] | 205 | #[test] |
@@ -228,18 +224,18 @@ const C: char = \"メ メ\"; | |||
228 | assert!(col_index.utf8_to_utf16_col(2, 15.into()) == 15); | 224 | assert!(col_index.utf8_to_utf16_col(2, 15.into()) == 15); |
229 | 225 | ||
230 | // UTF-16 to UTF-8 | 226 | // UTF-16 to UTF-8 |
231 | assert_eq!(col_index.utf16_to_utf8_col(1, 15), TextUnit::from_usize(15)); | 227 | assert_eq!(col_index.utf16_to_utf8_col(1, 15), TextSize::from(15)); |
232 | 228 | ||
233 | assert_eq!(col_index.utf16_to_utf8_col(1, 18), TextUnit::from_usize(20)); | 229 | assert_eq!(col_index.utf16_to_utf8_col(1, 18), TextSize::from(20)); |
234 | assert_eq!(col_index.utf16_to_utf8_col(1, 19), TextUnit::from_usize(23)); | 230 | assert_eq!(col_index.utf16_to_utf8_col(1, 19), TextSize::from(23)); |
235 | 231 | ||
236 | assert_eq!(col_index.utf16_to_utf8_col(2, 15), TextUnit::from_usize(15)); | 232 | assert_eq!(col_index.utf16_to_utf8_col(2, 15), TextSize::from(15)); |
237 | } | 233 | } |
238 | 234 | ||
239 | #[test] | 235 | #[test] |
240 | fn test_splitlines() { | 236 | fn test_splitlines() { |
241 | fn r(lo: u32, hi: u32) -> TextRange { | 237 | fn r(lo: u32, hi: u32) -> TextRange { |
242 | TextRange::from_to(lo.into(), hi.into()) | 238 | TextRange::new(lo.into(), hi.into()) |
243 | } | 239 | } |
244 | 240 | ||
245 | let text = "a\nbb\nccc\n"; | 241 | let text = "a\nbb\nccc\n"; |
diff --git a/crates/ra_ide_db/src/line_index_utils.rs b/crates/ra_ide_db/src/line_index_utils.rs index 2ebbabdc6..039a12c0d 100644 --- a/crates/ra_ide_db/src/line_index_utils.rs +++ b/crates/ra_ide_db/src/line_index_utils.rs | |||
@@ -1,20 +1,22 @@ | |||
1 | //! Code actions can specify desirable final position of the cursor. | 1 | //! Code actions can specify desirable final position of the cursor. |
2 | //! | 2 | //! |
3 | //! The position is specified as a `TextUnit` in the final file. We need to send | 3 | //! The position is specified as a `TextSize` in the final file. We need to send |
4 | //! it in `(Line, Column)` coordinate though. However, we only have a LineIndex | 4 | //! it in `(Line, Column)` coordinate though. However, we only have a LineIndex |
5 | //! for a file pre-edit! | 5 | //! for a file pre-edit! |
6 | //! | 6 | //! |
7 | //! Code in this module applies this "to (Line, Column) after edit" | 7 | //! Code in this module applies this "to (Line, Column) after edit" |
8 | //! transformation. | 8 | //! transformation. |
9 | 9 | ||
10 | use ra_syntax::{TextRange, TextUnit}; | 10 | use std::convert::TryInto; |
11 | |||
12 | use ra_syntax::{TextRange, TextSize}; | ||
11 | use ra_text_edit::{AtomTextEdit, TextEdit}; | 13 | use ra_text_edit::{AtomTextEdit, TextEdit}; |
12 | 14 | ||
13 | use crate::line_index::{LineCol, LineIndex, Utf16Char}; | 15 | use crate::line_index::{LineCol, LineIndex, Utf16Char}; |
14 | 16 | ||
15 | pub fn translate_offset_with_edit( | 17 | pub fn translate_offset_with_edit( |
16 | line_index: &LineIndex, | 18 | line_index: &LineIndex, |
17 | offset: TextUnit, | 19 | offset: TextSize, |
18 | text_edit: &TextEdit, | 20 | text_edit: &TextEdit, |
19 | ) -> LineCol { | 21 | ) -> LineCol { |
20 | let mut state = Edits::from_text_edit(&text_edit); | 22 | let mut state = Edits::from_text_edit(&text_edit); |
@@ -84,7 +86,7 @@ pub fn translate_offset_with_edit( | |||
84 | 86 | ||
85 | #[derive(Debug, Clone)] | 87 | #[derive(Debug, Clone)] |
86 | enum Step { | 88 | enum Step { |
87 | Newline(TextUnit), | 89 | Newline(TextSize), |
88 | Utf16Char(TextRange), | 90 | Utf16Char(TextRange), |
89 | } | 91 | } |
90 | 92 | ||
@@ -92,7 +94,7 @@ enum Step { | |||
92 | struct LineIndexStepIter<'a> { | 94 | struct LineIndexStepIter<'a> { |
93 | line_index: &'a LineIndex, | 95 | line_index: &'a LineIndex, |
94 | next_newline_idx: usize, | 96 | next_newline_idx: usize, |
95 | utf16_chars: Option<(TextUnit, std::slice::Iter<'a, Utf16Char>)>, | 97 | utf16_chars: Option<(TextSize, std::slice::Iter<'a, Utf16Char>)>, |
96 | } | 98 | } |
97 | 99 | ||
98 | impl LineIndexStepIter<'_> { | 100 | impl LineIndexStepIter<'_> { |
@@ -111,7 +113,7 @@ impl Iterator for LineIndexStepIter<'_> { | |||
111 | .as_mut() | 113 | .as_mut() |
112 | .and_then(|(newline, x)| { | 114 | .and_then(|(newline, x)| { |
113 | let x = x.next()?; | 115 | let x = x.next()?; |
114 | Some(Step::Utf16Char(TextRange::from_to(*newline + x.start, *newline + x.end))) | 116 | Some(Step::Utf16Char(TextRange::new(*newline + x.start, *newline + x.end))) |
115 | }) | 117 | }) |
116 | .or_else(|| { | 118 | .or_else(|| { |
117 | let next_newline = *self.line_index.newlines.get(self.next_newline_idx)?; | 119 | let next_newline = *self.line_index.newlines.get(self.next_newline_idx)?; |
@@ -129,7 +131,7 @@ impl Iterator for LineIndexStepIter<'_> { | |||
129 | #[derive(Debug)] | 131 | #[derive(Debug)] |
130 | struct OffsetStepIter<'a> { | 132 | struct OffsetStepIter<'a> { |
131 | text: &'a str, | 133 | text: &'a str, |
132 | offset: TextUnit, | 134 | offset: TextSize, |
133 | } | 135 | } |
134 | 136 | ||
135 | impl Iterator for OffsetStepIter<'_> { | 137 | impl Iterator for OffsetStepIter<'_> { |
@@ -139,16 +141,17 @@ impl Iterator for OffsetStepIter<'_> { | |||
139 | .text | 141 | .text |
140 | .char_indices() | 142 | .char_indices() |
141 | .filter_map(|(i, c)| { | 143 | .filter_map(|(i, c)| { |
144 | let i: TextSize = i.try_into().unwrap(); | ||
145 | let char_len = TextSize::of(c); | ||
142 | if c == '\n' { | 146 | if c == '\n' { |
143 | let next_offset = self.offset + TextUnit::from_usize(i + 1); | 147 | let next_offset = self.offset + i + char_len; |
144 | let next = Step::Newline(next_offset); | 148 | let next = Step::Newline(next_offset); |
145 | Some((next, next_offset)) | 149 | Some((next, next_offset)) |
146 | } else { | 150 | } else { |
147 | let char_len = TextUnit::of_char(c); | 151 | if !c.is_ascii() { |
148 | if char_len > TextUnit::from_usize(1) { | 152 | let start = self.offset + i; |
149 | let start = self.offset + TextUnit::from_usize(i); | ||
150 | let end = start + char_len; | 153 | let end = start + char_len; |
151 | let next = Step::Utf16Char(TextRange::from_to(start, end)); | 154 | let next = Step::Utf16Char(TextRange::new(start, end)); |
152 | let next_offset = end; | 155 | let next_offset = end; |
153 | Some((next, next_offset)) | 156 | Some((next, next_offset)) |
154 | } else { | 157 | } else { |
@@ -157,7 +160,7 @@ impl Iterator for OffsetStepIter<'_> { | |||
157 | } | 160 | } |
158 | }) | 161 | }) |
159 | .next()?; | 162 | .next()?; |
160 | let next_idx = (next_offset - self.offset).to_usize(); | 163 | let next_idx: usize = (next_offset - self.offset).into(); |
161 | self.text = &self.text[next_idx..]; | 164 | self.text = &self.text[next_idx..]; |
162 | self.offset = next_offset; | 165 | self.offset = next_offset; |
163 | Some(next) | 166 | Some(next) |
@@ -195,7 +198,7 @@ impl<'a> Edits<'a> { | |||
195 | match self.edits.split_first() { | 198 | match self.edits.split_first() { |
196 | Some((next, rest)) => { | 199 | Some((next, rest)) => { |
197 | let delete = self.translate_range(next.delete); | 200 | let delete = self.translate_range(next.delete); |
198 | let diff = next.insert.len() as i64 - next.delete.len().to_usize() as i64; | 201 | let diff = next.insert.len() as i64 - usize::from(next.delete.len()) as i64; |
199 | self.current = Some(TranslatedEdit { delete, insert: &next.insert, diff }); | 202 | self.current = Some(TranslatedEdit { delete, insert: &next.insert, diff }); |
200 | self.edits = rest; | 203 | self.edits = rest; |
201 | } | 204 | } |
@@ -244,15 +247,15 @@ impl<'a> Edits<'a> { | |||
244 | } else { | 247 | } else { |
245 | let start = self.translate(range.start()); | 248 | let start = self.translate(range.start()); |
246 | let end = self.translate(range.end()); | 249 | let end = self.translate(range.end()); |
247 | TextRange::from_to(start, end) | 250 | TextRange::new(start, end) |
248 | } | 251 | } |
249 | } | 252 | } |
250 | 253 | ||
251 | fn translate(&self, x: TextUnit) -> TextUnit { | 254 | fn translate(&self, x: TextSize) -> TextSize { |
252 | if self.acc_diff == 0 { | 255 | if self.acc_diff == 0 { |
253 | x | 256 | x |
254 | } else { | 257 | } else { |
255 | TextUnit::from((x.to_usize() as i64 + self.acc_diff) as u32) | 258 | TextSize::from((usize::from(x) as i64 + self.acc_diff) as u32) |
256 | } | 259 | } |
257 | } | 260 | } |
258 | 261 | ||
@@ -271,29 +274,29 @@ impl<'a> Edits<'a> { | |||
271 | #[derive(Debug)] | 274 | #[derive(Debug)] |
272 | struct RunningLineCol { | 275 | struct RunningLineCol { |
273 | line: u32, | 276 | line: u32, |
274 | last_newline: TextUnit, | 277 | last_newline: TextSize, |
275 | col_adjust: TextUnit, | 278 | col_adjust: TextSize, |
276 | } | 279 | } |
277 | 280 | ||
278 | impl RunningLineCol { | 281 | impl RunningLineCol { |
279 | fn new() -> RunningLineCol { | 282 | fn new() -> RunningLineCol { |
280 | RunningLineCol { line: 0, last_newline: TextUnit::from(0), col_adjust: TextUnit::from(0) } | 283 | RunningLineCol { line: 0, last_newline: TextSize::from(0), col_adjust: TextSize::from(0) } |
281 | } | 284 | } |
282 | 285 | ||
283 | fn to_line_col(&self, offset: TextUnit) -> LineCol { | 286 | fn to_line_col(&self, offset: TextSize) -> LineCol { |
284 | LineCol { | 287 | LineCol { |
285 | line: self.line, | 288 | line: self.line, |
286 | col_utf16: ((offset - self.last_newline) - self.col_adjust).into(), | 289 | col_utf16: ((offset - self.last_newline) - self.col_adjust).into(), |
287 | } | 290 | } |
288 | } | 291 | } |
289 | 292 | ||
290 | fn add_line(&mut self, newline: TextUnit) { | 293 | fn add_line(&mut self, newline: TextSize) { |
291 | self.line += 1; | 294 | self.line += 1; |
292 | self.last_newline = newline; | 295 | self.last_newline = newline; |
293 | self.col_adjust = TextUnit::from(0); | 296 | self.col_adjust = TextSize::from(0); |
294 | } | 297 | } |
295 | 298 | ||
296 | fn adjust_col(&mut self, range: TextRange) { | 299 | fn adjust_col(&mut self, range: TextRange) { |
297 | self.col_adjust += range.len() - TextUnit::from(1); | 300 | self.col_adjust += range.len() - TextSize::from(1); |
298 | } | 301 | } |
299 | } | 302 | } |
diff --git a/crates/ra_ide_db/src/search.rs b/crates/ra_ide_db/src/search.rs index 1bf014149..596f957b8 100644 --- a/crates/ra_ide_db/src/search.rs +++ b/crates/ra_ide_db/src/search.rs | |||
@@ -4,13 +4,13 @@ | |||
4 | //! get a super-set of matches. Then, we we confirm each match using precise | 4 | //! get a super-set of matches. Then, we we confirm each match using precise |
5 | //! name resolution. | 5 | //! name resolution. |
6 | 6 | ||
7 | use std::mem; | 7 | use std::{convert::TryInto, mem}; |
8 | 8 | ||
9 | use hir::{DefWithBody, HasSource, Module, ModuleSource, Semantics, Visibility}; | 9 | use hir::{DefWithBody, HasSource, Module, ModuleSource, Semantics, Visibility}; |
10 | use once_cell::unsync::Lazy; | 10 | use once_cell::unsync::Lazy; |
11 | use ra_db::{FileId, FileRange, SourceDatabaseExt}; | 11 | use ra_db::{FileId, FileRange, SourceDatabaseExt}; |
12 | use ra_prof::profile; | 12 | use ra_prof::profile; |
13 | use ra_syntax::{ast, match_ast, AstNode, TextRange, TextUnit}; | 13 | use ra_syntax::{ast, match_ast, AstNode, TextRange, TextSize}; |
14 | use rustc_hash::FxHashMap; | 14 | use rustc_hash::FxHashMap; |
15 | use test_utils::tested_by; | 15 | use test_utils::tested_by; |
16 | 16 | ||
@@ -85,7 +85,7 @@ impl SearchScope { | |||
85 | match (r1, r2) { | 85 | match (r1, r2) { |
86 | (None, r) | (r, None) => Some(r), | 86 | (None, r) | (r, None) => Some(r), |
87 | (Some(r1), Some(r2)) => { | 87 | (Some(r1), Some(r2)) => { |
88 | let r = r1.intersection(&r2)?; | 88 | let r = r1.intersect(r2)?; |
89 | Some(Some(r)) | 89 | Some(Some(r)) |
90 | } | 90 | } |
91 | } | 91 | } |
@@ -201,13 +201,13 @@ impl Definition { | |||
201 | for (file_id, search_range) in search_scope { | 201 | for (file_id, search_range) in search_scope { |
202 | let text = db.file_text(file_id); | 202 | let text = db.file_text(file_id); |
203 | let search_range = | 203 | let search_range = |
204 | search_range.unwrap_or(TextRange::offset_len(0.into(), TextUnit::of_str(&text))); | 204 | search_range.unwrap_or(TextRange::up_to(TextSize::of(text.as_str()))); |
205 | 205 | ||
206 | let sema = Semantics::new(db); | 206 | let sema = Semantics::new(db); |
207 | let tree = Lazy::new(|| sema.parse(file_id).syntax().clone()); | 207 | let tree = Lazy::new(|| sema.parse(file_id).syntax().clone()); |
208 | 208 | ||
209 | for (idx, _) in text.match_indices(pat) { | 209 | for (idx, _) in text.match_indices(pat) { |
210 | let offset = TextUnit::from_usize(idx); | 210 | let offset: TextSize = idx.try_into().unwrap(); |
211 | if !search_range.contains_inclusive(offset) { | 211 | if !search_range.contains_inclusive(offset) { |
212 | tested_by!(search_filters_by_range; force); | 212 | tested_by!(search_filters_by_range; force); |
213 | continue; | 213 | continue; |
diff --git a/crates/ra_mbe/src/syntax_bridge.rs b/crates/ra_mbe/src/syntax_bridge.rs index 2b4390eb2..bb28acfd9 100644 --- a/crates/ra_mbe/src/syntax_bridge.rs +++ b/crates/ra_mbe/src/syntax_bridge.rs | |||
@@ -5,7 +5,7 @@ use ra_syntax::{ | |||
5 | ast::{self, make::tokens::doc_comment}, | 5 | ast::{self, make::tokens::doc_comment}, |
6 | tokenize, AstToken, Parse, SmolStr, SyntaxKind, | 6 | tokenize, AstToken, Parse, SmolStr, SyntaxKind, |
7 | SyntaxKind::*, | 7 | SyntaxKind::*, |
8 | SyntaxNode, SyntaxToken, SyntaxTreeBuilder, TextRange, TextUnit, Token as RawToken, T, | 8 | SyntaxNode, SyntaxToken, SyntaxTreeBuilder, TextRange, TextSize, Token as RawToken, T, |
9 | }; | 9 | }; |
10 | use rustc_hash::FxHashMap; | 10 | use rustc_hash::FxHashMap; |
11 | use tt::buffer::{Cursor, TokenBuffer}; | 11 | use tt::buffer::{Cursor, TokenBuffer}; |
@@ -99,11 +99,11 @@ pub fn parse_to_token_tree(text: &str) -> Option<(tt::Subtree, TokenMap)> { | |||
99 | 99 | ||
100 | let mut conv = RawConvertor { | 100 | let mut conv = RawConvertor { |
101 | text, | 101 | text, |
102 | offset: TextUnit::default(), | 102 | offset: TextSize::default(), |
103 | inner: tokens.iter(), | 103 | inner: tokens.iter(), |
104 | id_alloc: TokenIdAlloc { | 104 | id_alloc: TokenIdAlloc { |
105 | map: Default::default(), | 105 | map: Default::default(), |
106 | global_offset: TextUnit::default(), | 106 | global_offset: TextSize::default(), |
107 | next_id: 0, | 107 | next_id: 0, |
108 | }, | 108 | }, |
109 | }; | 109 | }; |
@@ -227,7 +227,7 @@ fn convert_doc_comment(token: &ra_syntax::SyntaxToken) -> Option<Vec<tt::TokenTr | |||
227 | 227 | ||
228 | struct TokenIdAlloc { | 228 | struct TokenIdAlloc { |
229 | map: TokenMap, | 229 | map: TokenMap, |
230 | global_offset: TextUnit, | 230 | global_offset: TextSize, |
231 | next_id: u32, | 231 | next_id: u32, |
232 | } | 232 | } |
233 | 233 | ||
@@ -266,7 +266,7 @@ impl TokenIdAlloc { | |||
266 | /// A Raw Token (straightly from lexer) convertor | 266 | /// A Raw Token (straightly from lexer) convertor |
267 | struct RawConvertor<'a> { | 267 | struct RawConvertor<'a> { |
268 | text: &'a str, | 268 | text: &'a str, |
269 | offset: TextUnit, | 269 | offset: TextSize, |
270 | id_alloc: TokenIdAlloc, | 270 | id_alloc: TokenIdAlloc, |
271 | inner: std::slice::Iter<'a, RawToken>, | 271 | inner: std::slice::Iter<'a, RawToken>, |
272 | } | 272 | } |
@@ -314,7 +314,7 @@ trait TokenConvertor { | |||
314 | } | 314 | } |
315 | 315 | ||
316 | result.push(if k.is_punct() { | 316 | result.push(if k.is_punct() { |
317 | assert_eq!(range.len().to_usize(), 1); | 317 | assert_eq!(range.len(), TextSize::of('.')); |
318 | let delim = match k { | 318 | let delim = match k { |
319 | T!['('] => Some((tt::DelimiterKind::Parenthesis, T![')'])), | 319 | T!['('] => Some((tt::DelimiterKind::Parenthesis, T![')'])), |
320 | T!['{'] => Some((tt::DelimiterKind::Brace, T!['}'])), | 320 | T!['{'] => Some((tt::DelimiterKind::Brace, T!['}'])), |
@@ -381,8 +381,8 @@ trait TokenConvertor { | |||
381 | k if k.is_keyword() => make_leaf!(Ident), | 381 | k if k.is_keyword() => make_leaf!(Ident), |
382 | k if k.is_literal() => make_leaf!(Literal), | 382 | k if k.is_literal() => make_leaf!(Literal), |
383 | LIFETIME => { | 383 | LIFETIME => { |
384 | let char_unit = TextUnit::from_usize(1); | 384 | let char_unit = TextSize::of('\''); |
385 | let r = TextRange::offset_len(range.start(), char_unit); | 385 | let r = TextRange::at(range.start(), char_unit); |
386 | let apostrophe = tt::Leaf::from(tt::Punct { | 386 | let apostrophe = tt::Leaf::from(tt::Punct { |
387 | char: '\'', | 387 | char: '\'', |
388 | spacing: tt::Spacing::Joint, | 388 | spacing: tt::Spacing::Joint, |
@@ -390,8 +390,7 @@ trait TokenConvertor { | |||
390 | }); | 390 | }); |
391 | result.push(apostrophe.into()); | 391 | result.push(apostrophe.into()); |
392 | 392 | ||
393 | let r = | 393 | let r = TextRange::at(range.start() + char_unit, range.len() - char_unit); |
394 | TextRange::offset_len(range.start() + char_unit, range.len() - char_unit); | ||
395 | let ident = tt::Leaf::from(tt::Ident { | 394 | let ident = tt::Leaf::from(tt::Ident { |
396 | text: SmolStr::new(&token.to_text()[1..]), | 395 | text: SmolStr::new(&token.to_text()[1..]), |
397 | id: self.id_alloc().alloc(r), | 396 | id: self.id_alloc().alloc(r), |
@@ -440,7 +439,7 @@ impl<'a> TokenConvertor for RawConvertor<'a> { | |||
440 | 439 | ||
441 | fn bump(&mut self) -> Option<(Self::Token, TextRange)> { | 440 | fn bump(&mut self) -> Option<(Self::Token, TextRange)> { |
442 | let token = self.inner.next()?; | 441 | let token = self.inner.next()?; |
443 | let range = TextRange::offset_len(self.offset, token.len); | 442 | let range = TextRange::at(self.offset, token.len); |
444 | self.offset += token.len; | 443 | self.offset += token.len; |
445 | 444 | ||
446 | Some(((*token, &self.text[range]), range)) | 445 | Some(((*token, &self.text[range]), range)) |
@@ -450,7 +449,7 @@ impl<'a> TokenConvertor for RawConvertor<'a> { | |||
450 | let token = self.inner.as_slice().get(0).cloned(); | 449 | let token = self.inner.as_slice().get(0).cloned(); |
451 | 450 | ||
452 | token.map(|it| { | 451 | token.map(|it| { |
453 | let range = TextRange::offset_len(self.offset, it.len); | 452 | let range = TextRange::at(self.offset, it.len); |
454 | (it, &self.text[range]) | 453 | (it, &self.text[range]) |
455 | }) | 454 | }) |
456 | } | 455 | } |
@@ -464,11 +463,11 @@ struct Convertor { | |||
464 | id_alloc: TokenIdAlloc, | 463 | id_alloc: TokenIdAlloc, |
465 | current: Option<SyntaxToken>, | 464 | current: Option<SyntaxToken>, |
466 | range: TextRange, | 465 | range: TextRange, |
467 | punct_offset: Option<(SyntaxToken, TextUnit)>, | 466 | punct_offset: Option<(SyntaxToken, TextSize)>, |
468 | } | 467 | } |
469 | 468 | ||
470 | impl Convertor { | 469 | impl Convertor { |
471 | fn new(node: &SyntaxNode, global_offset: TextUnit) -> Convertor { | 470 | fn new(node: &SyntaxNode, global_offset: TextSize) -> Convertor { |
472 | Convertor { | 471 | Convertor { |
473 | id_alloc: { TokenIdAlloc { map: TokenMap::default(), global_offset, next_id: 0 } }, | 472 | id_alloc: { TokenIdAlloc { map: TokenMap::default(), global_offset, next_id: 0 } }, |
474 | current: node.first_token(), | 473 | current: node.first_token(), |
@@ -481,7 +480,7 @@ impl Convertor { | |||
481 | #[derive(Debug)] | 480 | #[derive(Debug)] |
482 | enum SynToken { | 481 | enum SynToken { |
483 | Ordiniary(SyntaxToken), | 482 | Ordiniary(SyntaxToken), |
484 | Punch(SyntaxToken, TextUnit), | 483 | Punch(SyntaxToken, TextSize), |
485 | } | 484 | } |
486 | 485 | ||
487 | impl SynToken { | 486 | impl SynToken { |
@@ -500,7 +499,7 @@ impl SrcToken for SynToken { | |||
500 | fn to_char(&self) -> Option<char> { | 499 | fn to_char(&self) -> Option<char> { |
501 | match self { | 500 | match self { |
502 | SynToken::Ordiniary(_) => None, | 501 | SynToken::Ordiniary(_) => None, |
503 | SynToken::Punch(it, i) => it.text().chars().nth(i.to_usize()), | 502 | SynToken::Punch(it, i) => it.text().chars().nth((*i).into()), |
504 | } | 503 | } |
505 | } | 504 | } |
506 | fn to_text(&self) -> SmolStr { | 505 | fn to_text(&self) -> SmolStr { |
@@ -516,26 +515,26 @@ impl TokenConvertor for Convertor { | |||
516 | 515 | ||
517 | fn bump(&mut self) -> Option<(Self::Token, TextRange)> { | 516 | fn bump(&mut self) -> Option<(Self::Token, TextRange)> { |
518 | if let Some((punct, offset)) = self.punct_offset.clone() { | 517 | if let Some((punct, offset)) = self.punct_offset.clone() { |
519 | if offset.to_usize() + 1 < punct.text().len() { | 518 | if usize::from(offset) + 1 < punct.text().len() { |
520 | let offset = offset + TextUnit::from_usize(1); | 519 | let offset = offset + TextSize::of('.'); |
521 | let range = punct.text_range(); | 520 | let range = punct.text_range(); |
522 | self.punct_offset = Some((punct.clone(), offset)); | 521 | self.punct_offset = Some((punct.clone(), offset)); |
523 | let range = TextRange::offset_len(range.start() + offset, TextUnit::from_usize(1)); | 522 | let range = TextRange::at(range.start() + offset, TextSize::of('.')); |
524 | return Some((SynToken::Punch(punct, offset), range)); | 523 | return Some((SynToken::Punch(punct, offset), range)); |
525 | } | 524 | } |
526 | } | 525 | } |
527 | 526 | ||
528 | let curr = self.current.clone()?; | 527 | let curr = self.current.clone()?; |
529 | if !curr.text_range().is_subrange(&self.range) { | 528 | if !&self.range.contains_range(curr.text_range()) { |
530 | return None; | 529 | return None; |
531 | } | 530 | } |
532 | self.current = curr.next_token(); | 531 | self.current = curr.next_token(); |
533 | 532 | ||
534 | let token = if curr.kind().is_punct() { | 533 | let token = if curr.kind().is_punct() { |
535 | let range = curr.text_range(); | 534 | let range = curr.text_range(); |
536 | let range = TextRange::offset_len(range.start(), TextUnit::from_usize(1)); | 535 | let range = TextRange::at(range.start(), TextSize::of('.')); |
537 | self.punct_offset = Some((curr.clone(), TextUnit::from_usize(0))); | 536 | self.punct_offset = Some((curr.clone(), 0.into())); |
538 | (SynToken::Punch(curr, TextUnit::from_usize(0)), range) | 537 | (SynToken::Punch(curr, 0.into()), range) |
539 | } else { | 538 | } else { |
540 | self.punct_offset = None; | 539 | self.punct_offset = None; |
541 | let range = curr.text_range(); | 540 | let range = curr.text_range(); |
@@ -547,19 +546,19 @@ impl TokenConvertor for Convertor { | |||
547 | 546 | ||
548 | fn peek(&self) -> Option<Self::Token> { | 547 | fn peek(&self) -> Option<Self::Token> { |
549 | if let Some((punct, mut offset)) = self.punct_offset.clone() { | 548 | if let Some((punct, mut offset)) = self.punct_offset.clone() { |
550 | offset = offset + TextUnit::from_usize(1); | 549 | offset = offset + TextSize::of('.'); |
551 | if offset.to_usize() < punct.text().len() { | 550 | if usize::from(offset) < punct.text().len() { |
552 | return Some(SynToken::Punch(punct, offset)); | 551 | return Some(SynToken::Punch(punct, offset)); |
553 | } | 552 | } |
554 | } | 553 | } |
555 | 554 | ||
556 | let curr = self.current.clone()?; | 555 | let curr = self.current.clone()?; |
557 | if !curr.text_range().is_subrange(&self.range) { | 556 | if !self.range.contains_range(curr.text_range()) { |
558 | return None; | 557 | return None; |
559 | } | 558 | } |
560 | 559 | ||
561 | let token = if curr.kind().is_punct() { | 560 | let token = if curr.kind().is_punct() { |
562 | SynToken::Punch(curr, TextUnit::from_usize(0)) | 561 | SynToken::Punch(curr, 0.into()) |
563 | } else { | 562 | } else { |
564 | SynToken::Ordiniary(curr) | 563 | SynToken::Ordiniary(curr) |
565 | }; | 564 | }; |
@@ -574,8 +573,8 @@ impl TokenConvertor for Convertor { | |||
574 | struct TtTreeSink<'a> { | 573 | struct TtTreeSink<'a> { |
575 | buf: String, | 574 | buf: String, |
576 | cursor: Cursor<'a>, | 575 | cursor: Cursor<'a>, |
577 | open_delims: FxHashMap<tt::TokenId, TextUnit>, | 576 | open_delims: FxHashMap<tt::TokenId, TextSize>, |
578 | text_pos: TextUnit, | 577 | text_pos: TextSize, |
579 | inner: SyntaxTreeBuilder, | 578 | inner: SyntaxTreeBuilder, |
580 | token_map: TokenMap, | 579 | token_map: TokenMap, |
581 | 580 | ||
@@ -641,7 +640,7 @@ impl<'a> TreeSink for TtTreeSink<'a> { | |||
641 | } | 640 | } |
642 | tt::Leaf::Literal(lit) => (lit.text.clone(), lit.id), | 641 | tt::Leaf::Literal(lit) => (lit.text.clone(), lit.id), |
643 | }; | 642 | }; |
644 | let range = TextRange::offset_len(self.text_pos, TextUnit::of_str(&text)); | 643 | let range = TextRange::at(self.text_pos, TextSize::of(text.as_str())); |
645 | self.token_map.insert(id, range); | 644 | self.token_map.insert(id, range); |
646 | self.cursor = self.cursor.bump(); | 645 | self.cursor = self.cursor.bump(); |
647 | text | 646 | text |
@@ -658,10 +657,8 @@ impl<'a> TreeSink for TtTreeSink<'a> { | |||
658 | self.cursor = self.cursor.bump(); | 657 | self.cursor = self.cursor.bump(); |
659 | if let Some(id) = parent.delimiter.map(|it| it.id) { | 658 | if let Some(id) = parent.delimiter.map(|it| it.id) { |
660 | if let Some(open_delim) = self.open_delims.get(&id) { | 659 | if let Some(open_delim) = self.open_delims.get(&id) { |
661 | let open_range = | 660 | let open_range = TextRange::at(*open_delim, TextSize::of('(')); |
662 | TextRange::offset_len(*open_delim, TextUnit::from_usize(1)); | 661 | let close_range = TextRange::at(self.text_pos, TextSize::of('(')); |
663 | let close_range = | ||
664 | TextRange::offset_len(self.text_pos, TextUnit::from_usize(1)); | ||
665 | self.token_map.insert_delim(id, open_range, close_range); | 662 | self.token_map.insert_delim(id, open_range, close_range); |
666 | } | 663 | } |
667 | } | 664 | } |
@@ -672,7 +669,7 @@ impl<'a> TreeSink for TtTreeSink<'a> { | |||
672 | } | 669 | } |
673 | }; | 670 | }; |
674 | self.buf += &text; | 671 | self.buf += &text; |
675 | self.text_pos += TextUnit::of_str(&text); | 672 | self.text_pos += TextSize::of(text.as_str()); |
676 | } | 673 | } |
677 | 674 | ||
678 | let text = SmolStr::new(self.buf.as_str()); | 675 | let text = SmolStr::new(self.buf.as_str()); |
@@ -690,7 +687,7 @@ impl<'a> TreeSink for TtTreeSink<'a> { | |||
690 | // other parts of RA such that we don't add whitespace here. | 687 | // other parts of RA such that we don't add whitespace here. |
691 | if curr.spacing == tt::Spacing::Alone && curr.char != ';' { | 688 | if curr.spacing == tt::Spacing::Alone && curr.char != ';' { |
692 | self.inner.token(WHITESPACE, " ".into()); | 689 | self.inner.token(WHITESPACE, " ".into()); |
693 | self.text_pos += TextUnit::of_char(' '); | 690 | self.text_pos += TextSize::of(' '); |
694 | } | 691 | } |
695 | } | 692 | } |
696 | } | 693 | } |
diff --git a/crates/ra_mbe/src/tests.rs b/crates/ra_mbe/src/tests.rs index 76f571502..7ceec7752 100644 --- a/crates/ra_mbe/src/tests.rs +++ b/crates/ra_mbe/src/tests.rs | |||
@@ -257,30 +257,30 @@ fn test_expr_order() { | |||
257 | let dump = format!("{:#?}", expanded); | 257 | let dump = format!("{:#?}", expanded); |
258 | assert_eq_text!( | 258 | assert_eq_text!( |
259 | dump.trim(), | 259 | dump.trim(), |
260 | r#"MACRO_ITEMS@[0; 15) | 260 | r#"MACRO_ITEMS@0..15 |
261 | FN_DEF@[0; 15) | 261 | FN_DEF@0..15 |
262 | FN_KW@[0; 2) "fn" | 262 | FN_KW@0..2 "fn" |
263 | NAME@[2; 5) | 263 | NAME@2..5 |
264 | IDENT@[2; 5) "bar" | 264 | IDENT@2..5 "bar" |
265 | PARAM_LIST@[5; 7) | 265 | PARAM_LIST@5..7 |
266 | L_PAREN@[5; 6) "(" | 266 | L_PAREN@5..6 "(" |
267 | R_PAREN@[6; 7) ")" | 267 | R_PAREN@6..7 ")" |
268 | BLOCK_EXPR@[7; 15) | 268 | BLOCK_EXPR@7..15 |
269 | BLOCK@[7; 15) | 269 | BLOCK@7..15 |
270 | L_CURLY@[7; 8) "{" | 270 | L_CURLY@7..8 "{" |
271 | EXPR_STMT@[8; 14) | 271 | EXPR_STMT@8..14 |
272 | BIN_EXPR@[8; 13) | 272 | BIN_EXPR@8..13 |
273 | BIN_EXPR@[8; 11) | 273 | BIN_EXPR@8..11 |
274 | LITERAL@[8; 9) | 274 | LITERAL@8..9 |
275 | INT_NUMBER@[8; 9) "1" | 275 | INT_NUMBER@8..9 "1" |
276 | PLUS@[9; 10) "+" | 276 | PLUS@9..10 "+" |
277 | LITERAL@[10; 11) | 277 | LITERAL@10..11 |
278 | INT_NUMBER@[10; 11) "1" | 278 | INT_NUMBER@10..11 "1" |
279 | STAR@[11; 12) "*" | 279 | STAR@11..12 "*" |
280 | LITERAL@[12; 13) | 280 | LITERAL@12..13 |
281 | INT_NUMBER@[12; 13) "2" | 281 | INT_NUMBER@12..13 "2" |
282 | SEMICOLON@[13; 14) ";" | 282 | SEMICOLON@13..14 ";" |
283 | R_CURLY@[14; 15) "}""#, | 283 | R_CURLY@14..15 "}""#, |
284 | ); | 284 | ); |
285 | } | 285 | } |
286 | 286 | ||
@@ -490,39 +490,39 @@ fn test_expand_to_item_list() { | |||
490 | assert_eq!( | 490 | assert_eq!( |
491 | format!("{:#?}", tree).trim(), | 491 | format!("{:#?}", tree).trim(), |
492 | r#" | 492 | r#" |
493 | MACRO_ITEMS@[0; 40) | 493 | MACRO_ITEMS@0..40 |
494 | STRUCT_DEF@[0; 20) | 494 | STRUCT_DEF@0..20 |
495 | STRUCT_KW@[0; 6) "struct" | 495 | STRUCT_KW@0..6 "struct" |
496 | NAME@[6; 9) | 496 | NAME@6..9 |
497 | IDENT@[6; 9) "Foo" | 497 | IDENT@6..9 "Foo" |
498 | RECORD_FIELD_DEF_LIST@[9; 20) | 498 | RECORD_FIELD_DEF_LIST@9..20 |
499 | L_CURLY@[9; 10) "{" | 499 | L_CURLY@9..10 "{" |
500 | RECORD_FIELD_DEF@[10; 19) | 500 | RECORD_FIELD_DEF@10..19 |
501 | NAME@[10; 15) | 501 | NAME@10..15 |
502 | IDENT@[10; 15) "field" | 502 | IDENT@10..15 "field" |
503 | COLON@[15; 16) ":" | 503 | COLON@15..16 ":" |
504 | PATH_TYPE@[16; 19) | 504 | PATH_TYPE@16..19 |
505 | PATH@[16; 19) | 505 | PATH@16..19 |
506 | PATH_SEGMENT@[16; 19) | 506 | PATH_SEGMENT@16..19 |
507 | NAME_REF@[16; 19) | 507 | NAME_REF@16..19 |
508 | IDENT@[16; 19) "u32" | 508 | IDENT@16..19 "u32" |
509 | R_CURLY@[19; 20) "}" | 509 | R_CURLY@19..20 "}" |
510 | STRUCT_DEF@[20; 40) | 510 | STRUCT_DEF@20..40 |
511 | STRUCT_KW@[20; 26) "struct" | 511 | STRUCT_KW@20..26 "struct" |
512 | NAME@[26; 29) | 512 | NAME@26..29 |
513 | IDENT@[26; 29) "Bar" | 513 | IDENT@26..29 "Bar" |
514 | RECORD_FIELD_DEF_LIST@[29; 40) | 514 | RECORD_FIELD_DEF_LIST@29..40 |
515 | L_CURLY@[29; 30) "{" | 515 | L_CURLY@29..30 "{" |
516 | RECORD_FIELD_DEF@[30; 39) | 516 | RECORD_FIELD_DEF@30..39 |
517 | NAME@[30; 35) | 517 | NAME@30..35 |
518 | IDENT@[30; 35) "field" | 518 | IDENT@30..35 "field" |
519 | COLON@[35; 36) ":" | 519 | COLON@35..36 ":" |
520 | PATH_TYPE@[36; 39) | 520 | PATH_TYPE@36..39 |
521 | PATH@[36; 39) | 521 | PATH@36..39 |
522 | PATH_SEGMENT@[36; 39) | 522 | PATH_SEGMENT@36..39 |
523 | NAME_REF@[36; 39) | 523 | NAME_REF@36..39 |
524 | IDENT@[36; 39) "u32" | 524 | IDENT@36..39 "u32" |
525 | R_CURLY@[39; 40) "}""# | 525 | R_CURLY@39..40 "}""# |
526 | .trim() | 526 | .trim() |
527 | ); | 527 | ); |
528 | } | 528 | } |
@@ -623,37 +623,37 @@ fn test_tt_to_stmts() { | |||
623 | 623 | ||
624 | assert_eq!( | 624 | assert_eq!( |
625 | format!("{:#?}", stmts).trim(), | 625 | format!("{:#?}", stmts).trim(), |
626 | r#"MACRO_STMTS@[0; 15) | 626 | r#"MACRO_STMTS@0..15 |
627 | LET_STMT@[0; 7) | 627 | LET_STMT@0..7 |
628 | LET_KW@[0; 3) "let" | 628 | LET_KW@0..3 "let" |
629 | BIND_PAT@[3; 4) | 629 | BIND_PAT@3..4 |
630 | NAME@[3; 4) | 630 | NAME@3..4 |
631 | IDENT@[3; 4) "a" | 631 | IDENT@3..4 "a" |
632 | EQ@[4; 5) "=" | 632 | EQ@4..5 "=" |
633 | LITERAL@[5; 6) | 633 | LITERAL@5..6 |
634 | INT_NUMBER@[5; 6) "0" | 634 | INT_NUMBER@5..6 "0" |
635 | SEMICOLON@[6; 7) ";" | 635 | SEMICOLON@6..7 ";" |
636 | EXPR_STMT@[7; 14) | 636 | EXPR_STMT@7..14 |
637 | BIN_EXPR@[7; 13) | 637 | BIN_EXPR@7..13 |
638 | PATH_EXPR@[7; 8) | 638 | PATH_EXPR@7..8 |
639 | PATH@[7; 8) | 639 | PATH@7..8 |
640 | PATH_SEGMENT@[7; 8) | 640 | PATH_SEGMENT@7..8 |
641 | NAME_REF@[7; 8) | 641 | NAME_REF@7..8 |
642 | IDENT@[7; 8) "a" | 642 | IDENT@7..8 "a" |
643 | EQ@[8; 9) "=" | 643 | EQ@8..9 "=" |
644 | BIN_EXPR@[9; 13) | 644 | BIN_EXPR@9..13 |
645 | LITERAL@[9; 11) | 645 | LITERAL@9..11 |
646 | INT_NUMBER@[9; 11) "10" | 646 | INT_NUMBER@9..11 "10" |
647 | PLUS@[11; 12) "+" | 647 | PLUS@11..12 "+" |
648 | LITERAL@[12; 13) | 648 | LITERAL@12..13 |
649 | INT_NUMBER@[12; 13) "1" | 649 | INT_NUMBER@12..13 "1" |
650 | SEMICOLON@[13; 14) ";" | 650 | SEMICOLON@13..14 ";" |
651 | EXPR_STMT@[14; 15) | 651 | EXPR_STMT@14..15 |
652 | PATH_EXPR@[14; 15) | 652 | PATH_EXPR@14..15 |
653 | PATH@[14; 15) | 653 | PATH@14..15 |
654 | PATH_SEGMENT@[14; 15) | 654 | PATH_SEGMENT@14..15 |
655 | NAME_REF@[14; 15) | 655 | NAME_REF@14..15 |
656 | IDENT@[14; 15) "a""#, | 656 | IDENT@14..15 "a""#, |
657 | ); | 657 | ); |
658 | } | 658 | } |
659 | 659 | ||
@@ -974,20 +974,20 @@ fn test_tt_composite2() { | |||
974 | let res = format!("{:#?}", &node); | 974 | let res = format!("{:#?}", &node); |
975 | assert_eq_text!( | 975 | assert_eq_text!( |
976 | res.trim(), | 976 | res.trim(), |
977 | r###"MACRO_ITEMS@[0; 10) | 977 | r###"MACRO_ITEMS@0..10 |
978 | MACRO_CALL@[0; 10) | 978 | MACRO_CALL@0..10 |
979 | PATH@[0; 3) | 979 | PATH@0..3 |
980 | PATH_SEGMENT@[0; 3) | 980 | PATH_SEGMENT@0..3 |
981 | NAME_REF@[0; 3) | 981 | NAME_REF@0..3 |
982 | IDENT@[0; 3) "abs" | 982 | IDENT@0..3 "abs" |
983 | BANG@[3; 4) "!" | 983 | BANG@3..4 "!" |
984 | TOKEN_TREE@[4; 10) | 984 | TOKEN_TREE@4..10 |
985 | L_PAREN@[4; 5) "(" | 985 | L_PAREN@4..5 "(" |
986 | EQ@[5; 6) "=" | 986 | EQ@5..6 "=" |
987 | R_ANGLE@[6; 7) ">" | 987 | R_ANGLE@6..7 ">" |
988 | WHITESPACE@[7; 8) " " | 988 | WHITESPACE@7..8 " " |
989 | POUND@[8; 9) "#" | 989 | POUND@8..9 "#" |
990 | R_PAREN@[9; 10) ")""### | 990 | R_PAREN@9..10 ")""### |
991 | ); | 991 | ); |
992 | } | 992 | } |
993 | 993 | ||
@@ -1113,69 +1113,69 @@ fn test_vec() { | |||
1113 | 1113 | ||
1114 | assert_eq!( | 1114 | assert_eq!( |
1115 | format!("{:#?}", tree).trim(), | 1115 | format!("{:#?}", tree).trim(), |
1116 | r#"BLOCK_EXPR@[0; 45) | 1116 | r#"BLOCK_EXPR@0..45 |
1117 | BLOCK@[0; 45) | 1117 | BLOCK@0..45 |
1118 | L_CURLY@[0; 1) "{" | 1118 | L_CURLY@0..1 "{" |
1119 | LET_STMT@[1; 20) | 1119 | LET_STMT@1..20 |
1120 | LET_KW@[1; 4) "let" | 1120 | LET_KW@1..4 "let" |
1121 | BIND_PAT@[4; 8) | 1121 | BIND_PAT@4..8 |
1122 | MUT_KW@[4; 7) "mut" | 1122 | MUT_KW@4..7 "mut" |
1123 | NAME@[7; 8) | 1123 | NAME@7..8 |
1124 | IDENT@[7; 8) "v" | 1124 | IDENT@7..8 "v" |
1125 | EQ@[8; 9) "=" | 1125 | EQ@8..9 "=" |
1126 | CALL_EXPR@[9; 19) | 1126 | CALL_EXPR@9..19 |
1127 | PATH_EXPR@[9; 17) | 1127 | PATH_EXPR@9..17 |
1128 | PATH@[9; 17) | 1128 | PATH@9..17 |
1129 | PATH@[9; 12) | 1129 | PATH@9..12 |
1130 | PATH_SEGMENT@[9; 12) | 1130 | PATH_SEGMENT@9..12 |
1131 | NAME_REF@[9; 12) | 1131 | NAME_REF@9..12 |
1132 | IDENT@[9; 12) "Vec" | 1132 | IDENT@9..12 "Vec" |
1133 | COLON2@[12; 14) "::" | 1133 | COLON2@12..14 "::" |
1134 | PATH_SEGMENT@[14; 17) | 1134 | PATH_SEGMENT@14..17 |
1135 | NAME_REF@[14; 17) | 1135 | NAME_REF@14..17 |
1136 | IDENT@[14; 17) "new" | 1136 | IDENT@14..17 "new" |
1137 | ARG_LIST@[17; 19) | 1137 | ARG_LIST@17..19 |
1138 | L_PAREN@[17; 18) "(" | 1138 | L_PAREN@17..18 "(" |
1139 | R_PAREN@[18; 19) ")" | 1139 | R_PAREN@18..19 ")" |
1140 | SEMICOLON@[19; 20) ";" | 1140 | SEMICOLON@19..20 ";" |
1141 | EXPR_STMT@[20; 33) | 1141 | EXPR_STMT@20..33 |
1142 | METHOD_CALL_EXPR@[20; 32) | 1142 | METHOD_CALL_EXPR@20..32 |
1143 | PATH_EXPR@[20; 21) | 1143 | PATH_EXPR@20..21 |
1144 | PATH@[20; 21) | 1144 | PATH@20..21 |
1145 | PATH_SEGMENT@[20; 21) | 1145 | PATH_SEGMENT@20..21 |
1146 | NAME_REF@[20; 21) | 1146 | NAME_REF@20..21 |
1147 | IDENT@[20; 21) "v" | 1147 | IDENT@20..21 "v" |
1148 | DOT@[21; 22) "." | 1148 | DOT@21..22 "." |
1149 | NAME_REF@[22; 26) | 1149 | NAME_REF@22..26 |
1150 | IDENT@[22; 26) "push" | 1150 | IDENT@22..26 "push" |
1151 | ARG_LIST@[26; 32) | 1151 | ARG_LIST@26..32 |
1152 | L_PAREN@[26; 27) "(" | 1152 | L_PAREN@26..27 "(" |
1153 | LITERAL@[27; 31) | 1153 | LITERAL@27..31 |
1154 | INT_NUMBER@[27; 31) "1u32" | 1154 | INT_NUMBER@27..31 "1u32" |
1155 | R_PAREN@[31; 32) ")" | 1155 | R_PAREN@31..32 ")" |
1156 | SEMICOLON@[32; 33) ";" | 1156 | SEMICOLON@32..33 ";" |
1157 | EXPR_STMT@[33; 43) | 1157 | EXPR_STMT@33..43 |
1158 | METHOD_CALL_EXPR@[33; 42) | 1158 | METHOD_CALL_EXPR@33..42 |
1159 | PATH_EXPR@[33; 34) | 1159 | PATH_EXPR@33..34 |
1160 | PATH@[33; 34) | 1160 | PATH@33..34 |
1161 | PATH_SEGMENT@[33; 34) | 1161 | PATH_SEGMENT@33..34 |
1162 | NAME_REF@[33; 34) | 1162 | NAME_REF@33..34 |
1163 | IDENT@[33; 34) "v" | 1163 | IDENT@33..34 "v" |
1164 | DOT@[34; 35) "." | 1164 | DOT@34..35 "." |
1165 | NAME_REF@[35; 39) | 1165 | NAME_REF@35..39 |
1166 | IDENT@[35; 39) "push" | 1166 | IDENT@35..39 "push" |
1167 | ARG_LIST@[39; 42) | 1167 | ARG_LIST@39..42 |
1168 | L_PAREN@[39; 40) "(" | 1168 | L_PAREN@39..40 "(" |
1169 | LITERAL@[40; 41) | 1169 | LITERAL@40..41 |
1170 | INT_NUMBER@[40; 41) "2" | 1170 | INT_NUMBER@40..41 "2" |
1171 | R_PAREN@[41; 42) ")" | 1171 | R_PAREN@41..42 ")" |
1172 | SEMICOLON@[42; 43) ";" | 1172 | SEMICOLON@42..43 ";" |
1173 | PATH_EXPR@[43; 44) | 1173 | PATH_EXPR@43..44 |
1174 | PATH@[43; 44) | 1174 | PATH@43..44 |
1175 | PATH_SEGMENT@[43; 44) | 1175 | PATH_SEGMENT@43..44 |
1176 | NAME_REF@[43; 44) | 1176 | NAME_REF@43..44 |
1177 | IDENT@[43; 44) "v" | 1177 | IDENT@43..44 "v" |
1178 | R_CURLY@[44; 45) "}""# | 1178 | R_CURLY@44..45 "}""# |
1179 | ); | 1179 | ); |
1180 | } | 1180 | } |
1181 | 1181 | ||
@@ -1798,45 +1798,45 @@ fn test_no_space_after_semi_colon() { | |||
1798 | let dump = format!("{:#?}", expanded); | 1798 | let dump = format!("{:#?}", expanded); |
1799 | assert_eq_text!( | 1799 | assert_eq_text!( |
1800 | dump.trim(), | 1800 | dump.trim(), |
1801 | r###"MACRO_ITEMS@[0; 52) | 1801 | r###"MACRO_ITEMS@0..52 |
1802 | MODULE@[0; 26) | 1802 | MODULE@0..26 |
1803 | ATTR@[0; 21) | 1803 | ATTR@0..21 |
1804 | POUND@[0; 1) "#" | 1804 | POUND@0..1 "#" |
1805 | L_BRACK@[1; 2) "[" | 1805 | L_BRACK@1..2 "[" |
1806 | PATH@[2; 5) | 1806 | PATH@2..5 |
1807 | PATH_SEGMENT@[2; 5) | 1807 | PATH_SEGMENT@2..5 |
1808 | NAME_REF@[2; 5) | 1808 | NAME_REF@2..5 |
1809 | IDENT@[2; 5) "cfg" | 1809 | IDENT@2..5 "cfg" |
1810 | TOKEN_TREE@[5; 20) | 1810 | TOKEN_TREE@5..20 |
1811 | L_PAREN@[5; 6) "(" | 1811 | L_PAREN@5..6 "(" |
1812 | IDENT@[6; 13) "feature" | 1812 | IDENT@6..13 "feature" |
1813 | EQ@[13; 14) "=" | 1813 | EQ@13..14 "=" |
1814 | STRING@[14; 19) "\"std\"" | 1814 | STRING@14..19 "\"std\"" |
1815 | R_PAREN@[19; 20) ")" | 1815 | R_PAREN@19..20 ")" |
1816 | R_BRACK@[20; 21) "]" | 1816 | R_BRACK@20..21 "]" |
1817 | MOD_KW@[21; 24) "mod" | 1817 | MOD_KW@21..24 "mod" |
1818 | NAME@[24; 25) | 1818 | NAME@24..25 |
1819 | IDENT@[24; 25) "m" | 1819 | IDENT@24..25 "m" |
1820 | SEMICOLON@[25; 26) ";" | 1820 | SEMICOLON@25..26 ";" |
1821 | MODULE@[26; 52) | 1821 | MODULE@26..52 |
1822 | ATTR@[26; 47) | 1822 | ATTR@26..47 |
1823 | POUND@[26; 27) "#" | 1823 | POUND@26..27 "#" |
1824 | L_BRACK@[27; 28) "[" | 1824 | L_BRACK@27..28 "[" |
1825 | PATH@[28; 31) | 1825 | PATH@28..31 |
1826 | PATH_SEGMENT@[28; 31) | 1826 | PATH_SEGMENT@28..31 |
1827 | NAME_REF@[28; 31) | 1827 | NAME_REF@28..31 |
1828 | IDENT@[28; 31) "cfg" | 1828 | IDENT@28..31 "cfg" |
1829 | TOKEN_TREE@[31; 46) | 1829 | TOKEN_TREE@31..46 |
1830 | L_PAREN@[31; 32) "(" | 1830 | L_PAREN@31..32 "(" |
1831 | IDENT@[32; 39) "feature" | 1831 | IDENT@32..39 "feature" |
1832 | EQ@[39; 40) "=" | 1832 | EQ@39..40 "=" |
1833 | STRING@[40; 45) "\"std\"" | 1833 | STRING@40..45 "\"std\"" |
1834 | R_PAREN@[45; 46) ")" | 1834 | R_PAREN@45..46 ")" |
1835 | R_BRACK@[46; 47) "]" | 1835 | R_BRACK@46..47 "]" |
1836 | MOD_KW@[47; 50) "mod" | 1836 | MOD_KW@47..50 "mod" |
1837 | NAME@[50; 51) | 1837 | NAME@50..51 |
1838 | IDENT@[50; 51) "f" | 1838 | IDENT@50..51 "f" |
1839 | SEMICOLON@[51; 52) ";""###, | 1839 | SEMICOLON@51..52 ";""###, |
1840 | ); | 1840 | ); |
1841 | } | 1841 | } |
1842 | 1842 | ||
diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index 84008b2e3..362ee30fe 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs | |||
@@ -141,6 +141,11 @@ impl CargoWorkspace { | |||
141 | cargo_toml: &Path, | 141 | cargo_toml: &Path, |
142 | cargo_features: &CargoConfig, | 142 | cargo_features: &CargoConfig, |
143 | ) -> Result<CargoWorkspace> { | 143 | ) -> Result<CargoWorkspace> { |
144 | let _ = Command::new(cargo_binary()) | ||
145 | .arg("--version") | ||
146 | .output() | ||
147 | .context("failed to run `cargo --version`, is `cargo` in PATH?")?; | ||
148 | |||
144 | let mut meta = MetadataCommand::new(); | 149 | let mut meta = MetadataCommand::new(); |
145 | meta.manifest_path(cargo_toml); | 150 | meta.manifest_path(cargo_toml); |
146 | if cargo_features.all_features { | 151 | if cargo_features.all_features { |
diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 03f2629da..731cbd291 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs | |||
@@ -285,8 +285,10 @@ impl ProjectWorkspace { | |||
285 | let mut env = Env::default(); | 285 | let mut env = Env::default(); |
286 | let mut extern_source = ExternSource::default(); | 286 | let mut extern_source = ExternSource::default(); |
287 | if let Some(out_dir) = &krate.out_dir { | 287 | if let Some(out_dir) = &krate.out_dir { |
288 | // FIXME: We probably mangle non UTF-8 paths here, figure out a better solution | 288 | // NOTE: cargo and rustc seem to hide non-UTF-8 strings from env! and option_env!() |
289 | env.set("OUT_DIR", out_dir.to_string_lossy().to_string()); | 289 | if let Some(out_dir) = out_dir.to_str().map(|s| s.to_owned()) { |
290 | env.set("OUT_DIR", out_dir); | ||
291 | } | ||
290 | if let Some(&extern_source_id) = extern_source_roots.get(out_dir) { | 292 | if let Some(&extern_source_id) = extern_source_roots.get(out_dir) { |
291 | extern_source.set_extern_path(&out_dir, extern_source_id); | 293 | extern_source.set_extern_path(&out_dir, extern_source_id); |
292 | } | 294 | } |
@@ -402,8 +404,10 @@ impl ProjectWorkspace { | |||
402 | let mut env = Env::default(); | 404 | let mut env = Env::default(); |
403 | let mut extern_source = ExternSource::default(); | 405 | let mut extern_source = ExternSource::default(); |
404 | if let Some(out_dir) = &cargo[pkg].out_dir { | 406 | if let Some(out_dir) = &cargo[pkg].out_dir { |
405 | // FIXME: We probably mangle non UTF-8 paths here, figure out a better solution | 407 | // NOTE: cargo and rustc seem to hide non-UTF-8 strings from env! and option_env!() |
406 | env.set("OUT_DIR", out_dir.to_string_lossy().to_string()); | 408 | if let Some(out_dir) = out_dir.to_str().map(|s| s.to_owned()) { |
409 | env.set("OUT_DIR", out_dir); | ||
410 | } | ||
407 | if let Some(&extern_source_id) = extern_source_roots.get(out_dir) { | 411 | if let Some(&extern_source_id) = extern_source_roots.get(out_dir) { |
408 | extern_source.set_extern_path(&out_dir, extern_source_id); | 412 | extern_source.set_extern_path(&out_dir, extern_source_id); |
409 | } | 413 | } |
diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index 75a2f696e..7ffe46c69 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml | |||
@@ -12,7 +12,7 @@ doctest = false | |||
12 | 12 | ||
13 | [dependencies] | 13 | [dependencies] |
14 | itertools = "0.9.0" | 14 | itertools = "0.9.0" |
15 | rowan = "0.9.1" | 15 | rowan = "0.10.0" |
16 | rustc_lexer = { version = "652.0.0", package = "rustc-ap-rustc_lexer" } | 16 | rustc_lexer = { version = "652.0.0", package = "rustc-ap-rustc_lexer" } |
17 | rustc-hash = "1.1.0" | 17 | rustc-hash = "1.1.0" |
18 | arrayvec = "0.5.1" | 18 | arrayvec = "0.5.1" |
diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index 06df8495c..2a8dac757 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs | |||
@@ -11,7 +11,7 @@ use rustc_hash::FxHashMap; | |||
11 | 11 | ||
12 | use crate::{ | 12 | use crate::{ |
13 | AstNode, Direction, NodeOrToken, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxNodePtr, | 13 | AstNode, Direction, NodeOrToken, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxNodePtr, |
14 | SyntaxToken, TextRange, TextUnit, | 14 | SyntaxToken, TextRange, TextSize, |
15 | }; | 15 | }; |
16 | 16 | ||
17 | /// Returns ancestors of the node at the offset, sorted by length. This should | 17 | /// Returns ancestors of the node at the offset, sorted by length. This should |
@@ -21,7 +21,7 @@ use crate::{ | |||
21 | /// t.parent().ancestors())`. | 21 | /// t.parent().ancestors())`. |
22 | pub fn ancestors_at_offset( | 22 | pub fn ancestors_at_offset( |
23 | node: &SyntaxNode, | 23 | node: &SyntaxNode, |
24 | offset: TextUnit, | 24 | offset: TextSize, |
25 | ) -> impl Iterator<Item = SyntaxNode> { | 25 | ) -> impl Iterator<Item = SyntaxNode> { |
26 | node.token_at_offset(offset) | 26 | node.token_at_offset(offset) |
27 | .map(|token| token.parent().ancestors()) | 27 | .map(|token| token.parent().ancestors()) |
@@ -37,7 +37,7 @@ pub fn ancestors_at_offset( | |||
37 | /// ``` | 37 | /// ``` |
38 | /// | 38 | /// |
39 | /// then the shorter node will be silently preferred. | 39 | /// then the shorter node will be silently preferred. |
40 | pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextUnit) -> Option<N> { | 40 | pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextSize) -> Option<N> { |
41 | ancestors_at_offset(syntax, offset).find_map(N::cast) | 41 | ancestors_at_offset(syntax, offset).find_map(N::cast) |
42 | } | 42 | } |
43 | 43 | ||
@@ -180,7 +180,7 @@ fn _insert_children( | |||
180 | position: InsertPosition<SyntaxElement>, | 180 | position: InsertPosition<SyntaxElement>, |
181 | to_insert: &mut dyn Iterator<Item = SyntaxElement>, | 181 | to_insert: &mut dyn Iterator<Item = SyntaxElement>, |
182 | ) -> SyntaxNode { | 182 | ) -> SyntaxNode { |
183 | let mut delta = TextUnit::default(); | 183 | let mut delta = TextSize::default(); |
184 | let to_insert = to_insert.map(|element| { | 184 | let to_insert = to_insert.map(|element| { |
185 | delta += element.text_range().len(); | 185 | delta += element.text_range().len(); |
186 | to_green_element(element) | 186 | to_green_element(element) |
@@ -347,7 +347,7 @@ fn with_children( | |||
347 | parent: &SyntaxNode, | 347 | parent: &SyntaxNode, |
348 | new_children: Vec<NodeOrToken<rowan::GreenNode, rowan::GreenToken>>, | 348 | new_children: Vec<NodeOrToken<rowan::GreenNode, rowan::GreenToken>>, |
349 | ) -> SyntaxNode { | 349 | ) -> SyntaxNode { |
350 | let len = new_children.iter().map(|it| it.text_len()).sum::<TextUnit>(); | 350 | let len = new_children.iter().map(|it| it.text_len()).sum::<TextSize>(); |
351 | let new_node = rowan::GreenNode::new(rowan::SyntaxKind(parent.kind() as u16), new_children); | 351 | let new_node = rowan::GreenNode::new(rowan::SyntaxKind(parent.kind() as u16), new_children); |
352 | let new_root_node = parent.replace_with(new_node); | 352 | let new_root_node = parent.replace_with(new_node); |
353 | let new_root_node = SyntaxNode::new_root(new_root_node); | 353 | let new_root_node = SyntaxNode::new_root(new_root_node); |
@@ -355,7 +355,7 @@ fn with_children( | |||
355 | // FIXME: use a more elegant way to re-fetch the node (#1185), make | 355 | // FIXME: use a more elegant way to re-fetch the node (#1185), make |
356 | // `range` private afterwards | 356 | // `range` private afterwards |
357 | let mut ptr = SyntaxNodePtr::new(parent); | 357 | let mut ptr = SyntaxNodePtr::new(parent); |
358 | ptr.range = TextRange::offset_len(ptr.range.start(), len); | 358 | ptr.range = TextRange::at(ptr.range.start(), len); |
359 | ptr.to_node(&new_root_node) | 359 | ptr.to_node(&new_root_node) |
360 | } | 360 | } |
361 | 361 | ||
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs index 0f4a50be4..ee0f5cc40 100644 --- a/crates/ra_syntax/src/ast/make.rs +++ b/crates/ra_syntax/src/ast/make.rs | |||
@@ -293,11 +293,20 @@ pub fn fn_def( | |||
293 | ast_from_text(&format!("fn {}{}{} {}", fn_name, type_params, params, body)) | 293 | ast_from_text(&format!("fn {}{}{} {}", fn_name, type_params, params, body)) |
294 | } | 294 | } |
295 | 295 | ||
296 | pub fn add_newlines(amount_of_newlines: usize, t: impl AstNode) -> ast::SourceFile { | 296 | pub fn add_leading_newlines(amount_of_newlines: usize, t: impl AstNode) -> ast::SourceFile { |
297 | let newlines = "\n".repeat(amount_of_newlines); | 297 | let newlines = "\n".repeat(amount_of_newlines); |
298 | ast_from_text(&format!("{}{}", newlines, t.syntax())) | 298 | ast_from_text(&format!("{}{}", newlines, t.syntax())) |
299 | } | 299 | } |
300 | 300 | ||
301 | pub fn add_trailing_newlines(amount_of_newlines: usize, t: impl AstNode) -> ast::SourceFile { | ||
302 | let newlines = "\n".repeat(amount_of_newlines); | ||
303 | ast_from_text(&format!("{}{}", t.syntax(), newlines)) | ||
304 | } | ||
305 | |||
306 | pub fn add_pub_crate_modifier(fn_def: ast::FnDef) -> ast::FnDef { | ||
307 | ast_from_text(&format!("pub(crate) {}", fn_def)) | ||
308 | } | ||
309 | |||
301 | fn ast_from_text<N: AstNode>(text: &str) -> N { | 310 | fn ast_from_text<N: AstNode>(text: &str) -> N { |
302 | let parse = SourceFile::parse(text); | 311 | let parse = SourceFile::parse(text); |
303 | let node = parse.tree().syntax().descendants().find_map(N::cast).unwrap(); | 312 | let node = parse.tree().syntax().descendants().find_map(N::cast).unwrap(); |
diff --git a/crates/ra_syntax/src/ast/tokens.rs b/crates/ra_syntax/src/ast/tokens.rs index a60768056..3865729b8 100644 --- a/crates/ra_syntax/src/ast/tokens.rs +++ b/crates/ra_syntax/src/ast/tokens.rs | |||
@@ -1,8 +1,10 @@ | |||
1 | //! There are many AstNodes, but only a few tokens, so we hand-write them here. | 1 | //! There are many AstNodes, but only a few tokens, so we hand-write them here. |
2 | 2 | ||
3 | use std::convert::{TryFrom, TryInto}; | ||
4 | |||
3 | use crate::{ | 5 | use crate::{ |
4 | ast::{AstToken, Comment, RawString, String, Whitespace}, | 6 | ast::{AstToken, Comment, RawString, String, Whitespace}, |
5 | TextRange, TextUnit, | 7 | TextRange, TextSize, |
6 | }; | 8 | }; |
7 | 9 | ||
8 | impl Comment { | 10 | impl Comment { |
@@ -97,14 +99,14 @@ impl QuoteOffsets { | |||
97 | return None; | 99 | return None; |
98 | } | 100 | } |
99 | 101 | ||
100 | let start = TextUnit::from(0); | 102 | let start = TextSize::from(0); |
101 | let left_quote = TextUnit::from_usize(left_quote) + TextUnit::of_char('"'); | 103 | let left_quote = TextSize::try_from(left_quote).unwrap() + TextSize::of('"'); |
102 | let right_quote = TextUnit::from_usize(right_quote); | 104 | let right_quote = TextSize::try_from(right_quote).unwrap(); |
103 | let end = TextUnit::of_str(literal); | 105 | let end = TextSize::of(literal); |
104 | 106 | ||
105 | let res = QuoteOffsets { | 107 | let res = QuoteOffsets { |
106 | quotes: [TextRange::from_to(start, left_quote), TextRange::from_to(right_quote, end)], | 108 | quotes: [TextRange::new(start, left_quote), TextRange::new(right_quote, end)], |
107 | contents: TextRange::from_to(left_quote, right_quote), | 109 | contents: TextRange::new(left_quote, right_quote), |
108 | }; | 110 | }; |
109 | Some(res) | 111 | Some(res) |
110 | } | 112 | } |
@@ -171,7 +173,358 @@ impl HasStringValue for RawString { | |||
171 | impl RawString { | 173 | impl RawString { |
172 | pub fn map_range_up(&self, range: TextRange) -> Option<TextRange> { | 174 | pub fn map_range_up(&self, range: TextRange) -> Option<TextRange> { |
173 | let contents_range = self.text_range_between_quotes()?; | 175 | let contents_range = self.text_range_between_quotes()?; |
174 | assert!(range.is_subrange(&TextRange::offset_len(0.into(), contents_range.len()))); | 176 | assert!(TextRange::up_to(contents_range.len()).contains_range(range)); |
175 | Some(range + contents_range.start()) | 177 | Some(range + contents_range.start()) |
176 | } | 178 | } |
177 | } | 179 | } |
180 | |||
181 | #[derive(Debug)] | ||
182 | pub enum FormatSpecifier { | ||
183 | Open, | ||
184 | Close, | ||
185 | Integer, | ||
186 | Identifier, | ||
187 | Colon, | ||
188 | Fill, | ||
189 | Align, | ||
190 | Sign, | ||
191 | NumberSign, | ||
192 | Zero, | ||
193 | DollarSign, | ||
194 | Dot, | ||
195 | Asterisk, | ||
196 | QuestionMark, | ||
197 | } | ||
198 | |||
199 | pub trait HasFormatSpecifier: AstToken { | ||
200 | fn char_ranges( | ||
201 | &self, | ||
202 | ) -> Option<Vec<(TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>>; | ||
203 | |||
204 | fn lex_format_specifier<F>(&self, mut callback: F) | ||
205 | where | ||
206 | F: FnMut(TextRange, FormatSpecifier), | ||
207 | { | ||
208 | let char_ranges = if let Some(char_ranges) = self.char_ranges() { | ||
209 | char_ranges | ||
210 | } else { | ||
211 | return; | ||
212 | }; | ||
213 | let mut chars = char_ranges.iter().peekable(); | ||
214 | |||
215 | while let Some((range, first_char)) = chars.next() { | ||
216 | match first_char { | ||
217 | Ok('{') => { | ||
218 | // Format specifier, see syntax at https://doc.rust-lang.org/std/fmt/index.html#syntax | ||
219 | if let Some((_, Ok('{'))) = chars.peek() { | ||
220 | // Escaped format specifier, `{{` | ||
221 | chars.next(); | ||
222 | continue; | ||
223 | } | ||
224 | |||
225 | callback(*range, FormatSpecifier::Open); | ||
226 | |||
227 | // check for integer/identifier | ||
228 | match chars | ||
229 | .peek() | ||
230 | .and_then(|next| next.1.as_ref().ok()) | ||
231 | .copied() | ||
232 | .unwrap_or_default() | ||
233 | { | ||
234 | '0'..='9' => { | ||
235 | // integer | ||
236 | read_integer(&mut chars, &mut callback); | ||
237 | } | ||
238 | c if c == '_' || c.is_alphabetic() => { | ||
239 | // identifier | ||
240 | read_identifier(&mut chars, &mut callback); | ||
241 | } | ||
242 | _ => {} | ||
243 | } | ||
244 | |||
245 | if let Some((_, Ok(':'))) = chars.peek() { | ||
246 | skip_char_and_emit(&mut chars, FormatSpecifier::Colon, &mut callback); | ||
247 | |||
248 | // check for fill/align | ||
249 | let mut cloned = chars.clone().take(2); | ||
250 | let first = cloned | ||
251 | .next() | ||
252 | .and_then(|next| next.1.as_ref().ok()) | ||
253 | .copied() | ||
254 | .unwrap_or_default(); | ||
255 | let second = cloned | ||
256 | .next() | ||
257 | .and_then(|next| next.1.as_ref().ok()) | ||
258 | .copied() | ||
259 | .unwrap_or_default(); | ||
260 | match second { | ||
261 | '<' | '^' | '>' => { | ||
262 | // alignment specifier, first char specifies fillment | ||
263 | skip_char_and_emit( | ||
264 | &mut chars, | ||
265 | FormatSpecifier::Fill, | ||
266 | &mut callback, | ||
267 | ); | ||
268 | skip_char_and_emit( | ||
269 | &mut chars, | ||
270 | FormatSpecifier::Align, | ||
271 | &mut callback, | ||
272 | ); | ||
273 | } | ||
274 | _ => match first { | ||
275 | '<' | '^' | '>' => { | ||
276 | skip_char_and_emit( | ||
277 | &mut chars, | ||
278 | FormatSpecifier::Align, | ||
279 | &mut callback, | ||
280 | ); | ||
281 | } | ||
282 | _ => {} | ||
283 | }, | ||
284 | } | ||
285 | |||
286 | // check for sign | ||
287 | match chars | ||
288 | .peek() | ||
289 | .and_then(|next| next.1.as_ref().ok()) | ||
290 | .copied() | ||
291 | .unwrap_or_default() | ||
292 | { | ||
293 | '+' | '-' => { | ||
294 | skip_char_and_emit( | ||
295 | &mut chars, | ||
296 | FormatSpecifier::Sign, | ||
297 | &mut callback, | ||
298 | ); | ||
299 | } | ||
300 | _ => {} | ||
301 | } | ||
302 | |||
303 | // check for `#` | ||
304 | if let Some((_, Ok('#'))) = chars.peek() { | ||
305 | skip_char_and_emit( | ||
306 | &mut chars, | ||
307 | FormatSpecifier::NumberSign, | ||
308 | &mut callback, | ||
309 | ); | ||
310 | } | ||
311 | |||
312 | // check for `0` | ||
313 | let mut cloned = chars.clone().take(2); | ||
314 | let first = cloned.next().and_then(|next| next.1.as_ref().ok()).copied(); | ||
315 | let second = cloned.next().and_then(|next| next.1.as_ref().ok()).copied(); | ||
316 | |||
317 | if first == Some('0') && second != Some('$') { | ||
318 | skip_char_and_emit(&mut chars, FormatSpecifier::Zero, &mut callback); | ||
319 | } | ||
320 | |||
321 | // width | ||
322 | match chars | ||
323 | .peek() | ||
324 | .and_then(|next| next.1.as_ref().ok()) | ||
325 | .copied() | ||
326 | .unwrap_or_default() | ||
327 | { | ||
328 | '0'..='9' => { | ||
329 | read_integer(&mut chars, &mut callback); | ||
330 | if let Some((_, Ok('$'))) = chars.peek() { | ||
331 | skip_char_and_emit( | ||
332 | &mut chars, | ||
333 | FormatSpecifier::DollarSign, | ||
334 | &mut callback, | ||
335 | ); | ||
336 | } | ||
337 | } | ||
338 | c if c == '_' || c.is_alphabetic() => { | ||
339 | read_identifier(&mut chars, &mut callback); | ||
340 | if chars.peek().and_then(|next| next.1.as_ref().ok()).copied() | ||
341 | != Some('$') | ||
342 | { | ||
343 | continue; | ||
344 | } | ||
345 | skip_char_and_emit( | ||
346 | &mut chars, | ||
347 | FormatSpecifier::DollarSign, | ||
348 | &mut callback, | ||
349 | ); | ||
350 | } | ||
351 | _ => {} | ||
352 | } | ||
353 | |||
354 | // precision | ||
355 | if let Some((_, Ok('.'))) = chars.peek() { | ||
356 | skip_char_and_emit(&mut chars, FormatSpecifier::Dot, &mut callback); | ||
357 | |||
358 | match chars | ||
359 | .peek() | ||
360 | .and_then(|next| next.1.as_ref().ok()) | ||
361 | .copied() | ||
362 | .unwrap_or_default() | ||
363 | { | ||
364 | '*' => { | ||
365 | skip_char_and_emit( | ||
366 | &mut chars, | ||
367 | FormatSpecifier::Asterisk, | ||
368 | &mut callback, | ||
369 | ); | ||
370 | } | ||
371 | '0'..='9' => { | ||
372 | read_integer(&mut chars, &mut callback); | ||
373 | if let Some((_, Ok('$'))) = chars.peek() { | ||
374 | skip_char_and_emit( | ||
375 | &mut chars, | ||
376 | FormatSpecifier::DollarSign, | ||
377 | &mut callback, | ||
378 | ); | ||
379 | } | ||
380 | } | ||
381 | c if c == '_' || c.is_alphabetic() => { | ||
382 | read_identifier(&mut chars, &mut callback); | ||
383 | if chars.peek().and_then(|next| next.1.as_ref().ok()).copied() | ||
384 | != Some('$') | ||
385 | { | ||
386 | continue; | ||
387 | } | ||
388 | skip_char_and_emit( | ||
389 | &mut chars, | ||
390 | FormatSpecifier::DollarSign, | ||
391 | &mut callback, | ||
392 | ); | ||
393 | } | ||
394 | _ => { | ||
395 | continue; | ||
396 | } | ||
397 | } | ||
398 | } | ||
399 | |||
400 | // type | ||
401 | match chars | ||
402 | .peek() | ||
403 | .and_then(|next| next.1.as_ref().ok()) | ||
404 | .copied() | ||
405 | .unwrap_or_default() | ||
406 | { | ||
407 | '?' => { | ||
408 | skip_char_and_emit( | ||
409 | &mut chars, | ||
410 | FormatSpecifier::QuestionMark, | ||
411 | &mut callback, | ||
412 | ); | ||
413 | } | ||
414 | c if c == '_' || c.is_alphabetic() => { | ||
415 | read_identifier(&mut chars, &mut callback); | ||
416 | } | ||
417 | _ => {} | ||
418 | } | ||
419 | } | ||
420 | |||
421 | let mut cloned = chars.clone().take(2); | ||
422 | let first = cloned.next().and_then(|next| next.1.as_ref().ok()).copied(); | ||
423 | let second = cloned.next().and_then(|next| next.1.as_ref().ok()).copied(); | ||
424 | if first != Some('}') { | ||
425 | continue; | ||
426 | } | ||
427 | if second == Some('}') { | ||
428 | // Escaped format end specifier, `}}` | ||
429 | continue; | ||
430 | } | ||
431 | skip_char_and_emit(&mut chars, FormatSpecifier::Close, &mut callback); | ||
432 | } | ||
433 | _ => { | ||
434 | while let Some((_, Ok(next_char))) = chars.peek() { | ||
435 | match next_char { | ||
436 | '{' => break, | ||
437 | _ => {} | ||
438 | } | ||
439 | chars.next(); | ||
440 | } | ||
441 | } | ||
442 | }; | ||
443 | } | ||
444 | |||
445 | fn skip_char_and_emit<'a, I, F>( | ||
446 | chars: &mut std::iter::Peekable<I>, | ||
447 | emit: FormatSpecifier, | ||
448 | callback: &mut F, | ||
449 | ) where | ||
450 | I: Iterator<Item = &'a (TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>, | ||
451 | F: FnMut(TextRange, FormatSpecifier), | ||
452 | { | ||
453 | let (range, _) = chars.next().unwrap(); | ||
454 | callback(*range, emit); | ||
455 | } | ||
456 | |||
457 | fn read_integer<'a, I, F>(chars: &mut std::iter::Peekable<I>, callback: &mut F) | ||
458 | where | ||
459 | I: Iterator<Item = &'a (TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>, | ||
460 | F: FnMut(TextRange, FormatSpecifier), | ||
461 | { | ||
462 | let (mut range, c) = chars.next().unwrap(); | ||
463 | assert!(c.as_ref().unwrap().is_ascii_digit()); | ||
464 | while let Some((r, Ok(next_char))) = chars.peek() { | ||
465 | if next_char.is_ascii_digit() { | ||
466 | chars.next(); | ||
467 | range = range.cover(*r); | ||
468 | } else { | ||
469 | break; | ||
470 | } | ||
471 | } | ||
472 | callback(range, FormatSpecifier::Integer); | ||
473 | } | ||
474 | |||
475 | fn read_identifier<'a, I, F>(chars: &mut std::iter::Peekable<I>, callback: &mut F) | ||
476 | where | ||
477 | I: Iterator<Item = &'a (TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>, | ||
478 | F: FnMut(TextRange, FormatSpecifier), | ||
479 | { | ||
480 | let (mut range, c) = chars.next().unwrap(); | ||
481 | assert!(c.as_ref().unwrap().is_alphabetic() || *c.as_ref().unwrap() == '_'); | ||
482 | while let Some((r, Ok(next_char))) = chars.peek() { | ||
483 | if *next_char == '_' || next_char.is_ascii_digit() || next_char.is_alphabetic() { | ||
484 | chars.next(); | ||
485 | range = range.cover(*r); | ||
486 | } else { | ||
487 | break; | ||
488 | } | ||
489 | } | ||
490 | callback(range, FormatSpecifier::Identifier); | ||
491 | } | ||
492 | } | ||
493 | } | ||
494 | |||
495 | impl HasFormatSpecifier for String { | ||
496 | fn char_ranges( | ||
497 | &self, | ||
498 | ) -> Option<Vec<(TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>> { | ||
499 | let text = self.text().as_str(); | ||
500 | let text = &text[self.text_range_between_quotes()? - self.syntax().text_range().start()]; | ||
501 | let offset = self.text_range_between_quotes()?.start() - self.syntax().text_range().start(); | ||
502 | |||
503 | let mut res = Vec::with_capacity(text.len()); | ||
504 | rustc_lexer::unescape::unescape_str(text, &mut |range, unescaped_char| { | ||
505 | res.push(( | ||
506 | TextRange::new(range.start.try_into().unwrap(), range.end.try_into().unwrap()) | ||
507 | + offset, | ||
508 | unescaped_char, | ||
509 | )) | ||
510 | }); | ||
511 | |||
512 | Some(res) | ||
513 | } | ||
514 | } | ||
515 | |||
516 | impl HasFormatSpecifier for RawString { | ||
517 | fn char_ranges( | ||
518 | &self, | ||
519 | ) -> Option<Vec<(TextRange, Result<char, rustc_lexer::unescape::EscapeError>)>> { | ||
520 | let text = self.text().as_str(); | ||
521 | let text = &text[self.text_range_between_quotes()? - self.syntax().text_range().start()]; | ||
522 | let offset = self.text_range_between_quotes()?.start() - self.syntax().text_range().start(); | ||
523 | |||
524 | let mut res = Vec::with_capacity(text.len()); | ||
525 | for (idx, c) in text.char_indices() { | ||
526 | res.push((TextRange::at(idx.try_into().unwrap(), TextSize::of(c)) + offset, Ok(c))); | ||
527 | } | ||
528 | Some(res) | ||
529 | } | ||
530 | } | ||
diff --git a/crates/ra_syntax/src/fuzz.rs b/crates/ra_syntax/src/fuzz.rs index 7012df7f0..10fbe3176 100644 --- a/crates/ra_syntax/src/fuzz.rs +++ b/crates/ra_syntax/src/fuzz.rs | |||
@@ -1,8 +1,13 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use crate::{validation, AstNode, SourceFile, TextRange, TextUnit}; | 3 | use std::{ |
4 | convert::TryInto, | ||
5 | str::{self, FromStr}, | ||
6 | }; | ||
7 | |||
4 | use ra_text_edit::AtomTextEdit; | 8 | use ra_text_edit::AtomTextEdit; |
5 | use std::str::{self, FromStr}; | 9 | |
10 | use crate::{validation, AstNode, SourceFile, TextRange}; | ||
6 | 11 | ||
7 | fn check_file_invariants(file: &SourceFile) { | 12 | fn check_file_invariants(file: &SourceFile) { |
8 | let root = file.syntax(); | 13 | let root = file.syntax(); |
@@ -34,10 +39,8 @@ impl CheckReparse { | |||
34 | let text = lines.collect::<Vec<_>>().join("\n"); | 39 | let text = lines.collect::<Vec<_>>().join("\n"); |
35 | let text = format!("{}{}{}", PREFIX, text, SUFFIX); | 40 | let text = format!("{}{}{}", PREFIX, text, SUFFIX); |
36 | text.get(delete_start..delete_start.checked_add(delete_len)?)?; // make sure delete is a valid range | 41 | text.get(delete_start..delete_start.checked_add(delete_len)?)?; // make sure delete is a valid range |
37 | let delete = TextRange::offset_len( | 42 | let delete = |
38 | TextUnit::from_usize(delete_start), | 43 | TextRange::at(delete_start.try_into().unwrap(), delete_len.try_into().unwrap()); |
39 | TextUnit::from_usize(delete_len), | ||
40 | ); | ||
41 | let edited_text = | 44 | let edited_text = |
42 | format!("{}{}{}", &text[..delete_start], &insert, &text[delete_start + delete_len..]); | 45 | format!("{}{}{}", &text[..delete_start], &insert, &text[delete_start + delete_len..]); |
43 | let edit = AtomTextEdit { delete, insert }; | 46 | let edit = AtomTextEdit { delete, insert }; |
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index a796e78b1..ceeb2bde9 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs | |||
@@ -55,7 +55,7 @@ pub use crate::{ | |||
55 | }, | 55 | }, |
56 | }; | 56 | }; |
57 | pub use ra_parser::{SyntaxKind, T}; | 57 | pub use ra_parser::{SyntaxKind, T}; |
58 | pub use rowan::{SmolStr, SyntaxText, TextRange, TextUnit, TokenAtOffset, WalkEvent}; | 58 | pub use rowan::{SmolStr, SyntaxText, TextRange, TextSize, TokenAtOffset, WalkEvent}; |
59 | 59 | ||
60 | /// `Parse` is the result of the parsing: a syntax tree and a collection of | 60 | /// `Parse` is the result of the parsing: a syntax tree and a collection of |
61 | /// errors. | 61 | /// errors. |
@@ -266,7 +266,7 @@ fn api_walkthrough() { | |||
266 | assert_eq!(expr_syntax.kind(), SyntaxKind::BIN_EXPR); | 266 | assert_eq!(expr_syntax.kind(), SyntaxKind::BIN_EXPR); |
267 | 267 | ||
268 | // And text range: | 268 | // And text range: |
269 | assert_eq!(expr_syntax.text_range(), TextRange::from_to(32.into(), 37.into())); | 269 | assert_eq!(expr_syntax.text_range(), TextRange::new(32.into(), 37.into())); |
270 | 270 | ||
271 | // You can get node's text as a `SyntaxText` object, which will traverse the | 271 | // You can get node's text as a `SyntaxText` object, which will traverse the |
272 | // tree collecting token's text: | 272 | // tree collecting token's text: |
diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index 67c1f1b48..f450ef4a2 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs | |||
@@ -1,10 +1,12 @@ | |||
1 | //! Lexer analyzes raw input string and produces lexemes (tokens). | 1 | //! Lexer analyzes raw input string and produces lexemes (tokens). |
2 | //! It is just a bridge to `rustc_lexer`. | 2 | //! It is just a bridge to `rustc_lexer`. |
3 | 3 | ||
4 | use std::convert::TryInto; | ||
5 | |||
4 | use crate::{ | 6 | use crate::{ |
5 | SyntaxError, | 7 | SyntaxError, |
6 | SyntaxKind::{self, *}, | 8 | SyntaxKind::{self, *}, |
7 | TextRange, TextUnit, T, | 9 | TextRange, TextSize, T, |
8 | }; | 10 | }; |
9 | 11 | ||
10 | /// A token of Rust source. | 12 | /// A token of Rust source. |
@@ -13,7 +15,7 @@ pub struct Token { | |||
13 | /// The kind of token. | 15 | /// The kind of token. |
14 | pub kind: SyntaxKind, | 16 | pub kind: SyntaxKind, |
15 | /// The length of the token. | 17 | /// The length of the token. |
16 | pub len: TextUnit, | 18 | pub len: TextSize, |
17 | } | 19 | } |
18 | 20 | ||
19 | /// Break a string up into its component tokens. | 21 | /// Break a string up into its component tokens. |
@@ -28,18 +30,19 @@ pub fn tokenize(text: &str) -> (Vec<Token>, Vec<SyntaxError>) { | |||
28 | let mut tokens = Vec::new(); | 30 | let mut tokens = Vec::new(); |
29 | let mut errors = Vec::new(); | 31 | let mut errors = Vec::new(); |
30 | 32 | ||
31 | let mut offset: usize = rustc_lexer::strip_shebang(text) | 33 | let mut offset = match rustc_lexer::strip_shebang(text) { |
32 | .map(|shebang_len| { | 34 | Some(shebang_len) => { |
33 | tokens.push(Token { kind: SHEBANG, len: TextUnit::from_usize(shebang_len) }); | 35 | tokens.push(Token { kind: SHEBANG, len: shebang_len.try_into().unwrap() }); |
34 | shebang_len | 36 | shebang_len |
35 | }) | 37 | } |
36 | .unwrap_or(0); | 38 | None => 0, |
39 | }; | ||
37 | 40 | ||
38 | let text_without_shebang = &text[offset..]; | 41 | let text_without_shebang = &text[offset..]; |
39 | 42 | ||
40 | for rustc_token in rustc_lexer::tokenize(text_without_shebang) { | 43 | for rustc_token in rustc_lexer::tokenize(text_without_shebang) { |
41 | let token_len = TextUnit::from_usize(rustc_token.len); | 44 | let token_len: TextSize = rustc_token.len.try_into().unwrap(); |
42 | let token_range = TextRange::offset_len(TextUnit::from_usize(offset), token_len); | 45 | let token_range = TextRange::at(offset.try_into().unwrap(), token_len); |
43 | 46 | ||
44 | let (syntax_kind, err_message) = | 47 | let (syntax_kind, err_message) = |
45 | rustc_token_kind_to_syntax_kind(&rustc_token.kind, &text[token_range]); | 48 | rustc_token_kind_to_syntax_kind(&rustc_token.kind, &text[token_range]); |
@@ -65,7 +68,7 @@ pub fn tokenize(text: &str) -> (Vec<Token>, Vec<SyntaxError>) { | |||
65 | /// Beware that unescape errors are not checked at tokenization time. | 68 | /// Beware that unescape errors are not checked at tokenization time. |
66 | pub fn lex_single_syntax_kind(text: &str) -> Option<(SyntaxKind, Option<SyntaxError>)> { | 69 | pub fn lex_single_syntax_kind(text: &str) -> Option<(SyntaxKind, Option<SyntaxError>)> { |
67 | lex_first_token(text) | 70 | lex_first_token(text) |
68 | .filter(|(token, _)| token.len == TextUnit::of_str(text)) | 71 | .filter(|(token, _)| token.len == TextSize::of(text)) |
69 | .map(|(token, error)| (token.kind, error)) | 72 | .map(|(token, error)| (token.kind, error)) |
70 | } | 73 | } |
71 | 74 | ||
@@ -75,7 +78,7 @@ pub fn lex_single_syntax_kind(text: &str) -> Option<(SyntaxKind, Option<SyntaxEr | |||
75 | /// Beware that unescape errors are not checked at tokenization time. | 78 | /// Beware that unescape errors are not checked at tokenization time. |
76 | pub fn lex_single_valid_syntax_kind(text: &str) -> Option<SyntaxKind> { | 79 | pub fn lex_single_valid_syntax_kind(text: &str) -> Option<SyntaxKind> { |
77 | lex_first_token(text) | 80 | lex_first_token(text) |
78 | .filter(|(token, error)| !error.is_some() && token.len == TextUnit::of_str(text)) | 81 | .filter(|(token, error)| !error.is_some() && token.len == TextSize::of(text)) |
79 | .map(|(token, _error)| token.kind) | 82 | .map(|(token, _error)| token.kind) |
80 | } | 83 | } |
81 | 84 | ||
@@ -96,10 +99,9 @@ fn lex_first_token(text: &str) -> Option<(Token, Option<SyntaxError>)> { | |||
96 | let rustc_token = rustc_lexer::first_token(text); | 99 | let rustc_token = rustc_lexer::first_token(text); |
97 | let (syntax_kind, err_message) = rustc_token_kind_to_syntax_kind(&rustc_token.kind, text); | 100 | let (syntax_kind, err_message) = rustc_token_kind_to_syntax_kind(&rustc_token.kind, text); |
98 | 101 | ||
99 | let token = Token { kind: syntax_kind, len: TextUnit::from_usize(rustc_token.len) }; | 102 | let token = Token { kind: syntax_kind, len: rustc_token.len.try_into().unwrap() }; |
100 | let optional_error = err_message.map(|err_message| { | 103 | let optional_error = err_message |
101 | SyntaxError::new(err_message, TextRange::from_to(0.into(), TextUnit::of_str(text))) | 104 | .map(|err_message| SyntaxError::new(err_message, TextRange::up_to(TextSize::of(text)))); |
102 | }); | ||
103 | 105 | ||
104 | Some((token, optional_error)) | 106 | Some((token, optional_error)) |
105 | } | 107 | } |
diff --git a/crates/ra_syntax/src/parsing/reparsing.rs b/crates/ra_syntax/src/parsing/reparsing.rs index 2d65b91f1..ffff0a7b2 100644 --- a/crates/ra_syntax/src/parsing/reparsing.rs +++ b/crates/ra_syntax/src/parsing/reparsing.rs | |||
@@ -19,7 +19,7 @@ use crate::{ | |||
19 | syntax_node::{GreenNode, GreenToken, NodeOrToken, SyntaxElement, SyntaxNode}, | 19 | syntax_node::{GreenNode, GreenToken, NodeOrToken, SyntaxElement, SyntaxNode}, |
20 | SyntaxError, | 20 | SyntaxError, |
21 | SyntaxKind::*, | 21 | SyntaxKind::*, |
22 | TextRange, TextUnit, T, | 22 | TextRange, TextSize, T, |
23 | }; | 23 | }; |
24 | 24 | ||
25 | pub(crate) fn incremental_reparse( | 25 | pub(crate) fn incremental_reparse( |
@@ -176,7 +176,7 @@ fn merge_errors( | |||
176 | if old_err_range.end() <= range_before_reparse.start() { | 176 | if old_err_range.end() <= range_before_reparse.start() { |
177 | res.push(old_err); | 177 | res.push(old_err); |
178 | } else if old_err_range.start() >= range_before_reparse.end() { | 178 | } else if old_err_range.start() >= range_before_reparse.end() { |
179 | let inserted_len = TextUnit::of_str(&edit.insert); | 179 | let inserted_len = TextSize::of(&edit.insert); |
180 | res.push(old_err.with_range((old_err_range + inserted_len) - edit.delete.len())); | 180 | res.push(old_err.with_range((old_err_range + inserted_len) - edit.delete.len())); |
181 | // Note: extra parens are intentional to prevent uint underflow, HWAB (here was a bug) | 181 | // Note: extra parens are intentional to prevent uint underflow, HWAB (here was a bug) |
182 | } | 182 | } |
diff --git a/crates/ra_syntax/src/parsing/text_token_source.rs b/crates/ra_syntax/src/parsing/text_token_source.rs index e2433913c..7ddc2c2c3 100644 --- a/crates/ra_syntax/src/parsing/text_token_source.rs +++ b/crates/ra_syntax/src/parsing/text_token_source.rs | |||
@@ -3,7 +3,7 @@ | |||
3 | use ra_parser::Token as PToken; | 3 | use ra_parser::Token as PToken; |
4 | use ra_parser::TokenSource; | 4 | use ra_parser::TokenSource; |
5 | 5 | ||
6 | use crate::{parsing::lexer::Token, SyntaxKind::EOF, TextRange, TextUnit}; | 6 | use crate::{parsing::lexer::Token, SyntaxKind::EOF, TextRange, TextSize}; |
7 | 7 | ||
8 | pub(crate) struct TextTokenSource<'t> { | 8 | pub(crate) struct TextTokenSource<'t> { |
9 | text: &'t str, | 9 | text: &'t str, |
@@ -15,7 +15,7 @@ pub(crate) struct TextTokenSource<'t> { | |||
15 | /// 0 7 10 | 15 | /// 0 7 10 |
16 | /// ``` | 16 | /// ``` |
17 | /// (token, start_offset): `[(struct, 0), (Foo, 7), (;, 10)]` | 17 | /// (token, start_offset): `[(struct, 0), (Foo, 7), (;, 10)]` |
18 | start_offsets: Vec<TextUnit>, | 18 | start_offsets: Vec<TextSize>, |
19 | /// non-whitespace/comment tokens | 19 | /// non-whitespace/comment tokens |
20 | /// ```non-rust | 20 | /// ```non-rust |
21 | /// struct Foo {} | 21 | /// struct Foo {} |
@@ -51,12 +51,12 @@ impl<'t> TokenSource for TextTokenSource<'t> { | |||
51 | if pos >= self.tokens.len() { | 51 | if pos >= self.tokens.len() { |
52 | return false; | 52 | return false; |
53 | } | 53 | } |
54 | let range = TextRange::offset_len(self.start_offsets[pos], self.tokens[pos].len); | 54 | let range = TextRange::at(self.start_offsets[pos], self.tokens[pos].len); |
55 | self.text[range] == *kw | 55 | self.text[range] == *kw |
56 | } | 56 | } |
57 | } | 57 | } |
58 | 58 | ||
59 | fn mk_token(pos: usize, start_offsets: &[TextUnit], tokens: &[Token]) -> PToken { | 59 | fn mk_token(pos: usize, start_offsets: &[TextSize], tokens: &[Token]) -> PToken { |
60 | let kind = tokens.get(pos).map(|t| t.kind).unwrap_or(EOF); | 60 | let kind = tokens.get(pos).map(|t| t.kind).unwrap_or(EOF); |
61 | let is_jointed_to_next = if pos + 1 < start_offsets.len() { | 61 | let is_jointed_to_next = if pos + 1 < start_offsets.len() { |
62 | start_offsets[pos] + tokens[pos].len == start_offsets[pos + 1] | 62 | start_offsets[pos] + tokens[pos].len == start_offsets[pos + 1] |
diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs index 87bb21cd9..22aed1db1 100644 --- a/crates/ra_syntax/src/parsing/text_tree_sink.rs +++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs | |||
@@ -9,7 +9,7 @@ use crate::{ | |||
9 | syntax_node::GreenNode, | 9 | syntax_node::GreenNode, |
10 | SmolStr, SyntaxError, | 10 | SmolStr, SyntaxError, |
11 | SyntaxKind::{self, *}, | 11 | SyntaxKind::{self, *}, |
12 | SyntaxTreeBuilder, TextRange, TextUnit, | 12 | SyntaxTreeBuilder, TextRange, TextSize, |
13 | }; | 13 | }; |
14 | 14 | ||
15 | /// Bridges the parser with our specific syntax tree representation. | 15 | /// Bridges the parser with our specific syntax tree representation. |
@@ -18,7 +18,7 @@ use crate::{ | |||
18 | pub(crate) struct TextTreeSink<'a> { | 18 | pub(crate) struct TextTreeSink<'a> { |
19 | text: &'a str, | 19 | text: &'a str, |
20 | tokens: &'a [Token], | 20 | tokens: &'a [Token], |
21 | text_pos: TextUnit, | 21 | text_pos: TextSize, |
22 | token_pos: usize, | 22 | token_pos: usize, |
23 | state: State, | 23 | state: State, |
24 | inner: SyntaxTreeBuilder, | 24 | inner: SyntaxTreeBuilder, |
@@ -42,7 +42,7 @@ impl<'a> TreeSink for TextTreeSink<'a> { | |||
42 | let len = self.tokens[self.token_pos..self.token_pos + n_tokens] | 42 | let len = self.tokens[self.token_pos..self.token_pos + n_tokens] |
43 | .iter() | 43 | .iter() |
44 | .map(|it| it.len) | 44 | .map(|it| it.len) |
45 | .sum::<TextUnit>(); | 45 | .sum::<TextSize>(); |
46 | self.do_token(kind, len, n_tokens); | 46 | self.do_token(kind, len, n_tokens); |
47 | } | 47 | } |
48 | 48 | ||
@@ -62,12 +62,12 @@ impl<'a> TreeSink for TextTreeSink<'a> { | |||
62 | self.tokens[self.token_pos..].iter().take_while(|it| it.kind.is_trivia()).count(); | 62 | self.tokens[self.token_pos..].iter().take_while(|it| it.kind.is_trivia()).count(); |
63 | let leading_trivias = &self.tokens[self.token_pos..self.token_pos + n_trivias]; | 63 | let leading_trivias = &self.tokens[self.token_pos..self.token_pos + n_trivias]; |
64 | let mut trivia_end = | 64 | let mut trivia_end = |
65 | self.text_pos + leading_trivias.iter().map(|it| it.len).sum::<TextUnit>(); | 65 | self.text_pos + leading_trivias.iter().map(|it| it.len).sum::<TextSize>(); |
66 | 66 | ||
67 | let n_attached_trivias = { | 67 | let n_attached_trivias = { |
68 | let leading_trivias = leading_trivias.iter().rev().map(|it| { | 68 | let leading_trivias = leading_trivias.iter().rev().map(|it| { |
69 | let next_end = trivia_end - it.len; | 69 | let next_end = trivia_end - it.len; |
70 | let range = TextRange::from_to(next_end, trivia_end); | 70 | let range = TextRange::new(next_end, trivia_end); |
71 | trivia_end = next_end; | 71 | trivia_end = next_end; |
72 | (it.kind, &self.text[range]) | 72 | (it.kind, &self.text[range]) |
73 | }); | 73 | }); |
@@ -132,8 +132,8 @@ impl<'a> TextTreeSink<'a> { | |||
132 | } | 132 | } |
133 | } | 133 | } |
134 | 134 | ||
135 | fn do_token(&mut self, kind: SyntaxKind, len: TextUnit, n_tokens: usize) { | 135 | fn do_token(&mut self, kind: SyntaxKind, len: TextSize, n_tokens: usize) { |
136 | let range = TextRange::offset_len(self.text_pos, len); | 136 | let range = TextRange::at(self.text_pos, len); |
137 | let text: SmolStr = self.text[range].into(); | 137 | let text: SmolStr = self.text[range].into(); |
138 | self.text_pos += len; | 138 | self.text_pos += len; |
139 | self.token_pos += n_tokens; | 139 | self.token_pos += n_tokens; |
diff --git a/crates/ra_syntax/src/ptr.rs b/crates/ra_syntax/src/ptr.rs index ecbfffcf4..62f03e93d 100644 --- a/crates/ra_syntax/src/ptr.rs +++ b/crates/ra_syntax/src/ptr.rs | |||
@@ -24,7 +24,7 @@ impl SyntaxNodePtr { | |||
24 | pub fn to_node(&self, root: &SyntaxNode) -> SyntaxNode { | 24 | pub fn to_node(&self, root: &SyntaxNode) -> SyntaxNode { |
25 | assert!(root.parent().is_none()); | 25 | assert!(root.parent().is_none()); |
26 | successors(Some(root.clone()), |node| { | 26 | successors(Some(root.clone()), |node| { |
27 | node.children().find(|it| self.range.is_subrange(&it.text_range())) | 27 | node.children().find(|it| it.text_range().contains_range(self.range)) |
28 | }) | 28 | }) |
29 | .find(|it| it.text_range() == self.range && it.kind() == self.kind) | 29 | .find(|it| it.text_range() == self.range && it.kind() == self.kind) |
30 | .unwrap_or_else(|| panic!("can't resolve local ptr to SyntaxNode: {:?}", self)) | 30 | .unwrap_or_else(|| panic!("can't resolve local ptr to SyntaxNode: {:?}", self)) |
diff --git a/crates/ra_syntax/src/syntax_error.rs b/crates/ra_syntax/src/syntax_error.rs index 54acf7847..7c4511fec 100644 --- a/crates/ra_syntax/src/syntax_error.rs +++ b/crates/ra_syntax/src/syntax_error.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | use std::fmt; | 3 | use std::fmt; |
4 | 4 | ||
5 | use crate::{TextRange, TextUnit}; | 5 | use crate::{TextRange, TextSize}; |
6 | 6 | ||
7 | /// Represents the result of unsuccessful tokenization, parsing | 7 | /// Represents the result of unsuccessful tokenization, parsing |
8 | /// or tree validation. | 8 | /// or tree validation. |
@@ -23,8 +23,8 @@ impl SyntaxError { | |||
23 | pub fn new(message: impl Into<String>, range: TextRange) -> Self { | 23 | pub fn new(message: impl Into<String>, range: TextRange) -> Self { |
24 | Self(message.into(), range) | 24 | Self(message.into(), range) |
25 | } | 25 | } |
26 | pub fn new_at_offset(message: impl Into<String>, offset: TextUnit) -> Self { | 26 | pub fn new_at_offset(message: impl Into<String>, offset: TextSize) -> Self { |
27 | Self(message.into(), TextRange::offset_len(offset, 0.into())) | 27 | Self(message.into(), TextRange::empty(offset)) |
28 | } | 28 | } |
29 | 29 | ||
30 | pub fn range(&self) -> TextRange { | 30 | pub fn range(&self) -> TextRange { |
diff --git a/crates/ra_syntax/src/syntax_node.rs b/crates/ra_syntax/src/syntax_node.rs index 4e3a1460d..f9d379abf 100644 --- a/crates/ra_syntax/src/syntax_node.rs +++ b/crates/ra_syntax/src/syntax_node.rs | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | use rowan::{GreenNodeBuilder, Language}; | 9 | use rowan::{GreenNodeBuilder, Language}; |
10 | 10 | ||
11 | use crate::{Parse, SmolStr, SyntaxError, SyntaxKind, TextUnit}; | 11 | use crate::{Parse, SmolStr, SyntaxError, SyntaxKind, TextSize}; |
12 | 12 | ||
13 | pub(crate) use rowan::{GreenNode, GreenToken}; | 13 | pub(crate) use rowan::{GreenNode, GreenToken}; |
14 | 14 | ||
@@ -69,7 +69,7 @@ impl SyntaxTreeBuilder { | |||
69 | self.inner.finish_node() | 69 | self.inner.finish_node() |
70 | } | 70 | } |
71 | 71 | ||
72 | pub fn error(&mut self, error: ra_parser::ParseError, text_pos: TextUnit) { | 72 | pub fn error(&mut self, error: ra_parser::ParseError, text_pos: TextSize) { |
73 | self.errors.push(SyntaxError::new_at_offset(error.0, text_pos)) | 73 | self.errors.push(SyntaxError::new_at_offset(error.0, text_pos)) |
74 | } | 74 | } |
75 | } | 75 | } |
diff --git a/crates/ra_syntax/src/tests.rs b/crates/ra_syntax/src/tests.rs index 355843b94..aee57db62 100644 --- a/crates/ra_syntax/src/tests.rs +++ b/crates/ra_syntax/src/tests.rs | |||
@@ -5,7 +5,7 @@ use std::{ | |||
5 | 5 | ||
6 | use test_utils::{collect_rust_files, dir_tests, project_dir, read_text}; | 6 | use test_utils::{collect_rust_files, dir_tests, project_dir, read_text}; |
7 | 7 | ||
8 | use crate::{fuzz, tokenize, SourceFile, SyntaxError, TextRange, TextUnit, Token}; | 8 | use crate::{fuzz, tokenize, SourceFile, SyntaxError, TextRange, TextSize, Token}; |
9 | 9 | ||
10 | #[test] | 10 | #[test] |
11 | fn lexer_tests() { | 11 | fn lexer_tests() { |
@@ -121,12 +121,12 @@ fn assert_errors_are_absent(errors: &[SyntaxError], path: &Path) { | |||
121 | 121 | ||
122 | fn dump_tokens_and_errors(tokens: &[Token], errors: &[SyntaxError], text: &str) -> String { | 122 | fn dump_tokens_and_errors(tokens: &[Token], errors: &[SyntaxError], text: &str) -> String { |
123 | let mut acc = String::new(); | 123 | let mut acc = String::new(); |
124 | let mut offset = TextUnit::from_usize(0); | 124 | let mut offset: TextSize = 0.into(); |
125 | for token in tokens { | 125 | for token in tokens { |
126 | let token_len = token.len; | 126 | let token_len = token.len; |
127 | let token_text = &text[TextRange::offset_len(offset, token.len)]; | 127 | let token_text = &text[TextRange::at(offset, token.len)]; |
128 | offset += token.len; | 128 | offset += token.len; |
129 | writeln!(acc, "{:?} {} {:?}", token.kind, token_len, token_text).unwrap(); | 129 | writeln!(acc, "{:?} {:?} {:?}", token.kind, token_len, token_text).unwrap(); |
130 | } | 130 | } |
131 | for err in errors { | 131 | for err in errors { |
132 | writeln!(acc, "> error{:?} token({:?}) msg({})", err.range(), &text[err.range()], err) | 132 | writeln!(acc, "> error{:?} token({:?}) msg({})", err.range(), &text[err.range()], err) |
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index f85b3e61b..5e93895ec 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs | |||
@@ -2,12 +2,14 @@ | |||
2 | 2 | ||
3 | mod block; | 3 | mod block; |
4 | 4 | ||
5 | use std::convert::TryFrom; | ||
6 | |||
5 | use rustc_lexer::unescape; | 7 | use rustc_lexer::unescape; |
6 | 8 | ||
7 | use crate::{ | 9 | use crate::{ |
8 | ast, match_ast, AstNode, SyntaxError, | 10 | ast, match_ast, AstNode, SyntaxError, |
9 | SyntaxKind::{BYTE, BYTE_STRING, CHAR, CONST_DEF, FN_DEF, INT_NUMBER, STRING, TYPE_ALIAS_DEF}, | 11 | SyntaxKind::{BYTE, BYTE_STRING, CHAR, CONST_DEF, FN_DEF, INT_NUMBER, STRING, TYPE_ALIAS_DEF}, |
10 | SyntaxNode, SyntaxToken, TextUnit, T, | 12 | SyntaxNode, SyntaxToken, TextSize, T, |
11 | }; | 13 | }; |
12 | 14 | ||
13 | fn rustc_unescape_error_to_string(err: unescape::EscapeError) -> &'static str { | 15 | fn rustc_unescape_error_to_string(err: unescape::EscapeError) -> &'static str { |
@@ -112,7 +114,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) { | |||
112 | 114 | ||
113 | // FIXME: lift this lambda refactor to `fn` (https://github.com/rust-analyzer/rust-analyzer/pull/2834#discussion_r366199205) | 115 | // FIXME: lift this lambda refactor to `fn` (https://github.com/rust-analyzer/rust-analyzer/pull/2834#discussion_r366199205) |
114 | let mut push_err = |prefix_len, (off, err): (usize, unescape::EscapeError)| { | 116 | let mut push_err = |prefix_len, (off, err): (usize, unescape::EscapeError)| { |
115 | let off = token.text_range().start() + TextUnit::from_usize(off + prefix_len); | 117 | let off = token.text_range().start() + TextSize::try_from(off + prefix_len).unwrap(); |
116 | acc.push(SyntaxError::new_at_offset(rustc_unescape_error_to_string(err), off)); | 118 | acc.push(SyntaxError::new_at_offset(rustc_unescape_error_to_string(err), off)); |
117 | }; | 119 | }; |
118 | 120 | ||
diff --git a/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt index f24e1fd32..4d5ad74df 100644 --- a/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0001_unclosed_char_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 1 "\'" | 1 | CHAR 1 "\'" |
2 | > error[0; 1) token("\'") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..1 token("\'") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt index bd08cfc44..eafdb3c7c 100644 --- a/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0002_unclosed_char_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 5 "\'🦀" | 1 | CHAR 5 "\'🦀" |
2 | > error[0; 5) token("\'🦀") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..5 token("\'🦀") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt index 0ee22912d..cc2b4866a 100644 --- a/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0003_unclosed_char_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 5 "\'\\x7f" | 1 | CHAR 5 "\'\\x7f" |
2 | > error[0; 5) token("\'\\x7f") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..5 token("\'\\x7f") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt index 96fac42ce..a6d422cb3 100644 --- a/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0004_unclosed_char_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 9 "\'\\u{20AA}" | 1 | CHAR 9 "\'\\u{20AA}" |
2 | > error[0; 9) token("\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..9 token("\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt index 2059f3f81..47e7baa70 100644 --- a/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0005_unclosed_char_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 2 "\' " | 1 | CHAR 2 "\' " |
2 | > error[0; 2) token("\' ") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..2 token("\' ") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt index 7dd376e59..511029d80 100644 --- a/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0006_unclosed_char_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 2 "\'\\" | 1 | CHAR 2 "\'\\" |
2 | > error[0; 2) token("\'\\") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..2 token("\'\\") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt index ef7a0a147..d2ba5742c 100644 --- a/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0007_unclosed_char_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 3 "\'\\n" | 1 | CHAR 3 "\'\\n" |
2 | > error[0; 3) token("\'\\n") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..3 token("\'\\n") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt index 13fc5ea9a..ae9a7f0e2 100644 --- a/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt +++ b/crates/ra_syntax/test_data/lexer/err/0008_unclosed_char_with_slash_single_quote.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | CHAR 3 "\'\\\'" | 1 | CHAR 3 "\'\\\'" |
2 | > error[0; 3) token("\'\\\'") msg(Missing trailing `'` symbol to terminate the character literal) | 2 | > error0..3 token("\'\\\'") msg(Missing trailing `'` symbol to terminate the character literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt index 269d68c74..ff1504592 100644 --- a/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0009_unclosed_byte_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 2 "b\'" | 1 | BYTE 2 "b\'" |
2 | > error[0; 2) token("b\'") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..2 token("b\'") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt index 91a76e479..34f7bd6d4 100644 --- a/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0010_unclosed_byte_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 6 "b\'🦀" | 1 | BYTE 6 "b\'🦀" |
2 | > error[0; 6) token("b\'🦀") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..6 token("b\'🦀") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt index b8c804a18..c964d0f00 100644 --- a/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0011_unclosed_byte_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 6 "b\'\\x7f" | 1 | BYTE 6 "b\'\\x7f" |
2 | > error[0; 6) token("b\'\\x7f") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..6 token("b\'\\x7f") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt index dfca22a59..cc65fb86f 100644 --- a/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0012_unclosed_byte_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 10 "b\'\\u{20AA}" | 1 | BYTE 10 "b\'\\u{20AA}" |
2 | > error[0; 10) token("b\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..10 token("b\'\\u{20AA}") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt index 51a1cceab..800834a14 100644 --- a/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0013_unclosed_byte_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 3 "b\' " | 1 | BYTE 3 "b\' " |
2 | > error[0; 3) token("b\' ") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..3 token("b\' ") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt index 24e835c27..7b85ee646 100644 --- a/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0014_unclosed_byte_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 3 "b\'\\" | 1 | BYTE 3 "b\'\\" |
2 | > error[0; 3) token("b\'\\") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..3 token("b\'\\") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt index f1e39a41b..4b9a63117 100644 --- a/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0015_unclosed_byte_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 4 "b\'\\n" | 1 | BYTE 4 "b\'\\n" |
2 | > error[0; 4) token("b\'\\n") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..4 token("b\'\\n") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt index f8ffe815d..fe337f8d3 100644 --- a/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt +++ b/crates/ra_syntax/test_data/lexer/err/0016_unclosed_byte_with_slash_single_quote.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE 4 "b\'\\\'" | 1 | BYTE 4 "b\'\\\'" |
2 | > error[0; 4) token("b\'\\\'") msg(Missing trailing `'` symbol to terminate the byte literal) | 2 | > error0..4 token("b\'\\\'") msg(Missing trailing `'` symbol to terminate the byte literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt index 823daaf6f..d11a8d880 100644 --- a/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0017_unclosed_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 1 "\"" | 1 | STRING 1 "\"" |
2 | > error[0; 1) token("\"") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..1 token("\"") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt index 164580eb3..167f942d1 100644 --- a/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0018_unclosed_string_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 5 "\"🦀" | 1 | STRING 5 "\"🦀" |
2 | > error[0; 5) token("\"🦀") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..5 token("\"🦀") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt index 4453827c3..224c653d2 100644 --- a/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0019_unclosed_string_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 5 "\"\\x7f" | 1 | STRING 5 "\"\\x7f" |
2 | > error[0; 5) token("\"\\x7f") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..5 token("\"\\x7f") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt index aa614f304..48975bbcb 100644 --- a/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0020_unclosed_string_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 9 "\"\\u{20AA}" | 1 | STRING 9 "\"\\u{20AA}" |
2 | > error[0; 9) token("\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..9 token("\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt index b7db1236f..a823cca7a 100644 --- a/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0021_unclosed_string_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 2 "\" " | 1 | STRING 2 "\" " |
2 | > error[0; 2) token("\" ") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..2 token("\" ") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt index 9d3df3799..0914f001f 100644 --- a/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0022_unclosed_string_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 2 "\"\\" | 1 | STRING 2 "\"\\" |
2 | > error[0; 2) token("\"\\") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..2 token("\"\\") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt index e3eb672b6..5674b55fd 100644 --- a/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0023_unclosed_string_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 3 "\"\\n" | 1 | STRING 3 "\"\\n" |
2 | > error[0; 3) token("\"\\n") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..3 token("\"\\n") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt index 041d7fb6e..4c9a774e4 100644 --- a/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt +++ b/crates/ra_syntax/test_data/lexer/err/0024_unclosed_string_with_slash_double_quote.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | STRING 3 "\"\\\"" | 1 | STRING 3 "\"\\\"" |
2 | > error[0; 3) token("\"\\\"") msg(Missing trailing `"` symbol to terminate the string literal) | 2 | > error0..3 token("\"\\\"") msg(Missing trailing `"` symbol to terminate the string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt index be7970a83..04e6b0aa4 100644 --- a/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0025_unclosed_byte_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 2 "b\"" | 1 | BYTE_STRING 2 "b\"" |
2 | > error[0; 2) token("b\"") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..2 token("b\"") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt index bf9aab132..0576a0609 100644 --- a/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0026_unclosed_byte_string_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 6 "b\"🦀" | 1 | BYTE_STRING 6 "b\"🦀" |
2 | > error[0; 6) token("b\"🦀") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..6 token("b\"🦀") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt index 76e16d7d3..541a013d8 100644 --- a/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0027_unclosed_byte_string_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 6 "b\"\\x7f" | 1 | BYTE_STRING 6 "b\"\\x7f" |
2 | > error[0; 6) token("b\"\\x7f") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..6 token("b\"\\x7f") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt index 09adffa16..71b0fb211 100644 --- a/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0028_unclosed_byte_string_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 10 "b\"\\u{20AA}" | 1 | BYTE_STRING 10 "b\"\\u{20AA}" |
2 | > error[0; 10) token("b\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..10 token("b\"\\u{20AA}") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt index fcb7253c8..bd5058bc1 100644 --- a/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0029_unclosed_byte_string_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 3 "b\" " | 1 | BYTE_STRING 3 "b\" " |
2 | > error[0; 3) token("b\" ") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..3 token("b\" ") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt index 0a1b3e269..7f94f10ba 100644 --- a/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0030_unclosed_byte_string_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 3 "b\"\\" | 1 | BYTE_STRING 3 "b\"\\" |
2 | > error[0; 3) token("b\"\\") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..3 token("b\"\\") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt index 1fb89d2b6..9c3c089d7 100644 --- a/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0031_unclosed_byte_string_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 4 "b\"\\n" | 1 | BYTE_STRING 4 "b\"\\n" |
2 | > error[0; 4) token("b\"\\n") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..4 token("b\"\\n") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt index 718d36992..884b12c8e 100644 --- a/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt +++ b/crates/ra_syntax/test_data/lexer/err/0032_unclosed_byte_string_with_slash_double_quote.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | BYTE_STRING 4 "b\"\\\"" | 1 | BYTE_STRING 4 "b\"\\\"" |
2 | > error[0; 4) token("b\"\\\"") msg(Missing trailing `"` symbol to terminate the byte string literal) | 2 | > error0..4 token("b\"\\\"") msg(Missing trailing `"` symbol to terminate the byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt index 93348f548..6fd59ccc0 100644 --- a/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0033_unclosed_raw_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 4 "r##\"" | 1 | RAW_STRING 4 "r##\"" |
2 | > error[0; 4) token("r##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..4 token("r##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt index 42c70dfe8..8d9ca0e8f 100644 --- a/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0034_unclosed_raw_string_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 8 "r##\"🦀" | 1 | RAW_STRING 8 "r##\"🦀" |
2 | > error[0; 8) token("r##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..8 token("r##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt index 2bdeea0ff..a906380c7 100644 --- a/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0035_unclosed_raw_string_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 8 "r##\"\\x7f" | 1 | RAW_STRING 8 "r##\"\\x7f" |
2 | > error[0; 8) token("r##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..8 token("r##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt index 667d4d79f..5667c6149 100644 --- a/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0036_unclosed_raw_string_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 12 "r##\"\\u{20AA}" | 1 | RAW_STRING 12 "r##\"\\u{20AA}" |
2 | > error[0; 12) token("r##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..12 token("r##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt index dd9597a1a..141c8268e 100644 --- a/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0037_unclosed_raw_string_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 5 "r##\" " | 1 | RAW_STRING 5 "r##\" " |
2 | > error[0; 5) token("r##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..5 token("r##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt index 6ac6e3d62..f61d4cc91 100644 --- a/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0038_unclosed_raw_string_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 5 "r##\"\\" | 1 | RAW_STRING 5 "r##\"\\" |
2 | > error[0; 5) token("r##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..5 token("r##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt index 9d35443f5..12e2c0fc0 100644 --- a/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0039_unclosed_raw_string_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 6 "r##\"\\n" | 1 | RAW_STRING 6 "r##\"\\n" |
2 | > error[0; 6) token("r##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) | 2 | > error0..6 token("r##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt index 81fa39ea5..fe12cb5fc 100644 --- a/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0040_unclosed_raw_byte_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 5 "br##\"" | 1 | RAW_BYTE_STRING 5 "br##\"" |
2 | > error[0; 5) token("br##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..5 token("br##\"") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt index c2503a4d0..5be2a7861 100644 --- a/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt +++ b/crates/ra_syntax/test_data/lexer/err/0041_unclosed_raw_byte_string_with_ferris.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 9 "br##\"🦀" | 1 | RAW_BYTE_STRING 9 "br##\"🦀" |
2 | > error[0; 9) token("br##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..9 token("br##\"🦀") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt index 3bd3d8152..6cbe08d07 100644 --- a/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0042_unclosed_raw_byte_string_with_ascii_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 9 "br##\"\\x7f" | 1 | RAW_BYTE_STRING 9 "br##\"\\x7f" |
2 | > error[0; 9) token("br##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..9 token("br##\"\\x7f") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt index a512f0428..f56a4f984 100644 --- a/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt +++ b/crates/ra_syntax/test_data/lexer/err/0043_unclosed_raw_byte_string_with_unicode_escape.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 13 "br##\"\\u{20AA}" | 1 | RAW_BYTE_STRING 13 "br##\"\\u{20AA}" |
2 | > error[0; 13) token("br##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..13 token("br##\"\\u{20AA}") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt index dc616a623..3d32ce34e 100644 --- a/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt +++ b/crates/ra_syntax/test_data/lexer/err/0044_unclosed_raw_byte_string_with_space.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 6 "br##\" " | 1 | RAW_BYTE_STRING 6 "br##\" " |
2 | > error[0; 6) token("br##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..6 token("br##\" ") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt index debafe380..320fea177 100644 --- a/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt +++ b/crates/ra_syntax/test_data/lexer/err/0045_unclosed_raw_byte_string_with_slash.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 6 "br##\"\\" | 1 | RAW_BYTE_STRING 6 "br##\"\\" |
2 | > error[0; 6) token("br##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..6 token("br##\"\\") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt index 524e617b7..b3a56380c 100644 --- a/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt +++ b/crates/ra_syntax/test_data/lexer/err/0046_unclosed_raw_byte_string_with_slash_n.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 7 "br##\"\\n" | 1 | RAW_BYTE_STRING 7 "br##\"\\n" |
2 | > error[0; 7) token("br##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) | 2 | > error0..7 token("br##\"\\n") msg(Missing trailing `"` with `#` symbols to terminate the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt index 00b046840..5af1e2d97 100644 --- a/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0047_unstarted_raw_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_STRING 3 "r##" | 1 | RAW_STRING 3 "r##" |
2 | > error[0; 3) token("r##") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) | 2 | > error0..3 token("r##") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt index 33b25e60f..aec7afd92 100644 --- a/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0048_unstarted_raw_byte_string_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | RAW_BYTE_STRING 4 "br##" | 1 | RAW_BYTE_STRING 4 "br##" |
2 | > error[0; 4) token("br##") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) | 2 | > error0..4 token("br##") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt index 290e0bd7c..e22fe5374 100644 --- a/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt +++ b/crates/ra_syntax/test_data/lexer/err/0049_unstarted_raw_string_with_ascii.txt | |||
@@ -7,4 +7,4 @@ IDENT 1 "a" | |||
7 | WHITESPACE 1 " " | 7 | WHITESPACE 1 " " |
8 | IDENT 5 "quote" | 8 | IDENT 5 "quote" |
9 | BANG 1 "!" | 9 | BANG 1 "!" |
10 | > error[0; 4) token("r## ") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) | 10 | > error0..4 token("r## ") msg(Missing `"` symbol after `#` symbols to begin the raw string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt index 5c492906d..d74ea4c27 100644 --- a/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt +++ b/crates/ra_syntax/test_data/lexer/err/0050_unstarted_raw_byte_string_with_ascii.txt | |||
@@ -7,4 +7,4 @@ IDENT 1 "a" | |||
7 | WHITESPACE 1 " " | 7 | WHITESPACE 1 " " |
8 | IDENT 5 "quote" | 8 | IDENT 5 "quote" |
9 | BANG 1 "!" | 9 | BANG 1 "!" |
10 | > error[0; 5) token("br## ") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) | 10 | > error0..5 token("br## ") msg(Missing `"` symbol after `#` symbols to begin the raw byte string literal) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt index 5d04cdaa4..2a256e9df 100644 --- a/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt +++ b/crates/ra_syntax/test_data/lexer/err/0051_unclosed_block_comment_at_eof.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | COMMENT 2 "/*" | 1 | COMMENT 2 "/*" |
2 | > error[0; 2) token("/*") msg(Missing trailing `*/` symbols to terminate the block comment) | 2 | > error0..2 token("/*") msg(Missing trailing `*/` symbols to terminate the block comment) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt index 8c6b678e3..8e8490302 100644 --- a/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt +++ b/crates/ra_syntax/test_data/lexer/err/0052_unclosed_block_comment_with_content.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | COMMENT 11 "/* comment\n" | 1 | COMMENT 11 "/* comment\n" |
2 | > error[0; 11) token("/* comment\n") msg(Missing trailing `*/` symbols to terminate the block comment) | 2 | > error0..11 token("/* comment\n") msg(Missing trailing `*/` symbols to terminate the block comment) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt index 250de34d9..b7d28fc05 100644 --- a/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt +++ b/crates/ra_syntax/test_data/lexer/err/0053_unclosed_nested_block_comment_entirely.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | COMMENT 9 "/* /* /*\n" | 1 | COMMENT 9 "/* /* /*\n" |
2 | > error[0; 9) token("/* /* /*\n") msg(Missing trailing `*/` symbols to terminate the block comment) | 2 | > error0..9 token("/* /* /*\n") msg(Missing trailing `*/` symbols to terminate the block comment) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt index f97f2a8c7..4742d2c12 100644 --- a/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt +++ b/crates/ra_syntax/test_data/lexer/err/0054_unclosed_nested_block_comment_partially.txt | |||
@@ -1,2 +1,2 @@ | |||
1 | COMMENT 25 "/** /*! /* comment */ */\n" | 1 | COMMENT 25 "/** /*! /* comment */ */\n" |
2 | > error[0; 25) token("/** /*! /* comment */ */\n") msg(Missing trailing `*/` symbols to terminate the block comment) | 2 | > error0..25 token("/** /*! /* comment */ */\n") msg(Missing trailing `*/` symbols to terminate the block comment) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt index 2fe5bd950..bcd094b6e 100644 --- a/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt +++ b/crates/ra_syntax/test_data/lexer/err/0055_empty_int.txt | |||
@@ -24,16 +24,16 @@ INT_NUMBER 4 "0x_g" | |||
24 | WHITESPACE 1 "\n" | 24 | WHITESPACE 1 "\n" |
25 | INT_NUMBER 4 "0x_G" | 25 | INT_NUMBER 4 "0x_G" |
26 | WHITESPACE 1 "\n" | 26 | WHITESPACE 1 "\n" |
27 | > error[0; 2) token("0b") msg(Missing digits after the integer base prefix) | 27 | > error0..2 token("0b") msg(Missing digits after the integer base prefix) |
28 | > error[3; 5) token("0o") msg(Missing digits after the integer base prefix) | 28 | > error3..5 token("0o") msg(Missing digits after the integer base prefix) |
29 | > error[6; 8) token("0x") msg(Missing digits after the integer base prefix) | 29 | > error6..8 token("0x") msg(Missing digits after the integer base prefix) |
30 | > error[10; 13) token("0b_") msg(Missing digits after the integer base prefix) | 30 | > error10..13 token("0b_") msg(Missing digits after the integer base prefix) |
31 | > error[14; 17) token("0o_") msg(Missing digits after the integer base prefix) | 31 | > error14..17 token("0o_") msg(Missing digits after the integer base prefix) |
32 | > error[18; 21) token("0x_") msg(Missing digits after the integer base prefix) | 32 | > error18..21 token("0x_") msg(Missing digits after the integer base prefix) |
33 | > error[23; 32) token("0bnoDigit") msg(Missing digits after the integer base prefix) | 33 | > error23..32 token("0bnoDigit") msg(Missing digits after the integer base prefix) |
34 | > error[33; 42) token("0onoDigit") msg(Missing digits after the integer base prefix) | 34 | > error33..42 token("0onoDigit") msg(Missing digits after the integer base prefix) |
35 | > error[43; 52) token("0xnoDigit") msg(Missing digits after the integer base prefix) | 35 | > error43..52 token("0xnoDigit") msg(Missing digits after the integer base prefix) |
36 | > error[54; 57) token("0xG") msg(Missing digits after the integer base prefix) | 36 | > error54..57 token("0xG") msg(Missing digits after the integer base prefix) |
37 | > error[58; 61) token("0xg") msg(Missing digits after the integer base prefix) | 37 | > error58..61 token("0xg") msg(Missing digits after the integer base prefix) |
38 | > error[63; 67) token("0x_g") msg(Missing digits after the integer base prefix) | 38 | > error63..67 token("0x_g") msg(Missing digits after the integer base prefix) |
39 | > error[68; 72) token("0x_G") msg(Missing digits after the integer base prefix) | 39 | > error68..72 token("0x_G") msg(Missing digits after the integer base prefix) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt index ab35e20a5..6a645a6a4 100644 --- a/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt +++ b/crates/ra_syntax/test_data/lexer/err/0056_empty_exponent.txt | |||
@@ -46,17 +46,17 @@ FLOAT_NUMBER 9 "42.2E+f32" | |||
46 | WHITESPACE 1 "\n" | 46 | WHITESPACE 1 "\n" |
47 | FLOAT_NUMBER 9 "42.2E-f32" | 47 | FLOAT_NUMBER 9 "42.2E-f32" |
48 | WHITESPACE 1 "\n" | 48 | WHITESPACE 1 "\n" |
49 | > error[0; 2) token("0e") msg(Missing digits after the exponent symbol) | 49 | > error0..2 token("0e") msg(Missing digits after the exponent symbol) |
50 | > error[3; 5) token("0E") msg(Missing digits after the exponent symbol) | 50 | > error3..5 token("0E") msg(Missing digits after the exponent symbol) |
51 | > error[7; 11) token("42e+") msg(Missing digits after the exponent symbol) | 51 | > error7..11 token("42e+") msg(Missing digits after the exponent symbol) |
52 | > error[12; 16) token("42e-") msg(Missing digits after the exponent symbol) | 52 | > error12..16 token("42e-") msg(Missing digits after the exponent symbol) |
53 | > error[17; 21) token("42E+") msg(Missing digits after the exponent symbol) | 53 | > error17..21 token("42E+") msg(Missing digits after the exponent symbol) |
54 | > error[22; 26) token("42E-") msg(Missing digits after the exponent symbol) | 54 | > error22..26 token("42E-") msg(Missing digits after the exponent symbol) |
55 | > error[53; 59) token("42.2e+") msg(Missing digits after the exponent symbol) | 55 | > error53..59 token("42.2e+") msg(Missing digits after the exponent symbol) |
56 | > error[60; 66) token("42.2e-") msg(Missing digits after the exponent symbol) | 56 | > error60..66 token("42.2e-") msg(Missing digits after the exponent symbol) |
57 | > error[67; 73) token("42.2E+") msg(Missing digits after the exponent symbol) | 57 | > error67..73 token("42.2E+") msg(Missing digits after the exponent symbol) |
58 | > error[74; 80) token("42.2E-") msg(Missing digits after the exponent symbol) | 58 | > error74..80 token("42.2E-") msg(Missing digits after the exponent symbol) |
59 | > error[82; 91) token("42.2e+f32") msg(Missing digits after the exponent symbol) | 59 | > error82..91 token("42.2e+f32") msg(Missing digits after the exponent symbol) |
60 | > error[92; 101) token("42.2e-f32") msg(Missing digits after the exponent symbol) | 60 | > error92..101 token("42.2e-f32") msg(Missing digits after the exponent symbol) |
61 | > error[102; 111) token("42.2E+f32") msg(Missing digits after the exponent symbol) | 61 | > error102..111 token("42.2E+f32") msg(Missing digits after the exponent symbol) |
62 | > error[112; 121) token("42.2E-f32") msg(Missing digits after the exponent symbol) | 62 | > error112..121 token("42.2E-f32") msg(Missing digits after the exponent symbol) |
diff --git a/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt index 89b38bfac..e138bcebc 100644 --- a/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt +++ b/crates/ra_syntax/test_data/lexer/err/0057_lifetime_strarts_with_a_number.txt | |||
@@ -2,5 +2,5 @@ LIFETIME 2 "\'1" | |||
2 | WHITESPACE 1 "\n" | 2 | WHITESPACE 1 "\n" |
3 | LIFETIME 10 "\'1lifetime" | 3 | LIFETIME 10 "\'1lifetime" |
4 | WHITESPACE 1 "\n" | 4 | WHITESPACE 1 "\n" |
5 | > error[0; 2) token("\'1") msg(Lifetime name cannot start with a number) | 5 | > error0..2 token("\'1") msg(Lifetime name cannot start with a number) |
6 | > error[3; 13) token("\'1lifetime") msg(Lifetime name cannot start with a number) | 6 | > error3..13 token("\'1lifetime") msg(Lifetime name cannot start with a number) |
diff --git a/crates/ra_syntax/test_data/parser/err/0000_struct_field_missing_comma.rast b/crates/ra_syntax/test_data/parser/err/0000_struct_field_missing_comma.rast index edcd936b0..81f0f575c 100644 --- a/crates/ra_syntax/test_data/parser/err/0000_struct_field_missing_comma.rast +++ b/crates/ra_syntax/test_data/parser/err/0000_struct_field_missing_comma.rast | |||
@@ -1,34 +1,34 @@ | |||
1 | SOURCE_FILE@[0; 34) | 1 | SOURCE_FILE@0..34 |
2 | STRUCT_DEF@[0; 34) | 2 | STRUCT_DEF@0..34 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 34) | 8 | RECORD_FIELD_DEF_LIST@9..34 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 21) | 11 | RECORD_FIELD_DEF@15..21 |
12 | NAME@[15; 16) | 12 | NAME@15..16 |
13 | IDENT@[15; 16) "a" | 13 | IDENT@15..16 "a" |
14 | COLON@[16; 17) ":" | 14 | COLON@16..17 ":" |
15 | WHITESPACE@[17; 18) " " | 15 | WHITESPACE@17..18 " " |
16 | PATH_TYPE@[18; 21) | 16 | PATH_TYPE@18..21 |
17 | PATH@[18; 21) | 17 | PATH@18..21 |
18 | PATH_SEGMENT@[18; 21) | 18 | PATH_SEGMENT@18..21 |
19 | NAME_REF@[18; 21) | 19 | NAME_REF@18..21 |
20 | IDENT@[18; 21) "u32" | 20 | IDENT@18..21 "u32" |
21 | WHITESPACE@[21; 26) "\n " | 21 | WHITESPACE@21..26 "\n " |
22 | RECORD_FIELD_DEF@[26; 32) | 22 | RECORD_FIELD_DEF@26..32 |
23 | NAME@[26; 27) | 23 | NAME@26..27 |
24 | IDENT@[26; 27) "b" | 24 | IDENT@26..27 "b" |
25 | COLON@[27; 28) ":" | 25 | COLON@27..28 ":" |
26 | WHITESPACE@[28; 29) " " | 26 | WHITESPACE@28..29 " " |
27 | PATH_TYPE@[29; 32) | 27 | PATH_TYPE@29..32 |
28 | PATH@[29; 32) | 28 | PATH@29..32 |
29 | PATH_SEGMENT@[29; 32) | 29 | PATH_SEGMENT@29..32 |
30 | NAME_REF@[29; 32) | 30 | NAME_REF@29..32 |
31 | IDENT@[29; 32) "u32" | 31 | IDENT@29..32 "u32" |
32 | WHITESPACE@[32; 33) "\n" | 32 | WHITESPACE@32..33 "\n" |
33 | R_CURLY@[33; 34) "}" | 33 | R_CURLY@33..34 "}" |
34 | error [21; 21): expected COMMA | 34 | error 21..21: expected COMMA |
diff --git a/crates/ra_syntax/test_data/parser/err/0001_item_recovery_in_file.rast b/crates/ra_syntax/test_data/parser/err/0001_item_recovery_in_file.rast index 2d653715e..97d0fe910 100644 --- a/crates/ra_syntax/test_data/parser/err/0001_item_recovery_in_file.rast +++ b/crates/ra_syntax/test_data/parser/err/0001_item_recovery_in_file.rast | |||
@@ -1,18 +1,18 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | ERROR@[0; 2) | 2 | ERROR@0..2 |
3 | IF_KW@[0; 2) "if" | 3 | IF_KW@0..2 "if" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | ERROR@[3; 8) | 5 | ERROR@3..8 |
6 | MATCH_KW@[3; 8) "match" | 6 | MATCH_KW@3..8 "match" |
7 | WHITESPACE@[8; 10) "\n\n" | 7 | WHITESPACE@8..10 "\n\n" |
8 | STRUCT_DEF@[10; 21) | 8 | STRUCT_DEF@10..21 |
9 | STRUCT_KW@[10; 16) "struct" | 9 | STRUCT_KW@10..16 "struct" |
10 | WHITESPACE@[16; 17) " " | 10 | WHITESPACE@16..17 " " |
11 | NAME@[17; 18) | 11 | NAME@17..18 |
12 | IDENT@[17; 18) "S" | 12 | IDENT@17..18 "S" |
13 | WHITESPACE@[18; 19) " " | 13 | WHITESPACE@18..19 " " |
14 | RECORD_FIELD_DEF_LIST@[19; 21) | 14 | RECORD_FIELD_DEF_LIST@19..21 |
15 | L_CURLY@[19; 20) "{" | 15 | L_CURLY@19..20 "{" |
16 | R_CURLY@[20; 21) "}" | 16 | R_CURLY@20..21 "}" |
17 | error [0; 0): expected an item | 17 | error 0..0: expected an item |
18 | error [3; 3): expected an item | 18 | error 3..3: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast b/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast index 831bbf83f..6717995e9 100644 --- a/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast +++ b/crates/ra_syntax/test_data/parser/err/0002_duplicate_shebang.rast | |||
@@ -1,39 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 42) | 1 | SOURCE_FILE@0..42 |
2 | SHEBANG@[0; 20) "#!/use/bin/env rusti" | 2 | SHEBANG@0..20 "#!/use/bin/env rusti" |
3 | WHITESPACE@[20; 21) "\n" | 3 | WHITESPACE@20..21 "\n" |
4 | ATTR@[21; 23) | 4 | ATTR@21..23 |
5 | POUND@[21; 22) "#" | 5 | POUND@21..22 "#" |
6 | BANG@[22; 23) "!" | 6 | BANG@22..23 "!" |
7 | ERROR@[23; 24) | 7 | ERROR@23..24 |
8 | SLASH@[23; 24) "/" | 8 | SLASH@23..24 "/" |
9 | USE_ITEM@[24; 28) | 9 | USE_ITEM@24..28 |
10 | USE_KW@[24; 27) "use" | 10 | USE_KW@24..27 "use" |
11 | ERROR@[27; 28) | 11 | ERROR@27..28 |
12 | SLASH@[27; 28) "/" | 12 | SLASH@27..28 "/" |
13 | MACRO_CALL@[28; 31) | 13 | MACRO_CALL@28..31 |
14 | PATH@[28; 31) | 14 | PATH@28..31 |
15 | PATH_SEGMENT@[28; 31) | 15 | PATH_SEGMENT@28..31 |
16 | NAME_REF@[28; 31) | 16 | NAME_REF@28..31 |
17 | IDENT@[28; 31) "bin" | 17 | IDENT@28..31 "bin" |
18 | ERROR@[31; 32) | 18 | ERROR@31..32 |
19 | SLASH@[31; 32) "/" | 19 | SLASH@31..32 "/" |
20 | MACRO_CALL@[32; 41) | 20 | MACRO_CALL@32..41 |
21 | PATH@[32; 35) | 21 | PATH@32..35 |
22 | PATH_SEGMENT@[32; 35) | 22 | PATH_SEGMENT@32..35 |
23 | NAME_REF@[32; 35) | 23 | NAME_REF@32..35 |
24 | IDENT@[32; 35) "env" | 24 | IDENT@32..35 "env" |
25 | WHITESPACE@[35; 36) " " | 25 | WHITESPACE@35..36 " " |
26 | NAME@[36; 41) | 26 | NAME@36..41 |
27 | IDENT@[36; 41) "rusti" | 27 | IDENT@36..41 "rusti" |
28 | WHITESPACE@[41; 42) "\n" | 28 | WHITESPACE@41..42 "\n" |
29 | error [23; 23): expected `[` | 29 | error 23..23: expected `[` |
30 | error [23; 23): expected an item | 30 | error 23..23: expected an item |
31 | error [27; 27): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 31 | error 27..27: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
32 | error [28; 28): expected SEMICOLON | 32 | error 28..28: expected SEMICOLON |
33 | error [31; 31): expected BANG | 33 | error 31..31: expected BANG |
34 | error [31; 31): expected `{`, `[`, `(` | 34 | error 31..31: expected `{`, `[`, `(` |
35 | error [31; 31): expected SEMICOLON | 35 | error 31..31: expected SEMICOLON |
36 | error [31; 31): expected an item | 36 | error 31..31: expected an item |
37 | error [35; 35): expected BANG | 37 | error 35..35: expected BANG |
38 | error [41; 41): expected `{`, `[`, `(` | 38 | error 41..41: expected `{`, `[`, `(` |
39 | error [41; 41): expected SEMICOLON | 39 | error 41..41: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast b/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast index 6b89e7572..21c255698 100644 --- a/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast +++ b/crates/ra_syntax/test_data/parser/err/0003_C++_semicolon.rast | |||
@@ -1,39 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | STRUCT_DEF@[0; 39) | 2 | STRUCT_DEF@0..39 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 39) | 8 | RECORD_FIELD_DEF_LIST@9..39 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 21) | 11 | RECORD_FIELD_DEF@15..21 |
12 | NAME@[15; 16) | 12 | NAME@15..16 |
13 | IDENT@[15; 16) "a" | 13 | IDENT@15..16 "a" |
14 | COLON@[16; 17) ":" | 14 | COLON@16..17 ":" |
15 | WHITESPACE@[17; 18) " " | 15 | WHITESPACE@17..18 " " |
16 | PATH_TYPE@[18; 21) | 16 | PATH_TYPE@18..21 |
17 | PATH@[18; 21) | 17 | PATH@18..21 |
18 | PATH_SEGMENT@[18; 21) | 18 | PATH_SEGMENT@18..21 |
19 | NAME_REF@[18; 21) | 19 | NAME_REF@18..21 |
20 | IDENT@[18; 21) "i32" | 20 | IDENT@18..21 "i32" |
21 | COMMA@[21; 22) "," | 21 | COMMA@21..22 "," |
22 | WHITESPACE@[22; 27) "\n " | 22 | WHITESPACE@22..27 "\n " |
23 | RECORD_FIELD_DEF@[27; 36) | 23 | RECORD_FIELD_DEF@27..36 |
24 | NAME@[27; 28) | 24 | NAME@27..28 |
25 | IDENT@[27; 28) "b" | 25 | IDENT@27..28 "b" |
26 | COLON@[28; 29) ":" | 26 | COLON@28..29 ":" |
27 | WHITESPACE@[29; 30) " " | 27 | WHITESPACE@29..30 " " |
28 | PATH_TYPE@[30; 36) | 28 | PATH_TYPE@30..36 |
29 | PATH@[30; 36) | 29 | PATH@30..36 |
30 | PATH_SEGMENT@[30; 36) | 30 | PATH_SEGMENT@30..36 |
31 | NAME_REF@[30; 36) | 31 | NAME_REF@30..36 |
32 | IDENT@[30; 36) "String" | 32 | IDENT@30..36 "String" |
33 | COMMA@[36; 37) "," | 33 | COMMA@36..37 "," |
34 | WHITESPACE@[37; 38) "\n" | 34 | WHITESPACE@37..38 "\n" |
35 | R_CURLY@[38; 39) "}" | 35 | R_CURLY@38..39 "}" |
36 | ERROR@[39; 40) | 36 | ERROR@39..40 |
37 | SEMICOLON@[39; 40) ";" | 37 | SEMICOLON@39..40 ";" |
38 | error [39; 39): expected item, found `;` | 38 | error 39..39: expected item, found `;` |
39 | consider removing this semicolon | 39 | consider removing this semicolon |
diff --git a/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast b/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast index 1d27d4cd6..8c6b89dc2 100644 --- a/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast +++ b/crates/ra_syntax/test_data/parser/err/0004_use_path_bad_segment.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 12) | 1 | SOURCE_FILE@0..12 |
2 | USE_ITEM@[0; 12) | 2 | USE_ITEM@0..12 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 11) | 5 | USE_TREE@4..11 |
6 | PATH@[4; 11) | 6 | PATH@4..11 |
7 | PATH@[4; 7) | 7 | PATH@4..7 |
8 | PATH_SEGMENT@[4; 7) | 8 | PATH_SEGMENT@4..7 |
9 | NAME_REF@[4; 7) | 9 | NAME_REF@4..7 |
10 | IDENT@[4; 7) "foo" | 10 | IDENT@4..7 "foo" |
11 | COLON2@[7; 9) "::" | 11 | COLON2@7..9 "::" |
12 | PATH_SEGMENT@[9; 11) | 12 | PATH_SEGMENT@9..11 |
13 | ERROR@[9; 11) | 13 | ERROR@9..11 |
14 | INT_NUMBER@[9; 11) "92" | 14 | INT_NUMBER@9..11 "92" |
15 | SEMICOLON@[11; 12) ";" | 15 | SEMICOLON@11..12 ";" |
16 | error [9; 9): expected identifier | 16 | error 9..9: expected identifier |
diff --git a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast index cc11421a9..95cc83caa 100644 --- a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.rast | |||
@@ -1,60 +1,60 @@ | |||
1 | SOURCE_FILE@[0; 54) | 1 | SOURCE_FILE@0..54 |
2 | FN_DEF@[0; 31) | 2 | FN_DEF@0..31 |
3 | ATTR@[0; 18) | 3 | ATTR@0..18 |
4 | POUND@[0; 1) "#" | 4 | POUND@0..1 "#" |
5 | L_BRACK@[1; 2) "[" | 5 | L_BRACK@1..2 "[" |
6 | PATH@[2; 5) | 6 | PATH@2..5 |
7 | PATH_SEGMENT@[2; 5) | 7 | PATH_SEGMENT@2..5 |
8 | NAME_REF@[2; 5) | 8 | NAME_REF@2..5 |
9 | IDENT@[2; 5) "foo" | 9 | IDENT@2..5 "foo" |
10 | TOKEN_TREE@[5; 17) | 10 | TOKEN_TREE@5..17 |
11 | L_PAREN@[5; 6) "(" | 11 | L_PAREN@5..6 "(" |
12 | IDENT@[6; 9) "foo" | 12 | IDENT@6..9 "foo" |
13 | COMMA@[9; 10) "," | 13 | COMMA@9..10 "," |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | PLUS@[11; 12) "+" | 15 | PLUS@11..12 "+" |
16 | COMMA@[12; 13) "," | 16 | COMMA@12..13 "," |
17 | WHITESPACE@[13; 14) " " | 17 | WHITESPACE@13..14 " " |
18 | INT_NUMBER@[14; 16) "92" | 18 | INT_NUMBER@14..16 "92" |
19 | R_PAREN@[16; 17) ")" | 19 | R_PAREN@16..17 ")" |
20 | R_BRACK@[17; 18) "]" | 20 | R_BRACK@17..18 "]" |
21 | WHITESPACE@[18; 19) "\n" | 21 | WHITESPACE@18..19 "\n" |
22 | FN_KW@[19; 21) "fn" | 22 | FN_KW@19..21 "fn" |
23 | WHITESPACE@[21; 22) " " | 23 | WHITESPACE@21..22 " " |
24 | NAME@[22; 25) | 24 | NAME@22..25 |
25 | IDENT@[22; 25) "foo" | 25 | IDENT@22..25 "foo" |
26 | PARAM_LIST@[25; 27) | 26 | PARAM_LIST@25..27 |
27 | L_PAREN@[25; 26) "(" | 27 | L_PAREN@25..26 "(" |
28 | R_PAREN@[26; 27) ")" | 28 | R_PAREN@26..27 ")" |
29 | WHITESPACE@[27; 28) " " | 29 | WHITESPACE@27..28 " " |
30 | BLOCK_EXPR@[28; 31) | 30 | BLOCK_EXPR@28..31 |
31 | BLOCK@[28; 31) | 31 | BLOCK@28..31 |
32 | L_CURLY@[28; 29) "{" | 32 | L_CURLY@28..29 "{" |
33 | WHITESPACE@[29; 30) "\n" | 33 | WHITESPACE@29..30 "\n" |
34 | R_CURLY@[30; 31) "}" | 34 | R_CURLY@30..31 "}" |
35 | WHITESPACE@[31; 34) "\n\n\n" | 35 | WHITESPACE@31..34 "\n\n\n" |
36 | ATTR@[34; 53) | 36 | ATTR@34..53 |
37 | POUND@[34; 35) "#" | 37 | POUND@34..35 "#" |
38 | L_BRACK@[35; 36) "[" | 38 | L_BRACK@35..36 "[" |
39 | PATH@[36; 39) | 39 | PATH@36..39 |
40 | PATH_SEGMENT@[36; 39) | 40 | PATH_SEGMENT@36..39 |
41 | NAME_REF@[36; 39) | 41 | NAME_REF@36..39 |
42 | IDENT@[36; 39) "foo" | 42 | IDENT@36..39 "foo" |
43 | TOKEN_TREE@[39; 53) | 43 | TOKEN_TREE@39..53 |
44 | L_PAREN@[39; 40) "(" | 44 | L_PAREN@39..40 "(" |
45 | WHITESPACE@[40; 41) "\n" | 45 | WHITESPACE@40..41 "\n" |
46 | FN_KW@[41; 43) "fn" | 46 | FN_KW@41..43 "fn" |
47 | WHITESPACE@[43; 44) " " | 47 | WHITESPACE@43..44 " " |
48 | IDENT@[44; 47) "foo" | 48 | IDENT@44..47 "foo" |
49 | TOKEN_TREE@[47; 49) | 49 | TOKEN_TREE@47..49 |
50 | L_PAREN@[47; 48) "(" | 50 | L_PAREN@47..48 "(" |
51 | R_PAREN@[48; 49) ")" | 51 | R_PAREN@48..49 ")" |
52 | WHITESPACE@[49; 50) " " | 52 | WHITESPACE@49..50 " " |
53 | TOKEN_TREE@[50; 53) | 53 | TOKEN_TREE@50..53 |
54 | L_CURLY@[50; 51) "{" | 54 | L_CURLY@50..51 "{" |
55 | WHITESPACE@[51; 52) "\n" | 55 | WHITESPACE@51..52 "\n" |
56 | R_CURLY@[52; 53) "}" | 56 | R_CURLY@52..53 "}" |
57 | WHITESPACE@[53; 54) "\n" | 57 | WHITESPACE@53..54 "\n" |
58 | error [53; 53): expected R_PAREN | 58 | error 53..53: expected R_PAREN |
59 | error [53; 53): expected `]` | 59 | error 53..53: expected `]` |
60 | error [53; 53): expected an item | 60 | error 53..53: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/err/0006_named_field_recovery.rast b/crates/ra_syntax/test_data/parser/err/0006_named_field_recovery.rast index 84fd92862..2d6364998 100644 --- a/crates/ra_syntax/test_data/parser/err/0006_named_field_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0006_named_field_recovery.rast | |||
@@ -1,74 +1,74 @@ | |||
1 | SOURCE_FILE@[0; 74) | 1 | SOURCE_FILE@0..74 |
2 | STRUCT_DEF@[0; 73) | 2 | STRUCT_DEF@0..73 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 73) | 8 | RECORD_FIELD_DEF_LIST@9..73 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 21) | 11 | RECORD_FIELD_DEF@15..21 |
12 | NAME@[15; 16) | 12 | NAME@15..16 |
13 | IDENT@[15; 16) "f" | 13 | IDENT@15..16 "f" |
14 | COLON@[16; 17) ":" | 14 | COLON@16..17 ":" |
15 | WHITESPACE@[17; 18) " " | 15 | WHITESPACE@17..18 " " |
16 | PATH_TYPE@[18; 21) | 16 | PATH_TYPE@18..21 |
17 | PATH@[18; 21) | 17 | PATH@18..21 |
18 | PATH_SEGMENT@[18; 21) | 18 | PATH_SEGMENT@18..21 |
19 | NAME_REF@[18; 21) | 19 | NAME_REF@18..21 |
20 | IDENT@[18; 21) "u32" | 20 | IDENT@18..21 "u32" |
21 | COMMA@[21; 22) "," | 21 | COMMA@21..22 "," |
22 | WHITESPACE@[22; 27) "\n " | 22 | WHITESPACE@22..27 "\n " |
23 | VISIBILITY@[27; 30) | 23 | VISIBILITY@27..30 |
24 | PUB_KW@[27; 30) "pub" | 24 | PUB_KW@27..30 "pub" |
25 | WHITESPACE@[30; 31) " " | 25 | WHITESPACE@30..31 " " |
26 | ERROR@[31; 33) | 26 | ERROR@31..33 |
27 | INT_NUMBER@[31; 33) "92" | 27 | INT_NUMBER@31..33 "92" |
28 | WHITESPACE@[33; 38) "\n " | 28 | WHITESPACE@33..38 "\n " |
29 | ERROR@[38; 39) | 29 | ERROR@38..39 |
30 | PLUS@[38; 39) "+" | 30 | PLUS@38..39 "+" |
31 | WHITESPACE@[39; 40) " " | 31 | WHITESPACE@39..40 " " |
32 | ERROR@[40; 41) | 32 | ERROR@40..41 |
33 | MINUS@[40; 41) "-" | 33 | MINUS@40..41 "-" |
34 | WHITESPACE@[41; 42) " " | 34 | WHITESPACE@41..42 " " |
35 | ERROR@[42; 43) | 35 | ERROR@42..43 |
36 | STAR@[42; 43) "*" | 36 | STAR@42..43 "*" |
37 | WHITESPACE@[43; 48) "\n " | 37 | WHITESPACE@43..48 "\n " |
38 | RECORD_FIELD_DEF@[48; 58) | 38 | RECORD_FIELD_DEF@48..58 |
39 | VISIBILITY@[48; 51) | 39 | VISIBILITY@48..51 |
40 | PUB_KW@[48; 51) "pub" | 40 | PUB_KW@48..51 "pub" |
41 | WHITESPACE@[51; 52) " " | 41 | WHITESPACE@51..52 " " |
42 | NAME@[52; 53) | 42 | NAME@52..53 |
43 | IDENT@[52; 53) "x" | 43 | IDENT@52..53 "x" |
44 | COLON@[53; 54) ":" | 44 | COLON@53..54 ":" |
45 | WHITESPACE@[54; 55) " " | 45 | WHITESPACE@54..55 " " |
46 | PATH_TYPE@[55; 58) | 46 | PATH_TYPE@55..58 |
47 | PATH@[55; 58) | 47 | PATH@55..58 |
48 | PATH_SEGMENT@[55; 58) | 48 | PATH_SEGMENT@55..58 |
49 | NAME_REF@[55; 58) | 49 | NAME_REF@55..58 |
50 | IDENT@[55; 58) "u32" | 50 | IDENT@55..58 "u32" |
51 | COMMA@[58; 59) "," | 51 | COMMA@58..59 "," |
52 | WHITESPACE@[59; 64) "\n " | 52 | WHITESPACE@59..64 "\n " |
53 | RECORD_FIELD_DEF@[64; 70) | 53 | RECORD_FIELD_DEF@64..70 |
54 | NAME@[64; 65) | 54 | NAME@64..65 |
55 | IDENT@[64; 65) "z" | 55 | IDENT@64..65 "z" |
56 | COLON@[65; 66) ":" | 56 | COLON@65..66 ":" |
57 | WHITESPACE@[66; 67) " " | 57 | WHITESPACE@66..67 " " |
58 | PATH_TYPE@[67; 70) | 58 | PATH_TYPE@67..70 |
59 | PATH@[67; 70) | 59 | PATH@67..70 |
60 | PATH_SEGMENT@[67; 70) | 60 | PATH_SEGMENT@67..70 |
61 | NAME_REF@[67; 70) | 61 | NAME_REF@67..70 |
62 | IDENT@[67; 70) "f64" | 62 | IDENT@67..70 "f64" |
63 | COMMA@[70; 71) "," | 63 | COMMA@70..71 "," |
64 | WHITESPACE@[71; 72) "\n" | 64 | WHITESPACE@71..72 "\n" |
65 | R_CURLY@[72; 73) "}" | 65 | R_CURLY@72..73 "}" |
66 | WHITESPACE@[73; 74) "\n" | 66 | WHITESPACE@73..74 "\n" |
67 | error [31; 31): expected field declaration | 67 | error 31..31: expected field declaration |
68 | error [33; 33): expected COMMA | 68 | error 33..33: expected COMMA |
69 | error [38; 38): expected field declaration | 69 | error 38..38: expected field declaration |
70 | error [39; 39): expected COMMA | 70 | error 39..39: expected COMMA |
71 | error [40; 40): expected field declaration | 71 | error 40..40: expected field declaration |
72 | error [41; 41): expected COMMA | 72 | error 41..41: expected COMMA |
73 | error [42; 42): expected field declaration | 73 | error 42..42: expected field declaration |
74 | error [43; 43): expected COMMA | 74 | error 43..43: expected COMMA |
diff --git a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast index c24e478f3..dc3e12091 100644 --- a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast +++ b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.rast | |||
@@ -1,33 +1,33 @@ | |||
1 | SOURCE_FILE@[0; 31) | 1 | SOURCE_FILE@0..31 |
2 | ERROR@[0; 1) | 2 | ERROR@0..1 |
3 | R_CURLY@[0; 1) "}" | 3 | R_CURLY@0..1 "}" |
4 | WHITESPACE@[1; 3) "\n\n" | 4 | WHITESPACE@1..3 "\n\n" |
5 | STRUCT_DEF@[3; 12) | 5 | STRUCT_DEF@3..12 |
6 | STRUCT_KW@[3; 9) "struct" | 6 | STRUCT_KW@3..9 "struct" |
7 | WHITESPACE@[9; 10) " " | 7 | WHITESPACE@9..10 " " |
8 | NAME@[10; 11) | 8 | NAME@10..11 |
9 | IDENT@[10; 11) "S" | 9 | IDENT@10..11 "S" |
10 | SEMICOLON@[11; 12) ";" | 10 | SEMICOLON@11..12 ";" |
11 | WHITESPACE@[12; 14) "\n\n" | 11 | WHITESPACE@12..14 "\n\n" |
12 | ERROR@[14; 15) | 12 | ERROR@14..15 |
13 | R_CURLY@[14; 15) "}" | 13 | R_CURLY@14..15 "}" |
14 | WHITESPACE@[15; 17) "\n\n" | 14 | WHITESPACE@15..17 "\n\n" |
15 | FN_DEF@[17; 27) | 15 | FN_DEF@17..27 |
16 | FN_KW@[17; 19) "fn" | 16 | FN_KW@17..19 "fn" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | NAME@[20; 23) | 18 | NAME@20..23 |
19 | IDENT@[20; 23) "foo" | 19 | IDENT@20..23 "foo" |
20 | PARAM_LIST@[23; 25) | 20 | PARAM_LIST@23..25 |
21 | L_PAREN@[23; 24) "(" | 21 | L_PAREN@23..24 "(" |
22 | R_PAREN@[24; 25) ")" | 22 | R_PAREN@24..25 ")" |
23 | BLOCK_EXPR@[25; 27) | 23 | BLOCK_EXPR@25..27 |
24 | BLOCK@[25; 27) | 24 | BLOCK@25..27 |
25 | L_CURLY@[25; 26) "{" | 25 | L_CURLY@25..26 "{" |
26 | R_CURLY@[26; 27) "}" | 26 | R_CURLY@26..27 "}" |
27 | WHITESPACE@[27; 29) "\n\n" | 27 | WHITESPACE@27..29 "\n\n" |
28 | ERROR@[29; 30) | 28 | ERROR@29..30 |
29 | R_CURLY@[29; 30) "}" | 29 | R_CURLY@29..30 "}" |
30 | WHITESPACE@[30; 31) "\n" | 30 | WHITESPACE@30..31 "\n" |
31 | error [0; 0): unmatched `}` | 31 | error 0..0: unmatched `}` |
32 | error [14; 14): unmatched `}` | 32 | error 14..14: unmatched `}` |
33 | error [29; 29): unmatched `}` | 33 | error 29..29: unmatched `}` |
diff --git a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast index 9f5041ae4..97539fcf2 100644 --- a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.rast | |||
@@ -1,81 +1,81 @@ | |||
1 | SOURCE_FILE@[0; 95) | 1 | SOURCE_FILE@0..95 |
2 | FN_DEF@[0; 12) | 2 | FN_DEF@0..12 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 12) | 11 | BLOCK_EXPR@9..12 |
12 | BLOCK@[9; 12) | 12 | BLOCK@9..12 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) "\n" | 14 | WHITESPACE@10..11 "\n" |
15 | R_CURLY@[11; 12) "}" | 15 | R_CURLY@11..12 "}" |
16 | WHITESPACE@[12; 14) "\n\n" | 16 | WHITESPACE@12..14 "\n\n" |
17 | MACRO_CALL@[14; 19) | 17 | MACRO_CALL@14..19 |
18 | PATH@[14; 17) | 18 | PATH@14..17 |
19 | PATH_SEGMENT@[14; 17) | 19 | PATH_SEGMENT@14..17 |
20 | NAME_REF@[14; 17) | 20 | NAME_REF@14..17 |
21 | IDENT@[14; 17) "bar" | 21 | IDENT@14..17 "bar" |
22 | TOKEN_TREE@[17; 19) | 22 | TOKEN_TREE@17..19 |
23 | L_PAREN@[17; 18) "(" | 23 | L_PAREN@17..18 "(" |
24 | R_PAREN@[18; 19) ")" | 24 | R_PAREN@18..19 ")" |
25 | WHITESPACE@[19; 20) " " | 25 | WHITESPACE@19..20 " " |
26 | ERROR@[20; 80) | 26 | ERROR@20..80 |
27 | L_CURLY@[20; 21) "{" | 27 | L_CURLY@20..21 "{" |
28 | WHITESPACE@[21; 26) "\n " | 28 | WHITESPACE@21..26 "\n " |
29 | IF_EXPR@[26; 78) | 29 | IF_EXPR@26..78 |
30 | IF_KW@[26; 28) "if" | 30 | IF_KW@26..28 "if" |
31 | WHITESPACE@[28; 29) " " | 31 | WHITESPACE@28..29 " " |
32 | CONDITION@[29; 33) | 32 | CONDITION@29..33 |
33 | LITERAL@[29; 33) | 33 | LITERAL@29..33 |
34 | TRUE_KW@[29; 33) "true" | 34 | TRUE_KW@29..33 "true" |
35 | WHITESPACE@[33; 34) " " | 35 | WHITESPACE@33..34 " " |
36 | BLOCK_EXPR@[34; 51) | 36 | BLOCK_EXPR@34..51 |
37 | BLOCK@[34; 51) | 37 | BLOCK@34..51 |
38 | L_CURLY@[34; 35) "{" | 38 | L_CURLY@34..35 "{" |
39 | WHITESPACE@[35; 44) "\n " | 39 | WHITESPACE@35..44 "\n " |
40 | LITERAL@[44; 45) | 40 | LITERAL@44..45 |
41 | INT_NUMBER@[44; 45) "1" | 41 | INT_NUMBER@44..45 "1" |
42 | WHITESPACE@[45; 50) "\n " | 42 | WHITESPACE@45..50 "\n " |
43 | R_CURLY@[50; 51) "}" | 43 | R_CURLY@50..51 "}" |
44 | WHITESPACE@[51; 52) " " | 44 | WHITESPACE@51..52 " " |
45 | ELSE_KW@[52; 56) "else" | 45 | ELSE_KW@52..56 "else" |
46 | WHITESPACE@[56; 57) " " | 46 | WHITESPACE@56..57 " " |
47 | BLOCK_EXPR@[57; 78) | 47 | BLOCK_EXPR@57..78 |
48 | BLOCK@[57; 78) | 48 | BLOCK@57..78 |
49 | L_CURLY@[57; 58) "{" | 49 | L_CURLY@57..58 "{" |
50 | WHITESPACE@[58; 67) "\n " | 50 | WHITESPACE@58..67 "\n " |
51 | BIN_EXPR@[67; 72) | 51 | BIN_EXPR@67..72 |
52 | LITERAL@[67; 68) | 52 | LITERAL@67..68 |
53 | INT_NUMBER@[67; 68) "2" | 53 | INT_NUMBER@67..68 "2" |
54 | WHITESPACE@[68; 69) " " | 54 | WHITESPACE@68..69 " " |
55 | PLUS@[69; 70) "+" | 55 | PLUS@69..70 "+" |
56 | WHITESPACE@[70; 71) " " | 56 | WHITESPACE@70..71 " " |
57 | LITERAL@[71; 72) | 57 | LITERAL@71..72 |
58 | INT_NUMBER@[71; 72) "3" | 58 | INT_NUMBER@71..72 "3" |
59 | WHITESPACE@[72; 77) "\n " | 59 | WHITESPACE@72..77 "\n " |
60 | R_CURLY@[77; 78) "}" | 60 | R_CURLY@77..78 "}" |
61 | WHITESPACE@[78; 79) "\n" | 61 | WHITESPACE@78..79 "\n" |
62 | R_CURLY@[79; 80) "}" | 62 | R_CURLY@79..80 "}" |
63 | WHITESPACE@[80; 82) "\n\n" | 63 | WHITESPACE@80..82 "\n\n" |
64 | FN_DEF@[82; 94) | 64 | FN_DEF@82..94 |
65 | FN_KW@[82; 84) "fn" | 65 | FN_KW@82..84 "fn" |
66 | WHITESPACE@[84; 85) " " | 66 | WHITESPACE@84..85 " " |
67 | NAME@[85; 88) | 67 | NAME@85..88 |
68 | IDENT@[85; 88) "baz" | 68 | IDENT@85..88 "baz" |
69 | PARAM_LIST@[88; 90) | 69 | PARAM_LIST@88..90 |
70 | L_PAREN@[88; 89) "(" | 70 | L_PAREN@88..89 "(" |
71 | R_PAREN@[89; 90) ")" | 71 | R_PAREN@89..90 ")" |
72 | WHITESPACE@[90; 91) " " | 72 | WHITESPACE@90..91 " " |
73 | BLOCK_EXPR@[91; 94) | 73 | BLOCK_EXPR@91..94 |
74 | BLOCK@[91; 94) | 74 | BLOCK@91..94 |
75 | L_CURLY@[91; 92) "{" | 75 | L_CURLY@91..92 "{" |
76 | WHITESPACE@[92; 93) "\n" | 76 | WHITESPACE@92..93 "\n" |
77 | R_CURLY@[93; 94) "}" | 77 | R_CURLY@93..94 "}" |
78 | WHITESPACE@[94; 95) "\n" | 78 | WHITESPACE@94..95 "\n" |
79 | error [17; 17): expected BANG | 79 | error 17..17: expected BANG |
80 | error [19; 19): expected SEMICOLON | 80 | error 19..19: expected SEMICOLON |
81 | error [20; 20): expected an item | 81 | error 20..20: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast index 7ed80477d..aca02ece4 100644 --- a/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast +++ b/crates/ra_syntax/test_data/parser/err/0009_broken_struct_type_parameter.rast | |||
@@ -1,58 +1,58 @@ | |||
1 | SOURCE_FILE@[0; 43) | 1 | SOURCE_FILE@0..43 |
2 | STRUCT_DEF@[0; 11) | 2 | STRUCT_DEF@0..11 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | TYPE_PARAM_LIST@[8; 11) | 7 | TYPE_PARAM_LIST@8..11 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | ERROR@[9; 11) | 9 | ERROR@9..11 |
10 | INT_NUMBER@[9; 11) "90" | 10 | INT_NUMBER@9..11 "90" |
11 | WHITESPACE@[11; 12) " " | 11 | WHITESPACE@11..12 " " |
12 | ERROR@[12; 13) | 12 | ERROR@12..13 |
13 | PLUS@[12; 13) "+" | 13 | PLUS@12..13 "+" |
14 | WHITESPACE@[13; 14) " " | 14 | WHITESPACE@13..14 " " |
15 | ERROR@[14; 15) | 15 | ERROR@14..15 |
16 | INT_NUMBER@[14; 15) "2" | 16 | INT_NUMBER@14..15 "2" |
17 | ERROR@[15; 16) | 17 | ERROR@15..16 |
18 | R_ANGLE@[15; 16) ">" | 18 | R_ANGLE@15..16 ">" |
19 | WHITESPACE@[16; 17) " " | 19 | WHITESPACE@16..17 " " |
20 | ERROR@[17; 31) | 20 | ERROR@17..31 |
21 | L_CURLY@[17; 18) "{" | 21 | L_CURLY@17..18 "{" |
22 | WHITESPACE@[18; 23) "\n " | 22 | WHITESPACE@18..23 "\n " |
23 | EXPR_STMT@[23; 24) | 23 | EXPR_STMT@23..24 |
24 | PATH_EXPR@[23; 24) | 24 | PATH_EXPR@23..24 |
25 | PATH@[23; 24) | 25 | PATH@23..24 |
26 | PATH_SEGMENT@[23; 24) | 26 | PATH_SEGMENT@23..24 |
27 | NAME_REF@[23; 24) | 27 | NAME_REF@23..24 |
28 | IDENT@[23; 24) "f" | 28 | IDENT@23..24 "f" |
29 | EXPR_STMT@[24; 25) | 29 | EXPR_STMT@24..25 |
30 | ERROR@[24; 25) | 30 | ERROR@24..25 |
31 | COLON@[24; 25) ":" | 31 | COLON@24..25 ":" |
32 | WHITESPACE@[25; 26) " " | 32 | WHITESPACE@25..26 " " |
33 | PATH_EXPR@[26; 29) | 33 | PATH_EXPR@26..29 |
34 | PATH@[26; 29) | 34 | PATH@26..29 |
35 | PATH_SEGMENT@[26; 29) | 35 | PATH_SEGMENT@26..29 |
36 | NAME_REF@[26; 29) | 36 | NAME_REF@26..29 |
37 | IDENT@[26; 29) "u32" | 37 | IDENT@26..29 "u32" |
38 | WHITESPACE@[29; 30) "\n" | 38 | WHITESPACE@29..30 "\n" |
39 | R_CURLY@[30; 31) "}" | 39 | R_CURLY@30..31 "}" |
40 | WHITESPACE@[31; 33) "\n\n" | 40 | WHITESPACE@31..33 "\n\n" |
41 | STRUCT_DEF@[33; 42) | 41 | STRUCT_DEF@33..42 |
42 | STRUCT_KW@[33; 39) "struct" | 42 | STRUCT_KW@33..39 "struct" |
43 | WHITESPACE@[39; 40) " " | 43 | WHITESPACE@39..40 " " |
44 | NAME@[40; 41) | 44 | NAME@40..41 |
45 | IDENT@[40; 41) "T" | 45 | IDENT@40..41 "T" |
46 | SEMICOLON@[41; 42) ";" | 46 | SEMICOLON@41..42 ";" |
47 | WHITESPACE@[42; 43) "\n" | 47 | WHITESPACE@42..43 "\n" |
48 | error [9; 9): expected type parameter | 48 | error 9..9: expected type parameter |
49 | error [11; 11): expected COMMA | 49 | error 11..11: expected COMMA |
50 | error [11; 11): expected R_ANGLE | 50 | error 11..11: expected R_ANGLE |
51 | error [11; 11): expected `;`, `{`, or `(` | 51 | error 11..11: expected `;`, `{`, or `(` |
52 | error [12; 12): expected an item | 52 | error 12..12: expected an item |
53 | error [14; 14): expected an item | 53 | error 14..14: expected an item |
54 | error [15; 15): expected an item | 54 | error 15..15: expected an item |
55 | error [17; 17): expected an item | 55 | error 17..17: expected an item |
56 | error [24; 24): expected SEMICOLON | 56 | error 24..24: expected SEMICOLON |
57 | error [24; 24): expected expression | 57 | error 24..24: expected expression |
58 | error [25; 25): expected SEMICOLON | 58 | error 25..25: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast index 5559c3297..e10bb8174 100644 --- a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast +++ b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.rast | |||
@@ -1,45 +1,45 @@ | |||
1 | SOURCE_FILE@[0; 42) | 1 | SOURCE_FILE@0..42 |
2 | FN_DEF@[0; 41) | 2 | FN_DEF@0..41 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 41) | 11 | BLOCK_EXPR@10..41 |
12 | BLOCK@[10; 41) | 12 | BLOCK@10..41 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 24) | 15 | EXPR_STMT@16..24 |
16 | LAMBDA_EXPR@[16; 24) | 16 | LAMBDA_EXPR@16..24 |
17 | PARAM_LIST@[16; 18) | 17 | PARAM_LIST@16..18 |
18 | PIPE@[16; 17) "|" | 18 | PIPE@16..17 "|" |
19 | PIPE@[17; 18) "|" | 19 | PIPE@17..18 "|" |
20 | WHITESPACE@[18; 19) " " | 20 | WHITESPACE@18..19 " " |
21 | RET_TYPE@[19; 24) | 21 | RET_TYPE@19..24 |
22 | THIN_ARROW@[19; 21) "->" | 22 | THIN_ARROW@19..21 "->" |
23 | WHITESPACE@[21; 22) " " | 23 | WHITESPACE@21..22 " " |
24 | TUPLE_TYPE@[22; 24) | 24 | TUPLE_TYPE@22..24 |
25 | L_PAREN@[22; 23) "(" | 25 | L_PAREN@22..23 "(" |
26 | R_PAREN@[23; 24) ")" | 26 | R_PAREN@23..24 ")" |
27 | WHITESPACE@[24; 25) " " | 27 | WHITESPACE@24..25 " " |
28 | EXPR_STMT@[25; 39) | 28 | EXPR_STMT@25..39 |
29 | BLOCK_EXPR@[25; 38) | 29 | BLOCK_EXPR@25..38 |
30 | UNSAFE_KW@[25; 31) "unsafe" | 30 | UNSAFE_KW@25..31 "unsafe" |
31 | WHITESPACE@[31; 32) " " | 31 | WHITESPACE@31..32 " " |
32 | BLOCK@[32; 38) | 32 | BLOCK@32..38 |
33 | L_CURLY@[32; 33) "{" | 33 | L_CURLY@32..33 "{" |
34 | WHITESPACE@[33; 34) " " | 34 | WHITESPACE@33..34 " " |
35 | TUPLE_EXPR@[34; 36) | 35 | TUPLE_EXPR@34..36 |
36 | L_PAREN@[34; 35) "(" | 36 | L_PAREN@34..35 "(" |
37 | R_PAREN@[35; 36) ")" | 37 | R_PAREN@35..36 ")" |
38 | WHITESPACE@[36; 37) " " | 38 | WHITESPACE@36..37 " " |
39 | R_CURLY@[37; 38) "}" | 39 | R_CURLY@37..38 "}" |
40 | SEMICOLON@[38; 39) ";" | 40 | SEMICOLON@38..39 ";" |
41 | WHITESPACE@[39; 40) "\n" | 41 | WHITESPACE@39..40 "\n" |
42 | R_CURLY@[40; 41) "}" | 42 | R_CURLY@40..41 "}" |
43 | WHITESPACE@[41; 42) "\n" | 43 | WHITESPACE@41..42 "\n" |
44 | error [24; 24): expected `{` | 44 | error 24..24: expected `{` |
45 | error [24; 24): expected SEMICOLON | 45 | error 24..24: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast b/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast index 99c212fd6..87c54c32c 100644 --- a/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast +++ b/crates/ra_syntax/test_data/parser/err/0011_extern_struct.rast | |||
@@ -1,13 +1,13 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | ERROR@[0; 6) | 2 | ERROR@0..6 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | STRUCT_DEF@[7; 18) | 6 | STRUCT_DEF@7..18 |
7 | STRUCT_KW@[7; 13) "struct" | 7 | STRUCT_KW@7..13 "struct" |
8 | WHITESPACE@[13; 14) " " | 8 | WHITESPACE@13..14 " " |
9 | NAME@[14; 17) | 9 | NAME@14..17 |
10 | IDENT@[14; 17) "Foo" | 10 | IDENT@14..17 "Foo" |
11 | SEMICOLON@[17; 18) ";" | 11 | SEMICOLON@17..18 ";" |
12 | WHITESPACE@[18; 19) "\n" | 12 | WHITESPACE@18..19 "\n" |
13 | error [6; 6): expected existential, fn, trait or impl | 13 | error 6..6: expected existential, fn, trait or impl |
diff --git a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast index 0a3c0313d..e1e782f5f 100644 --- a/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast +++ b/crates/ra_syntax/test_data/parser/err/0012_broken_lambda.rast | |||
@@ -1,387 +1,387 @@ | |||
1 | SOURCE_FILE@[0; 389) | 1 | SOURCE_FILE@0..389 |
2 | FN_DEF@[0; 389) | 2 | FN_DEF@0..389 |
3 | VISIBILITY@[0; 10) | 3 | VISIBILITY@0..10 |
4 | PUB_KW@[0; 3) | 4 | PUB_KW@0..3 |
5 | L_PAREN@[3; 4) | 5 | L_PAREN@3..4 |
6 | SUPER_KW@[4; 9) | 6 | SUPER_KW@4..9 |
7 | R_PAREN@[9; 10) | 7 | R_PAREN@9..10 |
8 | WHITESPACE@[10; 11) | 8 | WHITESPACE@10..11 |
9 | FN_KW@[11; 13) | 9 | FN_KW@11..13 |
10 | WHITESPACE@[13; 14) | 10 | WHITESPACE@13..14 |
11 | NAME@[14; 21) | 11 | NAME@14..21 |
12 | IDENT@[14; 21) "process" | 12 | IDENT@14..21 "process" |
13 | TYPE_PARAM_LIST@[21; 38) | 13 | TYPE_PARAM_LIST@21..38 |
14 | L_ANGLE@[21; 22) | 14 | L_ANGLE@21..22 |
15 | LIFETIME_PARAM@[22; 24) | 15 | LIFETIME_PARAM@22..24 |
16 | LIFETIME@[22; 24) "'a" | 16 | LIFETIME@22..24 "'a" |
17 | COMMA@[24; 25) | 17 | COMMA@24..25 |
18 | WHITESPACE@[25; 26) | 18 | WHITESPACE@25..26 |
19 | TYPE_PARAM@[26; 37) | 19 | TYPE_PARAM@26..37 |
20 | NAME@[26; 27) | 20 | NAME@26..27 |
21 | IDENT@[26; 27) "S" | 21 | IDENT@26..27 "S" |
22 | COLON@[27; 28) | 22 | COLON@27..28 |
23 | WHITESPACE@[28; 29) | 23 | WHITESPACE@28..29 |
24 | PATH@[29; 37) | 24 | PATH@29..37 |
25 | PATH_SEGMENT@[29; 37) | 25 | PATH_SEGMENT@29..37 |
26 | NAME_REF@[29; 33) | 26 | NAME_REF@29..33 |
27 | IDENT@[29; 33) "Sink" | 27 | IDENT@29..33 "Sink" |
28 | TYPE_ARG_LIST@[33; 37) | 28 | TYPE_ARG_LIST@33..37 |
29 | L_ANGLE@[33; 34) | 29 | L_ANGLE@33..34 |
30 | LIFETIME_ARG@[34; 36) | 30 | LIFETIME_ARG@34..36 |
31 | LIFETIME@[34; 36) "'a" | 31 | LIFETIME@34..36 "'a" |
32 | R_ANGLE@[36; 37) | 32 | R_ANGLE@36..37 |
33 | R_ANGLE@[37; 38) | 33 | R_ANGLE@37..38 |
34 | PARAM_LIST@[38; 93) | 34 | PARAM_LIST@38..93 |
35 | L_PAREN@[38; 39) | 35 | L_PAREN@38..39 |
36 | PARAM@[39; 54) | 36 | PARAM@39..54 |
37 | BIND_PAT@[39; 46) | 37 | BIND_PAT@39..46 |
38 | NAME@[39; 46) | 38 | NAME@39..46 |
39 | IDENT@[39; 46) "builder" | 39 | IDENT@39..46 "builder" |
40 | COLON@[46; 47) | 40 | COLON@46..47 |
41 | WHITESPACE@[47; 48) | 41 | WHITESPACE@47..48 |
42 | REFERENCE_TYPE@[48; 54) | 42 | REFERENCE_TYPE@48..54 |
43 | AMP@[48; 49) | 43 | AMP@48..49 |
44 | MUT_KW@[49; 52) | 44 | MUT_KW@49..52 |
45 | WHITESPACE@[52; 53) | 45 | WHITESPACE@52..53 |
46 | PATH_TYPE@[53; 54) | 46 | PATH_TYPE@53..54 |
47 | PATH@[53; 54) | 47 | PATH@53..54 |
48 | PATH_SEGMENT@[53; 54) | 48 | PATH_SEGMENT@53..54 |
49 | NAME_REF@[53; 54) | 49 | NAME_REF@53..54 |
50 | IDENT@[53; 54) "S" | 50 | IDENT@53..54 "S" |
51 | COMMA@[54; 55) | 51 | COMMA@54..55 |
52 | WHITESPACE@[55; 56) | 52 | WHITESPACE@55..56 |
53 | PARAM@[56; 72) | 53 | PARAM@56..72 |
54 | BIND_PAT@[56; 62) | 54 | BIND_PAT@56..62 |
55 | NAME@[56; 62) | 55 | NAME@56..62 |
56 | IDENT@[56; 62) "tokens" | 56 | IDENT@56..62 "tokens" |
57 | COLON@[62; 63) | 57 | COLON@62..63 |
58 | WHITESPACE@[63; 64) | 58 | WHITESPACE@63..64 |
59 | REFERENCE_TYPE@[64; 72) | 59 | REFERENCE_TYPE@64..72 |
60 | AMP@[64; 65) | 60 | AMP@64..65 |
61 | SLICE_TYPE@[65; 72) | 61 | SLICE_TYPE@65..72 |
62 | L_BRACK@[65; 66) | 62 | L_BRACK@65..66 |
63 | PATH_TYPE@[66; 71) | 63 | PATH_TYPE@66..71 |
64 | PATH@[66; 71) | 64 | PATH@66..71 |
65 | PATH_SEGMENT@[66; 71) | 65 | PATH_SEGMENT@66..71 |
66 | NAME_REF@[66; 71) | 66 | NAME_REF@66..71 |
67 | IDENT@[66; 71) "Token" | 67 | IDENT@66..71 "Token" |
68 | R_BRACK@[71; 72) | 68 | R_BRACK@71..72 |
69 | COMMA@[72; 73) | 69 | COMMA@72..73 |
70 | WHITESPACE@[73; 74) | 70 | WHITESPACE@73..74 |
71 | PARAM@[74; 92) | 71 | PARAM@74..92 |
72 | BIND_PAT@[74; 80) | 72 | BIND_PAT@74..80 |
73 | NAME@[74; 80) | 73 | NAME@74..80 |
74 | IDENT@[74; 80) "events" | 74 | IDENT@74..80 "events" |
75 | COLON@[80; 81) | 75 | COLON@80..81 |
76 | WHITESPACE@[81; 82) | 76 | WHITESPACE@81..82 |
77 | PATH_TYPE@[82; 92) | 77 | PATH_TYPE@82..92 |
78 | PATH@[82; 92) | 78 | PATH@82..92 |
79 | PATH_SEGMENT@[82; 92) | 79 | PATH_SEGMENT@82..92 |
80 | NAME_REF@[82; 85) | 80 | NAME_REF@82..85 |
81 | IDENT@[82; 85) "Vec" | 81 | IDENT@82..85 "Vec" |
82 | TYPE_ARG_LIST@[85; 92) | 82 | TYPE_ARG_LIST@85..92 |
83 | L_ANGLE@[85; 86) | 83 | L_ANGLE@85..86 |
84 | TYPE_ARG@[86; 91) | 84 | TYPE_ARG@86..91 |
85 | PATH_TYPE@[86; 91) | 85 | PATH_TYPE@86..91 |
86 | PATH@[86; 91) | 86 | PATH@86..91 |
87 | PATH_SEGMENT@[86; 91) | 87 | PATH_SEGMENT@86..91 |
88 | NAME_REF@[86; 91) | 88 | NAME_REF@86..91 |
89 | IDENT@[86; 91) "Event" | 89 | IDENT@86..91 "Event" |
90 | R_ANGLE@[91; 92) | 90 | R_ANGLE@91..92 |
91 | R_PAREN@[92; 93) | 91 | R_PAREN@92..93 |
92 | WHITESPACE@[93; 94) | 92 | WHITESPACE@93..94 |
93 | BLOCK_EXPR@[94; 389) | 93 | BLOCK_EXPR@94..389 |
94 | L_CURLY@[94; 95) | 94 | L_CURLY@94..95 |
95 | WHITESPACE@[95; 100) | 95 | WHITESPACE@95..100 |
96 | LET_STMT@[100; 125) | 96 | LET_STMT@100..125 |
97 | LET_KW@[100; 103) | 97 | LET_KW@100..103 |
98 | WHITESPACE@[103; 104) | 98 | WHITESPACE@103..104 |
99 | BIND_PAT@[104; 120) | 99 | BIND_PAT@104..120 |
100 | MUT_KW@[104; 107) | 100 | MUT_KW@104..107 |
101 | WHITESPACE@[107; 108) | 101 | WHITESPACE@107..108 |
102 | NAME@[108; 120) | 102 | NAME@108..120 |
103 | IDENT@[108; 120) "next_tok_idx" | 103 | IDENT@108..120 "next_tok_idx" |
104 | WHITESPACE@[120; 121) | 104 | WHITESPACE@120..121 |
105 | EQ@[121; 122) | 105 | EQ@121..122 |
106 | WHITESPACE@[122; 123) | 106 | WHITESPACE@122..123 |
107 | LITERAL@[123; 124) | 107 | LITERAL@123..124 |
108 | INT_NUMBER@[123; 124) "0" | 108 | INT_NUMBER@123..124 "0" |
109 | SEMICOLON@[124; 125) | 109 | SEMICOLON@124..125 |
110 | WHITESPACE@[125; 130) | 110 | WHITESPACE@125..130 |
111 | LET_STMT@[130; 389) | 111 | LET_STMT@130..389 |
112 | LET_KW@[130; 133) | 112 | LET_KW@130..133 |
113 | WHITESPACE@[133; 134) | 113 | WHITESPACE@133..134 |
114 | BIND_PAT@[134; 140) | 114 | BIND_PAT@134..140 |
115 | NAME@[134; 140) | 115 | NAME@134..140 |
116 | IDENT@[134; 140) "eat_ws" | 116 | IDENT@134..140 "eat_ws" |
117 | WHITESPACE@[140; 141) | 117 | WHITESPACE@140..141 |
118 | EQ@[141; 142) | 118 | EQ@141..142 |
119 | WHITESPACE@[142; 143) | 119 | WHITESPACE@142..143 |
120 | LAMBDA_EXPR@[143; 389) | 120 | LAMBDA_EXPR@143..389 |
121 | PARAM_LIST@[143; 388) | 121 | PARAM_LIST@143..388 |
122 | PIPE@[143; 144) | 122 | PIPE@143..144 |
123 | PARAM@[144; 159) | 123 | PARAM@144..159 |
124 | BIND_PAT@[144; 147) | 124 | BIND_PAT@144..147 |
125 | NAME@[144; 147) | 125 | NAME@144..147 |
126 | IDENT@[144; 147) "idx" | 126 | IDENT@144..147 "idx" |
127 | COLON@[147; 148) | 127 | COLON@147..148 |
128 | WHITESPACE@[148; 149) | 128 | WHITESPACE@148..149 |
129 | REFERENCE_TYPE@[149; 159) | 129 | REFERENCE_TYPE@149..159 |
130 | AMP@[149; 150) | 130 | AMP@149..150 |
131 | MUT_KW@[150; 153) | 131 | MUT_KW@150..153 |
132 | WHITESPACE@[153; 154) | 132 | WHITESPACE@153..154 |
133 | PATH_TYPE@[154; 159) | 133 | PATH_TYPE@154..159 |
134 | PATH@[154; 159) | 134 | PATH@154..159 |
135 | PATH_SEGMENT@[154; 159) | 135 | PATH_SEGMENT@154..159 |
136 | NAME_REF@[154; 159) | 136 | NAME_REF@154..159 |
137 | IDENT@[154; 159) "usize" | 137 | IDENT@154..159 "usize" |
138 | COMMA@[159; 160) | 138 | COMMA@159..160 |
139 | WHITESPACE@[160; 161) | 139 | WHITESPACE@160..161 |
140 | PARAM@[161; 167) | 140 | PARAM@161..167 |
141 | REF_PAT@[161; 167) | 141 | REF_PAT@161..167 |
142 | AMP@[161; 162) | 142 | AMP@161..162 |
143 | MUT_KW@[162; 165) | 143 | MUT_KW@162..165 |
144 | WHITESPACE@[165; 166) | 144 | WHITESPACE@165..166 |
145 | err: `expected pattern` | 145 | err: `expected pattern` |
146 | ERROR@[166; 167) | 146 | ERROR@166..167 |
147 | PIPE@[166; 167) | 147 | PIPE@166..167 |
148 | err: `expected COMMA` | 148 | err: `expected COMMA` |
149 | WHITESPACE@[167; 168) | 149 | WHITESPACE@167..168 |
150 | err: `expected pattern` | 150 | err: `expected pattern` |
151 | PARAM@[168; 169) | 151 | PARAM@168..169 |
152 | ERROR@[168; 169) | 152 | ERROR@168..169 |
153 | L_CURLY@[168; 169) | 153 | L_CURLY@168..169 |
154 | err: `expected COMMA` | 154 | err: `expected COMMA` |
155 | WHITESPACE@[169; 178) | 155 | WHITESPACE@169..178 |
156 | err: `expected pattern` | 156 | err: `expected pattern` |
157 | PARAM@[178; 183) | 157 | PARAM@178..183 |
158 | ERROR@[178; 183) | 158 | ERROR@178..183 |
159 | WHILE_KW@[178; 183) | 159 | WHILE_KW@178..183 |
160 | err: `expected COMMA` | 160 | err: `expected COMMA` |
161 | WHITESPACE@[183; 184) | 161 | WHITESPACE@183..184 |
162 | err: `expected pattern` | 162 | err: `expected pattern` |
163 | PARAM@[184; 187) | 163 | PARAM@184..187 |
164 | ERROR@[184; 187) | 164 | ERROR@184..187 |
165 | LET_KW@[184; 187) | 165 | LET_KW@184..187 |
166 | err: `expected COMMA` | 166 | err: `expected COMMA` |
167 | WHITESPACE@[187; 188) | 167 | WHITESPACE@187..188 |
168 | PARAM@[188; 199) | 168 | PARAM@188..199 |
169 | TUPLE_STRUCT_PAT@[188; 199) | 169 | TUPLE_STRUCT_PAT@188..199 |
170 | PATH@[188; 192) | 170 | PATH@188..192 |
171 | PATH_SEGMENT@[188; 192) | 171 | PATH_SEGMENT@188..192 |
172 | NAME_REF@[188; 192) | 172 | NAME_REF@188..192 |
173 | IDENT@[188; 192) "Some" | 173 | IDENT@188..192 "Some" |
174 | L_PAREN@[192; 193) | 174 | L_PAREN@192..193 |
175 | BIND_PAT@[193; 198) | 175 | BIND_PAT@193..198 |
176 | NAME@[193; 198) | 176 | NAME@193..198 |
177 | IDENT@[193; 198) "token" | 177 | IDENT@193..198 "token" |
178 | R_PAREN@[198; 199) | 178 | R_PAREN@198..199 |
179 | err: `expected COMMA` | 179 | err: `expected COMMA` |
180 | WHITESPACE@[199; 200) | 180 | WHITESPACE@199..200 |
181 | err: `expected pattern` | 181 | err: `expected pattern` |
182 | PARAM@[200; 201) | 182 | PARAM@200..201 |
183 | ERROR@[200; 201) | 183 | ERROR@200..201 |
184 | EQ@[200; 201) | 184 | EQ@200..201 |
185 | err: `expected COMMA` | 185 | err: `expected COMMA` |
186 | WHITESPACE@[201; 202) | 186 | WHITESPACE@201..202 |
187 | PARAM@[202; 208) | 187 | PARAM@202..208 |
188 | BIND_PAT@[202; 208) | 188 | BIND_PAT@202..208 |
189 | NAME@[202; 208) | 189 | NAME@202..208 |
190 | IDENT@[202; 208) "tokens" | 190 | IDENT@202..208 "tokens" |
191 | err: `expected COMMA` | 191 | err: `expected COMMA` |
192 | err: `expected pattern` | 192 | err: `expected pattern` |
193 | PARAM@[208; 209) | 193 | PARAM@208..209 |
194 | ERROR@[208; 209) | 194 | ERROR@208..209 |
195 | DOT@[208; 209) | 195 | DOT@208..209 |
196 | err: `expected COMMA` | 196 | err: `expected COMMA` |
197 | PARAM@[209; 218) | 197 | PARAM@209..218 |
198 | TUPLE_STRUCT_PAT@[209; 218) | 198 | TUPLE_STRUCT_PAT@209..218 |
199 | PATH@[209; 212) | 199 | PATH@209..212 |
200 | PATH_SEGMENT@[209; 212) | 200 | PATH_SEGMENT@209..212 |
201 | NAME_REF@[209; 212) | 201 | NAME_REF@209..212 |
202 | IDENT@[209; 212) "get" | 202 | IDENT@209..212 "get" |
203 | L_PAREN@[212; 213) | 203 | L_PAREN@212..213 |
204 | err: `expected pattern` | 204 | err: `expected pattern` |
205 | ERROR@[213; 214) | 205 | ERROR@213..214 |
206 | STAR@[213; 214) | 206 | STAR@213..214 |
207 | err: `expected COMMA` | 207 | err: `expected COMMA` |
208 | BIND_PAT@[214; 217) | 208 | BIND_PAT@214..217 |
209 | NAME@[214; 217) | 209 | NAME@214..217 |
210 | IDENT@[214; 217) "idx" | 210 | IDENT@214..217 "idx" |
211 | R_PAREN@[217; 218) | 211 | R_PAREN@217..218 |
212 | err: `expected COMMA` | 212 | err: `expected COMMA` |
213 | WHITESPACE@[218; 219) | 213 | WHITESPACE@218..219 |
214 | err: `expected pattern` | 214 | err: `expected pattern` |
215 | PARAM@[219; 220) | 215 | PARAM@219..220 |
216 | ERROR@[219; 220) | 216 | ERROR@219..220 |
217 | L_CURLY@[219; 220) | 217 | L_CURLY@219..220 |
218 | err: `expected COMMA` | 218 | err: `expected COMMA` |
219 | WHITESPACE@[220; 233) | 219 | WHITESPACE@220..233 |
220 | err: `expected pattern` | 220 | err: `expected pattern` |
221 | PARAM@[233; 235) | 221 | PARAM@233..235 |
222 | ERROR@[233; 235) | 222 | ERROR@233..235 |
223 | IF_KW@[233; 235) | 223 | IF_KW@233..235 |
224 | err: `expected COMMA` | 224 | err: `expected COMMA` |
225 | WHITESPACE@[235; 236) | 225 | WHITESPACE@235..236 |
226 | err: `expected pattern` | 226 | err: `expected pattern` |
227 | PARAM@[236; 237) | 227 | PARAM@236..237 |
228 | ERROR@[236; 237) | 228 | ERROR@236..237 |
229 | BANG@[236; 237) | 229 | BANG@236..237 |
230 | err: `expected COMMA` | 230 | err: `expected COMMA` |
231 | PARAM@[237; 242) | 231 | PARAM@237..242 |
232 | BIND_PAT@[237; 242) | 232 | BIND_PAT@237..242 |
233 | NAME@[237; 242) | 233 | NAME@237..242 |
234 | IDENT@[237; 242) "token" | 234 | IDENT@237..242 "token" |
235 | err: `expected COMMA` | 235 | err: `expected COMMA` |
236 | err: `expected pattern` | 236 | err: `expected pattern` |
237 | PARAM@[242; 243) | 237 | PARAM@242..243 |
238 | ERROR@[242; 243) | 238 | ERROR@242..243 |
239 | DOT@[242; 243) | 239 | DOT@242..243 |
240 | err: `expected COMMA` | 240 | err: `expected COMMA` |
241 | PARAM@[243; 247) | 241 | PARAM@243..247 |
242 | BIND_PAT@[243; 247) | 242 | BIND_PAT@243..247 |
243 | NAME@[243; 247) | 243 | NAME@243..247 |
244 | IDENT@[243; 247) "kind" | 244 | IDENT@243..247 "kind" |
245 | err: `expected COMMA` | 245 | err: `expected COMMA` |
246 | err: `expected pattern` | 246 | err: `expected pattern` |
247 | PARAM@[247; 248) | 247 | PARAM@247..248 |
248 | ERROR@[247; 248) | 248 | ERROR@247..248 |
249 | DOT@[247; 248) | 249 | DOT@247..248 |
250 | err: `expected COMMA` | 250 | err: `expected COMMA` |
251 | PARAM@[248; 259) | 251 | PARAM@248..259 |
252 | TUPLE_STRUCT_PAT@[248; 259) | 252 | TUPLE_STRUCT_PAT@248..259 |
253 | PATH@[248; 257) | 253 | PATH@248..257 |
254 | PATH_SEGMENT@[248; 257) | 254 | PATH_SEGMENT@248..257 |
255 | NAME_REF@[248; 257) | 255 | NAME_REF@248..257 |
256 | IDENT@[248; 257) "is_trivia" | 256 | IDENT@248..257 "is_trivia" |
257 | L_PAREN@[257; 258) | 257 | L_PAREN@257..258 |
258 | R_PAREN@[258; 259) | 258 | R_PAREN@258..259 |
259 | err: `expected COMMA` | 259 | err: `expected COMMA` |
260 | WHITESPACE@[259; 260) | 260 | WHITESPACE@259..260 |
261 | err: `expected pattern` | 261 | err: `expected pattern` |
262 | PARAM@[260; 261) | 262 | PARAM@260..261 |
263 | ERROR@[260; 261) | 263 | ERROR@260..261 |
264 | L_CURLY@[260; 261) | 264 | L_CURLY@260..261 |
265 | err: `expected COMMA` | 265 | err: `expected COMMA` |
266 | WHITESPACE@[261; 278) | 266 | WHITESPACE@261..278 |
267 | PARAM@[278; 283) | 267 | PARAM@278..283 |
268 | BIND_PAT@[278; 283) | 268 | BIND_PAT@278..283 |
269 | NAME@[278; 283) | 269 | NAME@278..283 |
270 | IDENT@[278; 283) "break" | 270 | IDENT@278..283 "break" |
271 | err: `expected COMMA` | 271 | err: `expected COMMA` |
272 | err: `expected pattern` | 272 | err: `expected pattern` |
273 | PARAM@[283; 284) | 273 | PARAM@283..284 |
274 | ERROR@[283; 284) | 274 | ERROR@283..284 |
275 | SEMICOLON@[283; 284) | 275 | SEMICOLON@283..284 |
276 | err: `expected COMMA` | 276 | err: `expected COMMA` |
277 | WHITESPACE@[284; 297) | 277 | WHITESPACE@284..297 |
278 | err: `expected pattern` | 278 | err: `expected pattern` |
279 | PARAM@[297; 298) | 279 | PARAM@297..298 |
280 | ERROR@[297; 298) | 280 | ERROR@297..298 |
281 | R_CURLY@[297; 298) | 281 | R_CURLY@297..298 |
282 | err: `expected COMMA` | 282 | err: `expected COMMA` |
283 | WHITESPACE@[298; 311) | 283 | WHITESPACE@298..311 |
284 | PARAM@[311; 318) | 284 | PARAM@311..318 |
285 | BIND_PAT@[311; 318) | 285 | BIND_PAT@311..318 |
286 | NAME@[311; 318) | 286 | NAME@311..318 |
287 | IDENT@[311; 318) "builder" | 287 | IDENT@311..318 "builder" |
288 | err: `expected COMMA` | 288 | err: `expected COMMA` |
289 | err: `expected pattern` | 289 | err: `expected pattern` |
290 | PARAM@[318; 319) | 290 | PARAM@318..319 |
291 | ERROR@[318; 319) | 291 | ERROR@318..319 |
292 | DOT@[318; 319) | 292 | DOT@318..319 |
293 | err: `expected COMMA` | 293 | err: `expected COMMA` |
294 | PARAM@[319; 346) | 294 | PARAM@319..346 |
295 | TUPLE_STRUCT_PAT@[319; 346) | 295 | TUPLE_STRUCT_PAT@319..346 |
296 | PATH@[319; 323) | 296 | PATH@319..323 |
297 | PATH_SEGMENT@[319; 323) | 297 | PATH_SEGMENT@319..323 |
298 | NAME_REF@[319; 323) | 298 | NAME_REF@319..323 |
299 | IDENT@[319; 323) "leaf" | 299 | IDENT@319..323 "leaf" |
300 | L_PAREN@[323; 324) | 300 | L_PAREN@323..324 |
301 | BIND_PAT@[324; 329) | 301 | BIND_PAT@324..329 |
302 | NAME@[324; 329) | 302 | NAME@324..329 |
303 | IDENT@[324; 329) "token" | 303 | IDENT@324..329 "token" |
304 | err: `expected COMMA` | 304 | err: `expected COMMA` |
305 | err: `expected pattern` | 305 | err: `expected pattern` |
306 | ERROR@[329; 330) | 306 | ERROR@329..330 |
307 | DOT@[329; 330) | 307 | DOT@329..330 |
308 | err: `expected COMMA` | 308 | err: `expected COMMA` |
309 | BIND_PAT@[330; 334) | 309 | BIND_PAT@330..334 |
310 | NAME@[330; 334) | 310 | NAME@330..334 |
311 | IDENT@[330; 334) "kind" | 311 | IDENT@330..334 "kind" |
312 | COMMA@[334; 335) | 312 | COMMA@334..335 |
313 | WHITESPACE@[335; 336) | 313 | WHITESPACE@335..336 |
314 | BIND_PAT@[336; 341) | 314 | BIND_PAT@336..341 |
315 | NAME@[336; 341) | 315 | NAME@336..341 |
316 | IDENT@[336; 341) "token" | 316 | IDENT@336..341 "token" |
317 | err: `expected COMMA` | 317 | err: `expected COMMA` |
318 | err: `expected pattern` | 318 | err: `expected pattern` |
319 | ERROR@[341; 342) | 319 | ERROR@341..342 |
320 | DOT@[341; 342) | 320 | DOT@341..342 |
321 | err: `expected COMMA` | 321 | err: `expected COMMA` |
322 | BIND_PAT@[342; 345) | 322 | BIND_PAT@342..345 |
323 | NAME@[342; 345) | 323 | NAME@342..345 |
324 | IDENT@[342; 345) "len" | 324 | IDENT@342..345 "len" |
325 | R_PAREN@[345; 346) | 325 | R_PAREN@345..346 |
326 | err: `expected COMMA` | 326 | err: `expected COMMA` |
327 | err: `expected pattern` | 327 | err: `expected pattern` |
328 | PARAM@[346; 347) | 328 | PARAM@346..347 |
329 | ERROR@[346; 347) | 329 | ERROR@346..347 |
330 | SEMICOLON@[346; 347) | 330 | SEMICOLON@346..347 |
331 | err: `expected COMMA` | 331 | err: `expected COMMA` |
332 | WHITESPACE@[347; 360) | 332 | WHITESPACE@347..360 |
333 | err: `expected pattern` | 333 | err: `expected pattern` |
334 | PARAM@[360; 361) | 334 | PARAM@360..361 |
335 | ERROR@[360; 361) | 335 | ERROR@360..361 |
336 | STAR@[360; 361) | 336 | STAR@360..361 |
337 | err: `expected COMMA` | 337 | err: `expected COMMA` |
338 | PARAM@[361; 364) | 338 | PARAM@361..364 |
339 | BIND_PAT@[361; 364) | 339 | BIND_PAT@361..364 |
340 | NAME@[361; 364) | 340 | NAME@361..364 |
341 | IDENT@[361; 364) "idx" | 341 | IDENT@361..364 "idx" |
342 | err: `expected COMMA` | 342 | err: `expected COMMA` |
343 | WHITESPACE@[364; 365) | 343 | WHITESPACE@364..365 |
344 | err: `expected pattern` | 344 | err: `expected pattern` |
345 | PARAM@[365; 366) | 345 | PARAM@365..366 |
346 | ERROR@[365; 366) | 346 | ERROR@365..366 |
347 | PLUS@[365; 366) | 347 | PLUS@365..366 |
348 | err: `expected COMMA` | 348 | err: `expected COMMA` |
349 | err: `expected pattern` | 349 | err: `expected pattern` |
350 | PARAM@[366; 367) | 350 | PARAM@366..367 |
351 | ERROR@[366; 367) | 351 | ERROR@366..367 |
352 | EQ@[366; 367) | 352 | EQ@366..367 |
353 | err: `expected COMMA` | 353 | err: `expected COMMA` |
354 | WHITESPACE@[367; 368) | 354 | WHITESPACE@367..368 |
355 | PARAM@[368; 369) | 355 | PARAM@368..369 |
356 | LITERAL@[368; 369) | 356 | LITERAL@368..369 |
357 | INT_NUMBER@[368; 369) "1" | 357 | INT_NUMBER@368..369 "1" |
358 | err: `expected COMMA` | 358 | err: `expected COMMA` |
359 | WHITESPACE@[369; 378) | 359 | WHITESPACE@369..378 |
360 | err: `expected pattern` | 360 | err: `expected pattern` |
361 | PARAM@[378; 379) | 361 | PARAM@378..379 |
362 | ERROR@[378; 379) | 362 | ERROR@378..379 |
363 | R_CURLY@[378; 379) | 363 | R_CURLY@378..379 |
364 | err: `expected COMMA` | 364 | err: `expected COMMA` |
365 | WHITESPACE@[379; 384) | 365 | WHITESPACE@379..384 |
366 | err: `expected pattern` | 366 | err: `expected pattern` |
367 | PARAM@[384; 385) | 367 | PARAM@384..385 |
368 | ERROR@[384; 385) | 368 | ERROR@384..385 |
369 | R_CURLY@[384; 385) | 369 | R_CURLY@384..385 |
370 | err: `expected COMMA` | 370 | err: `expected COMMA` |
371 | err: `expected pattern` | 371 | err: `expected pattern` |
372 | PARAM@[385; 386) | 372 | PARAM@385..386 |
373 | ERROR@[385; 386) | 373 | ERROR@385..386 |
374 | SEMICOLON@[385; 386) | 374 | SEMICOLON@385..386 |
375 | err: `expected COMMA` | 375 | err: `expected COMMA` |
376 | WHITESPACE@[386; 387) | 376 | WHITESPACE@386..387 |
377 | err: `expected pattern` | 377 | err: `expected pattern` |
378 | PARAM@[387; 388) | 378 | PARAM@387..388 |
379 | ERROR@[387; 388) | 379 | ERROR@387..388 |
380 | R_CURLY@[387; 388) | 380 | R_CURLY@387..388 |
381 | err: `expected COMMA` | 381 | err: `expected COMMA` |
382 | err: `expected PIPE` | 382 | err: `expected PIPE` |
383 | WHITESPACE@[388; 389) | 383 | WHITESPACE@388..389 |
384 | err: `expected expression` | 384 | err: `expected expression` |
385 | err: `expected SEMI` | 385 | err: `expected SEMI` |
386 | err: `expected R_CURLY` | 386 | err: `expected R_CURLY` |
387 | ERROR@[389; 389) | 387 | ERROR@389..389 |
diff --git a/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast b/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast index cb570dc1c..211e5fd46 100644 --- a/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast +++ b/crates/ra_syntax/test_data/parser/err/0013_invalid_type.rast | |||
@@ -1,89 +1,89 @@ | |||
1 | SOURCE_FILE@[0; 86) | 1 | SOURCE_FILE@0..86 |
2 | STRUCT_DEF@[0; 72) | 2 | STRUCT_DEF@0..72 |
3 | VISIBILITY@[0; 3) | 3 | VISIBILITY@0..3 |
4 | PUB_KW@[0; 3) "pub" | 4 | PUB_KW@0..3 "pub" |
5 | WHITESPACE@[3; 4) " " | 5 | WHITESPACE@3..4 " " |
6 | STRUCT_KW@[4; 10) "struct" | 6 | STRUCT_KW@4..10 "struct" |
7 | WHITESPACE@[10; 11) " " | 7 | WHITESPACE@10..11 " " |
8 | NAME@[11; 16) | 8 | NAME@11..16 |
9 | IDENT@[11; 16) "Cache" | 9 | IDENT@11..16 "Cache" |
10 | TUPLE_FIELD_DEF_LIST@[16; 72) | 10 | TUPLE_FIELD_DEF_LIST@16..72 |
11 | L_PAREN@[16; 17) "(" | 11 | L_PAREN@16..17 "(" |
12 | WHITESPACE@[17; 22) "\n " | 12 | WHITESPACE@17..22 "\n " |
13 | TUPLE_FIELD_DEF@[22; 68) | 13 | TUPLE_FIELD_DEF@22..68 |
14 | PATH_TYPE@[22; 68) | 14 | PATH_TYPE@22..68 |
15 | PATH@[22; 68) | 15 | PATH@22..68 |
16 | PATH_SEGMENT@[22; 68) | 16 | PATH_SEGMENT@22..68 |
17 | NAME_REF@[22; 29) | 17 | NAME_REF@22..29 |
18 | IDENT@[22; 29) "RefCell" | 18 | IDENT@22..29 "RefCell" |
19 | TYPE_ARG_LIST@[29; 68) | 19 | TYPE_ARG_LIST@29..68 |
20 | L_ANGLE@[29; 30) "<" | 20 | L_ANGLE@29..30 "<" |
21 | TYPE_ARG@[30; 68) | 21 | TYPE_ARG@30..68 |
22 | PATH_TYPE@[30; 68) | 22 | PATH_TYPE@30..68 |
23 | PATH@[30; 68) | 23 | PATH@30..68 |
24 | PATH_SEGMENT@[30; 68) | 24 | PATH_SEGMENT@30..68 |
25 | NAME_REF@[30; 37) | 25 | NAME_REF@30..37 |
26 | IDENT@[30; 37) "HashMap" | 26 | IDENT@30..37 "HashMap" |
27 | TYPE_ARG_LIST@[37; 68) | 27 | TYPE_ARG_LIST@37..68 |
28 | L_ANGLE@[37; 38) "<" | 28 | L_ANGLE@37..38 "<" |
29 | WHITESPACE@[38; 47) "\n " | 29 | WHITESPACE@38..47 "\n " |
30 | TYPE_ARG@[47; 53) | 30 | TYPE_ARG@47..53 |
31 | PATH_TYPE@[47; 53) | 31 | PATH_TYPE@47..53 |
32 | PATH@[47; 53) | 32 | PATH@47..53 |
33 | PATH_SEGMENT@[47; 53) | 33 | PATH_SEGMENT@47..53 |
34 | NAME_REF@[47; 53) | 34 | NAME_REF@47..53 |
35 | IDENT@[47; 53) "TypeId" | 35 | IDENT@47..53 "TypeId" |
36 | COMMA@[53; 54) "," | 36 | COMMA@53..54 "," |
37 | WHITESPACE@[54; 63) "\n " | 37 | WHITESPACE@54..63 "\n " |
38 | TYPE_ARG@[63; 68) | 38 | TYPE_ARG@63..68 |
39 | PATH_TYPE@[63; 68) | 39 | PATH_TYPE@63..68 |
40 | PATH@[63; 68) | 40 | PATH@63..68 |
41 | PATH_SEGMENT@[63; 68) | 41 | PATH_SEGMENT@63..68 |
42 | NAME_REF@[63; 66) | 42 | NAME_REF@63..66 |
43 | IDENT@[63; 66) "Box" | 43 | IDENT@63..66 "Box" |
44 | TYPE_ARG_LIST@[66; 68) | 44 | TYPE_ARG_LIST@66..68 |
45 | L_ANGLE@[66; 67) "<" | 45 | L_ANGLE@66..67 "<" |
46 | TYPE_ARG@[67; 68) | 46 | TYPE_ARG@67..68 |
47 | ERROR@[67; 68) | 47 | ERROR@67..68 |
48 | AT@[67; 68) "@" | 48 | AT@67..68 "@" |
49 | WHITESPACE@[68; 69) " " | 49 | WHITESPACE@68..69 " " |
50 | TUPLE_FIELD_DEF@[69; 72) | 50 | TUPLE_FIELD_DEF@69..72 |
51 | PATH_TYPE@[69; 72) | 51 | PATH_TYPE@69..72 |
52 | PATH@[69; 72) | 52 | PATH@69..72 |
53 | PATH_SEGMENT@[69; 72) | 53 | PATH_SEGMENT@69..72 |
54 | NAME_REF@[69; 72) | 54 | NAME_REF@69..72 |
55 | IDENT@[69; 72) "Any" | 55 | IDENT@69..72 "Any" |
56 | ERROR@[72; 72) | 56 | ERROR@72..72 |
57 | ERROR@[72; 73) | 57 | ERROR@72..73 |
58 | R_ANGLE@[72; 73) ">" | 58 | R_ANGLE@72..73 ">" |
59 | ERROR@[73; 74) | 59 | ERROR@73..74 |
60 | COMMA@[73; 74) "," | 60 | COMMA@73..74 "," |
61 | WHITESPACE@[74; 79) "\n " | 61 | WHITESPACE@74..79 "\n " |
62 | ERROR@[79; 80) | 62 | ERROR@79..80 |
63 | R_ANGLE@[79; 80) ">" | 63 | R_ANGLE@79..80 ">" |
64 | ERROR@[80; 81) | 64 | ERROR@80..81 |
65 | R_ANGLE@[80; 81) ">" | 65 | R_ANGLE@80..81 ">" |
66 | WHITESPACE@[81; 82) "\n" | 66 | WHITESPACE@81..82 "\n" |
67 | ERROR@[82; 83) | 67 | ERROR@82..83 |
68 | R_PAREN@[82; 83) ")" | 68 | R_PAREN@82..83 ")" |
69 | ERROR@[83; 84) | 69 | ERROR@83..84 |
70 | SEMICOLON@[83; 84) ";" | 70 | SEMICOLON@83..84 ";" |
71 | WHITESPACE@[84; 86) "\n\n" | 71 | WHITESPACE@84..86 "\n\n" |
72 | error [67; 67): expected type | 72 | error 67..67: expected type |
73 | error [68; 68): expected COMMA | 73 | error 68..68: expected COMMA |
74 | error [68; 68): expected R_ANGLE | 74 | error 68..68: expected R_ANGLE |
75 | error [68; 68): expected COMMA | 75 | error 68..68: expected COMMA |
76 | error [68; 68): expected R_ANGLE | 76 | error 68..68: expected R_ANGLE |
77 | error [68; 68): expected COMMA | 77 | error 68..68: expected COMMA |
78 | error [68; 68): expected R_ANGLE | 78 | error 68..68: expected R_ANGLE |
79 | error [68; 68): expected COMMA | 79 | error 68..68: expected COMMA |
80 | error [72; 72): expected COMMA | 80 | error 72..72: expected COMMA |
81 | error [72; 72): expected a type | 81 | error 72..72: expected a type |
82 | error [72; 72): expected R_PAREN | 82 | error 72..72: expected R_PAREN |
83 | error [72; 72): expected SEMICOLON | 83 | error 72..72: expected SEMICOLON |
84 | error [72; 72): expected an item | 84 | error 72..72: expected an item |
85 | error [73; 73): expected an item | 85 | error 73..73: expected an item |
86 | error [79; 79): expected an item | 86 | error 79..79: expected an item |
87 | error [80; 80): expected an item | 87 | error 80..80: expected an item |
88 | error [82; 82): expected an item | 88 | error 82..82: expected an item |
89 | error [83; 83): expected an item | 89 | error 83..83: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast index a25d641b8..61c361833 100644 --- a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast +++ b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.rast | |||
@@ -1,32 +1,32 @@ | |||
1 | SOURCE_FILE@[0; 23) | 1 | SOURCE_FILE@0..23 |
2 | FN_DEF@[0; 22) | 2 | FN_DEF@0..22 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | TYPE_PARAM_LIST@[6; 9) | 7 | TYPE_PARAM_LIST@6..9 |
8 | L_ANGLE@[6; 7) "<" | 8 | L_ANGLE@6..7 "<" |
9 | TYPE_PARAM@[7; 8) | 9 | TYPE_PARAM@7..8 |
10 | NAME@[7; 8) | 10 | NAME@7..8 |
11 | IDENT@[7; 8) "T" | 11 | IDENT@7..8 "T" |
12 | R_ANGLE@[8; 9) ">" | 12 | R_ANGLE@8..9 ">" |
13 | PARAM_LIST@[9; 11) | 13 | PARAM_LIST@9..11 |
14 | L_PAREN@[9; 10) "(" | 14 | L_PAREN@9..10 "(" |
15 | R_PAREN@[10; 11) ")" | 15 | R_PAREN@10..11 ")" |
16 | WHITESPACE@[11; 12) " " | 16 | WHITESPACE@11..12 " " |
17 | WHERE_CLAUSE@[12; 19) | 17 | WHERE_CLAUSE@12..19 |
18 | WHERE_KW@[12; 17) "where" | 18 | WHERE_KW@12..17 "where" |
19 | WHITESPACE@[17; 18) " " | 19 | WHITESPACE@17..18 " " |
20 | WHERE_PRED@[18; 19) | 20 | WHERE_PRED@18..19 |
21 | PATH_TYPE@[18; 19) | 21 | PATH_TYPE@18..19 |
22 | PATH@[18; 19) | 22 | PATH@18..19 |
23 | PATH_SEGMENT@[18; 19) | 23 | PATH_SEGMENT@18..19 |
24 | NAME_REF@[18; 19) | 24 | NAME_REF@18..19 |
25 | IDENT@[18; 19) "T" | 25 | IDENT@18..19 "T" |
26 | WHITESPACE@[19; 20) " " | 26 | WHITESPACE@19..20 " " |
27 | BLOCK_EXPR@[20; 22) | 27 | BLOCK_EXPR@20..22 |
28 | BLOCK@[20; 22) | 28 | BLOCK@20..22 |
29 | L_CURLY@[20; 21) "{" | 29 | L_CURLY@20..21 "{" |
30 | R_CURLY@[21; 22) "}" | 30 | R_CURLY@21..22 "}" |
31 | WHITESPACE@[22; 23) "\n" | 31 | WHITESPACE@22..23 "\n" |
32 | error [19; 19): expected colon | 32 | error 19..19: expected colon |
diff --git a/crates/ra_syntax/test_data/parser/err/0015_curly_in_params.rast b/crates/ra_syntax/test_data/parser/err/0015_curly_in_params.rast index 36b848be3..b18378cff 100644 --- a/crates/ra_syntax/test_data/parser/err/0015_curly_in_params.rast +++ b/crates/ra_syntax/test_data/parser/err/0015_curly_in_params.rast | |||
@@ -1,24 +1,24 @@ | |||
1 | SOURCE_FILE@[0; 14) | 1 | SOURCE_FILE@0..14 |
2 | FN_DEF@[0; 7) | 2 | FN_DEF@0..7 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 7) | 7 | PARAM_LIST@6..7 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | ERROR@[7; 8) | 9 | ERROR@7..8 |
10 | R_CURLY@[7; 8) "}" | 10 | R_CURLY@7..8 "}" |
11 | ERROR@[8; 9) | 11 | ERROR@8..9 |
12 | R_PAREN@[8; 9) ")" | 12 | R_PAREN@8..9 ")" |
13 | WHITESPACE@[9; 10) " " | 13 | WHITESPACE@9..10 " " |
14 | ERROR@[10; 13) | 14 | ERROR@10..13 |
15 | L_CURLY@[10; 11) "{" | 15 | L_CURLY@10..11 "{" |
16 | WHITESPACE@[11; 12) "\n" | 16 | WHITESPACE@11..12 "\n" |
17 | R_CURLY@[12; 13) "}" | 17 | R_CURLY@12..13 "}" |
18 | WHITESPACE@[13; 14) "\n" | 18 | WHITESPACE@13..14 "\n" |
19 | error [7; 7): expected value parameter | 19 | error 7..7: expected value parameter |
20 | error [7; 7): expected R_PAREN | 20 | error 7..7: expected R_PAREN |
21 | error [7; 7): expected a block | 21 | error 7..7: expected a block |
22 | error [7; 7): unmatched `}` | 22 | error 7..7: unmatched `}` |
23 | error [8; 8): expected an item | 23 | error 8..8: expected an item |
24 | error [10; 10): expected an item | 24 | error 10..10: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast index aca5a3ada..92bb47316 100644 --- a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast +++ b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.rast | |||
@@ -1,44 +1,44 @@ | |||
1 | SOURCE_FILE@[0; 56) | 1 | SOURCE_FILE@0..56 |
2 | FN_DEF@[0; 55) | 2 | FN_DEF@0..55 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 55) | 11 | BLOCK_EXPR@9..55 |
12 | BLOCK@[9; 55) | 12 | BLOCK@9..55 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 38) | 15 | EXPR_STMT@15..38 |
16 | CALL_EXPR@[15; 38) | 16 | CALL_EXPR@15..38 |
17 | PATH_EXPR@[15; 18) | 17 | PATH_EXPR@15..18 |
18 | PATH@[15; 18) | 18 | PATH@15..18 |
19 | PATH_SEGMENT@[15; 18) | 19 | PATH_SEGMENT@15..18 |
20 | NAME_REF@[15; 18) | 20 | NAME_REF@15..18 |
21 | IDENT@[15; 18) "foo" | 21 | IDENT@15..18 "foo" |
22 | ARG_LIST@[18; 38) | 22 | ARG_LIST@18..38 |
23 | L_PAREN@[18; 19) "(" | 23 | L_PAREN@18..19 "(" |
24 | WHITESPACE@[19; 28) "\n " | 24 | WHITESPACE@19..28 "\n " |
25 | LITERAL@[28; 29) | 25 | LITERAL@28..29 |
26 | INT_NUMBER@[28; 29) "1" | 26 | INT_NUMBER@28..29 "1" |
27 | COMMA@[29; 30) "," | 27 | COMMA@29..30 "," |
28 | WHITESPACE@[30; 31) " " | 28 | WHITESPACE@30..31 " " |
29 | LITERAL@[31; 32) | 29 | LITERAL@31..32 |
30 | INT_NUMBER@[31; 32) "2" | 30 | INT_NUMBER@31..32 "2" |
31 | WHITESPACE@[32; 37) "\n " | 31 | WHITESPACE@32..37 "\n " |
32 | R_PAREN@[37; 38) ")" | 32 | R_PAREN@37..38 ")" |
33 | WHITESPACE@[38; 43) "\n " | 33 | WHITESPACE@38..43 "\n " |
34 | EXPR_STMT@[43; 53) | 34 | EXPR_STMT@43..53 |
35 | RETURN_EXPR@[43; 52) | 35 | RETURN_EXPR@43..52 |
36 | RETURN_KW@[43; 49) "return" | 36 | RETURN_KW@43..49 "return" |
37 | WHITESPACE@[49; 50) " " | 37 | WHITESPACE@49..50 " " |
38 | LITERAL@[50; 52) | 38 | LITERAL@50..52 |
39 | INT_NUMBER@[50; 52) "92" | 39 | INT_NUMBER@50..52 "92" |
40 | SEMICOLON@[52; 53) ";" | 40 | SEMICOLON@52..53 ";" |
41 | WHITESPACE@[53; 54) "\n" | 41 | WHITESPACE@53..54 "\n" |
42 | R_CURLY@[54; 55) "}" | 42 | R_CURLY@54..55 "}" |
43 | WHITESPACE@[55; 56) "\n" | 43 | WHITESPACE@55..56 "\n" |
44 | error [38; 38): expected SEMICOLON | 44 | error 38..38: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast index f9f4b9bc2..7bc718302 100644 --- a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast +++ b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.rast | |||
@@ -1,47 +1,47 @@ | |||
1 | SOURCE_FILE@[0; 47) | 1 | SOURCE_FILE@0..47 |
2 | FN_DEF@[0; 46) | 2 | FN_DEF@0..46 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 16) | 7 | PARAM_LIST@6..16 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 15) | 9 | PARAM@7..15 |
10 | BIND_PAT@[7; 10) | 10 | BIND_PAT@7..10 |
11 | NAME@[7; 10) | 11 | NAME@7..10 |
12 | IDENT@[7; 10) "foo" | 12 | IDENT@7..10 "foo" |
13 | COLON@[10; 11) ":" | 13 | COLON@10..11 ":" |
14 | WHITESPACE@[11; 12) " " | 14 | WHITESPACE@11..12 " " |
15 | PATH_TYPE@[12; 15) | 15 | PATH_TYPE@12..15 |
16 | PATH@[12; 15) | 16 | PATH@12..15 |
17 | PATH_SEGMENT@[12; 15) | 17 | PATH_SEGMENT@12..15 |
18 | NAME_REF@[12; 15) | 18 | NAME_REF@12..15 |
19 | IDENT@[12; 15) "i32" | 19 | IDENT@12..15 "i32" |
20 | R_PAREN@[15; 16) ")" | 20 | R_PAREN@15..16 ")" |
21 | WHITESPACE@[16; 17) " " | 21 | WHITESPACE@16..17 " " |
22 | BLOCK_EXPR@[17; 46) | 22 | BLOCK_EXPR@17..46 |
23 | BLOCK@[17; 46) | 23 | BLOCK@17..46 |
24 | L_CURLY@[17; 18) "{" | 24 | L_CURLY@17..18 "{" |
25 | WHITESPACE@[18; 23) "\n " | 25 | WHITESPACE@18..23 "\n " |
26 | LET_STMT@[23; 36) | 26 | LET_STMT@23..36 |
27 | LET_KW@[23; 26) "let" | 27 | LET_KW@23..26 "let" |
28 | WHITESPACE@[26; 27) " " | 28 | WHITESPACE@26..27 " " |
29 | BIND_PAT@[27; 30) | 29 | BIND_PAT@27..30 |
30 | NAME@[27; 30) | 30 | NAME@27..30 |
31 | IDENT@[27; 30) "bar" | 31 | IDENT@27..30 "bar" |
32 | WHITESPACE@[30; 31) " " | 32 | WHITESPACE@30..31 " " |
33 | EQ@[31; 32) "=" | 33 | EQ@31..32 "=" |
34 | WHITESPACE@[32; 33) " " | 34 | WHITESPACE@32..33 " " |
35 | LITERAL@[33; 35) | 35 | LITERAL@33..35 |
36 | INT_NUMBER@[33; 35) "92" | 36 | INT_NUMBER@33..35 "92" |
37 | SEMICOLON@[35; 36) ";" | 37 | SEMICOLON@35..36 ";" |
38 | WHITESPACE@[36; 41) "\n " | 38 | WHITESPACE@36..41 "\n " |
39 | BIN_EXPR@[41; 44) | 39 | BIN_EXPR@41..44 |
40 | LITERAL@[41; 42) | 40 | LITERAL@41..42 |
41 | INT_NUMBER@[41; 42) "1" | 41 | INT_NUMBER@41..42 "1" |
42 | WHITESPACE@[42; 43) " " | 42 | WHITESPACE@42..43 " " |
43 | PLUS@[43; 44) "+" | 43 | PLUS@43..44 "+" |
44 | WHITESPACE@[44; 45) "\n" | 44 | WHITESPACE@44..45 "\n" |
45 | R_CURLY@[45; 46) "}" | 45 | R_CURLY@45..46 "}" |
46 | WHITESPACE@[46; 47) "\n" | 46 | WHITESPACE@46..47 "\n" |
47 | error [44; 44): expected expression | 47 | error 44..44: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast index 9a8f76673..63194f974 100644 --- a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast +++ b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.rast | |||
@@ -1,132 +1,132 @@ | |||
1 | SOURCE_FILE@[0; 183) | 1 | SOURCE_FILE@0..183 |
2 | IMPL_DEF@[0; 182) | 2 | IMPL_DEF@0..182 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 13) | 5 | PATH_TYPE@5..13 |
6 | PATH@[5; 13) | 6 | PATH@5..13 |
7 | PATH_SEGMENT@[5; 13) | 7 | PATH_SEGMENT@5..13 |
8 | NAME_REF@[5; 13) | 8 | NAME_REF@5..13 |
9 | IDENT@[5; 13) "FnScopes" | 9 | IDENT@5..13 "FnScopes" |
10 | WHITESPACE@[13; 14) " " | 10 | WHITESPACE@13..14 " " |
11 | ITEM_LIST@[14; 182) | 11 | ITEM_LIST@14..182 |
12 | L_CURLY@[14; 15) "{" | 12 | L_CURLY@14..15 "{" |
13 | WHITESPACE@[15; 20) "\n " | 13 | WHITESPACE@15..20 "\n " |
14 | FN_DEF@[20; 161) | 14 | FN_DEF@20..161 |
15 | FN_KW@[20; 22) "fn" | 15 | FN_KW@20..22 "fn" |
16 | WHITESPACE@[22; 23) " " | 16 | WHITESPACE@22..23 " " |
17 | NAME@[23; 32) | 17 | NAME@23..32 |
18 | IDENT@[23; 32) "new_scope" | 18 | IDENT@23..32 "new_scope" |
19 | PARAM_LIST@[32; 35) | 19 | PARAM_LIST@32..35 |
20 | L_PAREN@[32; 33) "(" | 20 | L_PAREN@32..33 "(" |
21 | PARAM@[33; 34) | 21 | PARAM@33..34 |
22 | REF_PAT@[33; 34) | 22 | REF_PAT@33..34 |
23 | AMP@[33; 34) "&" | 23 | AMP@33..34 "&" |
24 | R_PAREN@[34; 35) ")" | 24 | R_PAREN@34..35 ")" |
25 | WHITESPACE@[35; 36) " " | 25 | WHITESPACE@35..36 " " |
26 | RET_TYPE@[36; 46) | 26 | RET_TYPE@36..46 |
27 | THIN_ARROW@[36; 38) "->" | 27 | THIN_ARROW@36..38 "->" |
28 | WHITESPACE@[38; 39) " " | 28 | WHITESPACE@38..39 " " |
29 | PATH_TYPE@[39; 46) | 29 | PATH_TYPE@39..46 |
30 | PATH@[39; 46) | 30 | PATH@39..46 |
31 | PATH_SEGMENT@[39; 46) | 31 | PATH_SEGMENT@39..46 |
32 | NAME_REF@[39; 46) | 32 | NAME_REF@39..46 |
33 | IDENT@[39; 46) "ScopeId" | 33 | IDENT@39..46 "ScopeId" |
34 | WHITESPACE@[46; 47) " " | 34 | WHITESPACE@46..47 " " |
35 | BLOCK_EXPR@[47; 161) | 35 | BLOCK_EXPR@47..161 |
36 | BLOCK@[47; 161) | 36 | BLOCK@47..161 |
37 | L_CURLY@[47; 48) "{" | 37 | L_CURLY@47..48 "{" |
38 | WHITESPACE@[48; 57) "\n " | 38 | WHITESPACE@48..57 "\n " |
39 | LET_STMT@[57; 85) | 39 | LET_STMT@57..85 |
40 | LET_KW@[57; 60) "let" | 40 | LET_KW@57..60 "let" |
41 | WHITESPACE@[60; 61) " " | 41 | WHITESPACE@60..61 " " |
42 | BIND_PAT@[61; 64) | 42 | BIND_PAT@61..64 |
43 | NAME@[61; 64) | 43 | NAME@61..64 |
44 | IDENT@[61; 64) "res" | 44 | IDENT@61..64 "res" |
45 | WHITESPACE@[64; 65) " " | 45 | WHITESPACE@64..65 " " |
46 | EQ@[65; 66) "=" | 46 | EQ@65..66 "=" |
47 | WHITESPACE@[66; 67) " " | 47 | WHITESPACE@66..67 " " |
48 | METHOD_CALL_EXPR@[67; 84) | 48 | METHOD_CALL_EXPR@67..84 |
49 | FIELD_EXPR@[67; 78) | 49 | FIELD_EXPR@67..78 |
50 | PATH_EXPR@[67; 71) | 50 | PATH_EXPR@67..71 |
51 | PATH@[67; 71) | 51 | PATH@67..71 |
52 | PATH_SEGMENT@[67; 71) | 52 | PATH_SEGMENT@67..71 |
53 | SELF_KW@[67; 71) "self" | 53 | SELF_KW@67..71 "self" |
54 | DOT@[71; 72) "." | 54 | DOT@71..72 "." |
55 | NAME_REF@[72; 78) | 55 | NAME_REF@72..78 |
56 | IDENT@[72; 78) "scopes" | 56 | IDENT@72..78 "scopes" |
57 | DOT@[78; 79) "." | 57 | DOT@78..79 "." |
58 | NAME_REF@[79; 82) | 58 | NAME_REF@79..82 |
59 | IDENT@[79; 82) "len" | 59 | IDENT@79..82 "len" |
60 | ARG_LIST@[82; 84) | 60 | ARG_LIST@82..84 |
61 | L_PAREN@[82; 83) "(" | 61 | L_PAREN@82..83 "(" |
62 | R_PAREN@[83; 84) ")" | 62 | R_PAREN@83..84 ")" |
63 | SEMICOLON@[84; 85) ";" | 63 | SEMICOLON@84..85 ";" |
64 | WHITESPACE@[85; 94) "\n " | 64 | WHITESPACE@85..94 "\n " |
65 | METHOD_CALL_EXPR@[94; 155) | 65 | METHOD_CALL_EXPR@94..155 |
66 | FIELD_EXPR@[94; 105) | 66 | FIELD_EXPR@94..105 |
67 | PATH_EXPR@[94; 98) | 67 | PATH_EXPR@94..98 |
68 | PATH@[94; 98) | 68 | PATH@94..98 |
69 | PATH_SEGMENT@[94; 98) | 69 | PATH_SEGMENT@94..98 |
70 | SELF_KW@[94; 98) "self" | 70 | SELF_KW@94..98 "self" |
71 | DOT@[98; 99) "." | 71 | DOT@98..99 "." |
72 | NAME_REF@[99; 105) | 72 | NAME_REF@99..105 |
73 | IDENT@[99; 105) "scopes" | 73 | IDENT@99..105 "scopes" |
74 | DOT@[105; 106) "." | 74 | DOT@105..106 "." |
75 | NAME_REF@[106; 110) | 75 | NAME_REF@106..110 |
76 | IDENT@[106; 110) "push" | 76 | IDENT@106..110 "push" |
77 | ARG_LIST@[110; 155) | 77 | ARG_LIST@110..155 |
78 | L_PAREN@[110; 111) "(" | 78 | L_PAREN@110..111 "(" |
79 | RECORD_LIT@[111; 154) | 79 | RECORD_LIT@111..154 |
80 | PATH@[111; 120) | 80 | PATH@111..120 |
81 | PATH_SEGMENT@[111; 120) | 81 | PATH_SEGMENT@111..120 |
82 | NAME_REF@[111; 120) | 82 | NAME_REF@111..120 |
83 | IDENT@[111; 120) "ScopeData" | 83 | IDENT@111..120 "ScopeData" |
84 | WHITESPACE@[120; 121) " " | 84 | WHITESPACE@120..121 " " |
85 | RECORD_FIELD_LIST@[121; 154) | 85 | RECORD_FIELD_LIST@121..154 |
86 | L_CURLY@[121; 122) "{" | 86 | L_CURLY@121..122 "{" |
87 | WHITESPACE@[122; 123) " " | 87 | WHITESPACE@122..123 " " |
88 | RECORD_FIELD@[123; 135) | 88 | RECORD_FIELD@123..135 |
89 | NAME_REF@[123; 129) | 89 | NAME_REF@123..129 |
90 | IDENT@[123; 129) "parent" | 90 | IDENT@123..129 "parent" |
91 | COLON@[129; 130) ":" | 91 | COLON@129..130 ":" |
92 | WHITESPACE@[130; 131) " " | 92 | WHITESPACE@130..131 " " |
93 | PATH_EXPR@[131; 135) | 93 | PATH_EXPR@131..135 |
94 | PATH@[131; 135) | 94 | PATH@131..135 |
95 | PATH_SEGMENT@[131; 135) | 95 | PATH_SEGMENT@131..135 |
96 | NAME_REF@[131; 135) | 96 | NAME_REF@131..135 |
97 | IDENT@[131; 135) "None" | 97 | IDENT@131..135 "None" |
98 | COMMA@[135; 136) "," | 98 | COMMA@135..136 "," |
99 | WHITESPACE@[136; 137) " " | 99 | WHITESPACE@136..137 " " |
100 | RECORD_FIELD@[137; 152) | 100 | RECORD_FIELD@137..152 |
101 | NAME_REF@[137; 144) | 101 | NAME_REF@137..144 |
102 | IDENT@[137; 144) "entries" | 102 | IDENT@137..144 "entries" |
103 | COLON@[144; 145) ":" | 103 | COLON@144..145 ":" |
104 | WHITESPACE@[145; 146) " " | 104 | WHITESPACE@145..146 " " |
105 | MACRO_CALL@[146; 152) | 105 | MACRO_CALL@146..152 |
106 | PATH@[146; 149) | 106 | PATH@146..149 |
107 | PATH_SEGMENT@[146; 149) | 107 | PATH_SEGMENT@146..149 |
108 | NAME_REF@[146; 149) | 108 | NAME_REF@146..149 |
109 | IDENT@[146; 149) "vec" | 109 | IDENT@146..149 "vec" |
110 | BANG@[149; 150) "!" | 110 | BANG@149..150 "!" |
111 | TOKEN_TREE@[150; 152) | 111 | TOKEN_TREE@150..152 |
112 | L_BRACK@[150; 151) "[" | 112 | L_BRACK@150..151 "[" |
113 | R_BRACK@[151; 152) "]" | 113 | R_BRACK@151..152 "]" |
114 | WHITESPACE@[152; 153) " " | 114 | WHITESPACE@152..153 " " |
115 | R_CURLY@[153; 154) "}" | 115 | R_CURLY@153..154 "}" |
116 | R_PAREN@[154; 155) ")" | 116 | R_PAREN@154..155 ")" |
117 | WHITESPACE@[155; 160) "\n " | 117 | WHITESPACE@155..160 "\n " |
118 | R_CURLY@[160; 161) "}" | 118 | R_CURLY@160..161 "}" |
119 | WHITESPACE@[161; 167) "\n\n " | 119 | WHITESPACE@161..167 "\n\n " |
120 | FN_DEF@[167; 180) | 120 | FN_DEF@167..180 |
121 | FN_KW@[167; 169) "fn" | 121 | FN_KW@167..169 "fn" |
122 | WHITESPACE@[169; 170) " " | 122 | WHITESPACE@169..170 " " |
123 | NAME@[170; 180) | 123 | NAME@170..180 |
124 | IDENT@[170; 180) "set_parent" | 124 | IDENT@170..180 "set_parent" |
125 | WHITESPACE@[180; 181) "\n" | 125 | WHITESPACE@180..181 "\n" |
126 | R_CURLY@[181; 182) "}" | 126 | R_CURLY@181..182 "}" |
127 | WHITESPACE@[182; 183) "\n" | 127 | WHITESPACE@182..183 "\n" |
128 | error [34; 34): expected pattern | 128 | error 34..34: expected pattern |
129 | error [34; 34): expected COLON | 129 | error 34..34: expected COLON |
130 | error [34; 34): expected type | 130 | error 34..34: expected type |
131 | error [180; 180): expected function arguments | 131 | error 180..180: expected function arguments |
132 | error [180; 180): expected a block | 132 | error 180..180: expected a block |
diff --git a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast index e283091e1..d20bb60f1 100644 --- a/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0019_let_recover.rast | |||
@@ -1,107 +1,107 @@ | |||
1 | SOURCE_FILE@[0; 139) | 1 | SOURCE_FILE@0..139 |
2 | FN_DEF@[0; 138) | 2 | FN_DEF@0..138 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 138) | 11 | BLOCK_EXPR@9..138 |
12 | BLOCK@[9; 138) | 12 | BLOCK@9..138 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 24) | 15 | LET_STMT@15..24 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | BIND_PAT@[19; 22) | 18 | BIND_PAT@19..22 |
19 | NAME@[19; 22) | 19 | NAME@19..22 |
20 | IDENT@[19; 22) "foo" | 20 | IDENT@19..22 "foo" |
21 | WHITESPACE@[22; 23) " " | 21 | WHITESPACE@22..23 " " |
22 | EQ@[23; 24) "=" | 22 | EQ@23..24 "=" |
23 | WHITESPACE@[24; 29) "\n " | 23 | WHITESPACE@24..29 "\n " |
24 | LET_STMT@[29; 41) | 24 | LET_STMT@29..41 |
25 | LET_KW@[29; 32) "let" | 25 | LET_KW@29..32 "let" |
26 | WHITESPACE@[32; 33) " " | 26 | WHITESPACE@32..33 " " |
27 | BIND_PAT@[33; 36) | 27 | BIND_PAT@33..36 |
28 | NAME@[33; 36) | 28 | NAME@33..36 |
29 | IDENT@[33; 36) "bar" | 29 | IDENT@33..36 "bar" |
30 | WHITESPACE@[36; 37) " " | 30 | WHITESPACE@36..37 " " |
31 | EQ@[37; 38) "=" | 31 | EQ@37..38 "=" |
32 | WHITESPACE@[38; 39) " " | 32 | WHITESPACE@38..39 " " |
33 | LITERAL@[39; 40) | 33 | LITERAL@39..40 |
34 | INT_NUMBER@[39; 40) "1" | 34 | INT_NUMBER@39..40 "1" |
35 | SEMICOLON@[40; 41) ";" | 35 | SEMICOLON@40..41 ";" |
36 | WHITESPACE@[41; 46) "\n " | 36 | WHITESPACE@41..46 "\n " |
37 | LET_STMT@[46; 49) | 37 | LET_STMT@46..49 |
38 | LET_KW@[46; 49) "let" | 38 | LET_KW@46..49 "let" |
39 | WHITESPACE@[49; 54) "\n " | 39 | WHITESPACE@49..54 "\n " |
40 | LET_STMT@[54; 67) | 40 | LET_STMT@54..67 |
41 | LET_KW@[54; 57) "let" | 41 | LET_KW@54..57 "let" |
42 | WHITESPACE@[57; 58) " " | 42 | WHITESPACE@57..58 " " |
43 | BIND_PAT@[58; 61) | 43 | BIND_PAT@58..61 |
44 | NAME@[58; 61) | 44 | NAME@58..61 |
45 | IDENT@[58; 61) "baz" | 45 | IDENT@58..61 "baz" |
46 | WHITESPACE@[61; 62) " " | 46 | WHITESPACE@61..62 " " |
47 | EQ@[62; 63) "=" | 47 | EQ@62..63 "=" |
48 | WHITESPACE@[63; 64) " " | 48 | WHITESPACE@63..64 " " |
49 | LITERAL@[64; 66) | 49 | LITERAL@64..66 |
50 | INT_NUMBER@[64; 66) "92" | 50 | INT_NUMBER@64..66 "92" |
51 | SEMICOLON@[66; 67) ";" | 51 | SEMICOLON@66..67 ";" |
52 | WHITESPACE@[67; 72) "\n " | 52 | WHITESPACE@67..72 "\n " |
53 | LET_STMT@[72; 75) | 53 | LET_STMT@72..75 |
54 | LET_KW@[72; 75) "let" | 54 | LET_KW@72..75 "let" |
55 | WHITESPACE@[75; 80) "\n " | 55 | WHITESPACE@75..80 "\n " |
56 | EXPR_STMT@[80; 90) | 56 | EXPR_STMT@80..90 |
57 | IF_EXPR@[80; 90) | 57 | IF_EXPR@80..90 |
58 | IF_KW@[80; 82) "if" | 58 | IF_KW@80..82 "if" |
59 | WHITESPACE@[82; 83) " " | 59 | WHITESPACE@82..83 " " |
60 | CONDITION@[83; 87) | 60 | CONDITION@83..87 |
61 | LITERAL@[83; 87) | 61 | LITERAL@83..87 |
62 | TRUE_KW@[83; 87) "true" | 62 | TRUE_KW@83..87 "true" |
63 | WHITESPACE@[87; 88) " " | 63 | WHITESPACE@87..88 " " |
64 | BLOCK_EXPR@[88; 90) | 64 | BLOCK_EXPR@88..90 |
65 | BLOCK@[88; 90) | 65 | BLOCK@88..90 |
66 | L_CURLY@[88; 89) "{" | 66 | L_CURLY@88..89 "{" |
67 | R_CURLY@[89; 90) "}" | 67 | R_CURLY@89..90 "}" |
68 | WHITESPACE@[90; 95) "\n " | 68 | WHITESPACE@90..95 "\n " |
69 | LET_STMT@[95; 98) | 69 | LET_STMT@95..98 |
70 | LET_KW@[95; 98) "let" | 70 | LET_KW@95..98 "let" |
71 | WHITESPACE@[98; 103) "\n " | 71 | WHITESPACE@98..103 "\n " |
72 | EXPR_STMT@[103; 116) | 72 | EXPR_STMT@103..116 |
73 | WHILE_EXPR@[103; 116) | 73 | WHILE_EXPR@103..116 |
74 | WHILE_KW@[103; 108) "while" | 74 | WHILE_KW@103..108 "while" |
75 | WHITESPACE@[108; 109) " " | 75 | WHITESPACE@108..109 " " |
76 | CONDITION@[109; 113) | 76 | CONDITION@109..113 |
77 | LITERAL@[109; 113) | 77 | LITERAL@109..113 |
78 | TRUE_KW@[109; 113) "true" | 78 | TRUE_KW@109..113 "true" |
79 | WHITESPACE@[113; 114) " " | 79 | WHITESPACE@113..114 " " |
80 | BLOCK_EXPR@[114; 116) | 80 | BLOCK_EXPR@114..116 |
81 | BLOCK@[114; 116) | 81 | BLOCK@114..116 |
82 | L_CURLY@[114; 115) "{" | 82 | L_CURLY@114..115 "{" |
83 | R_CURLY@[115; 116) "}" | 83 | R_CURLY@115..116 "}" |
84 | WHITESPACE@[116; 121) "\n " | 84 | WHITESPACE@116..121 "\n " |
85 | LET_STMT@[121; 124) | 85 | LET_STMT@121..124 |
86 | LET_KW@[121; 124) "let" | 86 | LET_KW@121..124 "let" |
87 | WHITESPACE@[124; 129) "\n " | 87 | WHITESPACE@124..129 "\n " |
88 | LOOP_EXPR@[129; 136) | 88 | LOOP_EXPR@129..136 |
89 | LOOP_KW@[129; 133) "loop" | 89 | LOOP_KW@129..133 "loop" |
90 | WHITESPACE@[133; 134) " " | 90 | WHITESPACE@133..134 " " |
91 | BLOCK_EXPR@[134; 136) | 91 | BLOCK_EXPR@134..136 |
92 | BLOCK@[134; 136) | 92 | BLOCK@134..136 |
93 | L_CURLY@[134; 135) "{" | 93 | L_CURLY@134..135 "{" |
94 | R_CURLY@[135; 136) "}" | 94 | R_CURLY@135..136 "}" |
95 | WHITESPACE@[136; 137) "\n" | 95 | WHITESPACE@136..137 "\n" |
96 | R_CURLY@[137; 138) "}" | 96 | R_CURLY@137..138 "}" |
97 | WHITESPACE@[138; 139) "\n" | 97 | WHITESPACE@138..139 "\n" |
98 | error [24; 24): expected expression | 98 | error 24..24: expected expression |
99 | error [24; 24): expected SEMICOLON | 99 | error 24..24: expected SEMICOLON |
100 | error [49; 49): expected pattern | 100 | error 49..49: expected pattern |
101 | error [49; 49): expected SEMICOLON | 101 | error 49..49: expected SEMICOLON |
102 | error [75; 75): expected pattern | 102 | error 75..75: expected pattern |
103 | error [75; 75): expected SEMICOLON | 103 | error 75..75: expected SEMICOLON |
104 | error [98; 98): expected pattern | 104 | error 98..98: expected pattern |
105 | error [98; 98): expected SEMICOLON | 105 | error 98..98: expected SEMICOLON |
106 | error [124; 124): expected pattern | 106 | error 124..124: expected pattern |
107 | error [124; 124): expected SEMICOLON | 107 | error 124..124: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast index c11dc23f5..1185f44f9 100644 --- a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | FN_DEF@[0; 2) | 2 | FN_DEF@0..2 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 4) "\n\n" | 4 | WHITESPACE@2..4 "\n\n" |
5 | FN_DEF@[4; 15) | 5 | FN_DEF@4..15 |
6 | FN_KW@[4; 6) "fn" | 6 | FN_KW@4..6 "fn" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | NAME@[7; 10) | 8 | NAME@7..10 |
9 | IDENT@[7; 10) "foo" | 9 | IDENT@7..10 "foo" |
10 | PARAM_LIST@[10; 12) | 10 | PARAM_LIST@10..12 |
11 | L_PAREN@[10; 11) "(" | 11 | L_PAREN@10..11 "(" |
12 | R_PAREN@[11; 12) ")" | 12 | R_PAREN@11..12 ")" |
13 | WHITESPACE@[12; 13) " " | 13 | WHITESPACE@12..13 " " |
14 | BLOCK_EXPR@[13; 15) | 14 | BLOCK_EXPR@13..15 |
15 | BLOCK@[13; 15) | 15 | BLOCK@13..15 |
16 | L_CURLY@[13; 14) "{" | 16 | L_CURLY@13..14 "{" |
17 | R_CURLY@[14; 15) "}" | 17 | R_CURLY@14..15 "}" |
18 | WHITESPACE@[15; 16) "\n" | 18 | WHITESPACE@15..16 "\n" |
19 | error [2; 2): expected a name | 19 | error 2..2: expected a name |
20 | error [2; 2): expected function arguments | 20 | error 2..2: expected function arguments |
21 | error [2; 2): expected a block | 21 | error 2..2: expected a block |
diff --git a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast index ae04122d8..c7bf4caa0 100644 --- a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast +++ b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.rast | |||
@@ -1,35 +1,35 @@ | |||
1 | SOURCE_FILE@[0; 22) | 1 | SOURCE_FILE@0..22 |
2 | FN_DEF@[0; 21) | 2 | FN_DEF@0..21 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 17) | 7 | PARAM_LIST@6..17 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 13) | 9 | PARAM@7..13 |
10 | BIND_PAT@[7; 8) | 10 | BIND_PAT@7..8 |
11 | NAME@[7; 8) | 11 | NAME@7..8 |
12 | IDENT@[7; 8) "x" | 12 | IDENT@7..8 "x" |
13 | COLON@[8; 9) ":" | 13 | COLON@8..9 ":" |
14 | WHITESPACE@[9; 10) " " | 14 | WHITESPACE@9..10 " " |
15 | PATH_TYPE@[10; 13) | 15 | PATH_TYPE@10..13 |
16 | PATH@[10; 13) | 16 | PATH@10..13 |
17 | PATH_SEGMENT@[10; 13) | 17 | PATH_SEGMENT@10..13 |
18 | NAME_REF@[10; 13) | 18 | NAME_REF@10..13 |
19 | IDENT@[10; 13) "i32" | 19 | IDENT@10..13 "i32" |
20 | COMMA@[13; 14) "," | 20 | COMMA@13..14 "," |
21 | WHITESPACE@[14; 15) " " | 21 | WHITESPACE@14..15 " " |
22 | PARAM@[15; 16) | 22 | PARAM@15..16 |
23 | BIND_PAT@[15; 16) | 23 | BIND_PAT@15..16 |
24 | NAME@[15; 16) | 24 | NAME@15..16 |
25 | IDENT@[15; 16) "y" | 25 | IDENT@15..16 "y" |
26 | R_PAREN@[16; 17) ")" | 26 | R_PAREN@16..17 ")" |
27 | WHITESPACE@[17; 18) " " | 27 | WHITESPACE@17..18 " " |
28 | BLOCK_EXPR@[18; 21) | 28 | BLOCK_EXPR@18..21 |
29 | BLOCK@[18; 21) | 29 | BLOCK@18..21 |
30 | L_CURLY@[18; 19) "{" | 30 | L_CURLY@18..19 "{" |
31 | WHITESPACE@[19; 20) "\n" | 31 | WHITESPACE@19..20 "\n" |
32 | R_CURLY@[20; 21) "}" | 32 | R_CURLY@20..21 "}" |
33 | WHITESPACE@[21; 22) "\n" | 33 | WHITESPACE@21..22 "\n" |
34 | error [16; 16): expected COLON | 34 | error 16..16: expected COLON |
35 | error [16; 16): expected type | 35 | error 16..16: expected type |
diff --git a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast index 465749f95..cc0d75cc8 100644 --- a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast +++ b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.rast | |||
@@ -1,183 +1,183 @@ | |||
1 | SOURCE_FILE@[0; 112) | 1 | SOURCE_FILE@0..112 |
2 | FN_DEF@[0; 33) | 2 | FN_DEF@0..33 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | BLOCK_EXPR@[7; 33) | 11 | BLOCK_EXPR@7..33 |
12 | BLOCK@[7; 33) | 12 | BLOCK@7..33 |
13 | L_CURLY@[7; 8) "{" | 13 | L_CURLY@7..8 "{" |
14 | WHITESPACE@[8; 9) " " | 14 | WHITESPACE@8..9 " " |
15 | EXPR_STMT@[9; 17) | 15 | EXPR_STMT@9..17 |
16 | ARRAY_EXPR@[9; 17) | 16 | ARRAY_EXPR@9..17 |
17 | L_BRACK@[9; 10) "[" | 17 | L_BRACK@9..10 "[" |
18 | LITERAL@[10; 11) | 18 | LITERAL@10..11 |
19 | INT_NUMBER@[10; 11) "1" | 19 | INT_NUMBER@10..11 "1" |
20 | COMMA@[11; 12) "," | 20 | COMMA@11..12 "," |
21 | WHITESPACE@[12; 13) " " | 21 | WHITESPACE@12..13 " " |
22 | LITERAL@[13; 14) | 22 | LITERAL@13..14 |
23 | INT_NUMBER@[13; 14) "2" | 23 | INT_NUMBER@13..14 "2" |
24 | COMMA@[14; 15) "," | 24 | COMMA@14..15 "," |
25 | WHITESPACE@[15; 16) " " | 25 | WHITESPACE@15..16 " " |
26 | ERROR@[16; 17) | 26 | ERROR@16..17 |
27 | AT@[16; 17) "@" | 27 | AT@16..17 "@" |
28 | EXPR_STMT@[17; 18) | 28 | EXPR_STMT@17..18 |
29 | ERROR@[17; 18) | 29 | ERROR@17..18 |
30 | COMMA@[17; 18) "," | 30 | COMMA@17..18 "," |
31 | WHITESPACE@[18; 19) " " | 31 | WHITESPACE@18..19 " " |
32 | STRUCT_DEF@[19; 26) | 32 | STRUCT_DEF@19..26 |
33 | STRUCT_KW@[19; 25) "struct" | 33 | STRUCT_KW@19..25 "struct" |
34 | ERROR@[25; 26) | 34 | ERROR@25..26 |
35 | COMMA@[25; 26) "," | 35 | COMMA@25..26 "," |
36 | WHITESPACE@[26; 27) " " | 36 | WHITESPACE@26..27 " " |
37 | LET_STMT@[27; 31) | 37 | LET_STMT@27..31 |
38 | LET_KW@[27; 30) "let" | 38 | LET_KW@27..30 "let" |
39 | ERROR@[30; 31) | 39 | ERROR@30..31 |
40 | R_BRACK@[30; 31) "]" | 40 | R_BRACK@30..31 "]" |
41 | WHITESPACE@[31; 32) " " | 41 | WHITESPACE@31..32 " " |
42 | R_CURLY@[32; 33) "}" | 42 | R_CURLY@32..33 "}" |
43 | WHITESPACE@[33; 34) "\n" | 43 | WHITESPACE@33..34 "\n" |
44 | FN_DEF@[34; 68) | 44 | FN_DEF@34..68 |
45 | FN_KW@[34; 36) "fn" | 45 | FN_KW@34..36 "fn" |
46 | WHITESPACE@[36; 37) " " | 46 | WHITESPACE@36..37 " " |
47 | NAME@[37; 38) | 47 | NAME@37..38 |
48 | IDENT@[37; 38) "b" | 48 | IDENT@37..38 "b" |
49 | PARAM_LIST@[38; 40) | 49 | PARAM_LIST@38..40 |
50 | L_PAREN@[38; 39) "(" | 50 | L_PAREN@38..39 "(" |
51 | R_PAREN@[39; 40) ")" | 51 | R_PAREN@39..40 ")" |
52 | WHITESPACE@[40; 41) " " | 52 | WHITESPACE@40..41 " " |
53 | BLOCK_EXPR@[41; 68) | 53 | BLOCK_EXPR@41..68 |
54 | BLOCK@[41; 68) | 54 | BLOCK@41..68 |
55 | L_CURLY@[41; 42) "{" | 55 | L_CURLY@41..42 "{" |
56 | WHITESPACE@[42; 43) " " | 56 | WHITESPACE@42..43 " " |
57 | EXPR_STMT@[43; 54) | 57 | EXPR_STMT@43..54 |
58 | CALL_EXPR@[43; 54) | 58 | CALL_EXPR@43..54 |
59 | PATH_EXPR@[43; 46) | 59 | PATH_EXPR@43..46 |
60 | PATH@[43; 46) | 60 | PATH@43..46 |
61 | PATH_SEGMENT@[43; 46) | 61 | PATH_SEGMENT@43..46 |
62 | NAME_REF@[43; 46) | 62 | NAME_REF@43..46 |
63 | IDENT@[43; 46) "foo" | 63 | IDENT@43..46 "foo" |
64 | ARG_LIST@[46; 54) | 64 | ARG_LIST@46..54 |
65 | L_PAREN@[46; 47) "(" | 65 | L_PAREN@46..47 "(" |
66 | LITERAL@[47; 48) | 66 | LITERAL@47..48 |
67 | INT_NUMBER@[47; 48) "1" | 67 | INT_NUMBER@47..48 "1" |
68 | COMMA@[48; 49) "," | 68 | COMMA@48..49 "," |
69 | WHITESPACE@[49; 50) " " | 69 | WHITESPACE@49..50 " " |
70 | LITERAL@[50; 51) | 70 | LITERAL@50..51 |
71 | INT_NUMBER@[50; 51) "2" | 71 | INT_NUMBER@50..51 "2" |
72 | COMMA@[51; 52) "," | 72 | COMMA@51..52 "," |
73 | WHITESPACE@[52; 53) " " | 73 | WHITESPACE@52..53 " " |
74 | ERROR@[53; 54) | 74 | ERROR@53..54 |
75 | AT@[53; 54) "@" | 75 | AT@53..54 "@" |
76 | EXPR_STMT@[54; 55) | 76 | EXPR_STMT@54..55 |
77 | ERROR@[54; 55) | 77 | ERROR@54..55 |
78 | COMMA@[54; 55) "," | 78 | COMMA@54..55 "," |
79 | WHITESPACE@[55; 56) " " | 79 | WHITESPACE@55..56 " " |
80 | IMPL_DEF@[56; 60) | 80 | IMPL_DEF@56..60 |
81 | IMPL_KW@[56; 60) "impl" | 81 | IMPL_KW@56..60 "impl" |
82 | EXPR_STMT@[60; 61) | 82 | EXPR_STMT@60..61 |
83 | ERROR@[60; 61) | 83 | ERROR@60..61 |
84 | COMMA@[60; 61) "," | 84 | COMMA@60..61 "," |
85 | WHITESPACE@[61; 62) " " | 85 | WHITESPACE@61..62 " " |
86 | LET_STMT@[62; 65) | 86 | LET_STMT@62..65 |
87 | LET_KW@[62; 65) "let" | 87 | LET_KW@62..65 "let" |
88 | ERROR@[65; 66) | 88 | ERROR@65..66 |
89 | R_PAREN@[65; 66) ")" | 89 | R_PAREN@65..66 ")" |
90 | WHITESPACE@[66; 67) " " | 90 | WHITESPACE@66..67 " " |
91 | R_CURLY@[67; 68) "}" | 91 | R_CURLY@67..68 "}" |
92 | WHITESPACE@[68; 69) "\n" | 92 | WHITESPACE@68..69 "\n" |
93 | FN_DEF@[69; 111) | 93 | FN_DEF@69..111 |
94 | FN_KW@[69; 71) "fn" | 94 | FN_KW@69..71 "fn" |
95 | WHITESPACE@[71; 72) " " | 95 | WHITESPACE@71..72 " " |
96 | NAME@[72; 73) | 96 | NAME@72..73 |
97 | IDENT@[72; 73) "c" | 97 | IDENT@72..73 "c" |
98 | PARAM_LIST@[73; 75) | 98 | PARAM_LIST@73..75 |
99 | L_PAREN@[73; 74) "(" | 99 | L_PAREN@73..74 "(" |
100 | R_PAREN@[74; 75) ")" | 100 | R_PAREN@74..75 ")" |
101 | WHITESPACE@[75; 76) " " | 101 | WHITESPACE@75..76 " " |
102 | BLOCK_EXPR@[76; 111) | 102 | BLOCK_EXPR@76..111 |
103 | BLOCK@[76; 111) | 103 | BLOCK@76..111 |
104 | L_CURLY@[76; 77) "{" | 104 | L_CURLY@76..77 "{" |
105 | WHITESPACE@[77; 78) " " | 105 | WHITESPACE@77..78 " " |
106 | EXPR_STMT@[78; 93) | 106 | EXPR_STMT@78..93 |
107 | METHOD_CALL_EXPR@[78; 93) | 107 | METHOD_CALL_EXPR@78..93 |
108 | PATH_EXPR@[78; 81) | 108 | PATH_EXPR@78..81 |
109 | PATH@[78; 81) | 109 | PATH@78..81 |
110 | PATH_SEGMENT@[78; 81) | 110 | PATH_SEGMENT@78..81 |
111 | NAME_REF@[78; 81) | 111 | NAME_REF@78..81 |
112 | IDENT@[78; 81) "foo" | 112 | IDENT@78..81 "foo" |
113 | DOT@[81; 82) "." | 113 | DOT@81..82 "." |
114 | NAME_REF@[82; 85) | 114 | NAME_REF@82..85 |
115 | IDENT@[82; 85) "bar" | 115 | IDENT@82..85 "bar" |
116 | ARG_LIST@[85; 93) | 116 | ARG_LIST@85..93 |
117 | L_PAREN@[85; 86) "(" | 117 | L_PAREN@85..86 "(" |
118 | LITERAL@[86; 87) | 118 | LITERAL@86..87 |
119 | INT_NUMBER@[86; 87) "1" | 119 | INT_NUMBER@86..87 "1" |
120 | COMMA@[87; 88) "," | 120 | COMMA@87..88 "," |
121 | WHITESPACE@[88; 89) " " | 121 | WHITESPACE@88..89 " " |
122 | LITERAL@[89; 90) | 122 | LITERAL@89..90 |
123 | INT_NUMBER@[89; 90) "2" | 123 | INT_NUMBER@89..90 "2" |
124 | COMMA@[90; 91) "," | 124 | COMMA@90..91 "," |
125 | WHITESPACE@[91; 92) " " | 125 | WHITESPACE@91..92 " " |
126 | ERROR@[92; 93) | 126 | ERROR@92..93 |
127 | AT@[92; 93) "@" | 127 | AT@92..93 "@" |
128 | EXPR_STMT@[93; 94) | 128 | EXPR_STMT@93..94 |
129 | ERROR@[93; 94) | 129 | ERROR@93..94 |
130 | COMMA@[93; 94) "," | 130 | COMMA@93..94 "," |
131 | WHITESPACE@[94; 95) " " | 131 | WHITESPACE@94..95 " " |
132 | EXPR_STMT@[95; 96) | 132 | EXPR_STMT@95..96 |
133 | ERROR@[95; 96) | 133 | ERROR@95..96 |
134 | R_BRACK@[95; 96) "]" | 134 | R_BRACK@95..96 "]" |
135 | EXPR_STMT@[96; 97) | 135 | EXPR_STMT@96..97 |
136 | ERROR@[96; 97) | 136 | ERROR@96..97 |
137 | COMMA@[96; 97) "," | 137 | COMMA@96..97 "," |
138 | WHITESPACE@[97; 98) " " | 138 | WHITESPACE@97..98 " " |
139 | TRAIT_DEF@[98; 104) | 139 | TRAIT_DEF@98..104 |
140 | TRAIT_KW@[98; 103) "trait" | 140 | TRAIT_KW@98..103 "trait" |
141 | ERROR@[103; 104) | 141 | ERROR@103..104 |
142 | COMMA@[103; 104) "," | 142 | COMMA@103..104 "," |
143 | WHITESPACE@[104; 105) " " | 143 | WHITESPACE@104..105 " " |
144 | LET_STMT@[105; 108) | 144 | LET_STMT@105..108 |
145 | LET_KW@[105; 108) "let" | 145 | LET_KW@105..108 "let" |
146 | ERROR@[108; 109) | 146 | ERROR@108..109 |
147 | R_PAREN@[108; 109) ")" | 147 | R_PAREN@108..109 ")" |
148 | WHITESPACE@[109; 110) " " | 148 | WHITESPACE@109..110 " " |
149 | R_CURLY@[110; 111) "}" | 149 | R_CURLY@110..111 "}" |
150 | WHITESPACE@[111; 112) "\n" | 150 | WHITESPACE@111..112 "\n" |
151 | error [16; 16): expected expression | 151 | error 16..16: expected expression |
152 | error [17; 17): expected R_BRACK | 152 | error 17..17: expected R_BRACK |
153 | error [17; 17): expected SEMICOLON | 153 | error 17..17: expected SEMICOLON |
154 | error [17; 17): expected expression | 154 | error 17..17: expected expression |
155 | error [18; 18): expected SEMICOLON | 155 | error 18..18: expected SEMICOLON |
156 | error [25; 25): expected a name | 156 | error 25..25: expected a name |
157 | error [26; 26): expected `;`, `{`, or `(` | 157 | error 26..26: expected `;`, `{`, or `(` |
158 | error [30; 30): expected pattern | 158 | error 30..30: expected pattern |
159 | error [31; 31): expected SEMICOLON | 159 | error 31..31: expected SEMICOLON |
160 | error [53; 53): expected expression | 160 | error 53..53: expected expression |
161 | error [54; 54): expected SEMICOLON | 161 | error 54..54: expected SEMICOLON |
162 | error [54; 54): expected expression | 162 | error 54..54: expected expression |
163 | error [55; 55): expected SEMICOLON | 163 | error 55..55: expected SEMICOLON |
164 | error [60; 60): expected type | 164 | error 60..60: expected type |
165 | error [60; 60): expected `{` | 165 | error 60..60: expected `{` |
166 | error [60; 60): expected expression | 166 | error 60..60: expected expression |
167 | error [61; 61): expected SEMICOLON | 167 | error 61..61: expected SEMICOLON |
168 | error [65; 65): expected pattern | 168 | error 65..65: expected pattern |
169 | error [65; 65): expected SEMICOLON | 169 | error 65..65: expected SEMICOLON |
170 | error [65; 65): expected expression | 170 | error 65..65: expected expression |
171 | error [92; 92): expected expression | 171 | error 92..92: expected expression |
172 | error [93; 93): expected SEMICOLON | 172 | error 93..93: expected SEMICOLON |
173 | error [93; 93): expected expression | 173 | error 93..93: expected expression |
174 | error [94; 94): expected SEMICOLON | 174 | error 94..94: expected SEMICOLON |
175 | error [95; 95): expected expression | 175 | error 95..95: expected expression |
176 | error [96; 96): expected SEMICOLON | 176 | error 96..96: expected SEMICOLON |
177 | error [96; 96): expected expression | 177 | error 96..96: expected expression |
178 | error [97; 97): expected SEMICOLON | 178 | error 97..97: expected SEMICOLON |
179 | error [103; 103): expected a name | 179 | error 103..103: expected a name |
180 | error [104; 104): expected `{` | 180 | error 104..104: expected `{` |
181 | error [108; 108): expected pattern | 181 | error 108..108: expected pattern |
182 | error [108; 108): expected SEMICOLON | 182 | error 108..108: expected SEMICOLON |
183 | error [108; 108): expected expression | 183 | error 108..108: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast index 97abe9510..c37594146 100644 --- a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast +++ b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.rast | |||
@@ -1,44 +1,44 @@ | |||
1 | SOURCE_FILE@[0; 94) | 1 | SOURCE_FILE@0..94 |
2 | FN_DEF@[0; 55) | 2 | FN_DEF@0..55 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 55) | 11 | BLOCK_EXPR@10..55 |
12 | BLOCK@[10; 55) | 12 | BLOCK@10..55 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | MACRO_CALL@[16; 49) | 15 | MACRO_CALL@16..49 |
16 | PATH@[16; 19) | 16 | PATH@16..19 |
17 | PATH_SEGMENT@[16; 19) | 17 | PATH_SEGMENT@16..19 |
18 | NAME_REF@[16; 19) | 18 | NAME_REF@16..19 |
19 | IDENT@[16; 19) "foo" | 19 | IDENT@16..19 "foo" |
20 | BANG@[19; 20) "!" | 20 | BANG@19..20 "!" |
21 | WHITESPACE@[20; 21) " " | 21 | WHITESPACE@20..21 " " |
22 | TOKEN_TREE@[21; 49) | 22 | TOKEN_TREE@21..49 |
23 | L_PAREN@[21; 22) "(" | 23 | L_PAREN@21..22 "(" |
24 | WHITESPACE@[22; 31) "\n " | 24 | WHITESPACE@22..31 "\n " |
25 | IDENT@[31; 34) "bar" | 25 | IDENT@31..34 "bar" |
26 | COMMA@[34; 35) "," | 26 | COMMA@34..35 "," |
27 | WHITESPACE@[35; 36) " " | 27 | WHITESPACE@35..36 " " |
28 | STRING@[36; 41) "\"baz\"" | 28 | STRING@36..41 "\"baz\"" |
29 | COMMA@[41; 42) "," | 29 | COMMA@41..42 "," |
30 | WHITESPACE@[42; 43) " " | 30 | WHITESPACE@42..43 " " |
31 | INT_NUMBER@[43; 44) "1" | 31 | INT_NUMBER@43..44 "1" |
32 | COMMA@[44; 45) "," | 32 | COMMA@44..45 "," |
33 | WHITESPACE@[45; 46) " " | 33 | WHITESPACE@45..46 " " |
34 | FLOAT_NUMBER@[46; 49) "2.0" | 34 | FLOAT_NUMBER@46..49 "2.0" |
35 | WHITESPACE@[49; 54) "\n " | 35 | WHITESPACE@49..54 "\n " |
36 | R_CURLY@[54; 55) "}" | 36 | R_CURLY@54..55 "}" |
37 | WHITESPACE@[55; 56) " " | 37 | WHITESPACE@55..56 " " |
38 | COMMENT@[56; 91) "//~ ERROR incorrect c ..." | 38 | COMMENT@56..91 "//~ ERROR incorrect c ..." |
39 | WHITESPACE@[91; 92) "\n" | 39 | WHITESPACE@91..92 "\n" |
40 | ERROR@[92; 93) | 40 | ERROR@92..93 |
41 | R_CURLY@[92; 93) "}" | 41 | R_CURLY@92..93 "}" |
42 | WHITESPACE@[93; 94) "\n" | 42 | WHITESPACE@93..94 "\n" |
43 | error [49; 49): unmatched `}` | 43 | error 49..49: unmatched `}` |
44 | error [92; 92): unmatched `}` | 44 | error 92..92: unmatched `}` |
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast index a3cf3e60a..4296355f2 100644 --- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast +++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.rast | |||
@@ -1,321 +1,321 @@ | |||
1 | SOURCE_FILE@[0; 240) | 1 | SOURCE_FILE@0..240 |
2 | FN_DEF@[0; 53) | 2 | FN_DEF@0..53 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "f" | 6 | IDENT@3..4 "f" |
7 | TYPE_PARAM_LIST@[4; 48) | 7 | TYPE_PARAM_LIST@4..48 |
8 | L_ANGLE@[4; 5) "<" | 8 | L_ANGLE@4..5 "<" |
9 | TYPE_PARAM@[5; 47) | 9 | TYPE_PARAM@5..47 |
10 | NAME@[5; 6) | 10 | NAME@5..6 |
11 | IDENT@[5; 6) "T" | 11 | IDENT@5..6 "T" |
12 | COLON@[6; 7) ":" | 12 | COLON@6..7 ":" |
13 | WHITESPACE@[7; 8) " " | 13 | WHITESPACE@7..8 " " |
14 | TYPE_BOUND_LIST@[8; 47) | 14 | TYPE_BOUND_LIST@8..47 |
15 | TYPE_BOUND@[8; 14) | 15 | TYPE_BOUND@8..14 |
16 | L_PAREN@[8; 9) "(" | 16 | L_PAREN@8..9 "(" |
17 | PATH_TYPE@[9; 13) | 17 | PATH_TYPE@9..13 |
18 | PATH@[9; 13) | 18 | PATH@9..13 |
19 | PATH_SEGMENT@[9; 13) | 19 | PATH_SEGMENT@9..13 |
20 | NAME_REF@[9; 13) | 20 | NAME_REF@9..13 |
21 | IDENT@[9; 13) "Copy" | 21 | IDENT@9..13 "Copy" |
22 | R_PAREN@[13; 14) ")" | 22 | R_PAREN@13..14 ")" |
23 | WHITESPACE@[14; 15) " " | 23 | WHITESPACE@14..15 " " |
24 | PLUS@[15; 16) "+" | 24 | PLUS@15..16 "+" |
25 | WHITESPACE@[16; 17) " " | 25 | WHITESPACE@16..17 " " |
26 | TYPE_BOUND@[17; 25) | 26 | TYPE_BOUND@17..25 |
27 | L_PAREN@[17; 18) "(" | 27 | L_PAREN@17..18 "(" |
28 | QUESTION@[18; 19) "?" | 28 | QUESTION@18..19 "?" |
29 | PATH_TYPE@[19; 24) | 29 | PATH_TYPE@19..24 |
30 | PATH@[19; 24) | 30 | PATH@19..24 |
31 | PATH_SEGMENT@[19; 24) | 31 | PATH_SEGMENT@19..24 |
32 | NAME_REF@[19; 24) | 32 | NAME_REF@19..24 |
33 | IDENT@[19; 24) "Sized" | 33 | IDENT@19..24 "Sized" |
34 | R_PAREN@[24; 25) ")" | 34 | R_PAREN@24..25 ")" |
35 | WHITESPACE@[25; 26) " " | 35 | WHITESPACE@25..26 " " |
36 | PLUS@[26; 27) "+" | 36 | PLUS@26..27 "+" |
37 | WHITESPACE@[27; 28) " " | 37 | WHITESPACE@27..28 " " |
38 | TYPE_BOUND@[28; 47) | 38 | TYPE_BOUND@28..47 |
39 | L_PAREN@[28; 29) "(" | 39 | L_PAREN@28..29 "(" |
40 | FOR_TYPE@[29; 46) | 40 | FOR_TYPE@29..46 |
41 | FOR_KW@[29; 32) "for" | 41 | FOR_KW@29..32 "for" |
42 | TYPE_PARAM_LIST@[32; 36) | 42 | TYPE_PARAM_LIST@32..36 |
43 | L_ANGLE@[32; 33) "<" | 43 | L_ANGLE@32..33 "<" |
44 | LIFETIME_PARAM@[33; 35) | 44 | LIFETIME_PARAM@33..35 |
45 | LIFETIME@[33; 35) "\'a" | 45 | LIFETIME@33..35 "\'a" |
46 | R_ANGLE@[35; 36) ">" | 46 | R_ANGLE@35..36 ">" |
47 | WHITESPACE@[36; 37) " " | 47 | WHITESPACE@36..37 " " |
48 | PATH_TYPE@[37; 46) | 48 | PATH_TYPE@37..46 |
49 | PATH@[37; 46) | 49 | PATH@37..46 |
50 | PATH_SEGMENT@[37; 46) | 50 | PATH_SEGMENT@37..46 |
51 | NAME_REF@[37; 42) | 51 | NAME_REF@37..42 |
52 | IDENT@[37; 42) "Trait" | 52 | IDENT@37..42 "Trait" |
53 | TYPE_ARG_LIST@[42; 46) | 53 | TYPE_ARG_LIST@42..46 |
54 | L_ANGLE@[42; 43) "<" | 54 | L_ANGLE@42..43 "<" |
55 | LIFETIME_ARG@[43; 45) | 55 | LIFETIME_ARG@43..45 |
56 | LIFETIME@[43; 45) "\'a" | 56 | LIFETIME@43..45 "\'a" |
57 | R_ANGLE@[45; 46) ">" | 57 | R_ANGLE@45..46 ">" |
58 | R_PAREN@[46; 47) ")" | 58 | R_PAREN@46..47 ")" |
59 | R_ANGLE@[47; 48) ">" | 59 | R_ANGLE@47..48 ">" |
60 | PARAM_LIST@[48; 50) | 60 | PARAM_LIST@48..50 |
61 | L_PAREN@[48; 49) "(" | 61 | L_PAREN@48..49 "(" |
62 | R_PAREN@[49; 50) ")" | 62 | R_PAREN@49..50 ")" |
63 | WHITESPACE@[50; 51) " " | 63 | WHITESPACE@50..51 " " |
64 | BLOCK_EXPR@[51; 53) | 64 | BLOCK_EXPR@51..53 |
65 | BLOCK@[51; 53) | 65 | BLOCK@51..53 |
66 | L_CURLY@[51; 52) "{" | 66 | L_CURLY@51..52 "{" |
67 | R_CURLY@[52; 53) "}" | 67 | R_CURLY@52..53 "}" |
68 | WHITESPACE@[53; 55) "\n\n" | 68 | WHITESPACE@53..55 "\n\n" |
69 | FN_DEF@[55; 239) | 69 | FN_DEF@55..239 |
70 | FN_KW@[55; 57) "fn" | 70 | FN_KW@55..57 "fn" |
71 | WHITESPACE@[57; 58) " " | 71 | WHITESPACE@57..58 " " |
72 | NAME@[58; 62) | 72 | NAME@58..62 |
73 | IDENT@[58; 62) "main" | 73 | IDENT@58..62 "main" |
74 | PARAM_LIST@[62; 64) | 74 | PARAM_LIST@62..64 |
75 | L_PAREN@[62; 63) "(" | 75 | L_PAREN@62..63 "(" |
76 | R_PAREN@[63; 64) ")" | 76 | R_PAREN@63..64 ")" |
77 | WHITESPACE@[64; 65) " " | 77 | WHITESPACE@64..65 " " |
78 | BLOCK_EXPR@[65; 239) | 78 | BLOCK_EXPR@65..239 |
79 | BLOCK@[65; 239) | 79 | BLOCK@65..239 |
80 | L_CURLY@[65; 66) "{" | 80 | L_CURLY@65..66 "{" |
81 | WHITESPACE@[66; 71) "\n " | 81 | WHITESPACE@66..71 "\n " |
82 | LET_STMT@[71; 121) | 82 | LET_STMT@71..121 |
83 | LET_KW@[71; 74) "let" | 83 | LET_KW@71..74 "let" |
84 | WHITESPACE@[74; 75) " " | 84 | WHITESPACE@74..75 " " |
85 | PLACEHOLDER_PAT@[75; 76) | 85 | PLACEHOLDER_PAT@75..76 |
86 | UNDERSCORE@[75; 76) "_" | 86 | UNDERSCORE@75..76 "_" |
87 | COLON@[76; 77) ":" | 87 | COLON@76..77 ":" |
88 | WHITESPACE@[77; 78) " " | 88 | WHITESPACE@77..78 " " |
89 | DYN_TRAIT_TYPE@[78; 121) | 89 | DYN_TRAIT_TYPE@78..121 |
90 | TYPE_BOUND_LIST@[78; 121) | 90 | TYPE_BOUND_LIST@78..121 |
91 | TYPE_BOUND@[78; 88) | 91 | TYPE_BOUND@78..88 |
92 | PATH_TYPE@[78; 88) | 92 | PATH_TYPE@78..88 |
93 | PATH@[78; 88) | 93 | PATH@78..88 |
94 | PATH_SEGMENT@[78; 88) | 94 | PATH_SEGMENT@78..88 |
95 | NAME_REF@[78; 81) | 95 | NAME_REF@78..81 |
96 | IDENT@[78; 81) "Box" | 96 | IDENT@78..81 "Box" |
97 | TYPE_ARG_LIST@[81; 88) | 97 | TYPE_ARG_LIST@81..88 |
98 | L_ANGLE@[81; 82) "<" | 98 | L_ANGLE@81..82 "<" |
99 | TYPE_ARG@[82; 88) | 99 | TYPE_ARG@82..88 |
100 | PAREN_TYPE@[82; 88) | 100 | PAREN_TYPE@82..88 |
101 | L_PAREN@[82; 83) "(" | 101 | L_PAREN@82..83 "(" |
102 | PATH_TYPE@[83; 87) | 102 | PATH_TYPE@83..87 |
103 | PATH@[83; 87) | 103 | PATH@83..87 |
104 | PATH_SEGMENT@[83; 87) | 104 | PATH_SEGMENT@83..87 |
105 | NAME_REF@[83; 87) | 105 | NAME_REF@83..87 |
106 | IDENT@[83; 87) "Copy" | 106 | IDENT@83..87 "Copy" |
107 | R_PAREN@[87; 88) ")" | 107 | R_PAREN@87..88 ")" |
108 | WHITESPACE@[88; 89) " " | 108 | WHITESPACE@88..89 " " |
109 | PLUS@[89; 90) "+" | 109 | PLUS@89..90 "+" |
110 | WHITESPACE@[90; 91) " " | 110 | WHITESPACE@90..91 " " |
111 | TYPE_BOUND@[91; 99) | 111 | TYPE_BOUND@91..99 |
112 | L_PAREN@[91; 92) "(" | 112 | L_PAREN@91..92 "(" |
113 | QUESTION@[92; 93) "?" | 113 | QUESTION@92..93 "?" |
114 | PATH_TYPE@[93; 98) | 114 | PATH_TYPE@93..98 |
115 | PATH@[93; 98) | 115 | PATH@93..98 |
116 | PATH_SEGMENT@[93; 98) | 116 | PATH_SEGMENT@93..98 |
117 | NAME_REF@[93; 98) | 117 | NAME_REF@93..98 |
118 | IDENT@[93; 98) "Sized" | 118 | IDENT@93..98 "Sized" |
119 | R_PAREN@[98; 99) ")" | 119 | R_PAREN@98..99 ")" |
120 | WHITESPACE@[99; 100) " " | 120 | WHITESPACE@99..100 " " |
121 | PLUS@[100; 101) "+" | 121 | PLUS@100..101 "+" |
122 | WHITESPACE@[101; 102) " " | 122 | WHITESPACE@101..102 " " |
123 | TYPE_BOUND@[102; 121) | 123 | TYPE_BOUND@102..121 |
124 | L_PAREN@[102; 103) "(" | 124 | L_PAREN@102..103 "(" |
125 | FOR_TYPE@[103; 120) | 125 | FOR_TYPE@103..120 |
126 | FOR_KW@[103; 106) "for" | 126 | FOR_KW@103..106 "for" |
127 | TYPE_PARAM_LIST@[106; 110) | 127 | TYPE_PARAM_LIST@106..110 |
128 | L_ANGLE@[106; 107) "<" | 128 | L_ANGLE@106..107 "<" |
129 | LIFETIME_PARAM@[107; 109) | 129 | LIFETIME_PARAM@107..109 |
130 | LIFETIME@[107; 109) "\'a" | 130 | LIFETIME@107..109 "\'a" |
131 | R_ANGLE@[109; 110) ">" | 131 | R_ANGLE@109..110 ">" |
132 | WHITESPACE@[110; 111) " " | 132 | WHITESPACE@110..111 " " |
133 | PATH_TYPE@[111; 120) | 133 | PATH_TYPE@111..120 |
134 | PATH@[111; 120) | 134 | PATH@111..120 |
135 | PATH_SEGMENT@[111; 120) | 135 | PATH_SEGMENT@111..120 |
136 | NAME_REF@[111; 116) | 136 | NAME_REF@111..116 |
137 | IDENT@[111; 116) "Trait" | 137 | IDENT@111..116 "Trait" |
138 | TYPE_ARG_LIST@[116; 120) | 138 | TYPE_ARG_LIST@116..120 |
139 | L_ANGLE@[116; 117) "<" | 139 | L_ANGLE@116..117 "<" |
140 | LIFETIME_ARG@[117; 119) | 140 | LIFETIME_ARG@117..119 |
141 | LIFETIME@[117; 119) "\'a" | 141 | LIFETIME@117..119 "\'a" |
142 | R_ANGLE@[119; 120) ">" | 142 | R_ANGLE@119..120 ">" |
143 | R_PAREN@[120; 121) ")" | 143 | R_PAREN@120..121 ")" |
144 | EXPR_STMT@[121; 123) | 144 | EXPR_STMT@121..123 |
145 | ERROR@[121; 122) | 145 | ERROR@121..122 |
146 | R_ANGLE@[121; 122) ">" | 146 | R_ANGLE@121..122 ">" |
147 | SEMICOLON@[122; 123) ";" | 147 | SEMICOLON@122..123 ";" |
148 | WHITESPACE@[123; 128) "\n " | 148 | WHITESPACE@123..128 "\n " |
149 | LET_STMT@[128; 141) | 149 | LET_STMT@128..141 |
150 | LET_KW@[128; 131) "let" | 150 | LET_KW@128..131 "let" |
151 | WHITESPACE@[131; 132) " " | 151 | WHITESPACE@131..132 " " |
152 | PLACEHOLDER_PAT@[132; 133) | 152 | PLACEHOLDER_PAT@132..133 |
153 | UNDERSCORE@[132; 133) "_" | 153 | UNDERSCORE@132..133 "_" |
154 | COLON@[133; 134) ":" | 154 | COLON@133..134 ":" |
155 | WHITESPACE@[134; 135) " " | 155 | WHITESPACE@134..135 " " |
156 | PATH_TYPE@[135; 141) | 156 | PATH_TYPE@135..141 |
157 | PATH@[135; 141) | 157 | PATH@135..141 |
158 | PATH_SEGMENT@[135; 141) | 158 | PATH_SEGMENT@135..141 |
159 | NAME_REF@[135; 138) | 159 | NAME_REF@135..138 |
160 | IDENT@[135; 138) "Box" | 160 | IDENT@135..138 "Box" |
161 | TYPE_ARG_LIST@[138; 141) | 161 | TYPE_ARG_LIST@138..141 |
162 | L_ANGLE@[138; 139) "<" | 162 | L_ANGLE@138..139 "<" |
163 | TYPE_ARG@[139; 141) | 163 | TYPE_ARG@139..141 |
164 | PAREN_TYPE@[139; 141) | 164 | PAREN_TYPE@139..141 |
165 | L_PAREN@[139; 140) "(" | 165 | L_PAREN@139..140 "(" |
166 | ERROR@[140; 141) | 166 | ERROR@140..141 |
167 | QUESTION@[140; 141) "?" | 167 | QUESTION@140..141 "?" |
168 | EXPR_STMT@[141; 146) | 168 | EXPR_STMT@141..146 |
169 | PATH_EXPR@[141; 146) | 169 | PATH_EXPR@141..146 |
170 | PATH@[141; 146) | 170 | PATH@141..146 |
171 | PATH_SEGMENT@[141; 146) | 171 | PATH_SEGMENT@141..146 |
172 | NAME_REF@[141; 146) | 172 | NAME_REF@141..146 |
173 | IDENT@[141; 146) "Sized" | 173 | IDENT@141..146 "Sized" |
174 | EXPR_STMT@[146; 147) | 174 | EXPR_STMT@146..147 |
175 | ERROR@[146; 147) | 175 | ERROR@146..147 |
176 | R_PAREN@[146; 147) ")" | 176 | R_PAREN@146..147 ")" |
177 | WHITESPACE@[147; 148) " " | 177 | WHITESPACE@147..148 " " |
178 | EXPR_STMT@[148; 149) | 178 | EXPR_STMT@148..149 |
179 | ERROR@[148; 149) | 179 | ERROR@148..149 |
180 | PLUS@[148; 149) "+" | 180 | PLUS@148..149 "+" |
181 | WHITESPACE@[149; 150) " " | 181 | WHITESPACE@149..150 " " |
182 | EXPR_STMT@[150; 180) | 182 | EXPR_STMT@150..180 |
183 | TUPLE_EXPR@[150; 180) | 183 | TUPLE_EXPR@150..180 |
184 | L_PAREN@[150; 151) "(" | 184 | L_PAREN@150..151 "(" |
185 | BIN_EXPR@[151; 180) | 185 | BIN_EXPR@151..180 |
186 | BIN_EXPR@[151; 178) | 186 | BIN_EXPR@151..178 |
187 | BIN_EXPR@[151; 169) | 187 | BIN_EXPR@151..169 |
188 | BIN_EXPR@[151; 167) | 188 | BIN_EXPR@151..167 |
189 | BIN_EXPR@[151; 164) | 189 | BIN_EXPR@151..164 |
190 | FOR_EXPR@[151; 157) | 190 | FOR_EXPR@151..157 |
191 | FOR_KW@[151; 154) "for" | 191 | FOR_KW@151..154 "for" |
192 | ERROR@[154; 155) | 192 | ERROR@154..155 |
193 | L_ANGLE@[154; 155) "<" | 193 | L_ANGLE@154..155 "<" |
194 | ERROR@[155; 157) | 194 | ERROR@155..157 |
195 | LIFETIME@[155; 157) "\'a" | 195 | LIFETIME@155..157 "\'a" |
196 | R_ANGLE@[157; 158) ">" | 196 | R_ANGLE@157..158 ">" |
197 | WHITESPACE@[158; 159) " " | 197 | WHITESPACE@158..159 " " |
198 | PATH_EXPR@[159; 164) | 198 | PATH_EXPR@159..164 |
199 | PATH@[159; 164) | 199 | PATH@159..164 |
200 | PATH_SEGMENT@[159; 164) | 200 | PATH_SEGMENT@159..164 |
201 | NAME_REF@[159; 164) | 201 | NAME_REF@159..164 |
202 | IDENT@[159; 164) "Trait" | 202 | IDENT@159..164 "Trait" |
203 | L_ANGLE@[164; 165) "<" | 203 | L_ANGLE@164..165 "<" |
204 | ERROR@[165; 167) | 204 | ERROR@165..167 |
205 | LIFETIME@[165; 167) "\'a" | 205 | LIFETIME@165..167 "\'a" |
206 | R_ANGLE@[167; 168) ">" | 206 | R_ANGLE@167..168 ">" |
207 | ERROR@[168; 169) | 207 | ERROR@168..169 |
208 | R_PAREN@[168; 169) ")" | 208 | R_PAREN@168..169 ")" |
209 | WHITESPACE@[169; 170) " " | 209 | WHITESPACE@169..170 " " |
210 | PLUS@[170; 171) "+" | 210 | PLUS@170..171 "+" |
211 | WHITESPACE@[171; 172) " " | 211 | WHITESPACE@171..172 " " |
212 | PAREN_EXPR@[172; 178) | 212 | PAREN_EXPR@172..178 |
213 | L_PAREN@[172; 173) "(" | 213 | L_PAREN@172..173 "(" |
214 | PATH_EXPR@[173; 177) | 214 | PATH_EXPR@173..177 |
215 | PATH@[173; 177) | 215 | PATH@173..177 |
216 | PATH_SEGMENT@[173; 177) | 216 | PATH_SEGMENT@173..177 |
217 | NAME_REF@[173; 177) | 217 | NAME_REF@173..177 |
218 | IDENT@[173; 177) "Copy" | 218 | IDENT@173..177 "Copy" |
219 | R_PAREN@[177; 178) ")" | 219 | R_PAREN@177..178 ")" |
220 | R_ANGLE@[178; 179) ">" | 220 | R_ANGLE@178..179 ">" |
221 | ERROR@[179; 180) | 221 | ERROR@179..180 |
222 | SEMICOLON@[179; 180) ";" | 222 | SEMICOLON@179..180 ";" |
223 | WHITESPACE@[180; 185) "\n " | 223 | WHITESPACE@180..185 "\n " |
224 | LET_STMT@[185; 235) | 224 | LET_STMT@185..235 |
225 | LET_KW@[185; 188) "let" | 225 | LET_KW@185..188 "let" |
226 | WHITESPACE@[188; 189) " " | 226 | WHITESPACE@188..189 " " |
227 | PLACEHOLDER_PAT@[189; 190) | 227 | PLACEHOLDER_PAT@189..190 |
228 | UNDERSCORE@[189; 190) "_" | 228 | UNDERSCORE@189..190 "_" |
229 | COLON@[190; 191) ":" | 229 | COLON@190..191 ":" |
230 | WHITESPACE@[191; 192) " " | 230 | WHITESPACE@191..192 " " |
231 | DYN_TRAIT_TYPE@[192; 235) | 231 | DYN_TRAIT_TYPE@192..235 |
232 | TYPE_BOUND_LIST@[192; 235) | 232 | TYPE_BOUND_LIST@192..235 |
233 | TYPE_BOUND@[192; 215) | 233 | TYPE_BOUND@192..215 |
234 | PATH_TYPE@[192; 215) | 234 | PATH_TYPE@192..215 |
235 | PATH@[192; 215) | 235 | PATH@192..215 |
236 | PATH_SEGMENT@[192; 215) | 236 | PATH_SEGMENT@192..215 |
237 | NAME_REF@[192; 195) | 237 | NAME_REF@192..195 |
238 | IDENT@[192; 195) "Box" | 238 | IDENT@192..195 "Box" |
239 | TYPE_ARG_LIST@[195; 215) | 239 | TYPE_ARG_LIST@195..215 |
240 | L_ANGLE@[195; 196) "<" | 240 | L_ANGLE@195..196 "<" |
241 | TYPE_ARG@[196; 215) | 241 | TYPE_ARG@196..215 |
242 | PAREN_TYPE@[196; 215) | 242 | PAREN_TYPE@196..215 |
243 | L_PAREN@[196; 197) "(" | 243 | L_PAREN@196..197 "(" |
244 | FOR_TYPE@[197; 214) | 244 | FOR_TYPE@197..214 |
245 | FOR_KW@[197; 200) "for" | 245 | FOR_KW@197..200 "for" |
246 | TYPE_PARAM_LIST@[200; 204) | 246 | TYPE_PARAM_LIST@200..204 |
247 | L_ANGLE@[200; 201) "<" | 247 | L_ANGLE@200..201 "<" |
248 | LIFETIME_PARAM@[201; 203) | 248 | LIFETIME_PARAM@201..203 |
249 | LIFETIME@[201; 203) "\'a" | 249 | LIFETIME@201..203 "\'a" |
250 | R_ANGLE@[203; 204) ">" | 250 | R_ANGLE@203..204 ">" |
251 | WHITESPACE@[204; 205) " " | 251 | WHITESPACE@204..205 " " |
252 | PATH_TYPE@[205; 214) | 252 | PATH_TYPE@205..214 |
253 | PATH@[205; 214) | 253 | PATH@205..214 |
254 | PATH_SEGMENT@[205; 214) | 254 | PATH_SEGMENT@205..214 |
255 | NAME_REF@[205; 210) | 255 | NAME_REF@205..210 |
256 | IDENT@[205; 210) "Trait" | 256 | IDENT@205..210 "Trait" |
257 | TYPE_ARG_LIST@[210; 214) | 257 | TYPE_ARG_LIST@210..214 |
258 | L_ANGLE@[210; 211) "<" | 258 | L_ANGLE@210..211 "<" |
259 | LIFETIME_ARG@[211; 213) | 259 | LIFETIME_ARG@211..213 |
260 | LIFETIME@[211; 213) "\'a" | 260 | LIFETIME@211..213 "\'a" |
261 | R_ANGLE@[213; 214) ">" | 261 | R_ANGLE@213..214 ">" |
262 | R_PAREN@[214; 215) ")" | 262 | R_PAREN@214..215 ")" |
263 | WHITESPACE@[215; 216) " " | 263 | WHITESPACE@215..216 " " |
264 | PLUS@[216; 217) "+" | 264 | PLUS@216..217 "+" |
265 | WHITESPACE@[217; 218) " " | 265 | WHITESPACE@217..218 " " |
266 | TYPE_BOUND@[218; 224) | 266 | TYPE_BOUND@218..224 |
267 | L_PAREN@[218; 219) "(" | 267 | L_PAREN@218..219 "(" |
268 | PATH_TYPE@[219; 223) | 268 | PATH_TYPE@219..223 |
269 | PATH@[219; 223) | 269 | PATH@219..223 |
270 | PATH_SEGMENT@[219; 223) | 270 | PATH_SEGMENT@219..223 |
271 | NAME_REF@[219; 223) | 271 | NAME_REF@219..223 |
272 | IDENT@[219; 223) "Copy" | 272 | IDENT@219..223 "Copy" |
273 | R_PAREN@[223; 224) ")" | 273 | R_PAREN@223..224 ")" |
274 | WHITESPACE@[224; 225) " " | 274 | WHITESPACE@224..225 " " |
275 | PLUS@[225; 226) "+" | 275 | PLUS@225..226 "+" |
276 | WHITESPACE@[226; 227) " " | 276 | WHITESPACE@226..227 " " |
277 | TYPE_BOUND@[227; 235) | 277 | TYPE_BOUND@227..235 |
278 | L_PAREN@[227; 228) "(" | 278 | L_PAREN@227..228 "(" |
279 | QUESTION@[228; 229) "?" | 279 | QUESTION@228..229 "?" |
280 | PATH_TYPE@[229; 234) | 280 | PATH_TYPE@229..234 |
281 | PATH@[229; 234) | 281 | PATH@229..234 |
282 | PATH_SEGMENT@[229; 234) | 282 | PATH_SEGMENT@229..234 |
283 | NAME_REF@[229; 234) | 283 | NAME_REF@229..234 |
284 | IDENT@[229; 234) "Sized" | 284 | IDENT@229..234 "Sized" |
285 | R_PAREN@[234; 235) ")" | 285 | R_PAREN@234..235 ")" |
286 | EXPR_STMT@[235; 237) | 286 | EXPR_STMT@235..237 |
287 | ERROR@[235; 236) | 287 | ERROR@235..236 |
288 | R_ANGLE@[235; 236) ">" | 288 | R_ANGLE@235..236 ">" |
289 | SEMICOLON@[236; 237) ";" | 289 | SEMICOLON@236..237 ";" |
290 | WHITESPACE@[237; 238) "\n" | 290 | WHITESPACE@237..238 "\n" |
291 | R_CURLY@[238; 239) "}" | 291 | R_CURLY@238..239 "}" |
292 | WHITESPACE@[239; 240) "\n" | 292 | WHITESPACE@239..240 "\n" |
293 | error [88; 88): expected COMMA | 293 | error 88..88: expected COMMA |
294 | error [88; 88): expected R_ANGLE | 294 | error 88..88: expected R_ANGLE |
295 | error [121; 121): expected SEMICOLON | 295 | error 121..121: expected SEMICOLON |
296 | error [121; 121): expected expression | 296 | error 121..121: expected expression |
297 | error [140; 140): expected type | 297 | error 140..140: expected type |
298 | error [141; 141): expected R_PAREN | 298 | error 141..141: expected R_PAREN |
299 | error [141; 141): expected COMMA | 299 | error 141..141: expected COMMA |
300 | error [141; 141): expected R_ANGLE | 300 | error 141..141: expected R_ANGLE |
301 | error [141; 141): expected SEMICOLON | 301 | error 141..141: expected SEMICOLON |
302 | error [146; 146): expected SEMICOLON | 302 | error 146..146: expected SEMICOLON |
303 | error [146; 146): expected expression | 303 | error 146..146: expected expression |
304 | error [147; 147): expected SEMICOLON | 304 | error 147..147: expected SEMICOLON |
305 | error [148; 148): expected expression | 305 | error 148..148: expected expression |
306 | error [149; 149): expected SEMICOLON | 306 | error 149..149: expected SEMICOLON |
307 | error [154; 154): expected pattern | 307 | error 154..154: expected pattern |
308 | error [155; 155): expected IN_KW | 308 | error 155..155: expected IN_KW |
309 | error [155; 155): expected expression | 309 | error 155..155: expected expression |
310 | error [157; 157): expected a block | 310 | error 157..157: expected a block |
311 | error [165; 165): expected expression | 311 | error 165..165: expected expression |
312 | error [168; 168): expected expression | 312 | error 168..168: expected expression |
313 | error [179; 179): expected expression | 313 | error 179..179: expected expression |
314 | error [180; 180): expected COMMA | 314 | error 180..180: expected COMMA |
315 | error [180; 180): expected expression | 315 | error 180..180: expected expression |
316 | error [180; 180): expected R_PAREN | 316 | error 180..180: expected R_PAREN |
317 | error [180; 180): expected SEMICOLON | 317 | error 180..180: expected SEMICOLON |
318 | error [215; 215): expected COMMA | 318 | error 215..215: expected COMMA |
319 | error [215; 215): expected R_ANGLE | 319 | error 215..215: expected R_ANGLE |
320 | error [235; 235): expected SEMICOLON | 320 | error 235..235: expected SEMICOLON |
321 | error [235; 235): expected expression | 321 | error 235..235: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.rast b/crates/ra_syntax/test_data/parser/err/0025_nope.rast index 2b37ce94d..195c08bd9 100644 --- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast +++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast | |||
@@ -1,204 +1,204 @@ | |||
1 | SOURCE_FILE@[0; 575) | 1 | SOURCE_FILE@0..575 |
2 | FN_DEF@[0; 574) | 2 | FN_DEF@0..574 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 574) | 11 | BLOCK_EXPR@10..574 |
12 | BLOCK@[10; 574) | 12 | BLOCK@10..574 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | ENUM_DEF@[16; 152) | 15 | ENUM_DEF@16..152 |
16 | ENUM_KW@[16; 20) "enum" | 16 | ENUM_KW@16..20 "enum" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | NAME@[21; 25) | 18 | NAME@21..25 |
19 | IDENT@[21; 25) "Test" | 19 | IDENT@21..25 "Test" |
20 | WHITESPACE@[25; 26) " " | 20 | WHITESPACE@25..26 " " |
21 | ENUM_VARIANT_LIST@[26; 152) | 21 | ENUM_VARIANT_LIST@26..152 |
22 | L_CURLY@[26; 27) "{" | 22 | L_CURLY@26..27 "{" |
23 | WHITESPACE@[27; 36) "\n " | 23 | WHITESPACE@27..36 "\n " |
24 | ENUM_VARIANT@[36; 40) | 24 | ENUM_VARIANT@36..40 |
25 | NAME@[36; 40) | 25 | NAME@36..40 |
26 | IDENT@[36; 40) "Var1" | 26 | IDENT@36..40 "Var1" |
27 | COMMA@[40; 41) "," | 27 | COMMA@40..41 "," |
28 | WHITESPACE@[41; 50) "\n " | 28 | WHITESPACE@41..50 "\n " |
29 | ENUM_VARIANT@[50; 62) | 29 | ENUM_VARIANT@50..62 |
30 | NAME@[50; 54) | 30 | NAME@50..54 |
31 | IDENT@[50; 54) "Var2" | 31 | IDENT@50..54 "Var2" |
32 | TUPLE_FIELD_DEF_LIST@[54; 62) | 32 | TUPLE_FIELD_DEF_LIST@54..62 |
33 | L_PAREN@[54; 55) "(" | 33 | L_PAREN@54..55 "(" |
34 | TUPLE_FIELD_DEF@[55; 61) | 34 | TUPLE_FIELD_DEF@55..61 |
35 | PATH_TYPE@[55; 61) | 35 | PATH_TYPE@55..61 |
36 | PATH@[55; 61) | 36 | PATH@55..61 |
37 | PATH_SEGMENT@[55; 61) | 37 | PATH_SEGMENT@55..61 |
38 | NAME_REF@[55; 61) | 38 | NAME_REF@55..61 |
39 | IDENT@[55; 61) "String" | 39 | IDENT@55..61 "String" |
40 | R_PAREN@[61; 62) ")" | 40 | R_PAREN@61..62 ")" |
41 | COMMA@[62; 63) "," | 41 | COMMA@62..63 "," |
42 | WHITESPACE@[63; 72) "\n " | 42 | WHITESPACE@63..72 "\n " |
43 | ENUM_VARIANT@[72; 145) | 43 | ENUM_VARIANT@72..145 |
44 | NAME@[72; 76) | 44 | NAME@72..76 |
45 | IDENT@[72; 76) "Var3" | 45 | IDENT@72..76 "Var3" |
46 | WHITESPACE@[76; 77) " " | 46 | WHITESPACE@76..77 " " |
47 | RECORD_FIELD_DEF_LIST@[77; 145) | 47 | RECORD_FIELD_DEF_LIST@77..145 |
48 | L_CURLY@[77; 78) "{" | 48 | L_CURLY@77..78 "{" |
49 | WHITESPACE@[78; 91) "\n " | 49 | WHITESPACE@78..91 "\n " |
50 | RECORD_FIELD_DEF@[91; 95) | 50 | RECORD_FIELD_DEF@91..95 |
51 | NAME@[91; 94) | 51 | NAME@91..94 |
52 | IDENT@[91; 94) "abc" | 52 | IDENT@91..94 "abc" |
53 | COLON@[94; 95) ":" | 53 | COLON@94..95 ":" |
54 | WHITESPACE@[95; 96) " " | 54 | WHITESPACE@95..96 " " |
55 | ERROR@[96; 98) | 55 | ERROR@96..98 |
56 | L_CURLY@[96; 97) "{" | 56 | L_CURLY@96..97 "{" |
57 | R_CURLY@[97; 98) "}" | 57 | R_CURLY@97..98 "}" |
58 | ERROR@[98; 99) | 58 | ERROR@98..99 |
59 | COMMA@[98; 99) "," | 59 | COMMA@98..99 "," |
60 | WHITESPACE@[99; 100) " " | 60 | WHITESPACE@99..100 " " |
61 | COMMENT@[100; 135) "//~ ERROR: expected t ..." | 61 | COMMENT@100..135 "//~ ERROR: expected t ..." |
62 | WHITESPACE@[135; 144) "\n " | 62 | WHITESPACE@135..144 "\n " |
63 | R_CURLY@[144; 145) "}" | 63 | R_CURLY@144..145 "}" |
64 | COMMA@[145; 146) "," | 64 | COMMA@145..146 "," |
65 | WHITESPACE@[146; 151) "\n " | 65 | WHITESPACE@146..151 "\n " |
66 | R_CURLY@[151; 152) "}" | 66 | R_CURLY@151..152 "}" |
67 | WHITESPACE@[152; 158) "\n\n " | 67 | WHITESPACE@152..158 "\n\n " |
68 | COMMENT@[158; 171) "// recover..." | 68 | COMMENT@158..171 "// recover..." |
69 | WHITESPACE@[171; 176) "\n " | 69 | WHITESPACE@171..176 "\n " |
70 | LET_STMT@[176; 186) | 70 | LET_STMT@176..186 |
71 | LET_KW@[176; 179) "let" | 71 | LET_KW@176..179 "let" |
72 | WHITESPACE@[179; 180) " " | 72 | WHITESPACE@179..180 " " |
73 | BIND_PAT@[180; 181) | 73 | BIND_PAT@180..181 |
74 | NAME@[180; 181) | 74 | NAME@180..181 |
75 | IDENT@[180; 181) "a" | 75 | IDENT@180..181 "a" |
76 | WHITESPACE@[181; 182) " " | 76 | WHITESPACE@181..182 " " |
77 | EQ@[182; 183) "=" | 77 | EQ@182..183 "=" |
78 | WHITESPACE@[183; 184) " " | 78 | WHITESPACE@183..184 " " |
79 | LITERAL@[184; 185) | 79 | LITERAL@184..185 |
80 | INT_NUMBER@[184; 185) "1" | 80 | INT_NUMBER@184..185 "1" |
81 | SEMICOLON@[185; 186) ";" | 81 | SEMICOLON@185..186 ";" |
82 | WHITESPACE@[186; 191) "\n " | 82 | WHITESPACE@186..191 "\n " |
83 | ENUM_DEF@[191; 223) | 83 | ENUM_DEF@191..223 |
84 | ENUM_KW@[191; 195) "enum" | 84 | ENUM_KW@191..195 "enum" |
85 | WHITESPACE@[195; 196) " " | 85 | WHITESPACE@195..196 " " |
86 | NAME@[196; 201) | 86 | NAME@196..201 |
87 | IDENT@[196; 201) "Test2" | 87 | IDENT@196..201 "Test2" |
88 | WHITESPACE@[201; 202) " " | 88 | WHITESPACE@201..202 " " |
89 | ENUM_VARIANT_LIST@[202; 223) | 89 | ENUM_VARIANT_LIST@202..223 |
90 | L_CURLY@[202; 203) "{" | 90 | L_CURLY@202..203 "{" |
91 | WHITESPACE@[203; 212) "\n " | 91 | WHITESPACE@203..212 "\n " |
92 | ENUM_VARIANT@[212; 216) | 92 | ENUM_VARIANT@212..216 |
93 | NAME@[212; 216) | 93 | NAME@212..216 |
94 | IDENT@[212; 216) "Fine" | 94 | IDENT@212..216 "Fine" |
95 | COMMA@[216; 217) "," | 95 | COMMA@216..217 "," |
96 | WHITESPACE@[217; 222) "\n " | 96 | WHITESPACE@217..222 "\n " |
97 | R_CURLY@[222; 223) "}" | 97 | R_CURLY@222..223 "}" |
98 | WHITESPACE@[223; 229) "\n\n " | 98 | WHITESPACE@223..229 "\n\n " |
99 | ENUM_DEF@[229; 300) | 99 | ENUM_DEF@229..300 |
100 | ENUM_KW@[229; 233) "enum" | 100 | ENUM_KW@229..233 "enum" |
101 | WHITESPACE@[233; 234) " " | 101 | WHITESPACE@233..234 " " |
102 | NAME@[234; 239) | 102 | NAME@234..239 |
103 | IDENT@[234; 239) "Test3" | 103 | IDENT@234..239 "Test3" |
104 | WHITESPACE@[239; 240) " " | 104 | WHITESPACE@239..240 " " |
105 | ENUM_VARIANT_LIST@[240; 300) | 105 | ENUM_VARIANT_LIST@240..300 |
106 | L_CURLY@[240; 241) "{" | 106 | L_CURLY@240..241 "{" |
107 | WHITESPACE@[241; 250) "\n " | 107 | WHITESPACE@241..250 "\n " |
108 | ENUM_VARIANT@[250; 293) | 108 | ENUM_VARIANT@250..293 |
109 | NAME@[250; 259) | 109 | NAME@250..259 |
110 | IDENT@[250; 259) "StillFine" | 110 | IDENT@250..259 "StillFine" |
111 | WHITESPACE@[259; 260) " " | 111 | WHITESPACE@259..260 " " |
112 | RECORD_FIELD_DEF_LIST@[260; 293) | 112 | RECORD_FIELD_DEF_LIST@260..293 |
113 | L_CURLY@[260; 261) "{" | 113 | L_CURLY@260..261 "{" |
114 | WHITESPACE@[261; 274) "\n " | 114 | WHITESPACE@261..274 "\n " |
115 | RECORD_FIELD_DEF@[274; 282) | 115 | RECORD_FIELD_DEF@274..282 |
116 | NAME@[274; 277) | 116 | NAME@274..277 |
117 | IDENT@[274; 277) "def" | 117 | IDENT@274..277 "def" |
118 | COLON@[277; 278) ":" | 118 | COLON@277..278 ":" |
119 | WHITESPACE@[278; 279) " " | 119 | WHITESPACE@278..279 " " |
120 | PATH_TYPE@[279; 282) | 120 | PATH_TYPE@279..282 |
121 | PATH@[279; 282) | 121 | PATH@279..282 |
122 | PATH_SEGMENT@[279; 282) | 122 | PATH_SEGMENT@279..282 |
123 | NAME_REF@[279; 282) | 123 | NAME_REF@279..282 |
124 | IDENT@[279; 282) "i32" | 124 | IDENT@279..282 "i32" |
125 | COMMA@[282; 283) "," | 125 | COMMA@282..283 "," |
126 | WHITESPACE@[283; 292) "\n " | 126 | WHITESPACE@283..292 "\n " |
127 | R_CURLY@[292; 293) "}" | 127 | R_CURLY@292..293 "}" |
128 | COMMA@[293; 294) "," | 128 | COMMA@293..294 "," |
129 | WHITESPACE@[294; 299) "\n " | 129 | WHITESPACE@294..299 "\n " |
130 | R_CURLY@[299; 300) "}" | 130 | R_CURLY@299..300 "}" |
131 | WHITESPACE@[300; 306) "\n\n " | 131 | WHITESPACE@300..306 "\n\n " |
132 | EXPR_STMT@[306; 459) | 132 | EXPR_STMT@306..459 |
133 | BLOCK_EXPR@[306; 459) | 133 | BLOCK_EXPR@306..459 |
134 | BLOCK@[306; 459) | 134 | BLOCK@306..459 |
135 | L_CURLY@[306; 307) "{" | 135 | L_CURLY@306..307 "{" |
136 | WHITESPACE@[307; 316) "\n " | 136 | WHITESPACE@307..316 "\n " |
137 | ENUM_DEF@[316; 453) | 137 | ENUM_DEF@316..453 |
138 | COMMENT@[316; 329) "// fail again" | 138 | COMMENT@316..329 "// fail again" |
139 | WHITESPACE@[329; 338) "\n " | 139 | WHITESPACE@329..338 "\n " |
140 | ENUM_KW@[338; 342) "enum" | 140 | ENUM_KW@338..342 "enum" |
141 | WHITESPACE@[342; 343) " " | 141 | WHITESPACE@342..343 " " |
142 | NAME@[343; 348) | 142 | NAME@343..348 |
143 | IDENT@[343; 348) "Test4" | 143 | IDENT@343..348 "Test4" |
144 | WHITESPACE@[348; 349) " " | 144 | WHITESPACE@348..349 " " |
145 | ENUM_VARIANT_LIST@[349; 453) | 145 | ENUM_VARIANT_LIST@349..453 |
146 | L_CURLY@[349; 350) "{" | 146 | L_CURLY@349..350 "{" |
147 | WHITESPACE@[350; 363) "\n " | 147 | WHITESPACE@350..363 "\n " |
148 | ENUM_VARIANT@[363; 372) | 148 | ENUM_VARIANT@363..372 |
149 | NAME@[363; 367) | 149 | NAME@363..367 |
150 | IDENT@[363; 367) "Nope" | 150 | IDENT@363..367 "Nope" |
151 | TUPLE_FIELD_DEF_LIST@[367; 372) | 151 | TUPLE_FIELD_DEF_LIST@367..372 |
152 | L_PAREN@[367; 368) "(" | 152 | L_PAREN@367..368 "(" |
153 | TUPLE_FIELD_DEF@[368; 371) | 153 | TUPLE_FIELD_DEF@368..371 |
154 | PATH_TYPE@[368; 371) | 154 | PATH_TYPE@368..371 |
155 | PATH@[368; 371) | 155 | PATH@368..371 |
156 | PATH_SEGMENT@[368; 371) | 156 | PATH_SEGMENT@368..371 |
157 | NAME_REF@[368; 371) | 157 | NAME_REF@368..371 |
158 | IDENT@[368; 371) "i32" | 158 | IDENT@368..371 "i32" |
159 | WHITESPACE@[371; 372) " " | 159 | WHITESPACE@371..372 " " |
160 | ERROR@[372; 372) | 160 | ERROR@372..372 |
161 | ERROR@[372; 374) | 161 | ERROR@372..374 |
162 | L_CURLY@[372; 373) "{" | 162 | L_CURLY@372..373 "{" |
163 | R_CURLY@[373; 374) "}" | 163 | R_CURLY@373..374 "}" |
164 | ERROR@[374; 375) | 164 | ERROR@374..375 |
165 | R_PAREN@[374; 375) ")" | 165 | R_PAREN@374..375 ")" |
166 | WHITESPACE@[375; 376) " " | 166 | WHITESPACE@375..376 " " |
167 | COMMENT@[376; 396) "//~ ERROR: found `{`" | 167 | COMMENT@376..396 "//~ ERROR: found `{`" |
168 | WHITESPACE@[396; 422) "\n ..." | 168 | WHITESPACE@396..422 "\n ..." |
169 | COMMENT@[422; 443) "//~^ ERROR: found `{`" | 169 | COMMENT@422..443 "//~^ ERROR: found `{`" |
170 | WHITESPACE@[443; 452) "\n " | 170 | WHITESPACE@443..452 "\n " |
171 | R_CURLY@[452; 453) "}" | 171 | R_CURLY@452..453 "}" |
172 | WHITESPACE@[453; 458) "\n " | 172 | WHITESPACE@453..458 "\n " |
173 | R_CURLY@[458; 459) "}" | 173 | R_CURLY@458..459 "}" |
174 | WHITESPACE@[459; 464) "\n " | 174 | WHITESPACE@459..464 "\n " |
175 | COMMENT@[464; 486) "// still recover later" | 175 | COMMENT@464..486 "// still recover later" |
176 | WHITESPACE@[486; 491) "\n " | 176 | WHITESPACE@486..491 "\n " |
177 | LET_STMT@[491; 510) | 177 | LET_STMT@491..510 |
178 | LET_KW@[491; 494) "let" | 178 | LET_KW@491..494 "let" |
179 | WHITESPACE@[494; 495) " " | 179 | WHITESPACE@494..495 " " |
180 | BIND_PAT@[495; 505) | 180 | BIND_PAT@495..505 |
181 | NAME@[495; 505) | 181 | NAME@495..505 |
182 | IDENT@[495; 505) "bad_syntax" | 182 | IDENT@495..505 "bad_syntax" |
183 | WHITESPACE@[505; 506) " " | 183 | WHITESPACE@505..506 " " |
184 | EQ@[506; 507) "=" | 184 | EQ@506..507 "=" |
185 | WHITESPACE@[507; 508) " " | 185 | WHITESPACE@507..508 " " |
186 | ERROR@[508; 509) | 186 | ERROR@508..509 |
187 | UNDERSCORE@[508; 509) "_" | 187 | UNDERSCORE@508..509 "_" |
188 | SEMICOLON@[509; 510) ";" | 188 | SEMICOLON@509..510 ";" |
189 | WHITESPACE@[510; 511) " " | 189 | WHITESPACE@510..511 " " |
190 | COMMENT@[511; 572) "//~ ERROR: expected e ..." | 190 | COMMENT@511..572 "//~ ERROR: expected e ..." |
191 | WHITESPACE@[572; 573) "\n" | 191 | WHITESPACE@572..573 "\n" |
192 | R_CURLY@[573; 574) "}" | 192 | R_CURLY@573..574 "}" |
193 | WHITESPACE@[574; 575) "\n" | 193 | WHITESPACE@574..575 "\n" |
194 | error [95; 95): expected type | 194 | error 95..95: expected type |
195 | error [95; 95): expected COMMA | 195 | error 95..95: expected COMMA |
196 | error [96; 96): expected field | 196 | error 96..96: expected field |
197 | error [98; 98): expected field declaration | 197 | error 98..98: expected field declaration |
198 | error [371; 371): expected COMMA | 198 | error 371..371: expected COMMA |
199 | error [372; 372): expected a type | 199 | error 372..372: expected a type |
200 | error [372; 372): expected R_PAREN | 200 | error 372..372: expected R_PAREN |
201 | error [372; 372): expected COMMA | 201 | error 372..372: expected COMMA |
202 | error [372; 372): expected enum variant | 202 | error 372..372: expected enum variant |
203 | error [374; 374): expected enum variant | 203 | error 374..374: expected enum variant |
204 | error [508; 508): expected expression | 204 | error 508..508: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast b/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast index f239b7b1e..bf07409fb 100644 --- a/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0026_imp_recovery.rast | |||
@@ -1,49 +1,49 @@ | |||
1 | SOURCE_FILE@[0; 38) | 1 | SOURCE_FILE@0..38 |
2 | IMPL_DEF@[0; 14) | 2 | IMPL_DEF@0..14 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | TYPE_PARAM_LIST@[4; 14) | 4 | TYPE_PARAM_LIST@4..14 |
5 | L_ANGLE@[4; 5) "<" | 5 | L_ANGLE@4..5 "<" |
6 | TYPE_PARAM@[5; 13) | 6 | TYPE_PARAM@5..13 |
7 | NAME@[5; 6) | 7 | NAME@5..6 |
8 | IDENT@[5; 6) "T" | 8 | IDENT@5..6 "T" |
9 | COLON@[6; 7) ":" | 9 | COLON@6..7 ":" |
10 | WHITESPACE@[7; 8) " " | 10 | WHITESPACE@7..8 " " |
11 | TYPE_BOUND_LIST@[8; 13) | 11 | TYPE_BOUND_LIST@8..13 |
12 | TYPE_BOUND@[8; 13) | 12 | TYPE_BOUND@8..13 |
13 | PATH_TYPE@[8; 13) | 13 | PATH_TYPE@8..13 |
14 | PATH@[8; 13) | 14 | PATH@8..13 |
15 | PATH_SEGMENT@[8; 13) | 15 | PATH_SEGMENT@8..13 |
16 | NAME_REF@[8; 13) | 16 | NAME_REF@8..13 |
17 | IDENT@[8; 13) "Clone" | 17 | IDENT@8..13 "Clone" |
18 | R_ANGLE@[13; 14) ">" | 18 | R_ANGLE@13..14 ">" |
19 | WHITESPACE@[14; 15) "\n" | 19 | WHITESPACE@14..15 "\n" |
20 | IMPL_DEF@[15; 37) | 20 | IMPL_DEF@15..37 |
21 | IMPL_KW@[15; 19) "impl" | 21 | IMPL_KW@15..19 "impl" |
22 | TYPE_PARAM_LIST@[19; 22) | 22 | TYPE_PARAM_LIST@19..22 |
23 | L_ANGLE@[19; 20) "<" | 23 | L_ANGLE@19..20 "<" |
24 | TYPE_PARAM@[20; 21) | 24 | TYPE_PARAM@20..21 |
25 | NAME@[20; 21) | 25 | NAME@20..21 |
26 | IDENT@[20; 21) "T" | 26 | IDENT@20..21 "T" |
27 | R_ANGLE@[21; 22) ">" | 27 | R_ANGLE@21..22 ">" |
28 | WHITESPACE@[22; 23) " " | 28 | WHITESPACE@22..23 " " |
29 | PATH_TYPE@[23; 34) | 29 | PATH_TYPE@23..34 |
30 | PATH@[23; 34) | 30 | PATH@23..34 |
31 | PATH_SEGMENT@[23; 34) | 31 | PATH_SEGMENT@23..34 |
32 | NAME_REF@[23; 31) | 32 | NAME_REF@23..31 |
33 | IDENT@[23; 31) "OnceCell" | 33 | IDENT@23..31 "OnceCell" |
34 | TYPE_ARG_LIST@[31; 34) | 34 | TYPE_ARG_LIST@31..34 |
35 | L_ANGLE@[31; 32) "<" | 35 | L_ANGLE@31..32 "<" |
36 | TYPE_ARG@[32; 33) | 36 | TYPE_ARG@32..33 |
37 | PATH_TYPE@[32; 33) | 37 | PATH_TYPE@32..33 |
38 | PATH@[32; 33) | 38 | PATH@32..33 |
39 | PATH_SEGMENT@[32; 33) | 39 | PATH_SEGMENT@32..33 |
40 | NAME_REF@[32; 33) | 40 | NAME_REF@32..33 |
41 | IDENT@[32; 33) "T" | 41 | IDENT@32..33 "T" |
42 | R_ANGLE@[33; 34) ">" | 42 | R_ANGLE@33..34 ">" |
43 | WHITESPACE@[34; 35) " " | 43 | WHITESPACE@34..35 " " |
44 | ITEM_LIST@[35; 37) | 44 | ITEM_LIST@35..37 |
45 | L_CURLY@[35; 36) "{" | 45 | L_CURLY@35..36 "{" |
46 | R_CURLY@[36; 37) "}" | 46 | R_CURLY@36..37 "}" |
47 | WHITESPACE@[37; 38) "\n" | 47 | WHITESPACE@37..38 "\n" |
48 | error [14; 14): expected trait or type | 48 | error 14..14: expected trait or type |
49 | error [14; 14): expected `{` | 49 | error 14..14: expected `{` |
diff --git a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast index 4a28bcabf..f2fada510 100644 --- a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast +++ b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 29) | 2 | FN_DEF@0..29 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 13) "\n " | 10 | WHITESPACE@8..13 "\n " |
11 | WHERE_CLAUSE@[13; 26) | 11 | WHERE_CLAUSE@13..26 |
12 | WHERE_KW@[13; 18) "where" | 12 | WHERE_KW@13..18 "where" |
13 | WHITESPACE@[18; 19) " " | 13 | WHITESPACE@18..19 " " |
14 | WHERE_PRED@[19; 26) | 14 | WHERE_PRED@19..26 |
15 | FOR_TYPE@[19; 26) | 15 | FOR_TYPE@19..26 |
16 | FOR_KW@[19; 22) "for" | 16 | FOR_KW@19..22 "for" |
17 | TYPE_PARAM_LIST@[22; 26) | 17 | TYPE_PARAM_LIST@22..26 |
18 | L_ANGLE@[22; 23) "<" | 18 | L_ANGLE@22..23 "<" |
19 | LIFETIME_PARAM@[23; 25) | 19 | LIFETIME_PARAM@23..25 |
20 | LIFETIME@[23; 25) "\'a" | 20 | LIFETIME@23..25 "\'a" |
21 | R_ANGLE@[25; 26) ">" | 21 | R_ANGLE@25..26 ">" |
22 | WHITESPACE@[26; 27) "\n" | 22 | WHITESPACE@26..27 "\n" |
23 | BLOCK_EXPR@[27; 29) | 23 | BLOCK_EXPR@27..29 |
24 | BLOCK@[27; 29) | 24 | BLOCK@27..29 |
25 | L_CURLY@[27; 28) "{" | 25 | L_CURLY@27..28 "{" |
26 | R_CURLY@[28; 29) "}" | 26 | R_CURLY@28..29 "}" |
27 | WHITESPACE@[29; 30) "\n" | 27 | WHITESPACE@29..30 "\n" |
28 | error [26; 26): expected a path | 28 | error 26..26: expected a path |
29 | error [26; 26): expected colon | 29 | error 26..26: expected colon |
diff --git a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast index 177849476..56682f966 100644 --- a/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast +++ b/crates/ra_syntax/test_data/parser/err/0029_field_completion.rast | |||
@@ -1,36 +1,36 @@ | |||
1 | SOURCE_FILE@[0; 24) | 1 | SOURCE_FILE@0..24 |
2 | FN_DEF@[0; 23) | 2 | FN_DEF@0..23 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 12) | 7 | PARAM_LIST@6..12 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 11) | 9 | PARAM@7..11 |
10 | BIND_PAT@[7; 8) | 10 | BIND_PAT@7..8 |
11 | NAME@[7; 8) | 11 | NAME@7..8 |
12 | IDENT@[7; 8) "a" | 12 | IDENT@7..8 "a" |
13 | COLON@[8; 9) ":" | 13 | COLON@8..9 ":" |
14 | WHITESPACE@[9; 10) " " | 14 | WHITESPACE@9..10 " " |
15 | PATH_TYPE@[10; 11) | 15 | PATH_TYPE@10..11 |
16 | PATH@[10; 11) | 16 | PATH@10..11 |
17 | PATH_SEGMENT@[10; 11) | 17 | PATH_SEGMENT@10..11 |
18 | NAME_REF@[10; 11) | 18 | NAME_REF@10..11 |
19 | IDENT@[10; 11) "A" | 19 | IDENT@10..11 "A" |
20 | R_PAREN@[11; 12) ")" | 20 | R_PAREN@11..12 ")" |
21 | WHITESPACE@[12; 13) " " | 21 | WHITESPACE@12..13 " " |
22 | BLOCK_EXPR@[13; 23) | 22 | BLOCK_EXPR@13..23 |
23 | BLOCK@[13; 23) | 23 | BLOCK@13..23 |
24 | L_CURLY@[13; 14) "{" | 24 | L_CURLY@13..14 "{" |
25 | WHITESPACE@[14; 19) "\n " | 25 | WHITESPACE@14..19 "\n " |
26 | FIELD_EXPR@[19; 21) | 26 | FIELD_EXPR@19..21 |
27 | PATH_EXPR@[19; 20) | 27 | PATH_EXPR@19..20 |
28 | PATH@[19; 20) | 28 | PATH@19..20 |
29 | PATH_SEGMENT@[19; 20) | 29 | PATH_SEGMENT@19..20 |
30 | NAME_REF@[19; 20) | 30 | NAME_REF@19..20 |
31 | IDENT@[19; 20) "a" | 31 | IDENT@19..20 "a" |
32 | DOT@[20; 21) "." | 32 | DOT@20..21 "." |
33 | WHITESPACE@[21; 22) "\n" | 33 | WHITESPACE@21..22 "\n" |
34 | R_CURLY@[22; 23) "}" | 34 | R_CURLY@22..23 "}" |
35 | WHITESPACE@[23; 24) "\n" | 35 | WHITESPACE@23..24 "\n" |
36 | error [21; 21): expected field name or number | 36 | error 21..21: expected field name or number |
diff --git a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast index 00d9fd511..aac476430 100644 --- a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.rast | |||
@@ -1,125 +1,125 @@ | |||
1 | SOURCE_FILE@[0; 350) | 1 | SOURCE_FILE@0..350 |
2 | FN_DEF@[0; 349) | 2 | FN_DEF@0..349 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 8) | 5 | NAME@3..8 |
6 | IDENT@[3; 8) "block" | 6 | IDENT@3..8 "block" |
7 | PARAM_LIST@[8; 10) | 7 | PARAM_LIST@8..10 |
8 | L_PAREN@[8; 9) "(" | 8 | L_PAREN@8..9 "(" |
9 | R_PAREN@[9; 10) ")" | 9 | R_PAREN@9..10 ")" |
10 | WHITESPACE@[10; 11) " " | 10 | WHITESPACE@10..11 " " |
11 | BLOCK_EXPR@[11; 349) | 11 | BLOCK_EXPR@11..349 |
12 | BLOCK@[11; 349) | 12 | BLOCK@11..349 |
13 | L_CURLY@[11; 12) "{" | 13 | L_CURLY@11..12 "{" |
14 | WHITESPACE@[12; 17) "\n " | 14 | WHITESPACE@12..17 "\n " |
15 | LET_STMT@[17; 129) | 15 | LET_STMT@17..129 |
16 | LET_KW@[17; 20) "let" | 16 | LET_KW@17..20 "let" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | BIND_PAT@[21; 26) | 18 | BIND_PAT@21..26 |
19 | NAME@[21; 26) | 19 | NAME@21..26 |
20 | IDENT@[21; 26) "inner" | 20 | IDENT@21..26 "inner" |
21 | WHITESPACE@[26; 27) " " | 21 | WHITESPACE@26..27 " " |
22 | EQ@[27; 28) "=" | 22 | EQ@27..28 "=" |
23 | WHITESPACE@[28; 29) " " | 23 | WHITESPACE@28..29 " " |
24 | BLOCK_EXPR@[29; 128) | 24 | BLOCK_EXPR@29..128 |
25 | BLOCK@[29; 128) | 25 | BLOCK@29..128 |
26 | L_CURLY@[29; 30) "{" | 26 | L_CURLY@29..30 "{" |
27 | WHITESPACE@[30; 39) "\n " | 27 | WHITESPACE@30..39 "\n " |
28 | ATTR@[39; 83) | 28 | ATTR@39..83 |
29 | POUND@[39; 40) "#" | 29 | POUND@39..40 "#" |
30 | BANG@[40; 41) "!" | 30 | BANG@40..41 "!" |
31 | L_BRACK@[41; 42) "[" | 31 | L_BRACK@41..42 "[" |
32 | PATH@[42; 45) | 32 | PATH@42..45 |
33 | PATH_SEGMENT@[42; 45) | 33 | PATH_SEGMENT@42..45 |
34 | NAME_REF@[42; 45) | 34 | NAME_REF@42..45 |
35 | IDENT@[42; 45) "doc" | 35 | IDENT@42..45 "doc" |
36 | TOKEN_TREE@[45; 82) | 36 | TOKEN_TREE@45..82 |
37 | L_PAREN@[45; 46) "(" | 37 | L_PAREN@45..46 "(" |
38 | STRING@[46; 81) "\"Inner attributes not ..." | 38 | STRING@46..81 "\"Inner attributes not ..." |
39 | R_PAREN@[81; 82) ")" | 39 | R_PAREN@81..82 ")" |
40 | R_BRACK@[82; 83) "]" | 40 | R_BRACK@82..83 "]" |
41 | WHITESPACE@[83; 92) "\n " | 41 | WHITESPACE@83..92 "\n " |
42 | COMMENT@[92; 122) "//! Nor are ModuleDoc ..." | 42 | COMMENT@92..122 "//! Nor are ModuleDoc ..." |
43 | WHITESPACE@[122; 127) "\n " | 43 | WHITESPACE@122..127 "\n " |
44 | R_CURLY@[127; 128) "}" | 44 | R_CURLY@127..128 "}" |
45 | SEMICOLON@[128; 129) ";" | 45 | SEMICOLON@128..129 ";" |
46 | WHITESPACE@[129; 134) "\n " | 46 | WHITESPACE@129..134 "\n " |
47 | EXPR_STMT@[134; 257) | 47 | EXPR_STMT@134..257 |
48 | IF_EXPR@[134; 257) | 48 | IF_EXPR@134..257 |
49 | IF_KW@[134; 136) "if" | 49 | IF_KW@134..136 "if" |
50 | WHITESPACE@[136; 137) " " | 50 | WHITESPACE@136..137 " " |
51 | CONDITION@[137; 141) | 51 | CONDITION@137..141 |
52 | LITERAL@[137; 141) | 52 | LITERAL@137..141 |
53 | TRUE_KW@[137; 141) "true" | 53 | TRUE_KW@137..141 "true" |
54 | WHITESPACE@[141; 142) " " | 54 | WHITESPACE@141..142 " " |
55 | BLOCK_EXPR@[142; 257) | 55 | BLOCK_EXPR@142..257 |
56 | BLOCK@[142; 257) | 56 | BLOCK@142..257 |
57 | L_CURLY@[142; 143) "{" | 57 | L_CURLY@142..143 "{" |
58 | WHITESPACE@[143; 152) "\n " | 58 | WHITESPACE@143..152 "\n " |
59 | ATTR@[152; 171) | 59 | ATTR@152..171 |
60 | POUND@[152; 153) "#" | 60 | POUND@152..153 "#" |
61 | BANG@[153; 154) "!" | 61 | BANG@153..154 "!" |
62 | L_BRACK@[154; 155) "[" | 62 | L_BRACK@154..155 "[" |
63 | PATH@[155; 158) | 63 | PATH@155..158 |
64 | PATH_SEGMENT@[155; 158) | 64 | PATH_SEGMENT@155..158 |
65 | NAME_REF@[155; 158) | 65 | NAME_REF@155..158 |
66 | IDENT@[155; 158) "doc" | 66 | IDENT@155..158 "doc" |
67 | TOKEN_TREE@[158; 170) | 67 | TOKEN_TREE@158..170 |
68 | L_PAREN@[158; 159) "(" | 68 | L_PAREN@158..159 "(" |
69 | STRING@[159; 169) "\"Nor here\"" | 69 | STRING@159..169 "\"Nor here\"" |
70 | R_PAREN@[169; 170) ")" | 70 | R_PAREN@169..170 ")" |
71 | R_BRACK@[170; 171) "]" | 71 | R_BRACK@170..171 "]" |
72 | WHITESPACE@[171; 180) "\n " | 72 | WHITESPACE@171..180 "\n " |
73 | ATTR@[180; 212) | 73 | ATTR@180..212 |
74 | POUND@[180; 181) "#" | 74 | POUND@180..181 "#" |
75 | BANG@[181; 182) "!" | 75 | BANG@181..182 "!" |
76 | L_BRACK@[182; 183) "[" | 76 | L_BRACK@182..183 "[" |
77 | PATH@[183; 186) | 77 | PATH@183..186 |
78 | PATH_SEGMENT@[183; 186) | 78 | PATH_SEGMENT@183..186 |
79 | NAME_REF@[183; 186) | 79 | NAME_REF@183..186 |
80 | IDENT@[183; 186) "doc" | 80 | IDENT@183..186 "doc" |
81 | TOKEN_TREE@[186; 211) | 81 | TOKEN_TREE@186..211 |
82 | L_PAREN@[186; 187) "(" | 82 | L_PAREN@186..187 "(" |
83 | STRING@[187; 210) "\"We error on each attr\"" | 83 | STRING@187..210 "\"We error on each attr\"" |
84 | R_PAREN@[210; 211) ")" | 84 | R_PAREN@210..211 ")" |
85 | R_BRACK@[211; 212) "]" | 85 | R_BRACK@211..212 "]" |
86 | WHITESPACE@[212; 221) "\n " | 86 | WHITESPACE@212..221 "\n " |
87 | COMMENT@[221; 251) "//! Nor are ModuleDoc ..." | 87 | COMMENT@221..251 "//! Nor are ModuleDoc ..." |
88 | WHITESPACE@[251; 256) "\n " | 88 | WHITESPACE@251..256 "\n " |
89 | R_CURLY@[256; 257) "}" | 89 | R_CURLY@256..257 "}" |
90 | WHITESPACE@[257; 262) "\n " | 90 | WHITESPACE@257..262 "\n " |
91 | WHILE_EXPR@[262; 347) | 91 | WHILE_EXPR@262..347 |
92 | WHILE_KW@[262; 267) "while" | 92 | WHILE_KW@262..267 "while" |
93 | WHITESPACE@[267; 268) " " | 93 | WHITESPACE@267..268 " " |
94 | CONDITION@[268; 272) | 94 | CONDITION@268..272 |
95 | LITERAL@[268; 272) | 95 | LITERAL@268..272 |
96 | TRUE_KW@[268; 272) "true" | 96 | TRUE_KW@268..272 "true" |
97 | WHITESPACE@[272; 273) " " | 97 | WHITESPACE@272..273 " " |
98 | BLOCK_EXPR@[273; 347) | 98 | BLOCK_EXPR@273..347 |
99 | BLOCK@[273; 347) | 99 | BLOCK@273..347 |
100 | L_CURLY@[273; 274) "{" | 100 | L_CURLY@273..274 "{" |
101 | WHITESPACE@[274; 283) "\n " | 101 | WHITESPACE@274..283 "\n " |
102 | ATTR@[283; 302) | 102 | ATTR@283..302 |
103 | POUND@[283; 284) "#" | 103 | POUND@283..284 "#" |
104 | BANG@[284; 285) "!" | 104 | BANG@284..285 "!" |
105 | L_BRACK@[285; 286) "[" | 105 | L_BRACK@285..286 "[" |
106 | PATH@[286; 289) | 106 | PATH@286..289 |
107 | PATH_SEGMENT@[286; 289) | 107 | PATH_SEGMENT@286..289 |
108 | NAME_REF@[286; 289) | 108 | NAME_REF@286..289 |
109 | IDENT@[286; 289) "doc" | 109 | IDENT@286..289 "doc" |
110 | TOKEN_TREE@[289; 301) | 110 | TOKEN_TREE@289..301 |
111 | L_PAREN@[289; 290) "(" | 111 | L_PAREN@289..290 "(" |
112 | STRING@[290; 300) "\"Nor here\"" | 112 | STRING@290..300 "\"Nor here\"" |
113 | R_PAREN@[300; 301) ")" | 113 | R_PAREN@300..301 ")" |
114 | R_BRACK@[301; 302) "]" | 114 | R_BRACK@301..302 "]" |
115 | WHITESPACE@[302; 311) "\n " | 115 | WHITESPACE@302..311 "\n " |
116 | COMMENT@[311; 341) "//! Nor are ModuleDoc ..." | 116 | COMMENT@311..341 "//! Nor are ModuleDoc ..." |
117 | WHITESPACE@[341; 346) "\n " | 117 | WHITESPACE@341..346 "\n " |
118 | R_CURLY@[346; 347) "}" | 118 | R_CURLY@346..347 "}" |
119 | WHITESPACE@[347; 348) "\n" | 119 | WHITESPACE@347..348 "\n" |
120 | R_CURLY@[348; 349) "}" | 120 | R_CURLY@348..349 "}" |
121 | WHITESPACE@[349; 350) "\n" | 121 | WHITESPACE@349..350 "\n" |
122 | error [39; 83): A block in this position cannot accept inner attributes | 122 | error 39..83: A block in this position cannot accept inner attributes |
123 | error [152; 171): A block in this position cannot accept inner attributes | 123 | error 152..171: A block in this position cannot accept inner attributes |
124 | error [180; 212): A block in this position cannot accept inner attributes | 124 | error 180..212: A block in this position cannot accept inner attributes |
125 | error [283; 302): A block in this position cannot accept inner attributes | 125 | error 283..302: A block in this position cannot accept inner attributes |
diff --git a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast index b80101e60..f98de7f15 100644 --- a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.rast | |||
@@ -1,204 +1,204 @@ | |||
1 | SOURCE_FILE@[0; 293) | 1 | SOURCE_FILE@0..293 |
2 | FN_DEF@[0; 292) | 2 | FN_DEF@0..292 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 292) | 11 | BLOCK_EXPR@9..292 |
12 | BLOCK@[9; 292) | 12 | BLOCK@9..292 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 101) | 15 | EXPR_STMT@15..101 |
16 | MATCH_EXPR@[15; 101) | 16 | MATCH_EXPR@15..101 |
17 | MATCH_KW@[15; 20) "match" | 17 | MATCH_KW@15..20 "match" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | TUPLE_EXPR@[21; 23) | 19 | TUPLE_EXPR@21..23 |
20 | L_PAREN@[21; 22) "(" | 20 | L_PAREN@21..22 "(" |
21 | R_PAREN@[22; 23) ")" | 21 | R_PAREN@22..23 ")" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | MATCH_ARM_LIST@[24; 101) | 23 | MATCH_ARM_LIST@24..101 |
24 | L_CURLY@[24; 25) "{" | 24 | L_CURLY@24..25 "{" |
25 | WHITESPACE@[25; 34) "\n " | 25 | WHITESPACE@25..34 "\n " |
26 | MATCH_ARM@[34; 41) | 26 | MATCH_ARM@34..41 |
27 | PLACEHOLDER_PAT@[34; 35) | 27 | PLACEHOLDER_PAT@34..35 |
28 | UNDERSCORE@[34; 35) "_" | 28 | UNDERSCORE@34..35 "_" |
29 | WHITESPACE@[35; 36) " " | 29 | WHITESPACE@35..36 " " |
30 | FAT_ARROW@[36; 38) "=>" | 30 | FAT_ARROW@36..38 "=>" |
31 | WHITESPACE@[38; 39) " " | 31 | WHITESPACE@38..39 " " |
32 | TUPLE_EXPR@[39; 41) | 32 | TUPLE_EXPR@39..41 |
33 | L_PAREN@[39; 40) "(" | 33 | L_PAREN@39..40 "(" |
34 | R_PAREN@[40; 41) ")" | 34 | R_PAREN@40..41 ")" |
35 | COMMA@[41; 42) "," | 35 | COMMA@41..42 "," |
36 | WHITESPACE@[42; 51) "\n " | 36 | WHITESPACE@42..51 "\n " |
37 | MATCH_ARM@[51; 78) | 37 | MATCH_ARM@51..78 |
38 | ATTR@[51; 52) | 38 | ATTR@51..52 |
39 | POUND@[51; 52) "#" | 39 | POUND@51..52 "#" |
40 | ERROR@[52; 53) | 40 | ERROR@52..53 |
41 | BANG@[52; 53) "!" | 41 | BANG@52..53 "!" |
42 | ARRAY_EXPR@[53; 78) | 42 | ARRAY_EXPR@53..78 |
43 | L_BRACK@[53; 54) "[" | 43 | L_BRACK@53..54 "[" |
44 | CALL_EXPR@[54; 77) | 44 | CALL_EXPR@54..77 |
45 | PATH_EXPR@[54; 57) | 45 | PATH_EXPR@54..57 |
46 | PATH@[54; 57) | 46 | PATH@54..57 |
47 | PATH_SEGMENT@[54; 57) | 47 | PATH_SEGMENT@54..57 |
48 | NAME_REF@[54; 57) | 48 | NAME_REF@54..57 |
49 | IDENT@[54; 57) "doc" | 49 | IDENT@54..57 "doc" |
50 | ARG_LIST@[57; 77) | 50 | ARG_LIST@57..77 |
51 | L_PAREN@[57; 58) "(" | 51 | L_PAREN@57..58 "(" |
52 | LITERAL@[58; 76) | 52 | LITERAL@58..76 |
53 | STRING@[58; 76) "\"Not allowed here\"" | 53 | STRING@58..76 "\"Not allowed here\"" |
54 | R_PAREN@[76; 77) ")" | 54 | R_PAREN@76..77 ")" |
55 | R_BRACK@[77; 78) "]" | 55 | R_BRACK@77..78 "]" |
56 | WHITESPACE@[78; 87) "\n " | 56 | WHITESPACE@78..87 "\n " |
57 | MATCH_ARM@[87; 94) | 57 | MATCH_ARM@87..94 |
58 | PLACEHOLDER_PAT@[87; 88) | 58 | PLACEHOLDER_PAT@87..88 |
59 | UNDERSCORE@[87; 88) "_" | 59 | UNDERSCORE@87..88 "_" |
60 | WHITESPACE@[88; 89) " " | 60 | WHITESPACE@88..89 " " |
61 | FAT_ARROW@[89; 91) "=>" | 61 | FAT_ARROW@89..91 "=>" |
62 | WHITESPACE@[91; 92) " " | 62 | WHITESPACE@91..92 " " |
63 | TUPLE_EXPR@[92; 94) | 63 | TUPLE_EXPR@92..94 |
64 | L_PAREN@[92; 93) "(" | 64 | L_PAREN@92..93 "(" |
65 | R_PAREN@[93; 94) ")" | 65 | R_PAREN@93..94 ")" |
66 | COMMA@[94; 95) "," | 66 | COMMA@94..95 "," |
67 | WHITESPACE@[95; 100) "\n " | 67 | WHITESPACE@95..100 "\n " |
68 | R_CURLY@[100; 101) "}" | 68 | R_CURLY@100..101 "}" |
69 | WHITESPACE@[101; 107) "\n\n " | 69 | WHITESPACE@101..107 "\n\n " |
70 | EXPR_STMT@[107; 185) | 70 | EXPR_STMT@107..185 |
71 | MATCH_EXPR@[107; 185) | 71 | MATCH_EXPR@107..185 |
72 | MATCH_KW@[107; 112) "match" | 72 | MATCH_KW@107..112 "match" |
73 | WHITESPACE@[112; 113) " " | 73 | WHITESPACE@112..113 " " |
74 | TUPLE_EXPR@[113; 115) | 74 | TUPLE_EXPR@113..115 |
75 | L_PAREN@[113; 114) "(" | 75 | L_PAREN@113..114 "(" |
76 | R_PAREN@[114; 115) ")" | 76 | R_PAREN@114..115 ")" |
77 | WHITESPACE@[115; 116) " " | 77 | WHITESPACE@115..116 " " |
78 | MATCH_ARM_LIST@[116; 185) | 78 | MATCH_ARM_LIST@116..185 |
79 | L_CURLY@[116; 117) "{" | 79 | L_CURLY@116..117 "{" |
80 | WHITESPACE@[117; 126) "\n " | 80 | WHITESPACE@117..126 "\n " |
81 | MATCH_ARM@[126; 133) | 81 | MATCH_ARM@126..133 |
82 | PLACEHOLDER_PAT@[126; 127) | 82 | PLACEHOLDER_PAT@126..127 |
83 | UNDERSCORE@[126; 127) "_" | 83 | UNDERSCORE@126..127 "_" |
84 | WHITESPACE@[127; 128) " " | 84 | WHITESPACE@127..128 " " |
85 | FAT_ARROW@[128; 130) "=>" | 85 | FAT_ARROW@128..130 "=>" |
86 | WHITESPACE@[130; 131) " " | 86 | WHITESPACE@130..131 " " |
87 | TUPLE_EXPR@[131; 133) | 87 | TUPLE_EXPR@131..133 |
88 | L_PAREN@[131; 132) "(" | 88 | L_PAREN@131..132 "(" |
89 | R_PAREN@[132; 133) ")" | 89 | R_PAREN@132..133 ")" |
90 | COMMA@[133; 134) "," | 90 | COMMA@133..134 "," |
91 | WHITESPACE@[134; 143) "\n " | 91 | WHITESPACE@134..143 "\n " |
92 | MATCH_ARM@[143; 150) | 92 | MATCH_ARM@143..150 |
93 | PLACEHOLDER_PAT@[143; 144) | 93 | PLACEHOLDER_PAT@143..144 |
94 | UNDERSCORE@[143; 144) "_" | 94 | UNDERSCORE@143..144 "_" |
95 | WHITESPACE@[144; 145) " " | 95 | WHITESPACE@144..145 " " |
96 | FAT_ARROW@[145; 147) "=>" | 96 | FAT_ARROW@145..147 "=>" |
97 | WHITESPACE@[147; 148) " " | 97 | WHITESPACE@147..148 " " |
98 | TUPLE_EXPR@[148; 150) | 98 | TUPLE_EXPR@148..150 |
99 | L_PAREN@[148; 149) "(" | 99 | L_PAREN@148..149 "(" |
100 | R_PAREN@[149; 150) ")" | 100 | R_PAREN@149..150 ")" |
101 | COMMA@[150; 151) "," | 101 | COMMA@150..151 "," |
102 | WHITESPACE@[151; 160) "\n " | 102 | WHITESPACE@151..160 "\n " |
103 | MATCH_ARM@[160; 179) | 103 | MATCH_ARM@160..179 |
104 | ATTR@[160; 161) | 104 | ATTR@160..161 |
105 | POUND@[160; 161) "#" | 105 | POUND@160..161 "#" |
106 | ERROR@[161; 162) | 106 | ERROR@161..162 |
107 | BANG@[161; 162) "!" | 107 | BANG@161..162 "!" |
108 | ARRAY_EXPR@[162; 179) | 108 | ARRAY_EXPR@162..179 |
109 | L_BRACK@[162; 163) "[" | 109 | L_BRACK@162..163 "[" |
110 | CALL_EXPR@[163; 178) | 110 | CALL_EXPR@163..178 |
111 | PATH_EXPR@[163; 166) | 111 | PATH_EXPR@163..166 |
112 | PATH@[163; 166) | 112 | PATH@163..166 |
113 | PATH_SEGMENT@[163; 166) | 113 | PATH_SEGMENT@163..166 |
114 | NAME_REF@[163; 166) | 114 | NAME_REF@163..166 |
115 | IDENT@[163; 166) "doc" | 115 | IDENT@163..166 "doc" |
116 | ARG_LIST@[166; 178) | 116 | ARG_LIST@166..178 |
117 | L_PAREN@[166; 167) "(" | 117 | L_PAREN@166..167 "(" |
118 | LITERAL@[167; 177) | 118 | LITERAL@167..177 |
119 | STRING@[167; 177) "\"Nor here\"" | 119 | STRING@167..177 "\"Nor here\"" |
120 | R_PAREN@[177; 178) ")" | 120 | R_PAREN@177..178 ")" |
121 | R_BRACK@[178; 179) "]" | 121 | R_BRACK@178..179 "]" |
122 | WHITESPACE@[179; 184) "\n " | 122 | WHITESPACE@179..184 "\n " |
123 | R_CURLY@[184; 185) "}" | 123 | R_CURLY@184..185 "}" |
124 | WHITESPACE@[185; 191) "\n\n " | 124 | WHITESPACE@185..191 "\n\n " |
125 | MATCH_EXPR@[191; 290) | 125 | MATCH_EXPR@191..290 |
126 | MATCH_KW@[191; 196) "match" | 126 | MATCH_KW@191..196 "match" |
127 | WHITESPACE@[196; 197) " " | 127 | WHITESPACE@196..197 " " |
128 | TUPLE_EXPR@[197; 199) | 128 | TUPLE_EXPR@197..199 |
129 | L_PAREN@[197; 198) "(" | 129 | L_PAREN@197..198 "(" |
130 | R_PAREN@[198; 199) ")" | 130 | R_PAREN@198..199 ")" |
131 | WHITESPACE@[199; 200) " " | 131 | WHITESPACE@199..200 " " |
132 | MATCH_ARM_LIST@[200; 290) | 132 | MATCH_ARM_LIST@200..290 |
133 | L_CURLY@[200; 201) "{" | 133 | L_CURLY@200..201 "{" |
134 | WHITESPACE@[201; 210) "\n " | 134 | WHITESPACE@201..210 "\n " |
135 | MATCH_ARM@[210; 250) | 135 | MATCH_ARM@210..250 |
136 | ATTR@[210; 222) | 136 | ATTR@210..222 |
137 | POUND@[210; 211) "#" | 137 | POUND@210..211 "#" |
138 | L_BRACK@[211; 212) "[" | 138 | L_BRACK@211..212 "[" |
139 | PATH@[212; 215) | 139 | PATH@212..215 |
140 | PATH_SEGMENT@[212; 215) | 140 | PATH_SEGMENT@212..215 |
141 | NAME_REF@[212; 215) | 141 | NAME_REF@212..215 |
142 | IDENT@[212; 215) "cfg" | 142 | IDENT@212..215 "cfg" |
143 | TOKEN_TREE@[215; 221) | 143 | TOKEN_TREE@215..221 |
144 | L_PAREN@[215; 216) "(" | 144 | L_PAREN@215..216 "(" |
145 | IDENT@[216; 220) "test" | 145 | IDENT@216..220 "test" |
146 | R_PAREN@[220; 221) ")" | 146 | R_PAREN@220..221 ")" |
147 | R_BRACK@[221; 222) "]" | 147 | R_BRACK@221..222 "]" |
148 | WHITESPACE@[222; 231) "\n " | 148 | WHITESPACE@222..231 "\n " |
149 | ATTR@[231; 232) | 149 | ATTR@231..232 |
150 | POUND@[231; 232) "#" | 150 | POUND@231..232 "#" |
151 | ERROR@[232; 233) | 151 | ERROR@232..233 |
152 | BANG@[232; 233) "!" | 152 | BANG@232..233 "!" |
153 | ARRAY_EXPR@[233; 250) | 153 | ARRAY_EXPR@233..250 |
154 | L_BRACK@[233; 234) "[" | 154 | L_BRACK@233..234 "[" |
155 | CALL_EXPR@[234; 249) | 155 | CALL_EXPR@234..249 |
156 | PATH_EXPR@[234; 237) | 156 | PATH_EXPR@234..237 |
157 | PATH@[234; 237) | 157 | PATH@234..237 |
158 | PATH_SEGMENT@[234; 237) | 158 | PATH_SEGMENT@234..237 |
159 | NAME_REF@[234; 237) | 159 | NAME_REF@234..237 |
160 | IDENT@[234; 237) "doc" | 160 | IDENT@234..237 "doc" |
161 | ARG_LIST@[237; 249) | 161 | ARG_LIST@237..249 |
162 | L_PAREN@[237; 238) "(" | 162 | L_PAREN@237..238 "(" |
163 | LITERAL@[238; 248) | 163 | LITERAL@238..248 |
164 | STRING@[238; 248) "\"Nor here\"" | 164 | STRING@238..248 "\"Nor here\"" |
165 | R_PAREN@[248; 249) ")" | 165 | R_PAREN@248..249 ")" |
166 | R_BRACK@[249; 250) "]" | 166 | R_BRACK@249..250 "]" |
167 | WHITESPACE@[250; 259) "\n " | 167 | WHITESPACE@250..259 "\n " |
168 | MATCH_ARM@[259; 266) | 168 | MATCH_ARM@259..266 |
169 | PLACEHOLDER_PAT@[259; 260) | 169 | PLACEHOLDER_PAT@259..260 |
170 | UNDERSCORE@[259; 260) "_" | 170 | UNDERSCORE@259..260 "_" |
171 | WHITESPACE@[260; 261) " " | 171 | WHITESPACE@260..261 " " |
172 | FAT_ARROW@[261; 263) "=>" | 172 | FAT_ARROW@261..263 "=>" |
173 | WHITESPACE@[263; 264) " " | 173 | WHITESPACE@263..264 " " |
174 | TUPLE_EXPR@[264; 266) | 174 | TUPLE_EXPR@264..266 |
175 | L_PAREN@[264; 265) "(" | 175 | L_PAREN@264..265 "(" |
176 | R_PAREN@[265; 266) ")" | 176 | R_PAREN@265..266 ")" |
177 | COMMA@[266; 267) "," | 177 | COMMA@266..267 "," |
178 | WHITESPACE@[267; 276) "\n " | 178 | WHITESPACE@267..276 "\n " |
179 | MATCH_ARM@[276; 283) | 179 | MATCH_ARM@276..283 |
180 | PLACEHOLDER_PAT@[276; 277) | 180 | PLACEHOLDER_PAT@276..277 |
181 | UNDERSCORE@[276; 277) "_" | 181 | UNDERSCORE@276..277 "_" |
182 | WHITESPACE@[277; 278) " " | 182 | WHITESPACE@277..278 " " |
183 | FAT_ARROW@[278; 280) "=>" | 183 | FAT_ARROW@278..280 "=>" |
184 | WHITESPACE@[280; 281) " " | 184 | WHITESPACE@280..281 " " |
185 | TUPLE_EXPR@[281; 283) | 185 | TUPLE_EXPR@281..283 |
186 | L_PAREN@[281; 282) "(" | 186 | L_PAREN@281..282 "(" |
187 | R_PAREN@[282; 283) ")" | 187 | R_PAREN@282..283 ")" |
188 | COMMA@[283; 284) "," | 188 | COMMA@283..284 "," |
189 | WHITESPACE@[284; 289) "\n " | 189 | WHITESPACE@284..289 "\n " |
190 | R_CURLY@[289; 290) "}" | 190 | R_CURLY@289..290 "}" |
191 | WHITESPACE@[290; 291) "\n" | 191 | WHITESPACE@290..291 "\n" |
192 | R_CURLY@[291; 292) "}" | 192 | R_CURLY@291..292 "}" |
193 | WHITESPACE@[292; 293) "\n" | 193 | WHITESPACE@292..293 "\n" |
194 | error [52; 52): expected `[` | 194 | error 52..52: expected `[` |
195 | error [52; 52): expected pattern | 195 | error 52..52: expected pattern |
196 | error [53; 53): expected FAT_ARROW | 196 | error 53..53: expected FAT_ARROW |
197 | error [78; 78): expected COMMA | 197 | error 78..78: expected COMMA |
198 | error [161; 161): expected `[` | 198 | error 161..161: expected `[` |
199 | error [161; 161): expected pattern | 199 | error 161..161: expected pattern |
200 | error [162; 162): expected FAT_ARROW | 200 | error 162..162: expected FAT_ARROW |
201 | error [232; 232): expected `[` | 201 | error 232..232: expected `[` |
202 | error [232; 232): expected pattern | 202 | error 232..232: expected pattern |
203 | error [233; 233): expected FAT_ARROW | 203 | error 233..233: expected FAT_ARROW |
204 | error [250; 250): expected COMMA | 204 | error 250..250: expected COMMA |
diff --git a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast index e914e688b..d0017c883 100644 --- a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast +++ b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.rast | |||
@@ -1,67 +1,67 @@ | |||
1 | SOURCE_FILE@[0; 89) | 1 | SOURCE_FILE@0..89 |
2 | FN_DEF@[0; 88) | 2 | FN_DEF@0..88 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 88) | 11 | BLOCK_EXPR@9..88 |
12 | BLOCK@[9; 88) | 12 | BLOCK@9..88 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 86) | 15 | MATCH_EXPR@15..86 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 86) | 22 | MATCH_ARM_LIST@24..86 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | MATCH_ARM@[34; 41) | 25 | MATCH_ARM@34..41 |
26 | PLACEHOLDER_PAT@[34; 35) | 26 | PLACEHOLDER_PAT@34..35 |
27 | UNDERSCORE@[34; 35) "_" | 27 | UNDERSCORE@34..35 "_" |
28 | WHITESPACE@[35; 36) " " | 28 | WHITESPACE@35..36 " " |
29 | FAT_ARROW@[36; 38) "=>" | 29 | FAT_ARROW@36..38 "=>" |
30 | WHITESPACE@[38; 39) " " | 30 | WHITESPACE@38..39 " " |
31 | TUPLE_EXPR@[39; 41) | 31 | TUPLE_EXPR@39..41 |
32 | L_PAREN@[39; 40) "(" | 32 | L_PAREN@39..40 "(" |
33 | R_PAREN@[40; 41) ")" | 33 | R_PAREN@40..41 ")" |
34 | COMMA@[41; 42) "," | 34 | COMMA@41..42 "," |
35 | WHITESPACE@[42; 51) "\n " | 35 | WHITESPACE@42..51 "\n " |
36 | MATCH_ARM@[51; 58) | 36 | MATCH_ARM@51..58 |
37 | PLACEHOLDER_PAT@[51; 52) | 37 | PLACEHOLDER_PAT@51..52 |
38 | UNDERSCORE@[51; 52) "_" | 38 | UNDERSCORE@51..52 "_" |
39 | WHITESPACE@[52; 53) " " | 39 | WHITESPACE@52..53 " " |
40 | FAT_ARROW@[53; 55) "=>" | 40 | FAT_ARROW@53..55 "=>" |
41 | WHITESPACE@[55; 56) " " | 41 | WHITESPACE@55..56 " " |
42 | TUPLE_EXPR@[56; 58) | 42 | TUPLE_EXPR@56..58 |
43 | L_PAREN@[56; 57) "(" | 43 | L_PAREN@56..57 "(" |
44 | R_PAREN@[57; 58) ")" | 44 | R_PAREN@57..58 ")" |
45 | COMMA@[58; 59) "," | 45 | COMMA@58..59 "," |
46 | WHITESPACE@[59; 68) "\n " | 46 | WHITESPACE@59..68 "\n " |
47 | MATCH_ARM@[68; 80) | 47 | MATCH_ARM@68..80 |
48 | ATTR@[68; 80) | 48 | ATTR@68..80 |
49 | POUND@[68; 69) "#" | 49 | POUND@68..69 "#" |
50 | L_BRACK@[69; 70) "[" | 50 | L_BRACK@69..70 "[" |
51 | PATH@[70; 73) | 51 | PATH@70..73 |
52 | PATH_SEGMENT@[70; 73) | 52 | PATH_SEGMENT@70..73 |
53 | NAME_REF@[70; 73) | 53 | NAME_REF@70..73 |
54 | IDENT@[70; 73) "cfg" | 54 | IDENT@70..73 "cfg" |
55 | TOKEN_TREE@[73; 79) | 55 | TOKEN_TREE@73..79 |
56 | L_PAREN@[73; 74) "(" | 56 | L_PAREN@73..74 "(" |
57 | IDENT@[74; 78) "test" | 57 | IDENT@74..78 "test" |
58 | R_PAREN@[78; 79) ")" | 58 | R_PAREN@78..79 ")" |
59 | R_BRACK@[79; 80) "]" | 59 | R_BRACK@79..80 "]" |
60 | WHITESPACE@[80; 85) "\n " | 60 | WHITESPACE@80..85 "\n " |
61 | R_CURLY@[85; 86) "}" | 61 | R_CURLY@85..86 "}" |
62 | WHITESPACE@[86; 87) "\n" | 62 | WHITESPACE@86..87 "\n" |
63 | R_CURLY@[87; 88) "}" | 63 | R_CURLY@87..88 "}" |
64 | WHITESPACE@[88; 89) "\n" | 64 | WHITESPACE@88..89 "\n" |
65 | error [80; 80): expected pattern | 65 | error 80..80: expected pattern |
66 | error [80; 80): expected FAT_ARROW | 66 | error 80..80: expected FAT_ARROW |
67 | error [80; 80): expected expression | 67 | error 80..80: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast index 2ab9ee56f..2c0bddec8 100644 --- a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast +++ b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.rast | |||
@@ -1,96 +1,96 @@ | |||
1 | SOURCE_FILE@[0; 91) | 1 | SOURCE_FILE@0..91 |
2 | FN_DEF@[0; 89) | 2 | FN_DEF@0..89 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 89) | 11 | BLOCK_EXPR@10..89 |
12 | BLOCK@[10; 89) | 12 | BLOCK@10..89 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 27) | 15 | LET_STMT@16..27 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | BIND_PAT@[20; 27) | 18 | BIND_PAT@20..27 |
19 | REF_KW@[20; 23) "ref" | 19 | REF_KW@20..23 "ref" |
20 | WHITESPACE@[23; 24) " " | 20 | WHITESPACE@23..24 " " |
21 | ERROR@[24; 27) | 21 | ERROR@24..27 |
22 | BOX_KW@[24; 27) "box" | 22 | BOX_KW@24..27 "box" |
23 | WHITESPACE@[27; 28) " " | 23 | WHITESPACE@27..28 " " |
24 | EXPR_STMT@[28; 35) | 24 | EXPR_STMT@28..35 |
25 | BIN_EXPR@[28; 34) | 25 | BIN_EXPR@28..34 |
26 | PATH_EXPR@[28; 29) | 26 | PATH_EXPR@28..29 |
27 | PATH@[28; 29) | 27 | PATH@28..29 |
28 | PATH_SEGMENT@[28; 29) | 28 | PATH_SEGMENT@28..29 |
29 | NAME_REF@[28; 29) | 29 | NAME_REF@28..29 |
30 | IDENT@[28; 29) "i" | 30 | IDENT@28..29 "i" |
31 | WHITESPACE@[29; 30) " " | 31 | WHITESPACE@29..30 " " |
32 | EQ@[30; 31) "=" | 32 | EQ@30..31 "=" |
33 | WHITESPACE@[31; 32) " " | 33 | WHITESPACE@31..32 " " |
34 | TUPLE_EXPR@[32; 34) | 34 | TUPLE_EXPR@32..34 |
35 | L_PAREN@[32; 33) "(" | 35 | L_PAREN@32..33 "(" |
36 | R_PAREN@[33; 34) ")" | 36 | R_PAREN@33..34 ")" |
37 | SEMICOLON@[34; 35) ";" | 37 | SEMICOLON@34..35 ";" |
38 | WHITESPACE@[35; 40) "\n " | 38 | WHITESPACE@35..40 "\n " |
39 | LET_STMT@[40; 51) | 39 | LET_STMT@40..51 |
40 | LET_KW@[40; 43) "let" | 40 | LET_KW@40..43 "let" |
41 | WHITESPACE@[43; 44) " " | 41 | WHITESPACE@43..44 " " |
42 | BIND_PAT@[44; 51) | 42 | BIND_PAT@44..51 |
43 | MUT_KW@[44; 47) "mut" | 43 | MUT_KW@44..47 "mut" |
44 | WHITESPACE@[47; 48) " " | 44 | WHITESPACE@47..48 " " |
45 | ERROR@[48; 51) | 45 | ERROR@48..51 |
46 | BOX_KW@[48; 51) "box" | 46 | BOX_KW@48..51 "box" |
47 | WHITESPACE@[51; 52) " " | 47 | WHITESPACE@51..52 " " |
48 | EXPR_STMT@[52; 59) | 48 | EXPR_STMT@52..59 |
49 | BIN_EXPR@[52; 58) | 49 | BIN_EXPR@52..58 |
50 | PATH_EXPR@[52; 53) | 50 | PATH_EXPR@52..53 |
51 | PATH@[52; 53) | 51 | PATH@52..53 |
52 | PATH_SEGMENT@[52; 53) | 52 | PATH_SEGMENT@52..53 |
53 | NAME_REF@[52; 53) | 53 | NAME_REF@52..53 |
54 | IDENT@[52; 53) "i" | 54 | IDENT@52..53 "i" |
55 | WHITESPACE@[53; 54) " " | 55 | WHITESPACE@53..54 " " |
56 | EQ@[54; 55) "=" | 56 | EQ@54..55 "=" |
57 | WHITESPACE@[55; 56) " " | 57 | WHITESPACE@55..56 " " |
58 | TUPLE_EXPR@[56; 58) | 58 | TUPLE_EXPR@56..58 |
59 | L_PAREN@[56; 57) "(" | 59 | L_PAREN@56..57 "(" |
60 | R_PAREN@[57; 58) ")" | 60 | R_PAREN@57..58 ")" |
61 | SEMICOLON@[58; 59) ";" | 61 | SEMICOLON@58..59 ";" |
62 | WHITESPACE@[59; 64) "\n " | 62 | WHITESPACE@59..64 "\n " |
63 | LET_STMT@[64; 79) | 63 | LET_STMT@64..79 |
64 | LET_KW@[64; 67) "let" | 64 | LET_KW@64..67 "let" |
65 | WHITESPACE@[67; 68) " " | 65 | WHITESPACE@67..68 " " |
66 | BIND_PAT@[68; 79) | 66 | BIND_PAT@68..79 |
67 | REF_KW@[68; 71) "ref" | 67 | REF_KW@68..71 "ref" |
68 | WHITESPACE@[71; 72) " " | 68 | WHITESPACE@71..72 " " |
69 | MUT_KW@[72; 75) "mut" | 69 | MUT_KW@72..75 "mut" |
70 | WHITESPACE@[75; 76) " " | 70 | WHITESPACE@75..76 " " |
71 | ERROR@[76; 79) | 71 | ERROR@76..79 |
72 | BOX_KW@[76; 79) "box" | 72 | BOX_KW@76..79 "box" |
73 | WHITESPACE@[79; 80) " " | 73 | WHITESPACE@79..80 " " |
74 | EXPR_STMT@[80; 87) | 74 | EXPR_STMT@80..87 |
75 | BIN_EXPR@[80; 86) | 75 | BIN_EXPR@80..86 |
76 | PATH_EXPR@[80; 81) | 76 | PATH_EXPR@80..81 |
77 | PATH@[80; 81) | 77 | PATH@80..81 |
78 | PATH_SEGMENT@[80; 81) | 78 | PATH_SEGMENT@80..81 |
79 | NAME_REF@[80; 81) | 79 | NAME_REF@80..81 |
80 | IDENT@[80; 81) "i" | 80 | IDENT@80..81 "i" |
81 | WHITESPACE@[81; 82) " " | 81 | WHITESPACE@81..82 " " |
82 | EQ@[82; 83) "=" | 82 | EQ@82..83 "=" |
83 | WHITESPACE@[83; 84) " " | 83 | WHITESPACE@83..84 " " |
84 | TUPLE_EXPR@[84; 86) | 84 | TUPLE_EXPR@84..86 |
85 | L_PAREN@[84; 85) "(" | 85 | L_PAREN@84..85 "(" |
86 | R_PAREN@[85; 86) ")" | 86 | R_PAREN@85..86 ")" |
87 | SEMICOLON@[86; 87) ";" | 87 | SEMICOLON@86..87 ";" |
88 | WHITESPACE@[87; 88) "\n" | 88 | WHITESPACE@87..88 "\n" |
89 | R_CURLY@[88; 89) "}" | 89 | R_CURLY@88..89 "}" |
90 | WHITESPACE@[89; 91) "\n\n" | 90 | WHITESPACE@89..91 "\n\n" |
91 | error [24; 24): expected a name | 91 | error 24..24: expected a name |
92 | error [27; 27): expected SEMICOLON | 92 | error 27..27: expected SEMICOLON |
93 | error [48; 48): expected a name | 93 | error 48..48: expected a name |
94 | error [51; 51): expected SEMICOLON | 94 | error 51..51: expected SEMICOLON |
95 | error [76; 76): expected a name | 95 | error 76..76: expected a name |
96 | error [79; 79): expected SEMICOLON | 96 | error 79..79: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast index f255b0a6b..83851f5d2 100644 --- a/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast +++ b/crates/ra_syntax/test_data/parser/err/0035_use_recover.rast | |||
@@ -1,54 +1,54 @@ | |||
1 | SOURCE_FILE@[0; 48) | 1 | SOURCE_FILE@0..48 |
2 | USE_ITEM@[0; 13) | 2 | USE_ITEM@0..13 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 12) | 5 | USE_TREE@4..12 |
6 | PATH@[4; 12) | 6 | PATH@4..12 |
7 | PATH@[4; 7) | 7 | PATH@4..7 |
8 | PATH_SEGMENT@[4; 7) | 8 | PATH_SEGMENT@4..7 |
9 | NAME_REF@[4; 7) | 9 | NAME_REF@4..7 |
10 | IDENT@[4; 7) "foo" | 10 | IDENT@4..7 "foo" |
11 | COLON2@[7; 9) "::" | 11 | COLON2@7..9 "::" |
12 | PATH_SEGMENT@[9; 12) | 12 | PATH_SEGMENT@9..12 |
13 | NAME_REF@[9; 12) | 13 | NAME_REF@9..12 |
14 | IDENT@[9; 12) "bar" | 14 | IDENT@9..12 "bar" |
15 | SEMICOLON@[12; 13) ";" | 15 | SEMICOLON@12..13 ";" |
16 | WHITESPACE@[13; 14) "\n" | 16 | WHITESPACE@13..14 "\n" |
17 | USE_ITEM@[14; 17) | 17 | USE_ITEM@14..17 |
18 | USE_KW@[14; 17) "use" | 18 | USE_KW@14..17 "use" |
19 | WHITESPACE@[17; 18) "\n" | 19 | WHITESPACE@17..18 "\n" |
20 | USE_ITEM@[18; 33) | 20 | USE_ITEM@18..33 |
21 | USE_KW@[18; 21) "use" | 21 | USE_KW@18..21 "use" |
22 | WHITESPACE@[21; 22) " " | 22 | WHITESPACE@21..22 " " |
23 | USE_TREE@[22; 32) | 23 | USE_TREE@22..32 |
24 | PATH@[22; 32) | 24 | PATH@22..32 |
25 | PATH@[22; 27) | 25 | PATH@22..27 |
26 | PATH_SEGMENT@[22; 27) | 26 | PATH_SEGMENT@22..27 |
27 | CRATE_KW@[22; 27) "crate" | 27 | CRATE_KW@22..27 "crate" |
28 | COLON2@[27; 29) "::" | 28 | COLON2@27..29 "::" |
29 | PATH_SEGMENT@[29; 32) | 29 | PATH_SEGMENT@29..32 |
30 | NAME_REF@[29; 32) | 30 | NAME_REF@29..32 |
31 | IDENT@[29; 32) "baz" | 31 | IDENT@29..32 "baz" |
32 | SEMICOLON@[32; 33) ";" | 32 | SEMICOLON@32..33 ";" |
33 | WHITESPACE@[33; 34) "\n" | 33 | WHITESPACE@33..34 "\n" |
34 | USE_ITEM@[34; 37) | 34 | USE_ITEM@34..37 |
35 | USE_KW@[34; 37) "use" | 35 | USE_KW@34..37 "use" |
36 | WHITESPACE@[37; 38) "\n" | 36 | WHITESPACE@37..38 "\n" |
37 | FN_DEF@[38; 47) | 37 | FN_DEF@38..47 |
38 | FN_KW@[38; 40) "fn" | 38 | FN_KW@38..40 "fn" |
39 | WHITESPACE@[40; 41) " " | 39 | WHITESPACE@40..41 " " |
40 | NAME@[41; 42) | 40 | NAME@41..42 |
41 | IDENT@[41; 42) "f" | 41 | IDENT@41..42 "f" |
42 | PARAM_LIST@[42; 44) | 42 | PARAM_LIST@42..44 |
43 | L_PAREN@[42; 43) "(" | 43 | L_PAREN@42..43 "(" |
44 | R_PAREN@[43; 44) ")" | 44 | R_PAREN@43..44 ")" |
45 | WHITESPACE@[44; 45) " " | 45 | WHITESPACE@44..45 " " |
46 | BLOCK_EXPR@[45; 47) | 46 | BLOCK_EXPR@45..47 |
47 | BLOCK@[45; 47) | 47 | BLOCK@45..47 |
48 | L_CURLY@[45; 46) "{" | 48 | L_CURLY@45..46 "{" |
49 | R_CURLY@[46; 47) "}" | 49 | R_CURLY@46..47 "}" |
50 | WHITESPACE@[47; 48) "\n" | 50 | WHITESPACE@47..48 "\n" |
51 | error [17; 17): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 51 | error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
52 | error [17; 17): expected SEMICOLON | 52 | error 17..17: expected SEMICOLON |
53 | error [37; 37): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 53 | error 37..37: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
54 | error [37; 37): expected SEMICOLON | 54 | error 37..37: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast b/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast index 1f2b4f6d9..f926b67d2 100644 --- a/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast +++ b/crates/ra_syntax/test_data/parser/err/0036_partial_use.rast | |||
@@ -1,51 +1,51 @@ | |||
1 | SOURCE_FILE@[0; 37) | 1 | SOURCE_FILE@0..37 |
2 | USE_ITEM@[0; 36) | 2 | USE_ITEM@0..36 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 36) | 5 | USE_TREE@4..36 |
6 | PATH@[4; 7) | 6 | PATH@4..7 |
7 | PATH_SEGMENT@[4; 7) | 7 | PATH_SEGMENT@4..7 |
8 | NAME_REF@[4; 7) | 8 | NAME_REF@4..7 |
9 | IDENT@[4; 7) "std" | 9 | IDENT@4..7 "std" |
10 | COLON2@[7; 9) "::" | 10 | COLON2@7..9 "::" |
11 | USE_TREE_LIST@[9; 36) | 11 | USE_TREE_LIST@9..36 |
12 | L_CURLY@[9; 10) "{" | 12 | L_CURLY@9..10 "{" |
13 | USE_TREE@[10; 22) | 13 | USE_TREE@10..22 |
14 | PATH@[10; 22) | 14 | PATH@10..22 |
15 | PATH@[10; 15) | 15 | PATH@10..15 |
16 | PATH_SEGMENT@[10; 15) | 16 | PATH_SEGMENT@10..15 |
17 | NAME_REF@[10; 15) | 17 | NAME_REF@10..15 |
18 | IDENT@[10; 15) "error" | 18 | IDENT@10..15 "error" |
19 | COLON2@[15; 17) "::" | 19 | COLON2@15..17 "::" |
20 | PATH_SEGMENT@[17; 22) | 20 | PATH_SEGMENT@17..22 |
21 | NAME_REF@[17; 22) | 21 | NAME_REF@17..22 |
22 | IDENT@[17; 22) "Error" | 22 | IDENT@17..22 "Error" |
23 | ERROR@[22; 23) | 23 | ERROR@22..23 |
24 | SEMICOLON@[22; 23) ";" | 24 | SEMICOLON@22..23 ";" |
25 | WHITESPACE@[23; 24) "\n" | 25 | WHITESPACE@23..24 "\n" |
26 | ERROR@[24; 27) | 26 | ERROR@24..27 |
27 | USE_KW@[24; 27) "use" | 27 | USE_KW@24..27 "use" |
28 | WHITESPACE@[27; 28) " " | 28 | WHITESPACE@27..28 " " |
29 | USE_TREE@[28; 35) | 29 | USE_TREE@28..35 |
30 | PATH@[28; 35) | 30 | PATH@28..35 |
31 | PATH@[28; 31) | 31 | PATH@28..31 |
32 | PATH_SEGMENT@[28; 31) | 32 | PATH_SEGMENT@28..31 |
33 | NAME_REF@[28; 31) | 33 | NAME_REF@28..31 |
34 | IDENT@[28; 31) "std" | 34 | IDENT@28..31 "std" |
35 | COLON2@[31; 33) "::" | 35 | COLON2@31..33 "::" |
36 | PATH_SEGMENT@[33; 35) | 36 | PATH_SEGMENT@33..35 |
37 | NAME_REF@[33; 35) | 37 | NAME_REF@33..35 |
38 | IDENT@[33; 35) "io" | 38 | IDENT@33..35 "io" |
39 | ERROR@[35; 36) | 39 | ERROR@35..36 |
40 | SEMICOLON@[35; 36) ";" | 40 | SEMICOLON@35..36 ";" |
41 | WHITESPACE@[36; 37) "\n" | 41 | WHITESPACE@36..37 "\n" |
42 | error [22; 22): expected COMMA | 42 | error 22..22: expected COMMA |
43 | error [22; 22): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 43 | error 22..22: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
44 | error [23; 23): expected COMMA | 44 | error 23..23: expected COMMA |
45 | error [24; 24): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 45 | error 24..24: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
46 | error [27; 27): expected COMMA | 46 | error 27..27: expected COMMA |
47 | error [35; 35): expected COMMA | 47 | error 35..35: expected COMMA |
48 | error [35; 35): expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 48 | error 35..35: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
49 | error [36; 36): expected COMMA | 49 | error 36..36: expected COMMA |
50 | error [36; 36): expected R_CURLY | 50 | error 36..36: expected R_CURLY |
51 | error [36; 36): expected SEMICOLON | 51 | error 36..36: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast index 5319bf936..a328222aa 100644 --- a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast +++ b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast | |||
@@ -1,99 +1,99 @@ | |||
1 | SOURCE_FILE@[0; 118) | 1 | SOURCE_FILE@0..118 |
2 | IMPL_DEF@[0; 117) | 2 | IMPL_DEF@0..117 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "T" | 9 | IDENT@5..6 "T" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | FOR_KW@[7; 10) "for" | 11 | FOR_KW@7..10 "for" |
12 | WHITESPACE@[10; 11) " " | 12 | WHITESPACE@10..11 " " |
13 | TUPLE_TYPE@[11; 13) | 13 | TUPLE_TYPE@11..13 |
14 | L_PAREN@[11; 12) "(" | 14 | L_PAREN@11..12 "(" |
15 | R_PAREN@[12; 13) ")" | 15 | R_PAREN@12..13 ")" |
16 | WHITESPACE@[13; 14) " " | 16 | WHITESPACE@13..14 " " |
17 | ITEM_LIST@[14; 117) | 17 | ITEM_LIST@14..117 |
18 | L_CURLY@[14; 15) "{" | 18 | L_CURLY@14..15 "{" |
19 | WHITESPACE@[15; 20) "\n " | 19 | WHITESPACE@15..20 "\n " |
20 | FN_DEF@[20; 31) | 20 | FN_DEF@20..31 |
21 | FN_KW@[20; 22) "fn" | 21 | FN_KW@20..22 "fn" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | NAME@[23; 26) | 23 | NAME@23..26 |
24 | IDENT@[23; 26) "foo" | 24 | IDENT@23..26 "foo" |
25 | PARAM_LIST@[26; 28) | 25 | PARAM_LIST@26..28 |
26 | L_PAREN@[26; 27) "(" | 26 | L_PAREN@26..27 "(" |
27 | R_PAREN@[27; 28) ")" | 27 | R_PAREN@27..28 ")" |
28 | WHITESPACE@[28; 29) " " | 28 | WHITESPACE@28..29 " " |
29 | BLOCK_EXPR@[29; 31) | 29 | BLOCK_EXPR@29..31 |
30 | BLOCK@[29; 31) | 30 | BLOCK@29..31 |
31 | L_CURLY@[29; 30) "{" | 31 | L_CURLY@29..30 "{" |
32 | R_CURLY@[30; 31) "}" | 32 | R_CURLY@30..31 "}" |
33 | WHITESPACE@[31; 36) "\n " | 33 | WHITESPACE@31..36 "\n " |
34 | FN_DEF@[36; 51) | 34 | FN_DEF@36..51 |
35 | VISIBILITY@[36; 39) | 35 | VISIBILITY@36..39 |
36 | PUB_KW@[36; 39) "pub" | 36 | PUB_KW@36..39 "pub" |
37 | WHITESPACE@[39; 40) " " | 37 | WHITESPACE@39..40 " " |
38 | FN_KW@[40; 42) "fn" | 38 | FN_KW@40..42 "fn" |
39 | WHITESPACE@[42; 43) " " | 39 | WHITESPACE@42..43 " " |
40 | NAME@[43; 46) | 40 | NAME@43..46 |
41 | IDENT@[43; 46) "bar" | 41 | IDENT@43..46 "bar" |
42 | PARAM_LIST@[46; 48) | 42 | PARAM_LIST@46..48 |
43 | L_PAREN@[46; 47) "(" | 43 | L_PAREN@46..47 "(" |
44 | R_PAREN@[47; 48) ")" | 44 | R_PAREN@47..48 ")" |
45 | WHITESPACE@[48; 49) " " | 45 | WHITESPACE@48..49 " " |
46 | BLOCK_EXPR@[49; 51) | 46 | BLOCK_EXPR@49..51 |
47 | BLOCK@[49; 51) | 47 | BLOCK@49..51 |
48 | L_CURLY@[49; 50) "{" | 48 | L_CURLY@49..50 "{" |
49 | R_CURLY@[50; 51) "}" | 49 | R_CURLY@50..51 "}" |
50 | WHITESPACE@[51; 56) "\n " | 50 | WHITESPACE@51..56 "\n " |
51 | TYPE_ALIAS_DEF@[56; 81) | 51 | TYPE_ALIAS_DEF@56..81 |
52 | VISIBILITY@[56; 66) | 52 | VISIBILITY@56..66 |
53 | PUB_KW@[56; 59) "pub" | 53 | PUB_KW@56..59 "pub" |
54 | L_PAREN@[59; 60) "(" | 54 | L_PAREN@59..60 "(" |
55 | CRATE_KW@[60; 65) "crate" | 55 | CRATE_KW@60..65 "crate" |
56 | R_PAREN@[65; 66) ")" | 56 | R_PAREN@65..66 ")" |
57 | WHITESPACE@[66; 67) " " | 57 | WHITESPACE@66..67 " " |
58 | TYPE_KW@[67; 71) "type" | 58 | TYPE_KW@67..71 "type" |
59 | WHITESPACE@[71; 72) " " | 59 | WHITESPACE@71..72 " " |
60 | NAME@[72; 75) | 60 | NAME@72..75 |
61 | IDENT@[72; 75) "Baz" | 61 | IDENT@72..75 "Baz" |
62 | WHITESPACE@[75; 76) " " | 62 | WHITESPACE@75..76 " " |
63 | EQ@[76; 77) "=" | 63 | EQ@76..77 "=" |
64 | WHITESPACE@[77; 78) " " | 64 | WHITESPACE@77..78 " " |
65 | TUPLE_TYPE@[78; 80) | 65 | TUPLE_TYPE@78..80 |
66 | L_PAREN@[78; 79) "(" | 66 | L_PAREN@78..79 "(" |
67 | R_PAREN@[79; 80) ")" | 67 | R_PAREN@79..80 ")" |
68 | SEMICOLON@[80; 81) ";" | 68 | SEMICOLON@80..81 ";" |
69 | WHITESPACE@[81; 86) "\n " | 69 | WHITESPACE@81..86 "\n " |
70 | CONST_DEF@[86; 115) | 70 | CONST_DEF@86..115 |
71 | VISIBILITY@[86; 96) | 71 | VISIBILITY@86..96 |
72 | PUB_KW@[86; 89) "pub" | 72 | PUB_KW@86..89 "pub" |
73 | L_PAREN@[89; 90) "(" | 73 | L_PAREN@89..90 "(" |
74 | CRATE_KW@[90; 95) "crate" | 74 | CRATE_KW@90..95 "crate" |
75 | R_PAREN@[95; 96) ")" | 75 | R_PAREN@95..96 ")" |
76 | WHITESPACE@[96; 97) " " | 76 | WHITESPACE@96..97 " " |
77 | CONST_KW@[97; 102) "const" | 77 | CONST_KW@97..102 "const" |
78 | WHITESPACE@[102; 103) " " | 78 | WHITESPACE@102..103 " " |
79 | NAME@[103; 104) | 79 | NAME@103..104 |
80 | IDENT@[103; 104) "C" | 80 | IDENT@103..104 "C" |
81 | COLON@[104; 105) ":" | 81 | COLON@104..105 ":" |
82 | WHITESPACE@[105; 106) " " | 82 | WHITESPACE@105..106 " " |
83 | PATH_TYPE@[106; 109) | 83 | PATH_TYPE@106..109 |
84 | PATH@[106; 109) | 84 | PATH@106..109 |
85 | PATH_SEGMENT@[106; 109) | 85 | PATH_SEGMENT@106..109 |
86 | NAME_REF@[106; 109) | 86 | NAME_REF@106..109 |
87 | IDENT@[106; 109) "i32" | 87 | IDENT@106..109 "i32" |
88 | WHITESPACE@[109; 110) " " | 88 | WHITESPACE@109..110 " " |
89 | EQ@[110; 111) "=" | 89 | EQ@110..111 "=" |
90 | WHITESPACE@[111; 112) " " | 90 | WHITESPACE@111..112 " " |
91 | LITERAL@[112; 114) | 91 | LITERAL@112..114 |
92 | INT_NUMBER@[112; 114) "92" | 92 | INT_NUMBER@112..114 "92" |
93 | SEMICOLON@[114; 115) ";" | 93 | SEMICOLON@114..115 ";" |
94 | WHITESPACE@[115; 116) "\n" | 94 | WHITESPACE@115..116 "\n" |
95 | R_CURLY@[116; 117) "}" | 95 | R_CURLY@116..117 "}" |
96 | WHITESPACE@[117; 118) "\n" | 96 | WHITESPACE@117..118 "\n" |
97 | error [36; 39): Unnecessary visibility qualifier | 97 | error 36..39: Unnecessary visibility qualifier |
98 | error [56; 66): Unnecessary visibility qualifier | 98 | error 56..66: Unnecessary visibility qualifier |
99 | error [86; 96): Unnecessary visibility qualifier | 99 | error 86..96: Unnecessary visibility qualifier |
diff --git a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast index 9efdf7ef4..bcd1fad69 100644 --- a/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast +++ b/crates/ra_syntax/test_data/parser/err/0038_endless_inclusive_range.rast | |||
@@ -1,30 +1,30 @@ | |||
1 | SOURCE_FILE@[0; 33) | 1 | SOURCE_FILE@0..33 |
2 | FN_DEF@[0; 32) | 2 | FN_DEF@0..32 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 32) | 11 | BLOCK_EXPR@10..32 |
12 | BLOCK@[10; 32) | 12 | BLOCK@10..32 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 21) | 15 | EXPR_STMT@16..21 |
16 | RANGE_EXPR@[16; 20) | 16 | RANGE_EXPR@16..20 |
17 | LITERAL@[16; 17) | 17 | LITERAL@16..17 |
18 | INT_NUMBER@[16; 17) "0" | 18 | INT_NUMBER@16..17 "0" |
19 | DOT2EQ@[17; 20) "..=" | 19 | DOT2EQ@17..20 "..=" |
20 | SEMICOLON@[20; 21) ";" | 20 | SEMICOLON@20..21 ";" |
21 | WHITESPACE@[21; 26) "\n " | 21 | WHITESPACE@21..26 "\n " |
22 | EXPR_STMT@[26; 30) | 22 | EXPR_STMT@26..30 |
23 | RANGE_EXPR@[26; 29) | 23 | RANGE_EXPR@26..29 |
24 | DOT2EQ@[26; 29) "..=" | 24 | DOT2EQ@26..29 "..=" |
25 | SEMICOLON@[29; 30) ";" | 25 | SEMICOLON@29..30 ";" |
26 | WHITESPACE@[30; 31) "\n" | 26 | WHITESPACE@30..31 "\n" |
27 | R_CURLY@[31; 32) "}" | 27 | R_CURLY@31..32 "}" |
28 | WHITESPACE@[32; 33) "\n" | 28 | WHITESPACE@32..33 "\n" |
29 | error [16; 20): An inclusive range must have an end expression | 29 | error 16..20: An inclusive range must have an end expression |
30 | error [26; 29): An inclusive range must have an end expression | 30 | error 26..29: An inclusive range must have an end expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast index edf9c3247..433ea7bad 100644 --- a/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast +++ b/crates/ra_syntax/test_data/parser/err/0039_lambda_recovery.rast | |||
@@ -1,83 +1,83 @@ | |||
1 | SOURCE_FILE@[0; 83) | 1 | SOURCE_FILE@0..83 |
2 | FN_DEF@[0; 82) | 2 | FN_DEF@0..82 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | RET_TYPE@[9; 15) | 11 | RET_TYPE@9..15 |
12 | THIN_ARROW@[9; 11) "->" | 12 | THIN_ARROW@9..11 "->" |
13 | WHITESPACE@[11; 12) " " | 13 | WHITESPACE@11..12 " " |
14 | PATH_TYPE@[12; 15) | 14 | PATH_TYPE@12..15 |
15 | PATH@[12; 15) | 15 | PATH@12..15 |
16 | PATH_SEGMENT@[12; 15) | 16 | PATH_SEGMENT@12..15 |
17 | NAME_REF@[12; 15) | 17 | NAME_REF@12..15 |
18 | IDENT@[12; 15) "i32" | 18 | IDENT@12..15 "i32" |
19 | WHITESPACE@[15; 16) " " | 19 | WHITESPACE@15..16 " " |
20 | BLOCK_EXPR@[16; 82) | 20 | BLOCK_EXPR@16..82 |
21 | BLOCK@[16; 82) | 21 | BLOCK@16..82 |
22 | L_CURLY@[16; 17) "{" | 22 | L_CURLY@16..17 "{" |
23 | WHITESPACE@[17; 22) "\n " | 23 | WHITESPACE@17..22 "\n " |
24 | EXPR_STMT@[22; 80) | 24 | EXPR_STMT@22..80 |
25 | METHOD_CALL_EXPR@[22; 79) | 25 | METHOD_CALL_EXPR@22..79 |
26 | METHOD_CALL_EXPR@[22; 57) | 26 | METHOD_CALL_EXPR@22..57 |
27 | METHOD_CALL_EXPR@[22; 38) | 27 | METHOD_CALL_EXPR@22..38 |
28 | ARRAY_EXPR@[22; 31) | 28 | ARRAY_EXPR@22..31 |
29 | L_BRACK@[22; 23) "[" | 29 | L_BRACK@22..23 "[" |
30 | LITERAL@[23; 24) | 30 | LITERAL@23..24 |
31 | INT_NUMBER@[23; 24) "1" | 31 | INT_NUMBER@23..24 "1" |
32 | COMMA@[24; 25) "," | 32 | COMMA@24..25 "," |
33 | WHITESPACE@[25; 26) " " | 33 | WHITESPACE@25..26 " " |
34 | LITERAL@[26; 27) | 34 | LITERAL@26..27 |
35 | INT_NUMBER@[26; 27) "2" | 35 | INT_NUMBER@26..27 "2" |
36 | COMMA@[27; 28) "," | 36 | COMMA@27..28 "," |
37 | WHITESPACE@[28; 29) " " | 37 | WHITESPACE@28..29 " " |
38 | LITERAL@[29; 30) | 38 | LITERAL@29..30 |
39 | INT_NUMBER@[29; 30) "3" | 39 | INT_NUMBER@29..30 "3" |
40 | R_BRACK@[30; 31) "]" | 40 | R_BRACK@30..31 "]" |
41 | DOT@[31; 32) "." | 41 | DOT@31..32 "." |
42 | NAME_REF@[32; 36) | 42 | NAME_REF@32..36 |
43 | IDENT@[32; 36) "iter" | 43 | IDENT@32..36 "iter" |
44 | ARG_LIST@[36; 38) | 44 | ARG_LIST@36..38 |
45 | L_PAREN@[36; 37) "(" | 45 | L_PAREN@36..37 "(" |
46 | R_PAREN@[37; 38) ")" | 46 | R_PAREN@37..38 ")" |
47 | WHITESPACE@[38; 47) "\n " | 47 | WHITESPACE@38..47 "\n " |
48 | DOT@[47; 48) "." | 48 | DOT@47..48 "." |
49 | NAME_REF@[48; 51) | 49 | NAME_REF@48..51 |
50 | IDENT@[48; 51) "map" | 50 | IDENT@48..51 "map" |
51 | ARG_LIST@[51; 57) | 51 | ARG_LIST@51..57 |
52 | L_PAREN@[51; 52) "(" | 52 | L_PAREN@51..52 "(" |
53 | LAMBDA_EXPR@[52; 56) | 53 | LAMBDA_EXPR@52..56 |
54 | PARAM_LIST@[52; 56) | 54 | PARAM_LIST@52..56 |
55 | PIPE@[52; 53) "|" | 55 | PIPE@52..53 "|" |
56 | PARAM@[53; 55) | 56 | PARAM@53..55 |
57 | BIND_PAT@[53; 55) | 57 | BIND_PAT@53..55 |
58 | NAME@[53; 55) | 58 | NAME@53..55 |
59 | IDENT@[53; 55) "it" | 59 | IDENT@53..55 "it" |
60 | PIPE@[55; 56) "|" | 60 | PIPE@55..56 "|" |
61 | R_PAREN@[56; 57) ")" | 61 | R_PAREN@56..57 ")" |
62 | WHITESPACE@[57; 66) "\n " | 62 | WHITESPACE@57..66 "\n " |
63 | DOT@[66; 67) "." | 63 | DOT@66..67 "." |
64 | NAME_REF@[67; 70) | 64 | NAME_REF@67..70 |
65 | IDENT@[67; 70) "max" | 65 | IDENT@67..70 "max" |
66 | TYPE_ARG_LIST@[70; 77) | 66 | TYPE_ARG_LIST@70..77 |
67 | COLON2@[70; 72) "::" | 67 | COLON2@70..72 "::" |
68 | L_ANGLE@[72; 73) "<" | 68 | L_ANGLE@72..73 "<" |
69 | TYPE_ARG@[73; 76) | 69 | TYPE_ARG@73..76 |
70 | PATH_TYPE@[73; 76) | 70 | PATH_TYPE@73..76 |
71 | PATH@[73; 76) | 71 | PATH@73..76 |
72 | PATH_SEGMENT@[73; 76) | 72 | PATH_SEGMENT@73..76 |
73 | NAME_REF@[73; 76) | 73 | NAME_REF@73..76 |
74 | IDENT@[73; 76) "i32" | 74 | IDENT@73..76 "i32" |
75 | R_ANGLE@[76; 77) ">" | 75 | R_ANGLE@76..77 ">" |
76 | ARG_LIST@[77; 79) | 76 | ARG_LIST@77..79 |
77 | L_PAREN@[77; 78) "(" | 77 | L_PAREN@77..78 "(" |
78 | R_PAREN@[78; 79) ")" | 78 | R_PAREN@78..79 ")" |
79 | SEMICOLON@[79; 80) ";" | 79 | SEMICOLON@79..80 ";" |
80 | WHITESPACE@[80; 81) "\n" | 80 | WHITESPACE@80..81 "\n" |
81 | R_CURLY@[81; 82) "}" | 81 | R_CURLY@81..82 "}" |
82 | WHITESPACE@[82; 83) "\n" | 82 | WHITESPACE@82..83 "\n" |
83 | error [56; 56): expected expression | 83 | error 56..56: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast b/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast index 9d807c84f..bf70ebca4 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0001_array_type_missing_semi.rast | |||
@@ -1,27 +1,27 @@ | |||
1 | SOURCE_FILE@[0; 18) | 1 | SOURCE_FILE@0..18 |
2 | TYPE_ALIAS_DEF@[0; 12) | 2 | TYPE_ALIAS_DEF@0..12 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | SLICE_TYPE@[9; 12) | 10 | SLICE_TYPE@9..12 |
11 | L_BRACK@[9; 10) "[" | 11 | L_BRACK@9..10 "[" |
12 | TUPLE_TYPE@[10; 12) | 12 | TUPLE_TYPE@10..12 |
13 | L_PAREN@[10; 11) "(" | 13 | L_PAREN@10..11 "(" |
14 | R_PAREN@[11; 12) ")" | 14 | R_PAREN@11..12 ")" |
15 | WHITESPACE@[12; 13) " " | 15 | WHITESPACE@12..13 " " |
16 | ERROR@[13; 15) | 16 | ERROR@13..15 |
17 | INT_NUMBER@[13; 15) "92" | 17 | INT_NUMBER@13..15 "92" |
18 | ERROR@[15; 16) | 18 | ERROR@15..16 |
19 | R_BRACK@[15; 16) "]" | 19 | R_BRACK@15..16 "]" |
20 | ERROR@[16; 17) | 20 | ERROR@16..17 |
21 | SEMICOLON@[16; 17) ";" | 21 | SEMICOLON@16..17 ";" |
22 | WHITESPACE@[17; 18) "\n" | 22 | WHITESPACE@17..18 "\n" |
23 | error [12; 12): expected `;` or `]` | 23 | error 12..12: expected `;` or `]` |
24 | error [12; 12): expected SEMICOLON | 24 | error 12..12: expected SEMICOLON |
25 | error [13; 13): expected an item | 25 | error 13..13: expected an item |
26 | error [15; 15): expected an item | 26 | error 15..15: expected an item |
27 | error [16; 16): expected an item | 27 | error 16..16: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast index a85855f8c..85bf276a0 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0002_misplaced_label_err.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 29) | 2 | FN_DEF@0..29 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 29) | 11 | BLOCK_EXPR@10..29 |
12 | BLOCK@[10; 29) | 12 | BLOCK@10..29 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 22) | 15 | EXPR_STMT@16..22 |
16 | ERROR@[16; 22) | 16 | ERROR@16..22 |
17 | LABEL@[16; 22) | 17 | LABEL@16..22 |
18 | LIFETIME@[16; 21) "\'loop" | 18 | LIFETIME@16..21 "\'loop" |
19 | COLON@[21; 22) ":" | 19 | COLON@21..22 ":" |
20 | WHITESPACE@[22; 23) " " | 20 | WHITESPACE@22..23 " " |
21 | IMPL_DEF@[23; 27) | 21 | IMPL_DEF@23..27 |
22 | IMPL_KW@[23; 27) "impl" | 22 | IMPL_KW@23..27 "impl" |
23 | WHITESPACE@[27; 28) "\n" | 23 | WHITESPACE@27..28 "\n" |
24 | R_CURLY@[28; 29) "}" | 24 | R_CURLY@28..29 "}" |
25 | WHITESPACE@[29; 30) "\n" | 25 | WHITESPACE@29..30 "\n" |
26 | error [22; 22): expected a loop | 26 | error 22..22: expected a loop |
27 | error [22; 22): expected SEMICOLON | 27 | error 22..22: expected SEMICOLON |
28 | error [27; 27): expected type | 28 | error 27..27: expected type |
29 | error [27; 27): expected `{` | 29 | error 27..27: expected `{` |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast b/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast index e9efad674..95bcc3c0a 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0003_pointer_type_no_mutability.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 14) | 1 | SOURCE_FILE@0..14 |
2 | TYPE_ALIAS_DEF@[0; 13) | 2 | TYPE_ALIAS_DEF@0..13 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | POINTER_TYPE@[9; 12) | 10 | POINTER_TYPE@9..12 |
11 | STAR@[9; 10) "*" | 11 | STAR@9..10 "*" |
12 | TUPLE_TYPE@[10; 12) | 12 | TUPLE_TYPE@10..12 |
13 | L_PAREN@[10; 11) "(" | 13 | L_PAREN@10..11 "(" |
14 | R_PAREN@[11; 12) ")" | 14 | R_PAREN@11..12 ")" |
15 | SEMICOLON@[12; 13) ";" | 15 | SEMICOLON@12..13 ";" |
16 | WHITESPACE@[13; 14) "\n" | 16 | WHITESPACE@13..14 "\n" |
17 | error [10; 10): expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate) | 17 | error 10..10: expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate) |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0004_impl_type.rast b/crates/ra_syntax/test_data/parser/inline/err/0004_impl_type.rast index 124f0a891..fd939be8d 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0004_impl_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0004_impl_type.rast | |||
@@ -1,79 +1,79 @@ | |||
1 | SOURCE_FILE@[0; 87) | 1 | SOURCE_FILE@0..87 |
2 | IMPL_DEF@[0; 12) | 2 | IMPL_DEF@0..12 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 9) | 5 | PATH_TYPE@5..9 |
6 | PATH@[5; 9) | 6 | PATH@5..9 |
7 | PATH_SEGMENT@[5; 9) | 7 | PATH_SEGMENT@5..9 |
8 | NAME_REF@[5; 9) | 8 | NAME_REF@5..9 |
9 | IDENT@[5; 9) "Type" | 9 | IDENT@5..9 "Type" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | ITEM_LIST@[10; 12) | 11 | ITEM_LIST@10..12 |
12 | L_CURLY@[10; 11) "{" | 12 | L_CURLY@10..11 "{" |
13 | R_CURLY@[11; 12) "}" | 13 | R_CURLY@11..12 "}" |
14 | WHITESPACE@[12; 13) "\n" | 14 | WHITESPACE@12..13 "\n" |
15 | IMPL_DEF@[13; 33) | 15 | IMPL_DEF@13..33 |
16 | IMPL_KW@[13; 17) "impl" | 16 | IMPL_KW@13..17 "impl" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | PATH_TYPE@[18; 24) | 18 | PATH_TYPE@18..24 |
19 | PATH@[18; 24) | 19 | PATH@18..24 |
20 | PATH_SEGMENT@[18; 24) | 20 | PATH_SEGMENT@18..24 |
21 | NAME_REF@[18; 24) | 21 | NAME_REF@18..24 |
22 | IDENT@[18; 24) "Trait1" | 22 | IDENT@18..24 "Trait1" |
23 | WHITESPACE@[24; 25) " " | 23 | WHITESPACE@24..25 " " |
24 | FOR_KW@[25; 28) "for" | 24 | FOR_KW@25..28 "for" |
25 | WHITESPACE@[28; 29) " " | 25 | WHITESPACE@28..29 " " |
26 | PATH_TYPE@[29; 30) | 26 | PATH_TYPE@29..30 |
27 | PATH@[29; 30) | 27 | PATH@29..30 |
28 | PATH_SEGMENT@[29; 30) | 28 | PATH_SEGMENT@29..30 |
29 | NAME_REF@[29; 30) | 29 | NAME_REF@29..30 |
30 | IDENT@[29; 30) "T" | 30 | IDENT@29..30 "T" |
31 | WHITESPACE@[30; 31) " " | 31 | WHITESPACE@30..31 " " |
32 | ITEM_LIST@[31; 33) | 32 | ITEM_LIST@31..33 |
33 | L_CURLY@[31; 32) "{" | 33 | L_CURLY@31..32 "{" |
34 | R_CURLY@[32; 33) "}" | 34 | R_CURLY@32..33 "}" |
35 | WHITESPACE@[33; 34) "\n" | 35 | WHITESPACE@33..34 "\n" |
36 | IMPL_DEF@[34; 38) | 36 | IMPL_DEF@34..38 |
37 | IMPL_KW@[34; 38) "impl" | 37 | IMPL_KW@34..38 "impl" |
38 | WHITESPACE@[38; 39) " " | 38 | WHITESPACE@38..39 " " |
39 | IMPL_DEF@[39; 54) | 39 | IMPL_DEF@39..54 |
40 | IMPL_KW@[39; 43) "impl" | 40 | IMPL_KW@39..43 "impl" |
41 | WHITESPACE@[43; 44) " " | 41 | WHITESPACE@43..44 " " |
42 | PATH_TYPE@[44; 51) | 42 | PATH_TYPE@44..51 |
43 | PATH@[44; 51) | 43 | PATH@44..51 |
44 | PATH_SEGMENT@[44; 51) | 44 | PATH_SEGMENT@44..51 |
45 | NAME_REF@[44; 51) | 45 | NAME_REF@44..51 |
46 | IDENT@[44; 51) "NotType" | 46 | IDENT@44..51 "NotType" |
47 | WHITESPACE@[51; 52) " " | 47 | WHITESPACE@51..52 " " |
48 | ITEM_LIST@[52; 54) | 48 | ITEM_LIST@52..54 |
49 | L_CURLY@[52; 53) "{" | 49 | L_CURLY@52..53 "{" |
50 | R_CURLY@[53; 54) "}" | 50 | R_CURLY@53..54 "}" |
51 | WHITESPACE@[54; 55) "\n" | 51 | WHITESPACE@54..55 "\n" |
52 | IMPL_DEF@[55; 70) | 52 | IMPL_DEF@55..70 |
53 | IMPL_KW@[55; 59) "impl" | 53 | IMPL_KW@55..59 "impl" |
54 | WHITESPACE@[59; 60) " " | 54 | WHITESPACE@59..60 " " |
55 | PATH_TYPE@[60; 66) | 55 | PATH_TYPE@60..66 |
56 | PATH@[60; 66) | 56 | PATH@60..66 |
57 | PATH_SEGMENT@[60; 66) | 57 | PATH_SEGMENT@60..66 |
58 | NAME_REF@[60; 66) | 58 | NAME_REF@60..66 |
59 | IDENT@[60; 66) "Trait2" | 59 | IDENT@60..66 "Trait2" |
60 | WHITESPACE@[66; 67) " " | 60 | WHITESPACE@66..67 " " |
61 | FOR_KW@[67; 70) "for" | 61 | FOR_KW@67..70 "for" |
62 | WHITESPACE@[70; 71) " " | 62 | WHITESPACE@70..71 " " |
63 | IMPL_DEF@[71; 86) | 63 | IMPL_DEF@71..86 |
64 | IMPL_KW@[71; 75) "impl" | 64 | IMPL_KW@71..75 "impl" |
65 | WHITESPACE@[75; 76) " " | 65 | WHITESPACE@75..76 " " |
66 | PATH_TYPE@[76; 83) | 66 | PATH_TYPE@76..83 |
67 | PATH@[76; 83) | 67 | PATH@76..83 |
68 | PATH_SEGMENT@[76; 83) | 68 | PATH_SEGMENT@76..83 |
69 | NAME_REF@[76; 83) | 69 | NAME_REF@76..83 |
70 | IDENT@[76; 83) "NotType" | 70 | IDENT@76..83 "NotType" |
71 | WHITESPACE@[83; 84) " " | 71 | WHITESPACE@83..84 " " |
72 | ITEM_LIST@[84; 86) | 72 | ITEM_LIST@84..86 |
73 | L_CURLY@[84; 85) "{" | 73 | L_CURLY@84..85 "{" |
74 | R_CURLY@[85; 86) "}" | 74 | R_CURLY@85..86 "}" |
75 | WHITESPACE@[86; 87) "\n" | 75 | WHITESPACE@86..87 "\n" |
76 | error [38; 38): expected trait or type | 76 | error 38..38: expected trait or type |
77 | error [38; 38): expected `{` | 77 | error 38..38: expected `{` |
78 | error [70; 70): expected trait or type | 78 | error 70..70: expected trait or type |
79 | error [70; 70): expected `{` | 79 | error 70..70: expected `{` |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast b/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast index b8a494085..90202d764 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0005_fn_pointer_type_missing_fn.rast | |||
@@ -1,23 +1,23 @@ | |||
1 | SOURCE_FILE@[0; 20) | 1 | SOURCE_FILE@0..20 |
2 | TYPE_ALIAS_DEF@[0; 15) | 2 | TYPE_ALIAS_DEF@0..15 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "F" | 6 | IDENT@5..6 "F" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | UNSAFE_KW@[9; 15) "unsafe" | 10 | UNSAFE_KW@9..15 "unsafe" |
11 | WHITESPACE@[15; 16) " " | 11 | WHITESPACE@15..16 " " |
12 | ERROR@[16; 17) | 12 | ERROR@16..17 |
13 | L_PAREN@[16; 17) "(" | 13 | L_PAREN@16..17 "(" |
14 | ERROR@[17; 18) | 14 | ERROR@17..18 |
15 | R_PAREN@[17; 18) ")" | 15 | R_PAREN@17..18 ")" |
16 | ERROR@[18; 19) | 16 | ERROR@18..19 |
17 | SEMICOLON@[18; 19) ";" | 17 | SEMICOLON@18..19 ";" |
18 | WHITESPACE@[19; 20) "\n" | 18 | WHITESPACE@19..20 "\n" |
19 | error [15; 15): expected `fn` | 19 | error 15..15: expected `fn` |
20 | error [15; 15): expected SEMICOLON | 20 | error 15..15: expected SEMICOLON |
21 | error [16; 16): expected an item | 21 | error 16..16: expected an item |
22 | error [17; 17): expected an item | 22 | error 17..17: expected an item |
23 | error [18; 18): expected an item | 23 | error 18..18: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast index 690acdca3..b901c17f7 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0006_unsafe_block_in_mod.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 33) | 1 | SOURCE_FILE@0..33 |
2 | FN_DEF@[0; 10) | 2 | FN_DEF@0..10 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | BLOCK_EXPR@[8; 10) | 10 | BLOCK_EXPR@8..10 |
11 | BLOCK@[8; 10) | 11 | BLOCK@8..10 |
12 | L_CURLY@[8; 9) "{" | 12 | L_CURLY@8..9 "{" |
13 | R_CURLY@[9; 10) "}" | 13 | R_CURLY@9..10 "}" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | ERROR@[11; 17) | 15 | ERROR@11..17 |
16 | UNSAFE_KW@[11; 17) "unsafe" | 16 | UNSAFE_KW@11..17 "unsafe" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | ERROR@[18; 21) | 18 | ERROR@18..21 |
19 | L_CURLY@[18; 19) "{" | 19 | L_CURLY@18..19 "{" |
20 | WHITESPACE@[19; 20) " " | 20 | WHITESPACE@19..20 " " |
21 | R_CURLY@[20; 21) "}" | 21 | R_CURLY@20..21 "}" |
22 | WHITESPACE@[21; 22) " " | 22 | WHITESPACE@21..22 " " |
23 | FN_DEF@[22; 32) | 23 | FN_DEF@22..32 |
24 | FN_KW@[22; 24) "fn" | 24 | FN_KW@22..24 "fn" |
25 | WHITESPACE@[24; 25) " " | 25 | WHITESPACE@24..25 " " |
26 | NAME@[25; 28) | 26 | NAME@25..28 |
27 | IDENT@[25; 28) "bar" | 27 | IDENT@25..28 "bar" |
28 | PARAM_LIST@[28; 30) | 28 | PARAM_LIST@28..30 |
29 | L_PAREN@[28; 29) "(" | 29 | L_PAREN@28..29 "(" |
30 | R_PAREN@[29; 30) ")" | 30 | R_PAREN@29..30 ")" |
31 | BLOCK_EXPR@[30; 32) | 31 | BLOCK_EXPR@30..32 |
32 | BLOCK@[30; 32) | 32 | BLOCK@30..32 |
33 | L_CURLY@[30; 31) "{" | 33 | L_CURLY@30..31 "{" |
34 | R_CURLY@[31; 32) "}" | 34 | R_CURLY@31..32 "}" |
35 | WHITESPACE@[32; 33) "\n" | 35 | WHITESPACE@32..33 "\n" |
36 | error [11; 11): expected an item | 36 | error 11..11: expected an item |
37 | error [18; 18): expected an item | 37 | error 18..18: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast index c3f7eb477..3f48b86ed 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0007_async_without_semicolon.rast | |||
@@ -1,32 +1,32 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 29) | 2 | FN_DEF@0..29 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 29) | 11 | BLOCK_EXPR@9..29 |
12 | BLOCK@[9; 29) | 12 | BLOCK@9..29 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | LET_STMT@[11; 27) | 15 | LET_STMT@11..27 |
16 | LET_KW@[11; 14) "let" | 16 | LET_KW@11..14 "let" |
17 | WHITESPACE@[14; 15) " " | 17 | WHITESPACE@14..15 " " |
18 | PLACEHOLDER_PAT@[15; 16) | 18 | PLACEHOLDER_PAT@15..16 |
19 | UNDERSCORE@[15; 16) "_" | 19 | UNDERSCORE@15..16 "_" |
20 | WHITESPACE@[16; 17) " " | 20 | WHITESPACE@16..17 " " |
21 | EQ@[17; 18) "=" | 21 | EQ@17..18 "=" |
22 | WHITESPACE@[18; 19) " " | 22 | WHITESPACE@18..19 " " |
23 | BLOCK_EXPR@[19; 27) | 23 | BLOCK_EXPR@19..27 |
24 | ASYNC_KW@[19; 24) "async" | 24 | ASYNC_KW@19..24 "async" |
25 | WHITESPACE@[24; 25) " " | 25 | WHITESPACE@24..25 " " |
26 | BLOCK@[25; 27) | 26 | BLOCK@25..27 |
27 | L_CURLY@[25; 26) "{" | 27 | L_CURLY@25..26 "{" |
28 | R_CURLY@[26; 27) "}" | 28 | R_CURLY@26..27 "}" |
29 | WHITESPACE@[27; 28) " " | 29 | WHITESPACE@27..28 " " |
30 | R_CURLY@[28; 29) "}" | 30 | R_CURLY@28..29 "}" |
31 | WHITESPACE@[29; 30) "\n" | 31 | WHITESPACE@29..30 "\n" |
32 | error [27; 27): expected SEMICOLON | 32 | error 27..27: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast index a345f8488..be02eaeeb 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0008_pub_expr.rast | |||
@@ -1,26 +1,26 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | FN_DEF@[0; 20) | 2 | FN_DEF@0..20 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 20) | 11 | BLOCK_EXPR@9..20 |
12 | BLOCK@[9; 20) | 12 | BLOCK@9..20 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | ERROR@[11; 14) | 15 | ERROR@11..14 |
16 | VISIBILITY@[11; 14) | 16 | VISIBILITY@11..14 |
17 | PUB_KW@[11; 14) "pub" | 17 | PUB_KW@11..14 "pub" |
18 | WHITESPACE@[14; 15) " " | 18 | WHITESPACE@14..15 " " |
19 | EXPR_STMT@[15; 18) | 19 | EXPR_STMT@15..18 |
20 | LITERAL@[15; 17) | 20 | LITERAL@15..17 |
21 | INT_NUMBER@[15; 17) "92" | 21 | INT_NUMBER@15..17 "92" |
22 | SEMICOLON@[17; 18) ";" | 22 | SEMICOLON@17..18 ";" |
23 | WHITESPACE@[18; 19) " " | 23 | WHITESPACE@18..19 " " |
24 | R_CURLY@[19; 20) "}" | 24 | R_CURLY@19..20 "}" |
25 | WHITESPACE@[20; 21) "\n" | 25 | WHITESPACE@20..21 "\n" |
26 | error [14; 14): expected an item | 26 | error 14..14: expected an item |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast index c3a70147a..b344e4f7f 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0009_attr_on_expr_not_allowed.rast | |||
@@ -1,61 +1,61 @@ | |||
1 | SOURCE_FILE@[0; 48) | 1 | SOURCE_FILE@0..48 |
2 | FN_DEF@[0; 47) | 2 | FN_DEF@0..47 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 47) | 11 | BLOCK_EXPR@9..47 |
12 | BLOCK@[9; 47) | 12 | BLOCK@9..47 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 14) "\n " | 14 | WHITESPACE@10..14 "\n " |
15 | EXPR_STMT@[14; 25) | 15 | EXPR_STMT@14..25 |
16 | ATTR@[14; 18) | 16 | ATTR@14..18 |
17 | POUND@[14; 15) "#" | 17 | POUND@14..15 "#" |
18 | L_BRACK@[15; 16) "[" | 18 | L_BRACK@15..16 "[" |
19 | PATH@[16; 17) | 19 | PATH@16..17 |
20 | PATH_SEGMENT@[16; 17) | 20 | PATH_SEGMENT@16..17 |
21 | NAME_REF@[16; 17) | 21 | NAME_REF@16..17 |
22 | IDENT@[16; 17) "A" | 22 | IDENT@16..17 "A" |
23 | R_BRACK@[17; 18) "]" | 23 | R_BRACK@17..18 "]" |
24 | WHITESPACE@[18; 19) " " | 24 | WHITESPACE@18..19 " " |
25 | BIN_EXPR@[19; 24) | 25 | BIN_EXPR@19..24 |
26 | LITERAL@[19; 20) | 26 | LITERAL@19..20 |
27 | INT_NUMBER@[19; 20) "1" | 27 | INT_NUMBER@19..20 "1" |
28 | WHITESPACE@[20; 21) " " | 28 | WHITESPACE@20..21 " " |
29 | PLUS@[21; 22) "+" | 29 | PLUS@21..22 "+" |
30 | WHITESPACE@[22; 23) " " | 30 | WHITESPACE@22..23 " " |
31 | LITERAL@[23; 24) | 31 | LITERAL@23..24 |
32 | INT_NUMBER@[23; 24) "2" | 32 | INT_NUMBER@23..24 "2" |
33 | SEMICOLON@[24; 25) ";" | 33 | SEMICOLON@24..25 ";" |
34 | WHITESPACE@[25; 29) "\n " | 34 | WHITESPACE@25..29 "\n " |
35 | EXPR_STMT@[29; 45) | 35 | EXPR_STMT@29..45 |
36 | ATTR@[29; 33) | 36 | ATTR@29..33 |
37 | POUND@[29; 30) "#" | 37 | POUND@29..30 "#" |
38 | L_BRACK@[30; 31) "[" | 38 | L_BRACK@30..31 "[" |
39 | PATH@[31; 32) | 39 | PATH@31..32 |
40 | PATH_SEGMENT@[31; 32) | 40 | PATH_SEGMENT@31..32 |
41 | NAME_REF@[31; 32) | 41 | NAME_REF@31..32 |
42 | IDENT@[31; 32) "B" | 42 | IDENT@31..32 "B" |
43 | R_BRACK@[32; 33) "]" | 43 | R_BRACK@32..33 "]" |
44 | WHITESPACE@[33; 34) " " | 44 | WHITESPACE@33..34 " " |
45 | IF_EXPR@[34; 44) | 45 | IF_EXPR@34..44 |
46 | IF_KW@[34; 36) "if" | 46 | IF_KW@34..36 "if" |
47 | WHITESPACE@[36; 37) " " | 47 | WHITESPACE@36..37 " " |
48 | CONDITION@[37; 41) | 48 | CONDITION@37..41 |
49 | LITERAL@[37; 41) | 49 | LITERAL@37..41 |
50 | TRUE_KW@[37; 41) "true" | 50 | TRUE_KW@37..41 "true" |
51 | WHITESPACE@[41; 42) " " | 51 | WHITESPACE@41..42 " " |
52 | BLOCK_EXPR@[42; 44) | 52 | BLOCK_EXPR@42..44 |
53 | BLOCK@[42; 44) | 53 | BLOCK@42..44 |
54 | L_CURLY@[42; 43) "{" | 54 | L_CURLY@42..43 "{" |
55 | R_CURLY@[43; 44) "}" | 55 | R_CURLY@43..44 "}" |
56 | SEMICOLON@[44; 45) ";" | 56 | SEMICOLON@44..45 ";" |
57 | WHITESPACE@[45; 46) "\n" | 57 | WHITESPACE@45..46 "\n" |
58 | R_CURLY@[46; 47) "}" | 58 | R_CURLY@46..47 "}" |
59 | WHITESPACE@[47; 48) "\n" | 59 | WHITESPACE@47..48 "\n" |
60 | error [24; 24): attributes are not allowed on BIN_EXPR | 60 | error 24..24: attributes are not allowed on BIN_EXPR |
61 | error [44; 44): attributes are not allowed on IF_EXPR | 61 | error 44..44: attributes are not allowed on IF_EXPR |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast index 61d737abe..5339a84d7 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0010_bad_tuple_index_expr.rast | |||
@@ -1,53 +1,53 @@ | |||
1 | SOURCE_FILE@[0; 47) | 1 | SOURCE_FILE@0..47 |
2 | FN_DEF@[0; 46) | 2 | FN_DEF@0..46 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 46) | 11 | BLOCK_EXPR@9..46 |
12 | BLOCK@[9; 46) | 12 | BLOCK@9..46 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 20) | 15 | EXPR_STMT@15..20 |
16 | FIELD_EXPR@[15; 19) | 16 | FIELD_EXPR@15..19 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "x" | 21 | IDENT@15..16 "x" |
22 | DOT@[16; 17) "." | 22 | DOT@16..17 "." |
23 | FLOAT_NUMBER@[17; 19) "0." | 23 | FLOAT_NUMBER@17..19 "0." |
24 | SEMICOLON@[19; 20) ";" | 24 | SEMICOLON@19..20 ";" |
25 | WHITESPACE@[20; 25) "\n " | 25 | WHITESPACE@20..25 "\n " |
26 | EXPR_STMT@[25; 32) | 26 | EXPR_STMT@25..32 |
27 | FIELD_EXPR@[25; 31) | 27 | FIELD_EXPR@25..31 |
28 | PATH_EXPR@[25; 26) | 28 | PATH_EXPR@25..26 |
29 | PATH@[25; 26) | 29 | PATH@25..26 |
30 | PATH_SEGMENT@[25; 26) | 30 | PATH_SEGMENT@25..26 |
31 | NAME_REF@[25; 26) | 31 | NAME_REF@25..26 |
32 | IDENT@[25; 26) "x" | 32 | IDENT@25..26 "x" |
33 | DOT@[26; 27) "." | 33 | DOT@26..27 "." |
34 | NAME_REF@[27; 31) | 34 | NAME_REF@27..31 |
35 | INT_NUMBER@[27; 31) "1i32" | 35 | INT_NUMBER@27..31 "1i32" |
36 | SEMICOLON@[31; 32) ";" | 36 | SEMICOLON@31..32 ";" |
37 | WHITESPACE@[32; 37) "\n " | 37 | WHITESPACE@32..37 "\n " |
38 | EXPR_STMT@[37; 44) | 38 | EXPR_STMT@37..44 |
39 | FIELD_EXPR@[37; 43) | 39 | FIELD_EXPR@37..43 |
40 | PATH_EXPR@[37; 38) | 40 | PATH_EXPR@37..38 |
41 | PATH@[37; 38) | 41 | PATH@37..38 |
42 | PATH_SEGMENT@[37; 38) | 42 | PATH_SEGMENT@37..38 |
43 | NAME_REF@[37; 38) | 43 | NAME_REF@37..38 |
44 | IDENT@[37; 38) "x" | 44 | IDENT@37..38 "x" |
45 | DOT@[38; 39) "." | 45 | DOT@38..39 "." |
46 | NAME_REF@[39; 43) | 46 | NAME_REF@39..43 |
47 | INT_NUMBER@[39; 43) "0x01" | 47 | INT_NUMBER@39..43 "0x01" |
48 | SEMICOLON@[43; 44) ";" | 48 | SEMICOLON@43..44 ";" |
49 | WHITESPACE@[44; 45) "\n" | 49 | WHITESPACE@44..45 "\n" |
50 | R_CURLY@[45; 46) "}" | 50 | R_CURLY@45..46 "}" |
51 | WHITESPACE@[46; 47) "\n" | 51 | WHITESPACE@46..47 "\n" |
52 | error [27; 31): Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix | 52 | error 27..31: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix |
53 | error [39; 43): Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix | 53 | error 39..43: Tuple (struct) field access is only allowed through decimal integers with no underscores or suffix |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast index f6ac0feaf..20ed39046 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast | |||
@@ -1,41 +1,41 @@ | |||
1 | SOURCE_FILE@[0; 50) | 1 | SOURCE_FILE@0..50 |
2 | ERROR@[0; 6) | 2 | ERROR@0..6 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | FN_DEF@[7; 24) | 5 | FN_DEF@7..24 |
6 | ASYNC_KW@[7; 12) "async" | 6 | ASYNC_KW@7..12 "async" |
7 | WHITESPACE@[12; 13) " " | 7 | WHITESPACE@12..13 " " |
8 | FN_KW@[13; 15) "fn" | 8 | FN_KW@13..15 "fn" |
9 | WHITESPACE@[15; 16) " " | 9 | WHITESPACE@15..16 " " |
10 | NAME@[16; 19) | 10 | NAME@16..19 |
11 | IDENT@[16; 19) "foo" | 11 | IDENT@16..19 "foo" |
12 | PARAM_LIST@[19; 21) | 12 | PARAM_LIST@19..21 |
13 | L_PAREN@[19; 20) "(" | 13 | L_PAREN@19..20 "(" |
14 | R_PAREN@[20; 21) ")" | 14 | R_PAREN@20..21 ")" |
15 | WHITESPACE@[21; 22) " " | 15 | WHITESPACE@21..22 " " |
16 | BLOCK_EXPR@[22; 24) | 16 | BLOCK_EXPR@22..24 |
17 | BLOCK@[22; 24) | 17 | BLOCK@22..24 |
18 | L_CURLY@[22; 23) "{" | 18 | L_CURLY@22..23 "{" |
19 | R_CURLY@[23; 24) "}" | 19 | R_CURLY@23..24 "}" |
20 | WHITESPACE@[24; 25) "\n" | 20 | WHITESPACE@24..25 "\n" |
21 | ERROR@[25; 31) | 21 | ERROR@25..31 |
22 | UNSAFE_KW@[25; 31) "unsafe" | 22 | UNSAFE_KW@25..31 "unsafe" |
23 | WHITESPACE@[31; 32) " " | 23 | WHITESPACE@31..32 " " |
24 | FN_DEF@[32; 49) | 24 | FN_DEF@32..49 |
25 | CONST_KW@[32; 37) "const" | 25 | CONST_KW@32..37 "const" |
26 | WHITESPACE@[37; 38) " " | 26 | WHITESPACE@37..38 " " |
27 | FN_KW@[38; 40) "fn" | 27 | FN_KW@38..40 "fn" |
28 | WHITESPACE@[40; 41) " " | 28 | WHITESPACE@40..41 " " |
29 | NAME@[41; 44) | 29 | NAME@41..44 |
30 | IDENT@[41; 44) "bar" | 30 | IDENT@41..44 "bar" |
31 | PARAM_LIST@[44; 46) | 31 | PARAM_LIST@44..46 |
32 | L_PAREN@[44; 45) "(" | 32 | L_PAREN@44..45 "(" |
33 | R_PAREN@[45; 46) ")" | 33 | R_PAREN@45..46 ")" |
34 | WHITESPACE@[46; 47) " " | 34 | WHITESPACE@46..47 " " |
35 | BLOCK_EXPR@[47; 49) | 35 | BLOCK_EXPR@47..49 |
36 | BLOCK@[47; 49) | 36 | BLOCK@47..49 |
37 | L_CURLY@[47; 48) "{" | 37 | L_CURLY@47..48 "{" |
38 | R_CURLY@[48; 49) "}" | 38 | R_CURLY@48..49 "}" |
39 | WHITESPACE@[49; 50) "\n" | 39 | WHITESPACE@49..50 "\n" |
40 | error [6; 6): expected existential, fn, trait or impl | 40 | error 6..6: expected existential, fn, trait or impl |
41 | error [31; 31): expected existential, fn, trait or impl | 41 | error 31..31: expected existential, fn, trait or impl |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast index 62fca0a39..ebcc26e0d 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | STATIC_DEF@[0; 18) | 2 | STATIC_DEF@0..18 |
3 | STATIC_KW@[0; 6) "static" | 3 | STATIC_KW@0..6 "static" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | ERROR@[7; 8) | 5 | ERROR@7..8 |
6 | UNDERSCORE@[7; 8) "_" | 6 | UNDERSCORE@7..8 "_" |
7 | COLON@[8; 9) ":" | 7 | COLON@8..9 ":" |
8 | WHITESPACE@[9; 10) " " | 8 | WHITESPACE@9..10 " " |
9 | PATH_TYPE@[10; 13) | 9 | PATH_TYPE@10..13 |
10 | PATH@[10; 13) | 10 | PATH@10..13 |
11 | PATH_SEGMENT@[10; 13) | 11 | PATH_SEGMENT@10..13 |
12 | NAME_REF@[10; 13) | 12 | NAME_REF@10..13 |
13 | IDENT@[10; 13) "i32" | 13 | IDENT@10..13 "i32" |
14 | WHITESPACE@[13; 14) " " | 14 | WHITESPACE@13..14 " " |
15 | EQ@[14; 15) "=" | 15 | EQ@14..15 "=" |
16 | WHITESPACE@[15; 16) " " | 16 | WHITESPACE@15..16 " " |
17 | LITERAL@[16; 17) | 17 | LITERAL@16..17 |
18 | INT_NUMBER@[16; 17) "5" | 18 | INT_NUMBER@16..17 "5" |
19 | SEMICOLON@[17; 18) ";" | 19 | SEMICOLON@17..18 ";" |
20 | WHITESPACE@[18; 19) "\n" | 20 | WHITESPACE@18..19 "\n" |
21 | error [7; 7): expected a name | 21 | error 7..7: expected a name |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast index aa960d3ef..88567263e 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0014_default_fn_type.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 62) | 1 | SOURCE_FILE@0..62 |
2 | TRAIT_DEF@[0; 61) | 2 | TRAIT_DEF@0..61 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "T" | 6 | IDENT@6..7 "T" |
7 | WHITESPACE@[7; 8) " " | 7 | WHITESPACE@7..8 " " |
8 | ITEM_LIST@[8; 61) | 8 | ITEM_LIST@8..61 |
9 | L_CURLY@[8; 9) "{" | 9 | L_CURLY@8..9 "{" |
10 | WHITESPACE@[9; 14) "\n " | 10 | WHITESPACE@9..14 "\n " |
11 | MACRO_CALL@[14; 21) | 11 | MACRO_CALL@14..21 |
12 | PATH@[14; 21) | 12 | PATH@14..21 |
13 | PATH_SEGMENT@[14; 21) | 13 | PATH_SEGMENT@14..21 |
14 | NAME_REF@[14; 21) | 14 | NAME_REF@14..21 |
15 | IDENT@[14; 21) "default" | 15 | IDENT@14..21 "default" |
16 | WHITESPACE@[21; 22) " " | 16 | WHITESPACE@21..22 " " |
17 | TYPE_ALIAS_DEF@[22; 35) | 17 | TYPE_ALIAS_DEF@22..35 |
18 | TYPE_KW@[22; 26) "type" | 18 | TYPE_KW@22..26 "type" |
19 | WHITESPACE@[26; 27) " " | 19 | WHITESPACE@26..27 " " |
20 | NAME@[27; 28) | 20 | NAME@27..28 |
21 | IDENT@[27; 28) "T" | 21 | IDENT@27..28 "T" |
22 | WHITESPACE@[28; 29) " " | 22 | WHITESPACE@28..29 " " |
23 | EQ@[29; 30) "=" | 23 | EQ@29..30 "=" |
24 | WHITESPACE@[30; 31) " " | 24 | WHITESPACE@30..31 " " |
25 | PATH_TYPE@[31; 34) | 25 | PATH_TYPE@31..34 |
26 | PATH@[31; 34) | 26 | PATH@31..34 |
27 | PATH_SEGMENT@[31; 34) | 27 | PATH_SEGMENT@31..34 |
28 | NAME_REF@[31; 34) | 28 | NAME_REF@31..34 |
29 | IDENT@[31; 34) "Bar" | 29 | IDENT@31..34 "Bar" |
30 | SEMICOLON@[34; 35) ";" | 30 | SEMICOLON@34..35 ";" |
31 | WHITESPACE@[35; 40) "\n " | 31 | WHITESPACE@35..40 "\n " |
32 | MACRO_CALL@[40; 47) | 32 | MACRO_CALL@40..47 |
33 | PATH@[40; 47) | 33 | PATH@40..47 |
34 | PATH_SEGMENT@[40; 47) | 34 | PATH_SEGMENT@40..47 |
35 | NAME_REF@[40; 47) | 35 | NAME_REF@40..47 |
36 | IDENT@[40; 47) "default" | 36 | IDENT@40..47 "default" |
37 | WHITESPACE@[47; 48) " " | 37 | WHITESPACE@47..48 " " |
38 | FN_DEF@[48; 59) | 38 | FN_DEF@48..59 |
39 | FN_KW@[48; 50) "fn" | 39 | FN_KW@48..50 "fn" |
40 | WHITESPACE@[50; 51) " " | 40 | WHITESPACE@50..51 " " |
41 | NAME@[51; 54) | 41 | NAME@51..54 |
42 | IDENT@[51; 54) "foo" | 42 | IDENT@51..54 "foo" |
43 | PARAM_LIST@[54; 56) | 43 | PARAM_LIST@54..56 |
44 | L_PAREN@[54; 55) "(" | 44 | L_PAREN@54..55 "(" |
45 | R_PAREN@[55; 56) ")" | 45 | R_PAREN@55..56 ")" |
46 | WHITESPACE@[56; 57) " " | 46 | WHITESPACE@56..57 " " |
47 | BLOCK_EXPR@[57; 59) | 47 | BLOCK_EXPR@57..59 |
48 | BLOCK@[57; 59) | 48 | BLOCK@57..59 |
49 | L_CURLY@[57; 58) "{" | 49 | L_CURLY@57..58 "{" |
50 | R_CURLY@[58; 59) "}" | 50 | R_CURLY@58..59 "}" |
51 | WHITESPACE@[59; 60) "\n" | 51 | WHITESPACE@59..60 "\n" |
52 | R_CURLY@[60; 61) "}" | 52 | R_CURLY@60..61 "}" |
53 | WHITESPACE@[61; 62) "\n" | 53 | WHITESPACE@61..62 "\n" |
54 | error [21; 21): expected BANG | 54 | error 21..21: expected BANG |
55 | error [21; 21): expected `{`, `[`, `(` | 55 | error 21..21: expected `{`, `[`, `(` |
56 | error [21; 21): expected SEMICOLON | 56 | error 21..21: expected SEMICOLON |
57 | error [47; 47): expected BANG | 57 | error 47..47: expected BANG |
58 | error [47; 47): expected `{`, `[`, `(` | 58 | error 47..47: expected `{`, `[`, `(` |
59 | error [47; 47): expected SEMICOLON | 59 | error 47..47: expected SEMICOLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast index 75043c9c0..578befa56 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0014_record_literal_before_ellipsis_recovery.rast | |||
@@ -1,49 +1,49 @@ | |||
1 | SOURCE_FILE@[0; 45) | 1 | SOURCE_FILE@0..45 |
2 | FN_DEF@[0; 44) | 2 | FN_DEF@0..44 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 44) | 11 | BLOCK_EXPR@10..44 |
12 | BLOCK@[10; 44) | 12 | BLOCK@10..44 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | RECORD_LIT@[16; 42) | 15 | RECORD_LIT@16..42 |
16 | PATH@[16; 17) | 16 | PATH@16..17 |
17 | PATH_SEGMENT@[16; 17) | 17 | PATH_SEGMENT@16..17 |
18 | NAME_REF@[16; 17) | 18 | NAME_REF@16..17 |
19 | IDENT@[16; 17) "S" | 19 | IDENT@16..17 "S" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | RECORD_FIELD_LIST@[18; 42) | 21 | RECORD_FIELD_LIST@18..42 |
22 | L_CURLY@[18; 19) "{" | 22 | L_CURLY@18..19 "{" |
23 | WHITESPACE@[19; 20) " " | 23 | WHITESPACE@19..20 " " |
24 | RECORD_FIELD@[20; 40) | 24 | RECORD_FIELD@20..40 |
25 | NAME_REF@[20; 25) | 25 | NAME_REF@20..25 |
26 | IDENT@[20; 25) "field" | 26 | IDENT@20..25 "field" |
27 | WHITESPACE@[25; 26) " " | 27 | WHITESPACE@25..26 " " |
28 | RANGE_EXPR@[26; 40) | 28 | RANGE_EXPR@26..40 |
29 | DOT2@[26; 28) ".." | 29 | DOT2@26..28 ".." |
30 | CALL_EXPR@[28; 40) | 30 | CALL_EXPR@28..40 |
31 | PATH_EXPR@[28; 38) | 31 | PATH_EXPR@28..38 |
32 | PATH@[28; 38) | 32 | PATH@28..38 |
33 | PATH@[28; 29) | 33 | PATH@28..29 |
34 | PATH_SEGMENT@[28; 29) | 34 | PATH_SEGMENT@28..29 |
35 | NAME_REF@[28; 29) | 35 | NAME_REF@28..29 |
36 | IDENT@[28; 29) "S" | 36 | IDENT@28..29 "S" |
37 | COLON2@[29; 31) "::" | 37 | COLON2@29..31 "::" |
38 | PATH_SEGMENT@[31; 38) | 38 | PATH_SEGMENT@31..38 |
39 | NAME_REF@[31; 38) | 39 | NAME_REF@31..38 |
40 | IDENT@[31; 38) "default" | 40 | IDENT@31..38 "default" |
41 | ARG_LIST@[38; 40) | 41 | ARG_LIST@38..40 |
42 | L_PAREN@[38; 39) "(" | 42 | L_PAREN@38..39 "(" |
43 | R_PAREN@[39; 40) ")" | 43 | R_PAREN@39..40 ")" |
44 | WHITESPACE@[40; 41) " " | 44 | WHITESPACE@40..41 " " |
45 | R_CURLY@[41; 42) "}" | 45 | R_CURLY@41..42 "}" |
46 | WHITESPACE@[42; 43) "\n" | 46 | WHITESPACE@42..43 "\n" |
47 | R_CURLY@[43; 44) "}" | 47 | R_CURLY@43..44 "}" |
48 | WHITESPACE@[44; 45) "\n" | 48 | WHITESPACE@44..45 "\n" |
49 | error [25; 25): expected COLON | 49 | error 25..25: expected COLON |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast index 25c6ef7e3..a1fabb557 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast | |||
@@ -1,72 +1,72 @@ | |||
1 | SOURCE_FILE@[0; 83) | 1 | SOURCE_FILE@0..83 |
2 | IMPL_DEF@[0; 82) | 2 | IMPL_DEF@0..82 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "F" | 9 | IDENT@5..6 "F" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | ITEM_LIST@[7; 82) | 11 | ITEM_LIST@7..82 |
12 | L_CURLY@[7; 8) "{" | 12 | L_CURLY@7..8 "{" |
13 | WHITESPACE@[8; 13) "\n " | 13 | WHITESPACE@8..13 "\n " |
14 | TYPE_ALIAS_DEF@[13; 27) | 14 | TYPE_ALIAS_DEF@13..27 |
15 | TYPE_KW@[13; 17) "type" | 15 | TYPE_KW@13..17 "type" |
16 | WHITESPACE@[17; 18) " " | 16 | WHITESPACE@17..18 " " |
17 | NAME@[18; 19) | 17 | NAME@18..19 |
18 | IDENT@[18; 19) "A" | 18 | IDENT@18..19 "A" |
19 | COLON@[19; 20) ":" | 19 | COLON@19..20 ":" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | TYPE_BOUND_LIST@[21; 26) | 21 | TYPE_BOUND_LIST@21..26 |
22 | TYPE_BOUND@[21; 26) | 22 | TYPE_BOUND@21..26 |
23 | PATH_TYPE@[21; 26) | 23 | PATH_TYPE@21..26 |
24 | PATH@[21; 26) | 24 | PATH@21..26 |
25 | PATH_SEGMENT@[21; 26) | 25 | PATH_SEGMENT@21..26 |
26 | NAME_REF@[21; 26) | 26 | NAME_REF@21..26 |
27 | IDENT@[21; 26) "Clone" | 27 | IDENT@21..26 "Clone" |
28 | SEMICOLON@[26; 27) ";" | 28 | SEMICOLON@26..27 ";" |
29 | WHITESPACE@[27; 32) "\n " | 29 | WHITESPACE@27..32 "\n " |
30 | CONST_DEF@[32; 45) | 30 | CONST_DEF@32..45 |
31 | CONST_KW@[32; 37) "const" | 31 | CONST_KW@32..37 "const" |
32 | WHITESPACE@[37; 38) " " | 32 | WHITESPACE@37..38 " " |
33 | NAME@[38; 39) | 33 | NAME@38..39 |
34 | IDENT@[38; 39) "B" | 34 | IDENT@38..39 "B" |
35 | COLON@[39; 40) ":" | 35 | COLON@39..40 ":" |
36 | WHITESPACE@[40; 41) " " | 36 | WHITESPACE@40..41 " " |
37 | PATH_TYPE@[41; 44) | 37 | PATH_TYPE@41..44 |
38 | PATH@[41; 44) | 38 | PATH@41..44 |
39 | PATH_SEGMENT@[41; 44) | 39 | PATH_SEGMENT@41..44 |
40 | NAME_REF@[41; 44) | 40 | NAME_REF@41..44 |
41 | IDENT@[41; 44) "i32" | 41 | IDENT@41..44 "i32" |
42 | SEMICOLON@[44; 45) ";" | 42 | SEMICOLON@44..45 ";" |
43 | WHITESPACE@[45; 50) "\n " | 43 | WHITESPACE@45..50 "\n " |
44 | FN_DEF@[50; 61) | 44 | FN_DEF@50..61 |
45 | FN_KW@[50; 52) "fn" | 45 | FN_KW@50..52 "fn" |
46 | WHITESPACE@[52; 53) " " | 46 | WHITESPACE@52..53 " " |
47 | NAME@[53; 56) | 47 | NAME@53..56 |
48 | IDENT@[53; 56) "foo" | 48 | IDENT@53..56 "foo" |
49 | PARAM_LIST@[56; 58) | 49 | PARAM_LIST@56..58 |
50 | L_PAREN@[56; 57) "(" | 50 | L_PAREN@56..57 "(" |
51 | R_PAREN@[57; 58) ")" | 51 | R_PAREN@57..58 ")" |
52 | WHITESPACE@[58; 59) " " | 52 | WHITESPACE@58..59 " " |
53 | BLOCK_EXPR@[59; 61) | 53 | BLOCK_EXPR@59..61 |
54 | BLOCK@[59; 61) | 54 | BLOCK@59..61 |
55 | L_CURLY@[59; 60) "{" | 55 | L_CURLY@59..60 "{" |
56 | R_CURLY@[60; 61) "}" | 56 | R_CURLY@60..61 "}" |
57 | WHITESPACE@[61; 66) "\n " | 57 | WHITESPACE@61..66 "\n " |
58 | FN_DEF@[66; 80) | 58 | FN_DEF@66..80 |
59 | FN_KW@[66; 68) "fn" | 59 | FN_KW@66..68 "fn" |
60 | WHITESPACE@[68; 69) " " | 60 | WHITESPACE@68..69 " " |
61 | NAME@[69; 72) | 61 | NAME@69..72 |
62 | IDENT@[69; 72) "bar" | 62 | IDENT@69..72 "bar" |
63 | PARAM_LIST@[72; 79) | 63 | PARAM_LIST@72..79 |
64 | L_PAREN@[72; 73) "(" | 64 | L_PAREN@72..73 "(" |
65 | SELF_PARAM@[73; 78) | 65 | SELF_PARAM@73..78 |
66 | AMP@[73; 74) "&" | 66 | AMP@73..74 "&" |
67 | SELF_KW@[74; 78) "self" | 67 | SELF_KW@74..78 "self" |
68 | R_PAREN@[78; 79) ")" | 68 | R_PAREN@78..79 ")" |
69 | SEMICOLON@[79; 80) ";" | 69 | SEMICOLON@79..80 ";" |
70 | WHITESPACE@[80; 81) "\n" | 70 | WHITESPACE@80..81 "\n" |
71 | R_CURLY@[81; 82) "}" | 71 | R_CURLY@81..82 "}" |
72 | WHITESPACE@[82; 83) "\n" | 72 | WHITESPACE@82..83 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast index 69c459daf..bd74b44a6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast | |||
@@ -1,135 +1,135 @@ | |||
1 | SOURCE_FILE@[0; 250) | 1 | SOURCE_FILE@0..250 |
2 | USE_ITEM@[0; 58) | 2 | USE_ITEM@0..58 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 57) | 5 | USE_TREE@4..57 |
6 | USE_TREE_LIST@[4; 57) | 6 | USE_TREE_LIST@4..57 |
7 | L_CURLY@[4; 5) "{" | 7 | L_CURLY@4..5 "{" |
8 | USE_TREE@[5; 28) | 8 | USE_TREE@5..28 |
9 | PATH@[5; 28) | 9 | PATH@5..28 |
10 | PATH@[5; 22) | 10 | PATH@5..22 |
11 | PATH@[5; 16) | 11 | PATH@5..16 |
12 | PATH@[5; 10) | 12 | PATH@5..10 |
13 | PATH_SEGMENT@[5; 10) | 13 | PATH_SEGMENT@5..10 |
14 | CRATE_KW@[5; 10) "crate" | 14 | CRATE_KW@5..10 "crate" |
15 | COLON2@[10; 12) "::" | 15 | COLON2@10..12 "::" |
16 | PATH_SEGMENT@[12; 16) | 16 | PATH_SEGMENT@12..16 |
17 | NAME_REF@[12; 16) | 17 | NAME_REF@12..16 |
18 | IDENT@[12; 16) "path" | 18 | IDENT@12..16 "path" |
19 | COLON2@[16; 18) "::" | 19 | COLON2@16..18 "::" |
20 | PATH_SEGMENT@[18; 22) | 20 | PATH_SEGMENT@18..22 |
21 | NAME_REF@[18; 22) | 21 | NAME_REF@18..22 |
22 | IDENT@[18; 22) "from" | 22 | IDENT@18..22 "from" |
23 | COLON2@[22; 24) "::" | 23 | COLON2@22..24 "::" |
24 | PATH_SEGMENT@[24; 28) | 24 | PATH_SEGMENT@24..28 |
25 | NAME_REF@[24; 28) | 25 | NAME_REF@24..28 |
26 | IDENT@[24; 28) "root" | 26 | IDENT@24..28 "root" |
27 | COMMA@[28; 29) "," | 27 | COMMA@28..29 "," |
28 | WHITESPACE@[29; 30) " " | 28 | WHITESPACE@29..30 " " |
29 | USE_TREE@[30; 56) | 29 | USE_TREE@30..56 |
30 | PATH@[30; 56) | 30 | PATH@30..56 |
31 | PATH@[30; 44) | 31 | PATH@30..44 |
32 | PATH@[30; 38) | 32 | PATH@30..38 |
33 | PATH@[30; 32) | 33 | PATH@30..32 |
34 | PATH_SEGMENT@[30; 32) | 34 | PATH_SEGMENT@30..32 |
35 | NAME_REF@[30; 32) | 35 | NAME_REF@30..32 |
36 | IDENT@[30; 32) "or" | 36 | IDENT@30..32 "or" |
37 | COLON2@[32; 34) "::" | 37 | COLON2@32..34 "::" |
38 | PATH_SEGMENT@[34; 38) | 38 | PATH_SEGMENT@34..38 |
39 | NAME_REF@[34; 38) | 39 | NAME_REF@34..38 |
40 | IDENT@[34; 38) "path" | 40 | IDENT@34..38 "path" |
41 | COLON2@[38; 40) "::" | 41 | COLON2@38..40 "::" |
42 | PATH_SEGMENT@[40; 44) | 42 | PATH_SEGMENT@40..44 |
43 | NAME_REF@[40; 44) | 43 | NAME_REF@40..44 |
44 | IDENT@[40; 44) "from" | 44 | IDENT@40..44 "from" |
45 | COLON2@[44; 46) "::" | 45 | COLON2@44..46 "::" |
46 | PATH_SEGMENT@[46; 56) | 46 | PATH_SEGMENT@46..56 |
47 | NAME_REF@[46; 56) | 47 | NAME_REF@46..56 |
48 | IDENT@[46; 56) "crate_name" | 48 | IDENT@46..56 "crate_name" |
49 | R_CURLY@[56; 57) "}" | 49 | R_CURLY@56..57 "}" |
50 | SEMICOLON@[57; 58) ";" | 50 | SEMICOLON@57..58 ";" |
51 | WHITESPACE@[58; 59) " " | 51 | WHITESPACE@58..59 " " |
52 | COMMENT@[59; 97) "// Rust 2018 (with a ..." | 52 | COMMENT@59..97 "// Rust 2018 (with a ..." |
53 | WHITESPACE@[97; 98) "\n" | 53 | WHITESPACE@97..98 "\n" |
54 | USE_ITEM@[98; 121) | 54 | USE_ITEM@98..121 |
55 | USE_KW@[98; 101) "use" | 55 | USE_KW@98..101 "use" |
56 | WHITESPACE@[101; 102) " " | 56 | WHITESPACE@101..102 " " |
57 | USE_TREE@[102; 120) | 57 | USE_TREE@102..120 |
58 | USE_TREE_LIST@[102; 120) | 58 | USE_TREE_LIST@102..120 |
59 | L_CURLY@[102; 103) "{" | 59 | L_CURLY@102..103 "{" |
60 | USE_TREE@[103; 119) | 60 | USE_TREE@103..119 |
61 | PATH@[103; 119) | 61 | PATH@103..119 |
62 | PATH@[103; 113) | 62 | PATH@103..113 |
63 | PATH@[103; 107) | 63 | PATH@103..107 |
64 | PATH_SEGMENT@[103; 107) | 64 | PATH_SEGMENT@103..107 |
65 | NAME_REF@[103; 107) | 65 | NAME_REF@103..107 |
66 | IDENT@[103; 107) "path" | 66 | IDENT@103..107 "path" |
67 | COLON2@[107; 109) "::" | 67 | COLON2@107..109 "::" |
68 | PATH_SEGMENT@[109; 113) | 68 | PATH_SEGMENT@109..113 |
69 | NAME_REF@[109; 113) | 69 | NAME_REF@109..113 |
70 | IDENT@[109; 113) "from" | 70 | IDENT@109..113 "from" |
71 | COLON2@[113; 115) "::" | 71 | COLON2@113..115 "::" |
72 | PATH_SEGMENT@[115; 119) | 72 | PATH_SEGMENT@115..119 |
73 | NAME_REF@[115; 119) | 73 | NAME_REF@115..119 |
74 | IDENT@[115; 119) "root" | 74 | IDENT@115..119 "root" |
75 | R_CURLY@[119; 120) "}" | 75 | R_CURLY@119..120 "}" |
76 | SEMICOLON@[120; 121) ";" | 76 | SEMICOLON@120..121 ";" |
77 | WHITESPACE@[121; 122) " " | 77 | WHITESPACE@121..122 " " |
78 | COMMENT@[122; 134) "// Rust 2015" | 78 | COMMENT@122..134 "// Rust 2015" |
79 | WHITESPACE@[134; 135) "\n" | 79 | WHITESPACE@134..135 "\n" |
80 | USE_ITEM@[135; 166) | 80 | USE_ITEM@135..166 |
81 | USE_KW@[135; 138) "use" | 81 | USE_KW@135..138 "use" |
82 | WHITESPACE@[138; 139) " " | 82 | WHITESPACE@138..139 " " |
83 | USE_TREE@[139; 165) | 83 | USE_TREE@139..165 |
84 | COLON2@[139; 141) "::" | 84 | COLON2@139..141 "::" |
85 | USE_TREE_LIST@[141; 165) | 85 | USE_TREE_LIST@141..165 |
86 | L_CURLY@[141; 142) "{" | 86 | L_CURLY@141..142 "{" |
87 | USE_TREE@[142; 164) | 87 | USE_TREE@142..164 |
88 | PATH@[142; 164) | 88 | PATH@142..164 |
89 | PATH@[142; 158) | 89 | PATH@142..158 |
90 | PATH@[142; 146) | 90 | PATH@142..146 |
91 | PATH_SEGMENT@[142; 146) | 91 | PATH_SEGMENT@142..146 |
92 | NAME_REF@[142; 146) | 92 | NAME_REF@142..146 |
93 | IDENT@[142; 146) "some" | 93 | IDENT@142..146 "some" |
94 | COLON2@[146; 148) "::" | 94 | COLON2@146..148 "::" |
95 | PATH_SEGMENT@[148; 158) | 95 | PATH_SEGMENT@148..158 |
96 | NAME_REF@[148; 158) | 96 | NAME_REF@148..158 |
97 | IDENT@[148; 158) "arbritrary" | 97 | IDENT@148..158 "arbritrary" |
98 | COLON2@[158; 160) "::" | 98 | COLON2@158..160 "::" |
99 | PATH_SEGMENT@[160; 164) | 99 | PATH_SEGMENT@160..164 |
100 | NAME_REF@[160; 164) | 100 | NAME_REF@160..164 |
101 | IDENT@[160; 164) "path" | 101 | IDENT@160..164 "path" |
102 | R_CURLY@[164; 165) "}" | 102 | R_CURLY@164..165 "}" |
103 | SEMICOLON@[165; 166) ";" | 103 | SEMICOLON@165..166 ";" |
104 | WHITESPACE@[166; 167) " " | 104 | WHITESPACE@166..167 " " |
105 | COMMENT@[167; 179) "// Rust 2015" | 105 | COMMENT@167..179 "// Rust 2015" |
106 | WHITESPACE@[179; 180) "\n" | 106 | WHITESPACE@179..180 "\n" |
107 | USE_ITEM@[180; 206) | 107 | USE_ITEM@180..206 |
108 | USE_KW@[180; 183) "use" | 108 | USE_KW@180..183 "use" |
109 | WHITESPACE@[183; 184) " " | 109 | WHITESPACE@183..184 " " |
110 | USE_TREE@[184; 205) | 110 | USE_TREE@184..205 |
111 | COLON2@[184; 186) "::" | 111 | COLON2@184..186 "::" |
112 | USE_TREE_LIST@[186; 205) | 112 | USE_TREE_LIST@186..205 |
113 | L_CURLY@[186; 187) "{" | 113 | L_CURLY@186..187 "{" |
114 | USE_TREE@[187; 204) | 114 | USE_TREE@187..204 |
115 | USE_TREE_LIST@[187; 204) | 115 | USE_TREE_LIST@187..204 |
116 | L_CURLY@[187; 188) "{" | 116 | L_CURLY@187..188 "{" |
117 | USE_TREE@[188; 203) | 117 | USE_TREE@188..203 |
118 | USE_TREE_LIST@[188; 203) | 118 | USE_TREE_LIST@188..203 |
119 | L_CURLY@[188; 189) "{" | 119 | L_CURLY@188..189 "{" |
120 | USE_TREE@[189; 202) | 120 | USE_TREE@189..202 |
121 | PATH@[189; 202) | 121 | PATH@189..202 |
122 | PATH@[189; 194) | 122 | PATH@189..194 |
123 | PATH_SEGMENT@[189; 194) | 123 | PATH_SEGMENT@189..194 |
124 | CRATE_KW@[189; 194) "crate" | 124 | CRATE_KW@189..194 "crate" |
125 | COLON2@[194; 196) "::" | 125 | COLON2@194..196 "::" |
126 | PATH_SEGMENT@[196; 202) | 126 | PATH_SEGMENT@196..202 |
127 | NAME_REF@[196; 202) | 127 | NAME_REF@196..202 |
128 | IDENT@[196; 202) "export" | 128 | IDENT@196..202 "export" |
129 | R_CURLY@[202; 203) "}" | 129 | R_CURLY@202..203 "}" |
130 | R_CURLY@[203; 204) "}" | 130 | R_CURLY@203..204 "}" |
131 | R_CURLY@[204; 205) "}" | 131 | R_CURLY@204..205 "}" |
132 | SEMICOLON@[205; 206) ";" | 132 | SEMICOLON@205..206 ";" |
133 | WHITESPACE@[206; 207) " " | 133 | WHITESPACE@206..207 " " |
134 | COMMENT@[207; 249) "// Nonsensical but pe ..." | 134 | COMMENT@207..249 "// Nonsensical but pe ..." |
135 | WHITESPACE@[249; 250) "\n" | 135 | WHITESPACE@249..250 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast index e3f5a7f04..a46d76fde 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast | |||
@@ -1,62 +1,62 @@ | |||
1 | SOURCE_FILE@[0; 49) | 1 | SOURCE_FILE@0..49 |
2 | FN_DEF@[0; 48) | 2 | FN_DEF@0..48 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "test" | 6 | IDENT@3..7 "test" |
7 | TYPE_PARAM_LIST@[7; 10) | 7 | TYPE_PARAM_LIST@7..10 |
8 | L_ANGLE@[7; 8) "<" | 8 | L_ANGLE@7..8 "<" |
9 | TYPE_PARAM@[8; 9) | 9 | TYPE_PARAM@8..9 |
10 | NAME@[8; 9) | 10 | NAME@8..9 |
11 | IDENT@[8; 9) "F" | 11 | IDENT@8..9 "F" |
12 | R_ANGLE@[9; 10) ">" | 12 | R_ANGLE@9..10 ">" |
13 | PARAM_LIST@[10; 12) | 13 | PARAM_LIST@10..12 |
14 | L_PAREN@[10; 11) "(" | 14 | L_PAREN@10..11 "(" |
15 | R_PAREN@[11; 12) ")" | 15 | R_PAREN@11..12 ")" |
16 | WHITESPACE@[12; 13) "\n" | 16 | WHITESPACE@12..13 "\n" |
17 | WHERE_CLAUSE@[13; 44) | 17 | WHERE_CLAUSE@13..44 |
18 | WHERE_KW@[13; 18) "where" | 18 | WHERE_KW@13..18 "where" |
19 | WHITESPACE@[18; 22) "\n " | 19 | WHITESPACE@18..22 "\n " |
20 | WHERE_PRED@[22; 44) | 20 | WHERE_PRED@22..44 |
21 | FOR_TYPE@[22; 31) | 21 | FOR_TYPE@22..31 |
22 | FOR_KW@[22; 25) "for" | 22 | FOR_KW@22..25 "for" |
23 | TYPE_PARAM_LIST@[25; 29) | 23 | TYPE_PARAM_LIST@25..29 |
24 | L_ANGLE@[25; 26) "<" | 24 | L_ANGLE@25..26 "<" |
25 | LIFETIME_PARAM@[26; 28) | 25 | LIFETIME_PARAM@26..28 |
26 | LIFETIME@[26; 28) "\'a" | 26 | LIFETIME@26..28 "\'a" |
27 | R_ANGLE@[28; 29) ">" | 27 | R_ANGLE@28..29 ">" |
28 | WHITESPACE@[29; 30) " " | 28 | WHITESPACE@29..30 " " |
29 | PATH_TYPE@[30; 31) | 29 | PATH_TYPE@30..31 |
30 | PATH@[30; 31) | 30 | PATH@30..31 |
31 | PATH_SEGMENT@[30; 31) | 31 | PATH_SEGMENT@30..31 |
32 | NAME_REF@[30; 31) | 32 | NAME_REF@30..31 |
33 | IDENT@[30; 31) "F" | 33 | IDENT@30..31 "F" |
34 | COLON@[31; 32) ":" | 34 | COLON@31..32 ":" |
35 | WHITESPACE@[32; 33) " " | 35 | WHITESPACE@32..33 " " |
36 | TYPE_BOUND_LIST@[33; 44) | 36 | TYPE_BOUND_LIST@33..44 |
37 | TYPE_BOUND@[33; 44) | 37 | TYPE_BOUND@33..44 |
38 | PATH_TYPE@[33; 44) | 38 | PATH_TYPE@33..44 |
39 | PATH@[33; 44) | 39 | PATH@33..44 |
40 | PATH_SEGMENT@[33; 44) | 40 | PATH_SEGMENT@33..44 |
41 | NAME_REF@[33; 35) | 41 | NAME_REF@33..35 |
42 | IDENT@[33; 35) "Fn" | 42 | IDENT@33..35 "Fn" |
43 | PARAM_LIST@[35; 44) | 43 | PARAM_LIST@35..44 |
44 | L_PAREN@[35; 36) "(" | 44 | L_PAREN@35..36 "(" |
45 | PARAM@[36; 43) | 45 | PARAM@36..43 |
46 | REFERENCE_TYPE@[36; 43) | 46 | REFERENCE_TYPE@36..43 |
47 | AMP@[36; 37) "&" | 47 | AMP@36..37 "&" |
48 | LIFETIME@[37; 39) "\'a" | 48 | LIFETIME@37..39 "\'a" |
49 | WHITESPACE@[39; 40) " " | 49 | WHITESPACE@39..40 " " |
50 | PATH_TYPE@[40; 43) | 50 | PATH_TYPE@40..43 |
51 | PATH@[40; 43) | 51 | PATH@40..43 |
52 | PATH_SEGMENT@[40; 43) | 52 | PATH_SEGMENT@40..43 |
53 | NAME_REF@[40; 43) | 53 | NAME_REF@40..43 |
54 | IDENT@[40; 43) "str" | 54 | IDENT@40..43 "str" |
55 | R_PAREN@[43; 44) ")" | 55 | R_PAREN@43..44 ")" |
56 | WHITESPACE@[44; 45) "\n" | 56 | WHITESPACE@44..45 "\n" |
57 | BLOCK_EXPR@[45; 48) | 57 | BLOCK_EXPR@45..48 |
58 | BLOCK@[45; 48) | 58 | BLOCK@45..48 |
59 | L_CURLY@[45; 46) "{" | 59 | L_CURLY@45..46 "{" |
60 | WHITESPACE@[46; 47) " " | 60 | WHITESPACE@46..47 " " |
61 | R_CURLY@[47; 48) "}" | 61 | R_CURLY@47..48 "}" |
62 | WHITESPACE@[48; 49) "\n" | 62 | WHITESPACE@48..49 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast index a0cf1e4f6..20eba09f5 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast | |||
@@ -1,60 +1,60 @@ | |||
1 | SOURCE_FILE@[0; 39) | 1 | SOURCE_FILE@0..39 |
2 | TYPE_ALIAS_DEF@[0; 38) | 2 | TYPE_ALIAS_DEF@0..38 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "F" | 6 | IDENT@5..6 "F" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PATH_TYPE@[9; 37) | 10 | PATH_TYPE@9..37 |
11 | PATH@[9; 37) | 11 | PATH@9..37 |
12 | PATH_SEGMENT@[9; 37) | 12 | PATH_SEGMENT@9..37 |
13 | NAME_REF@[9; 12) | 13 | NAME_REF@9..12 |
14 | IDENT@[9; 12) "Box" | 14 | IDENT@9..12 "Box" |
15 | TYPE_ARG_LIST@[12; 37) | 15 | TYPE_ARG_LIST@12..37 |
16 | L_ANGLE@[12; 13) "<" | 16 | L_ANGLE@12..13 "<" |
17 | TYPE_ARG@[13; 36) | 17 | TYPE_ARG@13..36 |
18 | PATH_TYPE@[13; 36) | 18 | PATH_TYPE@13..36 |
19 | PATH@[13; 36) | 19 | PATH@13..36 |
20 | PATH_SEGMENT@[13; 36) | 20 | PATH_SEGMENT@13..36 |
21 | NAME_REF@[13; 15) | 21 | NAME_REF@13..15 |
22 | IDENT@[13; 15) "Fn" | 22 | IDENT@13..15 "Fn" |
23 | PARAM_LIST@[15; 36) | 23 | PARAM_LIST@15..36 |
24 | L_PAREN@[15; 16) "(" | 24 | L_PAREN@15..16 "(" |
25 | PARAM@[16; 19) | 25 | PARAM@16..19 |
26 | PATH_TYPE@[16; 19) | 26 | PATH_TYPE@16..19 |
27 | PATH@[16; 19) | 27 | PATH@16..19 |
28 | PATH_SEGMENT@[16; 19) | 28 | PATH_SEGMENT@16..19 |
29 | NAME_REF@[16; 19) | 29 | NAME_REF@16..19 |
30 | IDENT@[16; 19) "i32" | 30 | IDENT@16..19 "i32" |
31 | COMMA@[19; 20) "," | 31 | COMMA@19..20 "," |
32 | WHITESPACE@[20; 21) " " | 32 | WHITESPACE@20..21 " " |
33 | PARAM@[21; 25) | 33 | PARAM@21..25 |
34 | REFERENCE_TYPE@[21; 25) | 34 | REFERENCE_TYPE@21..25 |
35 | AMP@[21; 22) "&" | 35 | AMP@21..22 "&" |
36 | PATH_TYPE@[22; 25) | 36 | PATH_TYPE@22..25 |
37 | PATH@[22; 25) | 37 | PATH@22..25 |
38 | PATH_SEGMENT@[22; 25) | 38 | PATH_SEGMENT@22..25 |
39 | NAME_REF@[22; 25) | 39 | NAME_REF@22..25 |
40 | IDENT@[22; 25) "i32" | 40 | IDENT@22..25 "i32" |
41 | COMMA@[25; 26) "," | 41 | COMMA@25..26 "," |
42 | WHITESPACE@[26; 27) " " | 42 | WHITESPACE@26..27 " " |
43 | PARAM@[27; 31) | 43 | PARAM@27..31 |
44 | REFERENCE_TYPE@[27; 31) | 44 | REFERENCE_TYPE@27..31 |
45 | AMP@[27; 28) "&" | 45 | AMP@27..28 "&" |
46 | PATH_TYPE@[28; 31) | 46 | PATH_TYPE@28..31 |
47 | PATH@[28; 31) | 47 | PATH@28..31 |
48 | PATH_SEGMENT@[28; 31) | 48 | PATH_SEGMENT@28..31 |
49 | NAME_REF@[28; 31) | 49 | NAME_REF@28..31 |
50 | IDENT@[28; 31) "i32" | 50 | IDENT@28..31 "i32" |
51 | COMMA@[31; 32) "," | 51 | COMMA@31..32 "," |
52 | WHITESPACE@[32; 33) " " | 52 | WHITESPACE@32..33 " " |
53 | PARAM@[33; 35) | 53 | PARAM@33..35 |
54 | TUPLE_TYPE@[33; 35) | 54 | TUPLE_TYPE@33..35 |
55 | L_PAREN@[33; 34) "(" | 55 | L_PAREN@33..34 "(" |
56 | R_PAREN@[34; 35) ")" | 56 | R_PAREN@34..35 ")" |
57 | R_PAREN@[35; 36) ")" | 57 | R_PAREN@35..36 ")" |
58 | R_ANGLE@[36; 37) ">" | 58 | R_ANGLE@36..37 ">" |
59 | SEMICOLON@[37; 38) ";" | 59 | SEMICOLON@37..38 ";" |
60 | WHITESPACE@[38; 39) "\n" | 60 | WHITESPACE@38..39 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast index 8ae7909f9..5181fcd2b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast | |||
@@ -1,38 +1,38 @@ | |||
1 | SOURCE_FILE@[0; 28) | 1 | SOURCE_FILE@0..28 |
2 | FN_DEF@[0; 27) | 2 | FN_DEF@0..27 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | TYPE_PARAM_LIST@[6; 23) | 7 | TYPE_PARAM_LIST@6..23 |
8 | L_ANGLE@[6; 7) "<" | 8 | L_ANGLE@6..7 "<" |
9 | TYPE_PARAM@[7; 22) | 9 | TYPE_PARAM@7..22 |
10 | NAME@[7; 8) | 10 | NAME@7..8 |
11 | IDENT@[7; 8) "T" | 11 | IDENT@7..8 "T" |
12 | COLON@[8; 9) ":" | 12 | COLON@8..9 ":" |
13 | WHITESPACE@[9; 10) " " | 13 | WHITESPACE@9..10 " " |
14 | TYPE_BOUND_LIST@[10; 22) | 14 | TYPE_BOUND_LIST@10..22 |
15 | TYPE_BOUND@[10; 15) | 15 | TYPE_BOUND@10..15 |
16 | PATH_TYPE@[10; 15) | 16 | PATH_TYPE@10..15 |
17 | PATH@[10; 15) | 17 | PATH@10..15 |
18 | PATH_SEGMENT@[10; 15) | 18 | PATH_SEGMENT@10..15 |
19 | NAME_REF@[10; 15) | 19 | NAME_REF@10..15 |
20 | IDENT@[10; 15) "Clone" | 20 | IDENT@10..15 "Clone" |
21 | WHITESPACE@[15; 16) " " | 21 | WHITESPACE@15..16 " " |
22 | PLUS@[16; 17) "+" | 22 | PLUS@16..17 "+" |
23 | WHITESPACE@[17; 18) " " | 23 | WHITESPACE@17..18 " " |
24 | TYPE_BOUND@[18; 22) | 24 | TYPE_BOUND@18..22 |
25 | PATH_TYPE@[18; 22) | 25 | PATH_TYPE@18..22 |
26 | PATH@[18; 22) | 26 | PATH@18..22 |
27 | PATH_SEGMENT@[18; 22) | 27 | PATH_SEGMENT@18..22 |
28 | NAME_REF@[18; 22) | 28 | NAME_REF@18..22 |
29 | IDENT@[18; 22) "Copy" | 29 | IDENT@18..22 "Copy" |
30 | R_ANGLE@[22; 23) ">" | 30 | R_ANGLE@22..23 ">" |
31 | PARAM_LIST@[23; 25) | 31 | PARAM_LIST@23..25 |
32 | L_PAREN@[23; 24) "(" | 32 | L_PAREN@23..24 "(" |
33 | R_PAREN@[24; 25) ")" | 33 | R_PAREN@24..25 ")" |
34 | BLOCK_EXPR@[25; 27) | 34 | BLOCK_EXPR@25..27 |
35 | BLOCK@[25; 27) | 35 | BLOCK@25..27 |
36 | L_CURLY@[25; 26) "{" | 36 | L_CURLY@25..26 "{" |
37 | R_CURLY@[26; 27) "}" | 37 | R_CURLY@26..27 "}" |
38 | WHITESPACE@[27; 28) "\n" | 38 | WHITESPACE@27..28 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast index 757ac092a..dd41b44e1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast | |||
@@ -1,121 +1,121 @@ | |||
1 | SOURCE_FILE@[0; 128) | 1 | SOURCE_FILE@0..128 |
2 | IMPL_DEF@[0; 127) | 2 | IMPL_DEF@0..127 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "S" | 9 | IDENT@5..6 "S" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | ITEM_LIST@[7; 127) | 11 | ITEM_LIST@7..127 |
12 | L_CURLY@[7; 8) "{" | 12 | L_CURLY@7..8 "{" |
13 | WHITESPACE@[8; 13) "\n " | 13 | WHITESPACE@8..13 "\n " |
14 | FN_DEF@[13; 26) | 14 | FN_DEF@13..26 |
15 | FN_KW@[13; 15) "fn" | 15 | FN_KW@13..15 "fn" |
16 | WHITESPACE@[15; 16) " " | 16 | WHITESPACE@15..16 " " |
17 | NAME@[16; 17) | 17 | NAME@16..17 |
18 | IDENT@[16; 17) "a" | 18 | IDENT@16..17 "a" |
19 | PARAM_LIST@[17; 23) | 19 | PARAM_LIST@17..23 |
20 | L_PAREN@[17; 18) "(" | 20 | L_PAREN@17..18 "(" |
21 | SELF_PARAM@[18; 22) | 21 | SELF_PARAM@18..22 |
22 | SELF_KW@[18; 22) "self" | 22 | SELF_KW@18..22 "self" |
23 | R_PAREN@[22; 23) ")" | 23 | R_PAREN@22..23 ")" |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | BLOCK_EXPR@[24; 26) | 25 | BLOCK_EXPR@24..26 |
26 | BLOCK@[24; 26) | 26 | BLOCK@24..26 |
27 | L_CURLY@[24; 25) "{" | 27 | L_CURLY@24..25 "{" |
28 | R_CURLY@[25; 26) "}" | 28 | R_CURLY@25..26 "}" |
29 | WHITESPACE@[26; 31) "\n " | 29 | WHITESPACE@26..31 "\n " |
30 | FN_DEF@[31; 46) | 30 | FN_DEF@31..46 |
31 | FN_KW@[31; 33) "fn" | 31 | FN_KW@31..33 "fn" |
32 | WHITESPACE@[33; 34) " " | 32 | WHITESPACE@33..34 " " |
33 | NAME@[34; 35) | 33 | NAME@34..35 |
34 | IDENT@[34; 35) "b" | 34 | IDENT@34..35 "b" |
35 | PARAM_LIST@[35; 43) | 35 | PARAM_LIST@35..43 |
36 | L_PAREN@[35; 36) "(" | 36 | L_PAREN@35..36 "(" |
37 | SELF_PARAM@[36; 41) | 37 | SELF_PARAM@36..41 |
38 | AMP@[36; 37) "&" | 38 | AMP@36..37 "&" |
39 | SELF_KW@[37; 41) "self" | 39 | SELF_KW@37..41 "self" |
40 | COMMA@[41; 42) "," | 40 | COMMA@41..42 "," |
41 | R_PAREN@[42; 43) ")" | 41 | R_PAREN@42..43 ")" |
42 | WHITESPACE@[43; 44) " " | 42 | WHITESPACE@43..44 " " |
43 | BLOCK_EXPR@[44; 46) | 43 | BLOCK_EXPR@44..46 |
44 | BLOCK@[44; 46) | 44 | BLOCK@44..46 |
45 | L_CURLY@[44; 45) "{" | 45 | L_CURLY@44..45 "{" |
46 | R_CURLY@[45; 46) "}" | 46 | R_CURLY@45..46 "}" |
47 | WHITESPACE@[46; 51) "\n " | 47 | WHITESPACE@46..51 "\n " |
48 | FN_DEF@[51; 69) | 48 | FN_DEF@51..69 |
49 | FN_KW@[51; 53) "fn" | 49 | FN_KW@51..53 "fn" |
50 | WHITESPACE@[53; 54) " " | 50 | WHITESPACE@53..54 " " |
51 | NAME@[54; 55) | 51 | NAME@54..55 |
52 | IDENT@[54; 55) "c" | 52 | IDENT@54..55 "c" |
53 | PARAM_LIST@[55; 66) | 53 | PARAM_LIST@55..66 |
54 | L_PAREN@[55; 56) "(" | 54 | L_PAREN@55..56 "(" |
55 | SELF_PARAM@[56; 64) | 55 | SELF_PARAM@56..64 |
56 | AMP@[56; 57) "&" | 56 | AMP@56..57 "&" |
57 | LIFETIME@[57; 59) "\'a" | 57 | LIFETIME@57..59 "\'a" |
58 | WHITESPACE@[59; 60) " " | 58 | WHITESPACE@59..60 " " |
59 | SELF_KW@[60; 64) "self" | 59 | SELF_KW@60..64 "self" |
60 | COMMA@[64; 65) "," | 60 | COMMA@64..65 "," |
61 | R_PAREN@[65; 66) ")" | 61 | R_PAREN@65..66 ")" |
62 | WHITESPACE@[66; 67) " " | 62 | WHITESPACE@66..67 " " |
63 | BLOCK_EXPR@[67; 69) | 63 | BLOCK_EXPR@67..69 |
64 | BLOCK@[67; 69) | 64 | BLOCK@67..69 |
65 | L_CURLY@[67; 68) "{" | 65 | L_CURLY@67..68 "{" |
66 | R_CURLY@[68; 69) "}" | 66 | R_CURLY@68..69 "}" |
67 | WHITESPACE@[69; 74) "\n " | 67 | WHITESPACE@69..74 "\n " |
68 | FN_DEF@[74; 103) | 68 | FN_DEF@74..103 |
69 | FN_KW@[74; 76) "fn" | 69 | FN_KW@74..76 "fn" |
70 | WHITESPACE@[76; 77) " " | 70 | WHITESPACE@76..77 " " |
71 | NAME@[77; 78) | 71 | NAME@77..78 |
72 | IDENT@[77; 78) "d" | 72 | IDENT@77..78 "d" |
73 | PARAM_LIST@[78; 100) | 73 | PARAM_LIST@78..100 |
74 | L_PAREN@[78; 79) "(" | 74 | L_PAREN@78..79 "(" |
75 | SELF_PARAM@[79; 91) | 75 | SELF_PARAM@79..91 |
76 | AMP@[79; 80) "&" | 76 | AMP@79..80 "&" |
77 | LIFETIME@[80; 82) "\'a" | 77 | LIFETIME@80..82 "\'a" |
78 | WHITESPACE@[82; 83) " " | 78 | WHITESPACE@82..83 " " |
79 | MUT_KW@[83; 86) "mut" | 79 | MUT_KW@83..86 "mut" |
80 | WHITESPACE@[86; 87) " " | 80 | WHITESPACE@86..87 " " |
81 | SELF_KW@[87; 91) "self" | 81 | SELF_KW@87..91 "self" |
82 | COMMA@[91; 92) "," | 82 | COMMA@91..92 "," |
83 | WHITESPACE@[92; 93) " " | 83 | WHITESPACE@92..93 " " |
84 | PARAM@[93; 99) | 84 | PARAM@93..99 |
85 | BIND_PAT@[93; 94) | 85 | BIND_PAT@93..94 |
86 | NAME@[93; 94) | 86 | NAME@93..94 |
87 | IDENT@[93; 94) "x" | 87 | IDENT@93..94 "x" |
88 | COLON@[94; 95) ":" | 88 | COLON@94..95 ":" |
89 | WHITESPACE@[95; 96) " " | 89 | WHITESPACE@95..96 " " |
90 | PATH_TYPE@[96; 99) | 90 | PATH_TYPE@96..99 |
91 | PATH@[96; 99) | 91 | PATH@96..99 |
92 | PATH_SEGMENT@[96; 99) | 92 | PATH_SEGMENT@96..99 |
93 | NAME_REF@[96; 99) | 93 | NAME_REF@96..99 |
94 | IDENT@[96; 99) "i32" | 94 | IDENT@96..99 "i32" |
95 | R_PAREN@[99; 100) ")" | 95 | R_PAREN@99..100 ")" |
96 | WHITESPACE@[100; 101) " " | 96 | WHITESPACE@100..101 " " |
97 | BLOCK_EXPR@[101; 103) | 97 | BLOCK_EXPR@101..103 |
98 | BLOCK@[101; 103) | 98 | BLOCK@101..103 |
99 | L_CURLY@[101; 102) "{" | 99 | L_CURLY@101..102 "{" |
100 | R_CURLY@[102; 103) "}" | 100 | R_CURLY@102..103 "}" |
101 | WHITESPACE@[103; 108) "\n " | 101 | WHITESPACE@103..108 "\n " |
102 | FN_DEF@[108; 125) | 102 | FN_DEF@108..125 |
103 | FN_KW@[108; 110) "fn" | 103 | FN_KW@108..110 "fn" |
104 | WHITESPACE@[110; 111) " " | 104 | WHITESPACE@110..111 " " |
105 | NAME@[111; 112) | 105 | NAME@111..112 |
106 | IDENT@[111; 112) "e" | 106 | IDENT@111..112 "e" |
107 | PARAM_LIST@[112; 122) | 107 | PARAM_LIST@112..122 |
108 | L_PAREN@[112; 113) "(" | 108 | L_PAREN@112..113 "(" |
109 | SELF_PARAM@[113; 121) | 109 | SELF_PARAM@113..121 |
110 | MUT_KW@[113; 116) "mut" | 110 | MUT_KW@113..116 "mut" |
111 | WHITESPACE@[116; 117) " " | 111 | WHITESPACE@116..117 " " |
112 | SELF_KW@[117; 121) "self" | 112 | SELF_KW@117..121 "self" |
113 | R_PAREN@[121; 122) ")" | 113 | R_PAREN@121..122 ")" |
114 | WHITESPACE@[122; 123) " " | 114 | WHITESPACE@122..123 " " |
115 | BLOCK_EXPR@[123; 125) | 115 | BLOCK_EXPR@123..125 |
116 | BLOCK@[123; 125) | 116 | BLOCK@123..125 |
117 | L_CURLY@[123; 124) "{" | 117 | L_CURLY@123..124 "{" |
118 | R_CURLY@[124; 125) "}" | 118 | R_CURLY@124..125 "}" |
119 | WHITESPACE@[125; 126) "\n" | 119 | WHITESPACE@125..126 "\n" |
120 | R_CURLY@[126; 127) "}" | 120 | R_CURLY@126..127 "}" |
121 | WHITESPACE@[127; 128) "\n" | 121 | WHITESPACE@127..128 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast index 027abf179..7cb9e1d55 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast | |||
@@ -1,40 +1,40 @@ | |||
1 | SOURCE_FILE@[0; 35) | 1 | SOURCE_FILE@0..35 |
2 | STRUCT_DEF@[0; 34) | 2 | STRUCT_DEF@0..34 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | TYPE_PARAM_LIST@[8; 33) | 7 | TYPE_PARAM_LIST@8..33 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | TYPE_PARAM@[9; 32) | 9 | TYPE_PARAM@9..32 |
10 | NAME@[9; 10) | 10 | NAME@9..10 |
11 | IDENT@[9; 10) "T" | 11 | IDENT@9..10 "T" |
12 | COLON@[10; 11) ":" | 12 | COLON@10..11 ":" |
13 | WHITESPACE@[11; 12) " " | 13 | WHITESPACE@11..12 " " |
14 | TYPE_BOUND_LIST@[12; 32) | 14 | TYPE_BOUND_LIST@12..32 |
15 | TYPE_BOUND@[12; 14) | 15 | TYPE_BOUND@12..14 |
16 | LIFETIME@[12; 14) "\'a" | 16 | LIFETIME@12..14 "\'a" |
17 | WHITESPACE@[14; 15) " " | 17 | WHITESPACE@14..15 " " |
18 | PLUS@[15; 16) "+" | 18 | PLUS@15..16 "+" |
19 | WHITESPACE@[16; 17) " " | 19 | WHITESPACE@16..17 " " |
20 | TYPE_BOUND@[17; 23) | 20 | TYPE_BOUND@17..23 |
21 | QUESTION@[17; 18) "?" | 21 | QUESTION@17..18 "?" |
22 | PATH_TYPE@[18; 23) | 22 | PATH_TYPE@18..23 |
23 | PATH@[18; 23) | 23 | PATH@18..23 |
24 | PATH_SEGMENT@[18; 23) | 24 | PATH_SEGMENT@18..23 |
25 | NAME_REF@[18; 23) | 25 | NAME_REF@18..23 |
26 | IDENT@[18; 23) "Sized" | 26 | IDENT@18..23 "Sized" |
27 | WHITESPACE@[23; 24) " " | 27 | WHITESPACE@23..24 " " |
28 | PLUS@[24; 25) "+" | 28 | PLUS@24..25 "+" |
29 | WHITESPACE@[25; 26) " " | 29 | WHITESPACE@25..26 " " |
30 | TYPE_BOUND@[26; 32) | 30 | TYPE_BOUND@26..32 |
31 | L_PAREN@[26; 27) "(" | 31 | L_PAREN@26..27 "(" |
32 | PATH_TYPE@[27; 31) | 32 | PATH_TYPE@27..31 |
33 | PATH@[27; 31) | 33 | PATH@27..31 |
34 | PATH_SEGMENT@[27; 31) | 34 | PATH_SEGMENT@27..31 |
35 | NAME_REF@[27; 31) | 35 | NAME_REF@27..31 |
36 | IDENT@[27; 31) "Copy" | 36 | IDENT@27..31 "Copy" |
37 | R_PAREN@[31; 32) ")" | 37 | R_PAREN@31..32 ")" |
38 | R_ANGLE@[32; 33) ">" | 38 | R_ANGLE@32..33 ">" |
39 | SEMICOLON@[33; 34) ";" | 39 | SEMICOLON@33..34 ";" |
40 | WHITESPACE@[34; 35) "\n" | 40 | WHITESPACE@34..35 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast index f4697fed6..a8ddd20c9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast | |||
@@ -1,97 +1,97 @@ | |||
1 | SOURCE_FILE@[0; 103) | 1 | SOURCE_FILE@0..103 |
2 | FN_DEF@[0; 102) | 2 | FN_DEF@0..102 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 102) | 11 | BLOCK_EXPR@9..102 |
12 | BLOCK@[9; 102) | 12 | BLOCK@9..102 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 33) | 15 | LET_STMT@15..33 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PATH_PAT@[19; 27) | 18 | PATH_PAT@19..27 |
19 | PATH@[19; 27) | 19 | PATH@19..27 |
20 | PATH@[19; 22) | 20 | PATH@19..22 |
21 | PATH_SEGMENT@[19; 22) | 21 | PATH_SEGMENT@19..22 |
22 | NAME_REF@[19; 22) | 22 | NAME_REF@19..22 |
23 | IDENT@[19; 22) "foo" | 23 | IDENT@19..22 "foo" |
24 | COLON2@[22; 24) "::" | 24 | COLON2@22..24 "::" |
25 | PATH_SEGMENT@[24; 27) | 25 | PATH_SEGMENT@24..27 |
26 | NAME_REF@[24; 27) | 26 | NAME_REF@24..27 |
27 | IDENT@[24; 27) "Bar" | 27 | IDENT@24..27 "Bar" |
28 | WHITESPACE@[27; 28) " " | 28 | WHITESPACE@27..28 " " |
29 | EQ@[28; 29) "=" | 29 | EQ@28..29 "=" |
30 | WHITESPACE@[29; 30) " " | 30 | WHITESPACE@29..30 " " |
31 | TUPLE_EXPR@[30; 32) | 31 | TUPLE_EXPR@30..32 |
32 | L_PAREN@[30; 31) "(" | 32 | L_PAREN@30..31 "(" |
33 | R_PAREN@[31; 32) ")" | 33 | R_PAREN@31..32 ")" |
34 | SEMICOLON@[32; 33) ";" | 34 | SEMICOLON@32..33 ";" |
35 | WHITESPACE@[33; 38) "\n " | 35 | WHITESPACE@33..38 "\n " |
36 | LET_STMT@[38; 53) | 36 | LET_STMT@38..53 |
37 | LET_KW@[38; 41) "let" | 37 | LET_KW@38..41 "let" |
38 | WHITESPACE@[41; 42) " " | 38 | WHITESPACE@41..42 " " |
39 | PATH_PAT@[42; 47) | 39 | PATH_PAT@42..47 |
40 | PATH@[42; 47) | 40 | PATH@42..47 |
41 | PATH_SEGMENT@[42; 47) | 41 | PATH_SEGMENT@42..47 |
42 | COLON2@[42; 44) "::" | 42 | COLON2@42..44 "::" |
43 | NAME_REF@[44; 47) | 43 | NAME_REF@44..47 |
44 | IDENT@[44; 47) "Bar" | 44 | IDENT@44..47 "Bar" |
45 | WHITESPACE@[47; 48) " " | 45 | WHITESPACE@47..48 " " |
46 | EQ@[48; 49) "=" | 46 | EQ@48..49 "=" |
47 | WHITESPACE@[49; 50) " " | 47 | WHITESPACE@49..50 " " |
48 | TUPLE_EXPR@[50; 52) | 48 | TUPLE_EXPR@50..52 |
49 | L_PAREN@[50; 51) "(" | 49 | L_PAREN@50..51 "(" |
50 | R_PAREN@[51; 52) ")" | 50 | R_PAREN@51..52 ")" |
51 | SEMICOLON@[52; 53) ";" | 51 | SEMICOLON@52..53 ";" |
52 | WHITESPACE@[53; 58) "\n " | 52 | WHITESPACE@53..58 "\n " |
53 | LET_STMT@[58; 78) | 53 | LET_STMT@58..78 |
54 | LET_KW@[58; 61) "let" | 54 | LET_KW@58..61 "let" |
55 | WHITESPACE@[61; 62) " " | 55 | WHITESPACE@61..62 " " |
56 | RECORD_PAT@[62; 72) | 56 | RECORD_PAT@62..72 |
57 | PATH@[62; 65) | 57 | PATH@62..65 |
58 | PATH_SEGMENT@[62; 65) | 58 | PATH_SEGMENT@62..65 |
59 | NAME_REF@[62; 65) | 59 | NAME_REF@62..65 |
60 | IDENT@[62; 65) "Bar" | 60 | IDENT@62..65 "Bar" |
61 | WHITESPACE@[65; 66) " " | 61 | WHITESPACE@65..66 " " |
62 | RECORD_FIELD_PAT_LIST@[66; 72) | 62 | RECORD_FIELD_PAT_LIST@66..72 |
63 | L_CURLY@[66; 67) "{" | 63 | L_CURLY@66..67 "{" |
64 | WHITESPACE@[67; 68) " " | 64 | WHITESPACE@67..68 " " |
65 | DOT2@[68; 70) ".." | 65 | DOT2@68..70 ".." |
66 | WHITESPACE@[70; 71) " " | 66 | WHITESPACE@70..71 " " |
67 | R_CURLY@[71; 72) "}" | 67 | R_CURLY@71..72 "}" |
68 | WHITESPACE@[72; 73) " " | 68 | WHITESPACE@72..73 " " |
69 | EQ@[73; 74) "=" | 69 | EQ@73..74 "=" |
70 | WHITESPACE@[74; 75) " " | 70 | WHITESPACE@74..75 " " |
71 | TUPLE_EXPR@[75; 77) | 71 | TUPLE_EXPR@75..77 |
72 | L_PAREN@[75; 76) "(" | 72 | L_PAREN@75..76 "(" |
73 | R_PAREN@[76; 77) ")" | 73 | R_PAREN@76..77 ")" |
74 | SEMICOLON@[77; 78) ";" | 74 | SEMICOLON@77..78 ";" |
75 | WHITESPACE@[78; 83) "\n " | 75 | WHITESPACE@78..83 "\n " |
76 | LET_STMT@[83; 100) | 76 | LET_STMT@83..100 |
77 | LET_KW@[83; 86) "let" | 77 | LET_KW@83..86 "let" |
78 | WHITESPACE@[86; 87) " " | 78 | WHITESPACE@86..87 " " |
79 | TUPLE_STRUCT_PAT@[87; 94) | 79 | TUPLE_STRUCT_PAT@87..94 |
80 | PATH@[87; 90) | 80 | PATH@87..90 |
81 | PATH_SEGMENT@[87; 90) | 81 | PATH_SEGMENT@87..90 |
82 | NAME_REF@[87; 90) | 82 | NAME_REF@87..90 |
83 | IDENT@[87; 90) "Bar" | 83 | IDENT@87..90 "Bar" |
84 | L_PAREN@[90; 91) "(" | 84 | L_PAREN@90..91 "(" |
85 | DOT_DOT_PAT@[91; 93) | 85 | DOT_DOT_PAT@91..93 |
86 | DOT2@[91; 93) ".." | 86 | DOT2@91..93 ".." |
87 | R_PAREN@[93; 94) ")" | 87 | R_PAREN@93..94 ")" |
88 | WHITESPACE@[94; 95) " " | 88 | WHITESPACE@94..95 " " |
89 | EQ@[95; 96) "=" | 89 | EQ@95..96 "=" |
90 | WHITESPACE@[96; 97) " " | 90 | WHITESPACE@96..97 " " |
91 | TUPLE_EXPR@[97; 99) | 91 | TUPLE_EXPR@97..99 |
92 | L_PAREN@[97; 98) "(" | 92 | L_PAREN@97..98 "(" |
93 | R_PAREN@[98; 99) ")" | 93 | R_PAREN@98..99 ")" |
94 | SEMICOLON@[99; 100) ";" | 94 | SEMICOLON@99..100 ";" |
95 | WHITESPACE@[100; 101) "\n" | 95 | WHITESPACE@100..101 "\n" |
96 | R_CURLY@[101; 102) "}" | 96 | R_CURLY@101..102 "}" |
97 | WHITESPACE@[102; 103) "\n" | 97 | WHITESPACE@102..103 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast index cc759310a..df8ada62a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast | |||
@@ -1,26 +1,26 @@ | |||
1 | SOURCE_FILE@[0; 26) | 1 | SOURCE_FILE@0..26 |
2 | FN_DEF@[0; 25) | 2 | FN_DEF@0..25 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 25) | 11 | BLOCK_EXPR@9..25 |
12 | BLOCK@[9; 25) | 12 | BLOCK@9..25 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 23) | 15 | EXPR_STMT@15..23 |
16 | LOOP_EXPR@[15; 22) | 16 | LOOP_EXPR@15..22 |
17 | LOOP_KW@[15; 19) "loop" | 17 | LOOP_KW@15..19 "loop" |
18 | WHITESPACE@[19; 20) " " | 18 | WHITESPACE@19..20 " " |
19 | BLOCK_EXPR@[20; 22) | 19 | BLOCK_EXPR@20..22 |
20 | BLOCK@[20; 22) | 20 | BLOCK@20..22 |
21 | L_CURLY@[20; 21) "{" | 21 | L_CURLY@20..21 "{" |
22 | R_CURLY@[21; 22) "}" | 22 | R_CURLY@21..22 "}" |
23 | SEMICOLON@[22; 23) ";" | 23 | SEMICOLON@22..23 ";" |
24 | WHITESPACE@[23; 24) "\n" | 24 | WHITESPACE@23..24 "\n" |
25 | R_CURLY@[24; 25) "}" | 25 | R_CURLY@24..25 "}" |
26 | WHITESPACE@[25; 26) "\n" | 26 | WHITESPACE@25..26 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast index 506f56fff..869875875 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast | |||
@@ -1,9 +1,9 @@ | |||
1 | SOURCE_FILE@[0; 10) | 1 | SOURCE_FILE@0..10 |
2 | EXTERN_BLOCK@[0; 9) | 2 | EXTERN_BLOCK@0..9 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | EXTERN_ITEM_LIST@[7; 9) | 6 | EXTERN_ITEM_LIST@7..9 |
7 | L_CURLY@[7; 8) "{" | 7 | L_CURLY@7..8 "{" |
8 | R_CURLY@[8; 9) "}" | 8 | R_CURLY@8..9 "}" |
9 | WHITESPACE@[9; 10) "\n" | 9 | WHITESPACE@9..10 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast index c2fafe472..de01cc79e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast | |||
@@ -1,60 +1,60 @@ | |||
1 | SOURCE_FILE@[0; 48) | 1 | SOURCE_FILE@0..48 |
2 | FN_DEF@[0; 47) | 2 | FN_DEF@0..47 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 47) | 11 | BLOCK_EXPR@9..47 |
12 | BLOCK@[9; 47) | 12 | BLOCK@9..47 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 21) | 15 | EXPR_STMT@15..21 |
16 | FIELD_EXPR@[15; 20) | 16 | FIELD_EXPR@15..20 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "x" | 21 | IDENT@15..16 "x" |
22 | DOT@[16; 17) "." | 22 | DOT@16..17 "." |
23 | NAME_REF@[17; 20) | 23 | NAME_REF@17..20 |
24 | IDENT@[17; 20) "foo" | 24 | IDENT@17..20 "foo" |
25 | SEMICOLON@[20; 21) ";" | 25 | SEMICOLON@20..21 ";" |
26 | WHITESPACE@[21; 26) "\n " | 26 | WHITESPACE@21..26 "\n " |
27 | EXPR_STMT@[26; 34) | 27 | EXPR_STMT@26..34 |
28 | FIELD_EXPR@[26; 33) | 28 | FIELD_EXPR@26..33 |
29 | FIELD_EXPR@[26; 29) | 29 | FIELD_EXPR@26..29 |
30 | PATH_EXPR@[26; 27) | 30 | PATH_EXPR@26..27 |
31 | PATH@[26; 27) | 31 | PATH@26..27 |
32 | PATH_SEGMENT@[26; 27) | 32 | PATH_SEGMENT@26..27 |
33 | NAME_REF@[26; 27) | 33 | NAME_REF@26..27 |
34 | IDENT@[26; 27) "x" | 34 | IDENT@26..27 "x" |
35 | DOT@[27; 28) "." | 35 | DOT@27..28 "." |
36 | NAME_REF@[28; 29) | 36 | NAME_REF@28..29 |
37 | INT_NUMBER@[28; 29) "0" | 37 | INT_NUMBER@28..29 "0" |
38 | DOT@[29; 30) "." | 38 | DOT@29..30 "." |
39 | NAME_REF@[30; 33) | 39 | NAME_REF@30..33 |
40 | IDENT@[30; 33) "bar" | 40 | IDENT@30..33 "bar" |
41 | SEMICOLON@[33; 34) ";" | 41 | SEMICOLON@33..34 ";" |
42 | WHITESPACE@[34; 39) "\n " | 42 | WHITESPACE@34..39 "\n " |
43 | EXPR_STMT@[39; 45) | 43 | EXPR_STMT@39..45 |
44 | CALL_EXPR@[39; 44) | 44 | CALL_EXPR@39..44 |
45 | FIELD_EXPR@[39; 42) | 45 | FIELD_EXPR@39..42 |
46 | PATH_EXPR@[39; 40) | 46 | PATH_EXPR@39..40 |
47 | PATH@[39; 40) | 47 | PATH@39..40 |
48 | PATH_SEGMENT@[39; 40) | 48 | PATH_SEGMENT@39..40 |
49 | NAME_REF@[39; 40) | 49 | NAME_REF@39..40 |
50 | IDENT@[39; 40) "x" | 50 | IDENT@39..40 "x" |
51 | DOT@[40; 41) "." | 51 | DOT@40..41 "." |
52 | NAME_REF@[41; 42) | 52 | NAME_REF@41..42 |
53 | INT_NUMBER@[41; 42) "0" | 53 | INT_NUMBER@41..42 "0" |
54 | ARG_LIST@[42; 44) | 54 | ARG_LIST@42..44 |
55 | L_PAREN@[42; 43) "(" | 55 | L_PAREN@42..43 "(" |
56 | R_PAREN@[43; 44) ")" | 56 | R_PAREN@43..44 ")" |
57 | SEMICOLON@[44; 45) ";" | 57 | SEMICOLON@44..45 ";" |
58 | WHITESPACE@[45; 46) "\n" | 58 | WHITESPACE@45..46 "\n" |
59 | R_CURLY@[46; 47) "}" | 59 | R_CURLY@46..47 "}" |
60 | WHITESPACE@[47; 48) "\n" | 60 | WHITESPACE@47..48 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast index 15d8c736d..283442a8b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast | |||
@@ -1,33 +1,33 @@ | |||
1 | SOURCE_FILE@[0; 31) | 1 | SOURCE_FILE@0..31 |
2 | TYPE_ALIAS_DEF@[0; 30) | 2 | TYPE_ALIAS_DEF@0..30 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 8) | 5 | NAME@5..8 |
6 | IDENT@[5; 8) "Foo" | 6 | IDENT@5..8 "Foo" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | WHERE_CLAUSE@[9; 24) | 8 | WHERE_CLAUSE@9..24 |
9 | WHERE_KW@[9; 14) "where" | 9 | WHERE_KW@9..14 "where" |
10 | WHITESPACE@[14; 15) " " | 10 | WHITESPACE@14..15 " " |
11 | WHERE_PRED@[15; 24) | 11 | WHERE_PRED@15..24 |
12 | PATH_TYPE@[15; 18) | 12 | PATH_TYPE@15..18 |
13 | PATH@[15; 18) | 13 | PATH@15..18 |
14 | PATH_SEGMENT@[15; 18) | 14 | PATH_SEGMENT@15..18 |
15 | NAME_REF@[15; 18) | 15 | NAME_REF@15..18 |
16 | IDENT@[15; 18) "Foo" | 16 | IDENT@15..18 "Foo" |
17 | COLON@[18; 19) ":" | 17 | COLON@18..19 ":" |
18 | WHITESPACE@[19; 20) " " | 18 | WHITESPACE@19..20 " " |
19 | TYPE_BOUND_LIST@[20; 24) | 19 | TYPE_BOUND_LIST@20..24 |
20 | TYPE_BOUND@[20; 24) | 20 | TYPE_BOUND@20..24 |
21 | PATH_TYPE@[20; 24) | 21 | PATH_TYPE@20..24 |
22 | PATH@[20; 24) | 22 | PATH@20..24 |
23 | PATH_SEGMENT@[20; 24) | 23 | PATH_SEGMENT@20..24 |
24 | NAME_REF@[20; 24) | 24 | NAME_REF@20..24 |
25 | IDENT@[20; 24) "Copy" | 25 | IDENT@20..24 "Copy" |
26 | WHITESPACE@[24; 25) " " | 26 | WHITESPACE@24..25 " " |
27 | EQ@[25; 26) "=" | 27 | EQ@25..26 "=" |
28 | WHITESPACE@[26; 27) " " | 28 | WHITESPACE@26..27 " " |
29 | TUPLE_TYPE@[27; 29) | 29 | TUPLE_TYPE@27..29 |
30 | L_PAREN@[27; 28) "(" | 30 | L_PAREN@27..28 "(" |
31 | R_PAREN@[28; 29) ")" | 31 | R_PAREN@28..29 ")" |
32 | SEMICOLON@[29; 30) ";" | 32 | SEMICOLON@29..30 ";" |
33 | WHITESPACE@[30; 31) "\n" | 33 | WHITESPACE@30..31 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast index a72d56495..e2e871dda 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast | |||
@@ -1,35 +1,35 @@ | |||
1 | SOURCE_FILE@[0; 36) | 1 | SOURCE_FILE@0..36 |
2 | TYPE_ALIAS_DEF@[0; 17) | 2 | TYPE_ALIAS_DEF@0..17 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "M" | 6 | IDENT@5..6 "M" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | POINTER_TYPE@[9; 16) | 10 | POINTER_TYPE@9..16 |
11 | STAR@[9; 10) "*" | 11 | STAR@9..10 "*" |
12 | MUT_KW@[10; 13) "mut" | 12 | MUT_KW@10..13 "mut" |
13 | WHITESPACE@[13; 14) " " | 13 | WHITESPACE@13..14 " " |
14 | TUPLE_TYPE@[14; 16) | 14 | TUPLE_TYPE@14..16 |
15 | L_PAREN@[14; 15) "(" | 15 | L_PAREN@14..15 "(" |
16 | R_PAREN@[15; 16) ")" | 16 | R_PAREN@15..16 ")" |
17 | SEMICOLON@[16; 17) ";" | 17 | SEMICOLON@16..17 ";" |
18 | WHITESPACE@[17; 18) "\n" | 18 | WHITESPACE@17..18 "\n" |
19 | TYPE_ALIAS_DEF@[18; 35) | 19 | TYPE_ALIAS_DEF@18..35 |
20 | TYPE_KW@[18; 22) "type" | 20 | TYPE_KW@18..22 "type" |
21 | WHITESPACE@[22; 23) " " | 21 | WHITESPACE@22..23 " " |
22 | NAME@[23; 24) | 22 | NAME@23..24 |
23 | IDENT@[23; 24) "C" | 23 | IDENT@23..24 "C" |
24 | WHITESPACE@[24; 25) " " | 24 | WHITESPACE@24..25 " " |
25 | EQ@[25; 26) "=" | 25 | EQ@25..26 "=" |
26 | WHITESPACE@[26; 27) " " | 26 | WHITESPACE@26..27 " " |
27 | POINTER_TYPE@[27; 34) | 27 | POINTER_TYPE@27..34 |
28 | STAR@[27; 28) "*" | 28 | STAR@27..28 "*" |
29 | MUT_KW@[28; 31) "mut" | 29 | MUT_KW@28..31 "mut" |
30 | WHITESPACE@[31; 32) " " | 30 | WHITESPACE@31..32 " " |
31 | TUPLE_TYPE@[32; 34) | 31 | TUPLE_TYPE@32..34 |
32 | L_PAREN@[32; 33) "(" | 32 | L_PAREN@32..33 "(" |
33 | R_PAREN@[33; 34) ")" | 33 | R_PAREN@33..34 ")" |
34 | SEMICOLON@[34; 35) ";" | 34 | SEMICOLON@34..35 ";" |
35 | WHITESPACE@[35; 36) "\n" | 35 | WHITESPACE@35..36 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast index 3c98467c7..a60940fcf 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast | |||
@@ -1,13 +1,13 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | TYPE_ALIAS_DEF@[0; 15) | 2 | TYPE_ALIAS_DEF@0..15 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 10) | 5 | NAME@5..10 |
6 | IDENT@[5; 10) "Never" | 6 | IDENT@5..10 "Never" |
7 | WHITESPACE@[10; 11) " " | 7 | WHITESPACE@10..11 " " |
8 | EQ@[11; 12) "=" | 8 | EQ@11..12 "=" |
9 | WHITESPACE@[12; 13) " " | 9 | WHITESPACE@12..13 " " |
10 | NEVER_TYPE@[13; 14) | 10 | NEVER_TYPE@13..14 |
11 | BANG@[13; 14) "!" | 11 | BANG@13..14 "!" |
12 | SEMICOLON@[14; 15) ";" | 12 | SEMICOLON@14..15 ";" |
13 | WHITESPACE@[15; 16) "\n" | 13 | WHITESPACE@15..16 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast index adaece119..8ac307cb3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 69) | 1 | SOURCE_FILE@0..69 |
2 | FN_DEF@[0; 68) | 2 | FN_DEF@0..68 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 68) | 11 | BLOCK_EXPR@9..68 |
12 | BLOCK@[9; 68) | 12 | BLOCK@9..68 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LOOP_EXPR@[15; 66) | 15 | LOOP_EXPR@15..66 |
16 | LOOP_KW@[15; 19) "loop" | 16 | LOOP_KW@15..19 "loop" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | BLOCK_EXPR@[20; 66) | 18 | BLOCK_EXPR@20..66 |
19 | BLOCK@[20; 66) | 19 | BLOCK@20..66 |
20 | L_CURLY@[20; 21) "{" | 20 | L_CURLY@20..21 "{" |
21 | WHITESPACE@[21; 30) "\n " | 21 | WHITESPACE@21..30 "\n " |
22 | EXPR_STMT@[30; 39) | 22 | EXPR_STMT@30..39 |
23 | CONTINUE_EXPR@[30; 38) | 23 | CONTINUE_EXPR@30..38 |
24 | CONTINUE_KW@[30; 38) "continue" | 24 | CONTINUE_KW@30..38 "continue" |
25 | SEMICOLON@[38; 39) ";" | 25 | SEMICOLON@38..39 ";" |
26 | WHITESPACE@[39; 48) "\n " | 26 | WHITESPACE@39..48 "\n " |
27 | EXPR_STMT@[48; 60) | 27 | EXPR_STMT@48..60 |
28 | CONTINUE_EXPR@[48; 59) | 28 | CONTINUE_EXPR@48..59 |
29 | CONTINUE_KW@[48; 56) "continue" | 29 | CONTINUE_KW@48..56 "continue" |
30 | WHITESPACE@[56; 57) " " | 30 | WHITESPACE@56..57 " " |
31 | LIFETIME@[57; 59) "\'l" | 31 | LIFETIME@57..59 "\'l" |
32 | SEMICOLON@[59; 60) ";" | 32 | SEMICOLON@59..60 ";" |
33 | WHITESPACE@[60; 65) "\n " | 33 | WHITESPACE@60..65 "\n " |
34 | R_CURLY@[65; 66) "}" | 34 | R_CURLY@65..66 "}" |
35 | WHITESPACE@[66; 67) "\n" | 35 | WHITESPACE@66..67 "\n" |
36 | R_CURLY@[67; 68) "}" | 36 | R_CURLY@67..68 "}" |
37 | WHITESPACE@[68; 69) "\n" | 37 | WHITESPACE@68..69 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast index 7b43f1294..d59c6006d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast | |||
@@ -1,13 +1,13 @@ | |||
1 | SOURCE_FILE@[0; 18) | 1 | SOURCE_FILE@0..18 |
2 | TRAIT_DEF@[0; 17) | 2 | TRAIT_DEF@0..17 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | TRAIT_KW@[7; 12) "trait" | 5 | TRAIT_KW@7..12 "trait" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | NAME@[13; 14) | 7 | NAME@13..14 |
8 | IDENT@[13; 14) "T" | 8 | IDENT@13..14 "T" |
9 | WHITESPACE@[14; 15) " " | 9 | WHITESPACE@14..15 " " |
10 | ITEM_LIST@[15; 17) | 10 | ITEM_LIST@15..17 |
11 | L_CURLY@[15; 16) "{" | 11 | L_CURLY@15..16 "{" |
12 | R_CURLY@[16; 17) "}" | 12 | R_CURLY@16..17 "}" |
13 | WHITESPACE@[17; 18) "\n" | 13 | WHITESPACE@17..18 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast index f4c86a05f..61a0b22f4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | TYPE_ALIAS_DEF@[0; 18) | 2 | TYPE_ALIAS_DEF@0..18 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | ARRAY_TYPE@[9; 17) | 10 | ARRAY_TYPE@9..17 |
11 | L_BRACK@[9; 10) "[" | 11 | L_BRACK@9..10 "[" |
12 | TUPLE_TYPE@[10; 12) | 12 | TUPLE_TYPE@10..12 |
13 | L_PAREN@[10; 11) "(" | 13 | L_PAREN@10..11 "(" |
14 | R_PAREN@[11; 12) ")" | 14 | R_PAREN@11..12 ")" |
15 | SEMICOLON@[12; 13) ";" | 15 | SEMICOLON@12..13 ";" |
16 | WHITESPACE@[13; 14) " " | 16 | WHITESPACE@13..14 " " |
17 | LITERAL@[14; 16) | 17 | LITERAL@14..16 |
18 | INT_NUMBER@[14; 16) "92" | 18 | INT_NUMBER@14..16 "92" |
19 | R_BRACK@[16; 17) "]" | 19 | R_BRACK@16..17 "]" |
20 | SEMICOLON@[17; 18) ";" | 20 | SEMICOLON@17..18 ";" |
21 | WHITESPACE@[18; 19) "\n" | 21 | WHITESPACE@18..19 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast index 89caee543..6f6400d00 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast | |||
@@ -1,74 +1,74 @@ | |||
1 | SOURCE_FILE@[0; 69) | 1 | SOURCE_FILE@0..69 |
2 | IMPL_DEF@[0; 68) | 2 | IMPL_DEF@0..68 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "S" | 9 | IDENT@5..6 "S" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | ITEM_LIST@[7; 68) | 11 | ITEM_LIST@7..68 |
12 | L_CURLY@[7; 8) "{" | 12 | L_CURLY@7..8 "{" |
13 | WHITESPACE@[8; 13) "\n " | 13 | WHITESPACE@8..13 "\n " |
14 | FN_DEF@[13; 33) | 14 | FN_DEF@13..33 |
15 | FN_KW@[13; 15) "fn" | 15 | FN_KW@13..15 "fn" |
16 | WHITESPACE@[15; 16) " " | 16 | WHITESPACE@15..16 " " |
17 | NAME@[16; 17) | 17 | NAME@16..17 |
18 | IDENT@[16; 17) "a" | 18 | IDENT@16..17 "a" |
19 | PARAM_LIST@[17; 30) | 19 | PARAM_LIST@17..30 |
20 | L_PAREN@[17; 18) "(" | 20 | L_PAREN@17..18 "(" |
21 | SELF_PARAM@[18; 29) | 21 | SELF_PARAM@18..29 |
22 | SELF_KW@[18; 22) "self" | 22 | SELF_KW@18..22 "self" |
23 | COLON@[22; 23) ":" | 23 | COLON@22..23 ":" |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | REFERENCE_TYPE@[24; 29) | 25 | REFERENCE_TYPE@24..29 |
26 | AMP@[24; 25) "&" | 26 | AMP@24..25 "&" |
27 | PATH_TYPE@[25; 29) | 27 | PATH_TYPE@25..29 |
28 | PATH@[25; 29) | 28 | PATH@25..29 |
29 | PATH_SEGMENT@[25; 29) | 29 | PATH_SEGMENT@25..29 |
30 | NAME_REF@[25; 29) | 30 | NAME_REF@25..29 |
31 | IDENT@[25; 29) "Self" | 31 | IDENT@25..29 "Self" |
32 | R_PAREN@[29; 30) ")" | 32 | R_PAREN@29..30 ")" |
33 | WHITESPACE@[30; 31) " " | 33 | WHITESPACE@30..31 " " |
34 | BLOCK_EXPR@[31; 33) | 34 | BLOCK_EXPR@31..33 |
35 | BLOCK@[31; 33) | 35 | BLOCK@31..33 |
36 | L_CURLY@[31; 32) "{" | 36 | L_CURLY@31..32 "{" |
37 | R_CURLY@[32; 33) "}" | 37 | R_CURLY@32..33 "}" |
38 | WHITESPACE@[33; 38) "\n " | 38 | WHITESPACE@33..38 "\n " |
39 | FN_DEF@[38; 66) | 39 | FN_DEF@38..66 |
40 | FN_KW@[38; 40) "fn" | 40 | FN_KW@38..40 "fn" |
41 | WHITESPACE@[40; 41) " " | 41 | WHITESPACE@40..41 " " |
42 | NAME@[41; 42) | 42 | NAME@41..42 |
43 | IDENT@[41; 42) "b" | 43 | IDENT@41..42 "b" |
44 | PARAM_LIST@[42; 63) | 44 | PARAM_LIST@42..63 |
45 | L_PAREN@[42; 43) "(" | 45 | L_PAREN@42..43 "(" |
46 | SELF_PARAM@[43; 62) | 46 | SELF_PARAM@43..62 |
47 | MUT_KW@[43; 46) "mut" | 47 | MUT_KW@43..46 "mut" |
48 | WHITESPACE@[46; 47) " " | 48 | WHITESPACE@46..47 " " |
49 | SELF_KW@[47; 51) "self" | 49 | SELF_KW@47..51 "self" |
50 | COLON@[51; 52) ":" | 50 | COLON@51..52 ":" |
51 | WHITESPACE@[52; 53) " " | 51 | WHITESPACE@52..53 " " |
52 | PATH_TYPE@[53; 62) | 52 | PATH_TYPE@53..62 |
53 | PATH@[53; 62) | 53 | PATH@53..62 |
54 | PATH_SEGMENT@[53; 62) | 54 | PATH_SEGMENT@53..62 |
55 | NAME_REF@[53; 56) | 55 | NAME_REF@53..56 |
56 | IDENT@[53; 56) "Box" | 56 | IDENT@53..56 "Box" |
57 | TYPE_ARG_LIST@[56; 62) | 57 | TYPE_ARG_LIST@56..62 |
58 | L_ANGLE@[56; 57) "<" | 58 | L_ANGLE@56..57 "<" |
59 | TYPE_ARG@[57; 61) | 59 | TYPE_ARG@57..61 |
60 | PATH_TYPE@[57; 61) | 60 | PATH_TYPE@57..61 |
61 | PATH@[57; 61) | 61 | PATH@57..61 |
62 | PATH_SEGMENT@[57; 61) | 62 | PATH_SEGMENT@57..61 |
63 | NAME_REF@[57; 61) | 63 | NAME_REF@57..61 |
64 | IDENT@[57; 61) "Self" | 64 | IDENT@57..61 "Self" |
65 | R_ANGLE@[61; 62) ">" | 65 | R_ANGLE@61..62 ">" |
66 | R_PAREN@[62; 63) ")" | 66 | R_PAREN@62..63 ")" |
67 | WHITESPACE@[63; 64) " " | 67 | WHITESPACE@63..64 " " |
68 | BLOCK_EXPR@[64; 66) | 68 | BLOCK_EXPR@64..66 |
69 | BLOCK@[64; 66) | 69 | BLOCK@64..66 |
70 | L_CURLY@[64; 65) "{" | 70 | L_CURLY@64..65 "{" |
71 | R_CURLY@[65; 66) "}" | 71 | R_CURLY@65..66 "}" |
72 | WHITESPACE@[66; 67) "\n" | 72 | WHITESPACE@66..67 "\n" |
73 | R_CURLY@[67; 68) "}" | 73 | R_CURLY@67..68 "}" |
74 | WHITESPACE@[68; 69) "\n" | 74 | WHITESPACE@68..69 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast index 5a42f360c..ba422f1ae 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast | |||
@@ -1,45 +1,45 @@ | |||
1 | SOURCE_FILE@[0; 44) | 1 | SOURCE_FILE@0..44 |
2 | FN_DEF@[0; 43) | 2 | FN_DEF@0..43 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 43) | 11 | BLOCK_EXPR@9..43 |
12 | BLOCK@[9; 43) | 12 | BLOCK@9..43 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 20) | 15 | EXPR_STMT@15..20 |
16 | PREFIX_EXPR@[15; 19) | 16 | PREFIX_EXPR@15..19 |
17 | STAR@[15; 16) "*" | 17 | STAR@15..16 "*" |
18 | PREFIX_EXPR@[16; 19) | 18 | PREFIX_EXPR@16..19 |
19 | STAR@[16; 17) "*" | 19 | STAR@16..17 "*" |
20 | REF_EXPR@[17; 19) | 20 | REF_EXPR@17..19 |
21 | AMP@[17; 18) "&" | 21 | AMP@17..18 "&" |
22 | LITERAL@[18; 19) | 22 | LITERAL@18..19 |
23 | INT_NUMBER@[18; 19) "1" | 23 | INT_NUMBER@18..19 "1" |
24 | SEMICOLON@[19; 20) ";" | 24 | SEMICOLON@19..20 ";" |
25 | WHITESPACE@[20; 25) "\n " | 25 | WHITESPACE@20..25 "\n " |
26 | EXPR_STMT@[25; 32) | 26 | EXPR_STMT@25..32 |
27 | PREFIX_EXPR@[25; 31) | 27 | PREFIX_EXPR@25..31 |
28 | BANG@[25; 26) "!" | 28 | BANG@25..26 "!" |
29 | PREFIX_EXPR@[26; 31) | 29 | PREFIX_EXPR@26..31 |
30 | BANG@[26; 27) "!" | 30 | BANG@26..27 "!" |
31 | LITERAL@[27; 31) | 31 | LITERAL@27..31 |
32 | TRUE_KW@[27; 31) "true" | 32 | TRUE_KW@27..31 "true" |
33 | SEMICOLON@[31; 32) ";" | 33 | SEMICOLON@31..32 ";" |
34 | WHITESPACE@[32; 37) "\n " | 34 | WHITESPACE@32..37 "\n " |
35 | EXPR_STMT@[37; 41) | 35 | EXPR_STMT@37..41 |
36 | PREFIX_EXPR@[37; 40) | 36 | PREFIX_EXPR@37..40 |
37 | MINUS@[37; 38) "-" | 37 | MINUS@37..38 "-" |
38 | PREFIX_EXPR@[38; 40) | 38 | PREFIX_EXPR@38..40 |
39 | MINUS@[38; 39) "-" | 39 | MINUS@38..39 "-" |
40 | LITERAL@[39; 40) | 40 | LITERAL@39..40 |
41 | INT_NUMBER@[39; 40) "1" | 41 | INT_NUMBER@39..40 "1" |
42 | SEMICOLON@[40; 41) ";" | 42 | SEMICOLON@40..41 ";" |
43 | WHITESPACE@[41; 42) "\n" | 43 | WHITESPACE@41..42 "\n" |
44 | R_CURLY@[42; 43) "}" | 44 | R_CURLY@42..43 "}" |
45 | WHITESPACE@[43; 44) "\n" | 45 | WHITESPACE@43..44 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast index c1bedb37c..9e898b7b9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 60) | 1 | SOURCE_FILE@0..60 |
2 | USE_ITEM@[0; 6) | 2 | USE_ITEM@0..6 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 5) | 5 | USE_TREE@4..5 |
6 | STAR@[4; 5) "*" | 6 | STAR@4..5 "*" |
7 | SEMICOLON@[5; 6) ";" | 7 | SEMICOLON@5..6 ";" |
8 | WHITESPACE@[6; 7) "\n" | 8 | WHITESPACE@6..7 "\n" |
9 | USE_ITEM@[7; 15) | 9 | USE_ITEM@7..15 |
10 | USE_KW@[7; 10) "use" | 10 | USE_KW@7..10 "use" |
11 | WHITESPACE@[10; 11) " " | 11 | WHITESPACE@10..11 " " |
12 | USE_TREE@[11; 14) | 12 | USE_TREE@11..14 |
13 | COLON2@[11; 13) "::" | 13 | COLON2@11..13 "::" |
14 | STAR@[13; 14) "*" | 14 | STAR@13..14 "*" |
15 | SEMICOLON@[14; 15) ";" | 15 | SEMICOLON@14..15 ";" |
16 | WHITESPACE@[15; 16) "\n" | 16 | WHITESPACE@15..16 "\n" |
17 | USE_ITEM@[16; 36) | 17 | USE_ITEM@16..36 |
18 | USE_KW@[16; 19) "use" | 18 | USE_KW@16..19 "use" |
19 | WHITESPACE@[19; 20) " " | 19 | WHITESPACE@19..20 " " |
20 | USE_TREE@[20; 35) | 20 | USE_TREE@20..35 |
21 | PATH@[20; 30) | 21 | PATH@20..30 |
22 | PATH@[20; 24) | 22 | PATH@20..24 |
23 | PATH_SEGMENT@[20; 24) | 23 | PATH_SEGMENT@20..24 |
24 | NAME_REF@[20; 24) | 24 | NAME_REF@20..24 |
25 | IDENT@[20; 24) "some" | 25 | IDENT@20..24 "some" |
26 | COLON2@[24; 26) "::" | 26 | COLON2@24..26 "::" |
27 | PATH_SEGMENT@[26; 30) | 27 | PATH_SEGMENT@26..30 |
28 | NAME_REF@[26; 30) | 28 | NAME_REF@26..30 |
29 | IDENT@[26; 30) "path" | 29 | IDENT@26..30 "path" |
30 | COLON2@[30; 32) "::" | 30 | COLON2@30..32 "::" |
31 | USE_TREE_LIST@[32; 35) | 31 | USE_TREE_LIST@32..35 |
32 | L_CURLY@[32; 33) "{" | 32 | L_CURLY@32..33 "{" |
33 | USE_TREE@[33; 34) | 33 | USE_TREE@33..34 |
34 | STAR@[33; 34) "*" | 34 | STAR@33..34 "*" |
35 | R_CURLY@[34; 35) "}" | 35 | R_CURLY@34..35 "}" |
36 | SEMICOLON@[35; 36) ";" | 36 | SEMICOLON@35..36 ";" |
37 | WHITESPACE@[36; 37) "\n" | 37 | WHITESPACE@36..37 "\n" |
38 | USE_ITEM@[37; 59) | 38 | USE_ITEM@37..59 |
39 | USE_KW@[37; 40) "use" | 39 | USE_KW@37..40 "use" |
40 | WHITESPACE@[40; 41) " " | 40 | WHITESPACE@40..41 " " |
41 | USE_TREE@[41; 58) | 41 | USE_TREE@41..58 |
42 | PATH@[41; 51) | 42 | PATH@41..51 |
43 | PATH@[41; 45) | 43 | PATH@41..45 |
44 | PATH_SEGMENT@[41; 45) | 44 | PATH_SEGMENT@41..45 |
45 | NAME_REF@[41; 45) | 45 | NAME_REF@41..45 |
46 | IDENT@[41; 45) "some" | 46 | IDENT@41..45 "some" |
47 | COLON2@[45; 47) "::" | 47 | COLON2@45..47 "::" |
48 | PATH_SEGMENT@[47; 51) | 48 | PATH_SEGMENT@47..51 |
49 | NAME_REF@[47; 51) | 49 | NAME_REF@47..51 |
50 | IDENT@[47; 51) "path" | 50 | IDENT@47..51 "path" |
51 | COLON2@[51; 53) "::" | 51 | COLON2@51..53 "::" |
52 | USE_TREE_LIST@[53; 58) | 52 | USE_TREE_LIST@53..58 |
53 | L_CURLY@[53; 54) "{" | 53 | L_CURLY@53..54 "{" |
54 | USE_TREE@[54; 57) | 54 | USE_TREE@54..57 |
55 | COLON2@[54; 56) "::" | 55 | COLON2@54..56 "::" |
56 | STAR@[56; 57) "*" | 56 | STAR@56..57 "*" |
57 | R_CURLY@[57; 58) "}" | 57 | R_CURLY@57..58 "}" |
58 | SEMICOLON@[58; 59) ";" | 58 | SEMICOLON@58..59 ";" |
59 | WHITESPACE@[59; 60) "\n" | 59 | WHITESPACE@59..60 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast index 767a49ce6..de22b22dd 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast | |||
@@ -1,80 +1,80 @@ | |||
1 | SOURCE_FILE@[0; 89) | 1 | SOURCE_FILE@0..89 |
2 | IMPL_DEF@[0; 88) | 2 | IMPL_DEF@0..88 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "F" | 9 | IDENT@5..6 "F" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | ITEM_LIST@[7; 88) | 11 | ITEM_LIST@7..88 |
12 | L_CURLY@[7; 8) "{" | 12 | L_CURLY@7..8 "{" |
13 | WHITESPACE@[8; 13) "\n " | 13 | WHITESPACE@8..13 "\n " |
14 | TYPE_ALIAS_DEF@[13; 26) | 14 | TYPE_ALIAS_DEF@13..26 |
15 | TYPE_KW@[13; 17) "type" | 15 | TYPE_KW@13..17 "type" |
16 | WHITESPACE@[17; 18) " " | 16 | WHITESPACE@17..18 " " |
17 | NAME@[18; 19) | 17 | NAME@18..19 |
18 | IDENT@[18; 19) "A" | 18 | IDENT@18..19 "A" |
19 | WHITESPACE@[19; 20) " " | 19 | WHITESPACE@19..20 " " |
20 | EQ@[20; 21) "=" | 20 | EQ@20..21 "=" |
21 | WHITESPACE@[21; 22) " " | 21 | WHITESPACE@21..22 " " |
22 | PATH_TYPE@[22; 25) | 22 | PATH_TYPE@22..25 |
23 | PATH@[22; 25) | 23 | PATH@22..25 |
24 | PATH_SEGMENT@[22; 25) | 24 | PATH_SEGMENT@22..25 |
25 | NAME_REF@[22; 25) | 25 | NAME_REF@22..25 |
26 | IDENT@[22; 25) "i32" | 26 | IDENT@22..25 "i32" |
27 | SEMICOLON@[25; 26) ";" | 27 | SEMICOLON@25..26 ";" |
28 | WHITESPACE@[26; 31) "\n " | 28 | WHITESPACE@26..31 "\n " |
29 | CONST_DEF@[31; 49) | 29 | CONST_DEF@31..49 |
30 | CONST_KW@[31; 36) "const" | 30 | CONST_KW@31..36 "const" |
31 | WHITESPACE@[36; 37) " " | 31 | WHITESPACE@36..37 " " |
32 | NAME@[37; 38) | 32 | NAME@37..38 |
33 | IDENT@[37; 38) "B" | 33 | IDENT@37..38 "B" |
34 | COLON@[38; 39) ":" | 34 | COLON@38..39 ":" |
35 | WHITESPACE@[39; 40) " " | 35 | WHITESPACE@39..40 " " |
36 | PATH_TYPE@[40; 43) | 36 | PATH_TYPE@40..43 |
37 | PATH@[40; 43) | 37 | PATH@40..43 |
38 | PATH_SEGMENT@[40; 43) | 38 | PATH_SEGMENT@40..43 |
39 | NAME_REF@[40; 43) | 39 | NAME_REF@40..43 |
40 | IDENT@[40; 43) "i32" | 40 | IDENT@40..43 "i32" |
41 | WHITESPACE@[43; 44) " " | 41 | WHITESPACE@43..44 " " |
42 | EQ@[44; 45) "=" | 42 | EQ@44..45 "=" |
43 | WHITESPACE@[45; 46) " " | 43 | WHITESPACE@45..46 " " |
44 | LITERAL@[46; 48) | 44 | LITERAL@46..48 |
45 | INT_NUMBER@[46; 48) "92" | 45 | INT_NUMBER@46..48 "92" |
46 | SEMICOLON@[48; 49) ";" | 46 | SEMICOLON@48..49 ";" |
47 | WHITESPACE@[49; 54) "\n " | 47 | WHITESPACE@49..54 "\n " |
48 | FN_DEF@[54; 65) | 48 | FN_DEF@54..65 |
49 | FN_KW@[54; 56) "fn" | 49 | FN_KW@54..56 "fn" |
50 | WHITESPACE@[56; 57) " " | 50 | WHITESPACE@56..57 " " |
51 | NAME@[57; 60) | 51 | NAME@57..60 |
52 | IDENT@[57; 60) "foo" | 52 | IDENT@57..60 "foo" |
53 | PARAM_LIST@[60; 62) | 53 | PARAM_LIST@60..62 |
54 | L_PAREN@[60; 61) "(" | 54 | L_PAREN@60..61 "(" |
55 | R_PAREN@[61; 62) ")" | 55 | R_PAREN@61..62 ")" |
56 | WHITESPACE@[62; 63) " " | 56 | WHITESPACE@62..63 " " |
57 | BLOCK_EXPR@[63; 65) | 57 | BLOCK_EXPR@63..65 |
58 | BLOCK@[63; 65) | 58 | BLOCK@63..65 |
59 | L_CURLY@[63; 64) "{" | 59 | L_CURLY@63..64 "{" |
60 | R_CURLY@[64; 65) "}" | 60 | R_CURLY@64..65 "}" |
61 | WHITESPACE@[65; 70) "\n " | 61 | WHITESPACE@65..70 "\n " |
62 | FN_DEF@[70; 86) | 62 | FN_DEF@70..86 |
63 | FN_KW@[70; 72) "fn" | 63 | FN_KW@70..72 "fn" |
64 | WHITESPACE@[72; 73) " " | 64 | WHITESPACE@72..73 " " |
65 | NAME@[73; 76) | 65 | NAME@73..76 |
66 | IDENT@[73; 76) "bar" | 66 | IDENT@73..76 "bar" |
67 | PARAM_LIST@[76; 83) | 67 | PARAM_LIST@76..83 |
68 | L_PAREN@[76; 77) "(" | 68 | L_PAREN@76..77 "(" |
69 | SELF_PARAM@[77; 82) | 69 | SELF_PARAM@77..82 |
70 | AMP@[77; 78) "&" | 70 | AMP@77..78 "&" |
71 | SELF_KW@[78; 82) "self" | 71 | SELF_KW@78..82 "self" |
72 | R_PAREN@[82; 83) ")" | 72 | R_PAREN@82..83 ")" |
73 | WHITESPACE@[83; 84) " " | 73 | WHITESPACE@83..84 " " |
74 | BLOCK_EXPR@[84; 86) | 74 | BLOCK_EXPR@84..86 |
75 | BLOCK@[84; 86) | 75 | BLOCK@84..86 |
76 | L_CURLY@[84; 85) "{" | 76 | L_CURLY@84..85 "{" |
77 | R_CURLY@[85; 86) "}" | 77 | R_CURLY@85..86 "}" |
78 | WHITESPACE@[86; 87) "\n" | 78 | WHITESPACE@86..87 "\n" |
79 | R_CURLY@[87; 88) "}" | 79 | R_CURLY@87..88 "}" |
80 | WHITESPACE@[88; 89) "\n" | 80 | WHITESPACE@88..89 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast index e0fc96d33..1b810607e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast | |||
@@ -1,53 +1,53 @@ | |||
1 | SOURCE_FILE@[0; 81) | 1 | SOURCE_FILE@0..81 |
2 | STRUCT_DEF@[0; 20) | 2 | STRUCT_DEF@0..20 |
3 | VISIBILITY@[0; 10) | 3 | VISIBILITY@0..10 |
4 | PUB_KW@[0; 3) "pub" | 4 | PUB_KW@0..3 "pub" |
5 | L_PAREN@[3; 4) "(" | 5 | L_PAREN@3..4 "(" |
6 | CRATE_KW@[4; 9) "crate" | 6 | CRATE_KW@4..9 "crate" |
7 | R_PAREN@[9; 10) ")" | 7 | R_PAREN@9..10 ")" |
8 | WHITESPACE@[10; 11) " " | 8 | WHITESPACE@10..11 " " |
9 | STRUCT_KW@[11; 17) "struct" | 9 | STRUCT_KW@11..17 "struct" |
10 | WHITESPACE@[17; 18) " " | 10 | WHITESPACE@17..18 " " |
11 | NAME@[18; 19) | 11 | NAME@18..19 |
12 | IDENT@[18; 19) "S" | 12 | IDENT@18..19 "S" |
13 | SEMICOLON@[19; 20) ";" | 13 | SEMICOLON@19..20 ";" |
14 | WHITESPACE@[20; 21) "\n" | 14 | WHITESPACE@20..21 "\n" |
15 | STRUCT_DEF@[21; 40) | 15 | STRUCT_DEF@21..40 |
16 | VISIBILITY@[21; 30) | 16 | VISIBILITY@21..30 |
17 | PUB_KW@[21; 24) "pub" | 17 | PUB_KW@21..24 "pub" |
18 | L_PAREN@[24; 25) "(" | 18 | L_PAREN@24..25 "(" |
19 | SELF_KW@[25; 29) "self" | 19 | SELF_KW@25..29 "self" |
20 | R_PAREN@[29; 30) ")" | 20 | R_PAREN@29..30 ")" |
21 | WHITESPACE@[30; 31) " " | 21 | WHITESPACE@30..31 " " |
22 | STRUCT_KW@[31; 37) "struct" | 22 | STRUCT_KW@31..37 "struct" |
23 | WHITESPACE@[37; 38) " " | 23 | WHITESPACE@37..38 " " |
24 | NAME@[38; 39) | 24 | NAME@38..39 |
25 | IDENT@[38; 39) "S" | 25 | IDENT@38..39 "S" |
26 | SEMICOLON@[39; 40) ";" | 26 | SEMICOLON@39..40 ";" |
27 | WHITESPACE@[40; 41) "\n" | 27 | WHITESPACE@40..41 "\n" |
28 | STRUCT_DEF@[41; 60) | 28 | STRUCT_DEF@41..60 |
29 | VISIBILITY@[41; 50) | 29 | VISIBILITY@41..50 |
30 | PUB_KW@[41; 44) "pub" | 30 | PUB_KW@41..44 "pub" |
31 | L_PAREN@[44; 45) "(" | 31 | L_PAREN@44..45 "(" |
32 | SELF_KW@[45; 49) "self" | 32 | SELF_KW@45..49 "self" |
33 | R_PAREN@[49; 50) ")" | 33 | R_PAREN@49..50 ")" |
34 | WHITESPACE@[50; 51) " " | 34 | WHITESPACE@50..51 " " |
35 | STRUCT_KW@[51; 57) "struct" | 35 | STRUCT_KW@51..57 "struct" |
36 | WHITESPACE@[57; 58) " " | 36 | WHITESPACE@57..58 " " |
37 | NAME@[58; 59) | 37 | NAME@58..59 |
38 | IDENT@[58; 59) "S" | 38 | IDENT@58..59 "S" |
39 | SEMICOLON@[59; 60) ";" | 39 | SEMICOLON@59..60 ";" |
40 | WHITESPACE@[60; 61) "\n" | 40 | WHITESPACE@60..61 "\n" |
41 | STRUCT_DEF@[61; 80) | 41 | STRUCT_DEF@61..80 |
42 | VISIBILITY@[61; 70) | 42 | VISIBILITY@61..70 |
43 | PUB_KW@[61; 64) "pub" | 43 | PUB_KW@61..64 "pub" |
44 | L_PAREN@[64; 65) "(" | 44 | L_PAREN@64..65 "(" |
45 | SELF_KW@[65; 69) "self" | 45 | SELF_KW@65..69 "self" |
46 | R_PAREN@[69; 70) ")" | 46 | R_PAREN@69..70 ")" |
47 | WHITESPACE@[70; 71) " " | 47 | WHITESPACE@70..71 " " |
48 | STRUCT_KW@[71; 77) "struct" | 48 | STRUCT_KW@71..77 "struct" |
49 | WHITESPACE@[77; 78) " " | 49 | WHITESPACE@77..78 " " |
50 | NAME@[78; 79) | 50 | NAME@78..79 |
51 | IDENT@[78; 79) "S" | 51 | IDENT@78..79 "S" |
52 | SEMICOLON@[79; 80) ";" | 52 | SEMICOLON@79..80 ";" |
53 | WHITESPACE@[80; 81) "\n" | 53 | WHITESPACE@80..81 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast index b7acc3f07..17687617b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast | |||
@@ -1,13 +1,13 @@ | |||
1 | SOURCE_FILE@[0; 22) | 1 | SOURCE_FILE@0..22 |
2 | TYPE_ALIAS_DEF@[0; 21) | 2 | TYPE_ALIAS_DEF@0..21 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 16) | 5 | NAME@5..16 |
6 | IDENT@[5; 16) "Placeholder" | 6 | IDENT@5..16 "Placeholder" |
7 | WHITESPACE@[16; 17) " " | 7 | WHITESPACE@16..17 " " |
8 | EQ@[17; 18) "=" | 8 | EQ@17..18 "=" |
9 | WHITESPACE@[18; 19) " " | 9 | WHITESPACE@18..19 " " |
10 | PLACEHOLDER_TYPE@[19; 20) | 10 | PLACEHOLDER_TYPE@19..20 |
11 | UNDERSCORE@[19; 20) "_" | 11 | UNDERSCORE@19..20 "_" |
12 | SEMICOLON@[20; 21) ";" | 12 | SEMICOLON@20..21 ";" |
13 | WHITESPACE@[21; 22) "\n" | 13 | WHITESPACE@21..22 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast index 430e4a999..7da292a2d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast | |||
@@ -1,42 +1,42 @@ | |||
1 | SOURCE_FILE@[0; 39) | 1 | SOURCE_FILE@0..39 |
2 | FN_DEF@[0; 38) | 2 | FN_DEF@0..38 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 38) | 11 | BLOCK_EXPR@10..38 |
12 | BLOCK@[10; 38) | 12 | BLOCK@10..38 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 36) | 15 | LET_STMT@16..36 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | SLICE_PAT@[20; 30) | 18 | SLICE_PAT@20..30 |
19 | L_BRACK@[20; 21) "[" | 19 | L_BRACK@20..21 "[" |
20 | BIND_PAT@[21; 22) | 20 | BIND_PAT@21..22 |
21 | NAME@[21; 22) | 21 | NAME@21..22 |
22 | IDENT@[21; 22) "a" | 22 | IDENT@21..22 "a" |
23 | COMMA@[22; 23) "," | 23 | COMMA@22..23 "," |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | BIND_PAT@[24; 25) | 25 | BIND_PAT@24..25 |
26 | NAME@[24; 25) | 26 | NAME@24..25 |
27 | IDENT@[24; 25) "b" | 27 | IDENT@24..25 "b" |
28 | COMMA@[25; 26) "," | 28 | COMMA@25..26 "," |
29 | WHITESPACE@[26; 27) " " | 29 | WHITESPACE@26..27 " " |
30 | DOT_DOT_PAT@[27; 29) | 30 | DOT_DOT_PAT@27..29 |
31 | DOT2@[27; 29) ".." | 31 | DOT2@27..29 ".." |
32 | R_BRACK@[29; 30) "]" | 32 | R_BRACK@29..30 "]" |
33 | WHITESPACE@[30; 31) " " | 33 | WHITESPACE@30..31 " " |
34 | EQ@[31; 32) "=" | 34 | EQ@31..32 "=" |
35 | WHITESPACE@[32; 33) " " | 35 | WHITESPACE@32..33 " " |
36 | ARRAY_EXPR@[33; 35) | 36 | ARRAY_EXPR@33..35 |
37 | L_BRACK@[33; 34) "[" | 37 | L_BRACK@33..34 "[" |
38 | R_BRACK@[34; 35) "]" | 38 | R_BRACK@34..35 "]" |
39 | SEMICOLON@[35; 36) ";" | 39 | SEMICOLON@35..36 ";" |
40 | WHITESPACE@[36; 37) "\n" | 40 | WHITESPACE@36..37 "\n" |
41 | R_CURLY@[37; 38) "}" | 41 | R_CURLY@37..38 "}" |
42 | WHITESPACE@[38; 39) "\n" | 42 | WHITESPACE@38..39 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast index 4eee1e7f1..0a6d77f45 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 15) | 1 | SOURCE_FILE@0..15 |
2 | TYPE_ALIAS_DEF@[0; 14) | 2 | TYPE_ALIAS_DEF@0..14 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | SLICE_TYPE@[9; 13) | 10 | SLICE_TYPE@9..13 |
11 | L_BRACK@[9; 10) "[" | 11 | L_BRACK@9..10 "[" |
12 | TUPLE_TYPE@[10; 12) | 12 | TUPLE_TYPE@10..12 |
13 | L_PAREN@[10; 11) "(" | 13 | L_PAREN@10..11 "(" |
14 | R_PAREN@[11; 12) ")" | 14 | R_PAREN@11..12 ")" |
15 | R_BRACK@[12; 13) "]" | 15 | R_BRACK@12..13 "]" |
16 | SEMICOLON@[13; 14) ";" | 16 | SEMICOLON@13..14 ";" |
17 | WHITESPACE@[14; 15) "\n" | 17 | WHITESPACE@14..15 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast index d8d82dacc..574942f06 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast | |||
@@ -1,105 +1,105 @@ | |||
1 | SOURCE_FILE@[0; 97) | 1 | SOURCE_FILE@0..97 |
2 | FN_DEF@[0; 96) | 2 | FN_DEF@0..96 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 96) | 11 | BLOCK_EXPR@9..96 |
12 | BLOCK@[9; 96) | 12 | BLOCK@9..96 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 28) | 15 | LET_STMT@15..28 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | TUPLE_STRUCT_PAT@[19; 22) | 18 | TUPLE_STRUCT_PAT@19..22 |
19 | PATH@[19; 20) | 19 | PATH@19..20 |
20 | PATH_SEGMENT@[19; 20) | 20 | PATH_SEGMENT@19..20 |
21 | NAME_REF@[19; 20) | 21 | NAME_REF@19..20 |
22 | IDENT@[19; 20) "S" | 22 | IDENT@19..20 "S" |
23 | L_PAREN@[20; 21) "(" | 23 | L_PAREN@20..21 "(" |
24 | R_PAREN@[21; 22) ")" | 24 | R_PAREN@21..22 ")" |
25 | WHITESPACE@[22; 23) " " | 25 | WHITESPACE@22..23 " " |
26 | EQ@[23; 24) "=" | 26 | EQ@23..24 "=" |
27 | WHITESPACE@[24; 25) " " | 27 | WHITESPACE@24..25 " " |
28 | TUPLE_EXPR@[25; 27) | 28 | TUPLE_EXPR@25..27 |
29 | L_PAREN@[25; 26) "(" | 29 | L_PAREN@25..26 "(" |
30 | R_PAREN@[26; 27) ")" | 30 | R_PAREN@26..27 ")" |
31 | SEMICOLON@[27; 28) ";" | 31 | SEMICOLON@27..28 ";" |
32 | WHITESPACE@[28; 33) "\n " | 32 | WHITESPACE@28..33 "\n " |
33 | LET_STMT@[33; 47) | 33 | LET_STMT@33..47 |
34 | LET_KW@[33; 36) "let" | 34 | LET_KW@33..36 "let" |
35 | WHITESPACE@[36; 37) " " | 35 | WHITESPACE@36..37 " " |
36 | TUPLE_STRUCT_PAT@[37; 41) | 36 | TUPLE_STRUCT_PAT@37..41 |
37 | PATH@[37; 38) | 37 | PATH@37..38 |
38 | PATH_SEGMENT@[37; 38) | 38 | PATH_SEGMENT@37..38 |
39 | NAME_REF@[37; 38) | 39 | NAME_REF@37..38 |
40 | IDENT@[37; 38) "S" | 40 | IDENT@37..38 "S" |
41 | L_PAREN@[38; 39) "(" | 41 | L_PAREN@38..39 "(" |
42 | PLACEHOLDER_PAT@[39; 40) | 42 | PLACEHOLDER_PAT@39..40 |
43 | UNDERSCORE@[39; 40) "_" | 43 | UNDERSCORE@39..40 "_" |
44 | R_PAREN@[40; 41) ")" | 44 | R_PAREN@40..41 ")" |
45 | WHITESPACE@[41; 42) " " | 45 | WHITESPACE@41..42 " " |
46 | EQ@[42; 43) "=" | 46 | EQ@42..43 "=" |
47 | WHITESPACE@[43; 44) " " | 47 | WHITESPACE@43..44 " " |
48 | TUPLE_EXPR@[44; 46) | 48 | TUPLE_EXPR@44..46 |
49 | L_PAREN@[44; 45) "(" | 49 | L_PAREN@44..45 "(" |
50 | R_PAREN@[45; 46) ")" | 50 | R_PAREN@45..46 ")" |
51 | SEMICOLON@[46; 47) ";" | 51 | SEMICOLON@46..47 ";" |
52 | WHITESPACE@[47; 52) "\n " | 52 | WHITESPACE@47..52 "\n " |
53 | LET_STMT@[52; 67) | 53 | LET_STMT@52..67 |
54 | LET_KW@[52; 55) "let" | 54 | LET_KW@52..55 "let" |
55 | WHITESPACE@[55; 56) " " | 55 | WHITESPACE@55..56 " " |
56 | TUPLE_STRUCT_PAT@[56; 61) | 56 | TUPLE_STRUCT_PAT@56..61 |
57 | PATH@[56; 57) | 57 | PATH@56..57 |
58 | PATH_SEGMENT@[56; 57) | 58 | PATH_SEGMENT@56..57 |
59 | NAME_REF@[56; 57) | 59 | NAME_REF@56..57 |
60 | IDENT@[56; 57) "S" | 60 | IDENT@56..57 "S" |
61 | L_PAREN@[57; 58) "(" | 61 | L_PAREN@57..58 "(" |
62 | PLACEHOLDER_PAT@[58; 59) | 62 | PLACEHOLDER_PAT@58..59 |
63 | UNDERSCORE@[58; 59) "_" | 63 | UNDERSCORE@58..59 "_" |
64 | COMMA@[59; 60) "," | 64 | COMMA@59..60 "," |
65 | R_PAREN@[60; 61) ")" | 65 | R_PAREN@60..61 ")" |
66 | WHITESPACE@[61; 62) " " | 66 | WHITESPACE@61..62 " " |
67 | EQ@[62; 63) "=" | 67 | EQ@62..63 "=" |
68 | WHITESPACE@[63; 64) " " | 68 | WHITESPACE@63..64 " " |
69 | TUPLE_EXPR@[64; 66) | 69 | TUPLE_EXPR@64..66 |
70 | L_PAREN@[64; 65) "(" | 70 | L_PAREN@64..65 "(" |
71 | R_PAREN@[65; 66) ")" | 71 | R_PAREN@65..66 ")" |
72 | SEMICOLON@[66; 67) ";" | 72 | SEMICOLON@66..67 ";" |
73 | WHITESPACE@[67; 72) "\n " | 73 | WHITESPACE@67..72 "\n " |
74 | LET_STMT@[72; 94) | 74 | LET_STMT@72..94 |
75 | LET_KW@[72; 75) "let" | 75 | LET_KW@72..75 "let" |
76 | WHITESPACE@[75; 76) " " | 76 | WHITESPACE@75..76 " " |
77 | TUPLE_STRUCT_PAT@[76; 88) | 77 | TUPLE_STRUCT_PAT@76..88 |
78 | PATH@[76; 77) | 78 | PATH@76..77 |
79 | PATH_SEGMENT@[76; 77) | 79 | PATH_SEGMENT@76..77 |
80 | NAME_REF@[76; 77) | 80 | NAME_REF@76..77 |
81 | IDENT@[76; 77) "S" | 81 | IDENT@76..77 "S" |
82 | L_PAREN@[77; 78) "(" | 82 | L_PAREN@77..78 "(" |
83 | PLACEHOLDER_PAT@[78; 79) | 83 | PLACEHOLDER_PAT@78..79 |
84 | UNDERSCORE@[78; 79) "_" | 84 | UNDERSCORE@78..79 "_" |
85 | COMMA@[79; 80) "," | 85 | COMMA@79..80 "," |
86 | WHITESPACE@[80; 81) " " | 86 | WHITESPACE@80..81 " " |
87 | DOT_DOT_PAT@[81; 83) | 87 | DOT_DOT_PAT@81..83 |
88 | DOT2@[81; 83) ".." | 88 | DOT2@81..83 ".." |
89 | WHITESPACE@[83; 84) " " | 89 | WHITESPACE@83..84 " " |
90 | COMMA@[84; 85) "," | 90 | COMMA@84..85 "," |
91 | WHITESPACE@[85; 86) " " | 91 | WHITESPACE@85..86 " " |
92 | BIND_PAT@[86; 87) | 92 | BIND_PAT@86..87 |
93 | NAME@[86; 87) | 93 | NAME@86..87 |
94 | IDENT@[86; 87) "x" | 94 | IDENT@86..87 "x" |
95 | R_PAREN@[87; 88) ")" | 95 | R_PAREN@87..88 ")" |
96 | WHITESPACE@[88; 89) " " | 96 | WHITESPACE@88..89 " " |
97 | EQ@[89; 90) "=" | 97 | EQ@89..90 "=" |
98 | WHITESPACE@[90; 91) " " | 98 | WHITESPACE@90..91 " " |
99 | TUPLE_EXPR@[91; 93) | 99 | TUPLE_EXPR@91..93 |
100 | L_PAREN@[91; 92) "(" | 100 | L_PAREN@91..92 "(" |
101 | R_PAREN@[92; 93) ")" | 101 | R_PAREN@92..93 ")" |
102 | SEMICOLON@[93; 94) ";" | 102 | SEMICOLON@93..94 ";" |
103 | WHITESPACE@[94; 95) "\n" | 103 | WHITESPACE@94..95 "\n" |
104 | R_CURLY@[95; 96) "}" | 104 | R_CURLY@95..96 "}" |
105 | WHITESPACE@[96; 97) "\n" | 105 | WHITESPACE@96..97 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast index ac6ab31f2..1927438bb 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast | |||
@@ -1,50 +1,50 @@ | |||
1 | SOURCE_FILE@[0; 52) | 1 | SOURCE_FILE@0..52 |
2 | FN_DEF@[0; 51) | 2 | FN_DEF@0..51 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 51) | 11 | BLOCK_EXPR@10..51 |
12 | BLOCK@[10; 51) | 12 | BLOCK@10..51 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 28) | 15 | LET_STMT@16..28 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | REF_PAT@[20; 22) | 18 | REF_PAT@20..22 |
19 | AMP@[20; 21) "&" | 19 | AMP@20..21 "&" |
20 | BIND_PAT@[21; 22) | 20 | BIND_PAT@21..22 |
21 | NAME@[21; 22) | 21 | NAME@21..22 |
22 | IDENT@[21; 22) "a" | 22 | IDENT@21..22 "a" |
23 | WHITESPACE@[22; 23) " " | 23 | WHITESPACE@22..23 " " |
24 | EQ@[23; 24) "=" | 24 | EQ@23..24 "=" |
25 | WHITESPACE@[24; 25) " " | 25 | WHITESPACE@24..25 " " |
26 | TUPLE_EXPR@[25; 27) | 26 | TUPLE_EXPR@25..27 |
27 | L_PAREN@[25; 26) "(" | 27 | L_PAREN@25..26 "(" |
28 | R_PAREN@[26; 27) ")" | 28 | R_PAREN@26..27 ")" |
29 | SEMICOLON@[27; 28) ";" | 29 | SEMICOLON@27..28 ";" |
30 | WHITESPACE@[28; 33) "\n " | 30 | WHITESPACE@28..33 "\n " |
31 | LET_STMT@[33; 49) | 31 | LET_STMT@33..49 |
32 | LET_KW@[33; 36) "let" | 32 | LET_KW@33..36 "let" |
33 | WHITESPACE@[36; 37) " " | 33 | WHITESPACE@36..37 " " |
34 | REF_PAT@[37; 43) | 34 | REF_PAT@37..43 |
35 | AMP@[37; 38) "&" | 35 | AMP@37..38 "&" |
36 | MUT_KW@[38; 41) "mut" | 36 | MUT_KW@38..41 "mut" |
37 | WHITESPACE@[41; 42) " " | 37 | WHITESPACE@41..42 " " |
38 | BIND_PAT@[42; 43) | 38 | BIND_PAT@42..43 |
39 | NAME@[42; 43) | 39 | NAME@42..43 |
40 | IDENT@[42; 43) "b" | 40 | IDENT@42..43 "b" |
41 | WHITESPACE@[43; 44) " " | 41 | WHITESPACE@43..44 " " |
42 | EQ@[44; 45) "=" | 42 | EQ@44..45 "=" |
43 | WHITESPACE@[45; 46) " " | 43 | WHITESPACE@45..46 " " |
44 | TUPLE_EXPR@[46; 48) | 44 | TUPLE_EXPR@46..48 |
45 | L_PAREN@[46; 47) "(" | 45 | L_PAREN@46..47 "(" |
46 | R_PAREN@[47; 48) ")" | 46 | R_PAREN@47..48 ")" |
47 | SEMICOLON@[48; 49) ";" | 47 | SEMICOLON@48..49 ";" |
48 | WHITESPACE@[49; 50) "\n" | 48 | WHITESPACE@49..50 "\n" |
49 | R_CURLY@[50; 51) "}" | 49 | R_CURLY@50..51 "}" |
50 | WHITESPACE@[51; 52) "\n" | 50 | WHITESPACE@51..52 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast index 3371cab82..93f5c738c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 43) | 1 | SOURCE_FILE@0..43 |
2 | TYPE_ALIAS_DEF@[0; 42) | 2 | TYPE_ALIAS_DEF@0..42 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | IMPL_TRAIT_TYPE@[9; 41) | 10 | IMPL_TRAIT_TYPE@9..41 |
11 | IMPL_KW@[9; 13) "impl" | 11 | IMPL_KW@9..13 "impl" |
12 | WHITESPACE@[13; 14) " " | 12 | WHITESPACE@13..14 " " |
13 | TYPE_BOUND_LIST@[14; 41) | 13 | TYPE_BOUND_LIST@14..41 |
14 | TYPE_BOUND@[14; 36) | 14 | TYPE_BOUND@14..36 |
15 | PATH_TYPE@[14; 36) | 15 | PATH_TYPE@14..36 |
16 | PATH@[14; 36) | 16 | PATH@14..36 |
17 | PATH_SEGMENT@[14; 36) | 17 | PATH_SEGMENT@14..36 |
18 | NAME_REF@[14; 22) | 18 | NAME_REF@14..22 |
19 | IDENT@[14; 22) "Iterator" | 19 | IDENT@14..22 "Iterator" |
20 | TYPE_ARG_LIST@[22; 36) | 20 | TYPE_ARG_LIST@22..36 |
21 | L_ANGLE@[22; 23) "<" | 21 | L_ANGLE@22..23 "<" |
22 | ASSOC_TYPE_ARG@[23; 35) | 22 | ASSOC_TYPE_ARG@23..35 |
23 | NAME_REF@[23; 27) | 23 | NAME_REF@23..27 |
24 | IDENT@[23; 27) "Item" | 24 | IDENT@23..27 "Item" |
25 | EQ@[27; 28) "=" | 25 | EQ@27..28 "=" |
26 | PATH_TYPE@[28; 35) | 26 | PATH_TYPE@28..35 |
27 | PATH@[28; 35) | 27 | PATH@28..35 |
28 | PATH_SEGMENT@[28; 35) | 28 | PATH_SEGMENT@28..35 |
29 | NAME_REF@[28; 31) | 29 | NAME_REF@28..31 |
30 | IDENT@[28; 31) "Foo" | 30 | IDENT@28..31 "Foo" |
31 | TYPE_ARG_LIST@[31; 35) | 31 | TYPE_ARG_LIST@31..35 |
32 | L_ANGLE@[31; 32) "<" | 32 | L_ANGLE@31..32 "<" |
33 | LIFETIME_ARG@[32; 34) | 33 | LIFETIME_ARG@32..34 |
34 | LIFETIME@[32; 34) "\'a" | 34 | LIFETIME@32..34 "\'a" |
35 | R_ANGLE@[34; 35) ">" | 35 | R_ANGLE@34..35 ">" |
36 | R_ANGLE@[35; 36) ">" | 36 | R_ANGLE@35..36 ">" |
37 | WHITESPACE@[36; 37) " " | 37 | WHITESPACE@36..37 " " |
38 | PLUS@[37; 38) "+" | 38 | PLUS@37..38 "+" |
39 | WHITESPACE@[38; 39) " " | 39 | WHITESPACE@38..39 " " |
40 | TYPE_BOUND@[39; 41) | 40 | TYPE_BOUND@39..41 |
41 | LIFETIME@[39; 41) "\'a" | 41 | LIFETIME@39..41 "\'a" |
42 | SEMICOLON@[41; 42) ";" | 42 | SEMICOLON@41..42 ";" |
43 | WHITESPACE@[42; 43) "\n" | 43 | WHITESPACE@42..43 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast index e9ca214bb..9effb345f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast | |||
@@ -1,90 +1,90 @@ | |||
1 | SOURCE_FILE@[0; 89) | 1 | SOURCE_FILE@0..89 |
2 | FN_DEF@[0; 88) | 2 | FN_DEF@0..88 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 88) | 11 | BLOCK_EXPR@9..88 |
12 | BLOCK@[9; 88) | 12 | BLOCK@9..88 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 25) | 15 | EXPR_STMT@15..25 |
16 | CAST_EXPR@[15; 24) | 16 | CAST_EXPR@15..24 |
17 | LITERAL@[15; 17) | 17 | LITERAL@15..17 |
18 | INT_NUMBER@[15; 17) "82" | 18 | INT_NUMBER@15..17 "82" |
19 | WHITESPACE@[17; 18) " " | 19 | WHITESPACE@17..18 " " |
20 | AS_KW@[18; 20) "as" | 20 | AS_KW@18..20 "as" |
21 | WHITESPACE@[20; 21) " " | 21 | WHITESPACE@20..21 " " |
22 | PATH_TYPE@[21; 24) | 22 | PATH_TYPE@21..24 |
23 | PATH@[21; 24) | 23 | PATH@21..24 |
24 | PATH_SEGMENT@[21; 24) | 24 | PATH_SEGMENT@21..24 |
25 | NAME_REF@[21; 24) | 25 | NAME_REF@21..24 |
26 | IDENT@[21; 24) "i32" | 26 | IDENT@21..24 "i32" |
27 | SEMICOLON@[24; 25) ";" | 27 | SEMICOLON@24..25 ";" |
28 | WHITESPACE@[25; 30) "\n " | 28 | WHITESPACE@25..30 "\n " |
29 | EXPR_STMT@[30; 43) | 29 | EXPR_STMT@30..43 |
30 | BIN_EXPR@[30; 42) | 30 | BIN_EXPR@30..42 |
31 | CAST_EXPR@[30; 38) | 31 | CAST_EXPR@30..38 |
32 | LITERAL@[30; 32) | 32 | LITERAL@30..32 |
33 | INT_NUMBER@[30; 32) "81" | 33 | INT_NUMBER@30..32 "81" |
34 | WHITESPACE@[32; 33) " " | 34 | WHITESPACE@32..33 " " |
35 | AS_KW@[33; 35) "as" | 35 | AS_KW@33..35 "as" |
36 | WHITESPACE@[35; 36) " " | 36 | WHITESPACE@35..36 " " |
37 | PATH_TYPE@[36; 38) | 37 | PATH_TYPE@36..38 |
38 | PATH@[36; 38) | 38 | PATH@36..38 |
39 | PATH_SEGMENT@[36; 38) | 39 | PATH_SEGMENT@36..38 |
40 | NAME_REF@[36; 38) | 40 | NAME_REF@36..38 |
41 | IDENT@[36; 38) "i8" | 41 | IDENT@36..38 "i8" |
42 | WHITESPACE@[38; 39) " " | 42 | WHITESPACE@38..39 " " |
43 | PLUS@[39; 40) "+" | 43 | PLUS@39..40 "+" |
44 | WHITESPACE@[40; 41) " " | 44 | WHITESPACE@40..41 " " |
45 | LITERAL@[41; 42) | 45 | LITERAL@41..42 |
46 | INT_NUMBER@[41; 42) "1" | 46 | INT_NUMBER@41..42 "1" |
47 | SEMICOLON@[42; 43) ";" | 47 | SEMICOLON@42..43 ";" |
48 | WHITESPACE@[43; 48) "\n " | 48 | WHITESPACE@43..48 "\n " |
49 | EXPR_STMT@[48; 62) | 49 | EXPR_STMT@48..62 |
50 | BIN_EXPR@[48; 61) | 50 | BIN_EXPR@48..61 |
51 | CAST_EXPR@[48; 57) | 51 | CAST_EXPR@48..57 |
52 | LITERAL@[48; 50) | 52 | LITERAL@48..50 |
53 | INT_NUMBER@[48; 50) "79" | 53 | INT_NUMBER@48..50 "79" |
54 | WHITESPACE@[50; 51) " " | 54 | WHITESPACE@50..51 " " |
55 | AS_KW@[51; 53) "as" | 55 | AS_KW@51..53 "as" |
56 | WHITESPACE@[53; 54) " " | 56 | WHITESPACE@53..54 " " |
57 | PATH_TYPE@[54; 57) | 57 | PATH_TYPE@54..57 |
58 | PATH@[54; 57) | 58 | PATH@54..57 |
59 | PATH_SEGMENT@[54; 57) | 59 | PATH_SEGMENT@54..57 |
60 | NAME_REF@[54; 57) | 60 | NAME_REF@54..57 |
61 | IDENT@[54; 57) "i16" | 61 | IDENT@54..57 "i16" |
62 | WHITESPACE@[57; 58) " " | 62 | WHITESPACE@57..58 " " |
63 | MINUS@[58; 59) "-" | 63 | MINUS@58..59 "-" |
64 | WHITESPACE@[59; 60) " " | 64 | WHITESPACE@59..60 " " |
65 | LITERAL@[60; 61) | 65 | LITERAL@60..61 |
66 | INT_NUMBER@[60; 61) "1" | 66 | INT_NUMBER@60..61 "1" |
67 | SEMICOLON@[61; 62) ";" | 67 | SEMICOLON@61..62 ";" |
68 | WHITESPACE@[62; 67) "\n " | 68 | WHITESPACE@62..67 "\n " |
69 | EXPR_STMT@[67; 86) | 69 | EXPR_STMT@67..86 |
70 | BIN_EXPR@[67; 85) | 70 | BIN_EXPR@67..85 |
71 | CAST_EXPR@[67; 77) | 71 | CAST_EXPR@67..77 |
72 | LITERAL@[67; 71) | 72 | LITERAL@67..71 |
73 | INT_NUMBER@[67; 71) "0x36" | 73 | INT_NUMBER@67..71 "0x36" |
74 | WHITESPACE@[71; 72) " " | 74 | WHITESPACE@71..72 " " |
75 | AS_KW@[72; 74) "as" | 75 | AS_KW@72..74 "as" |
76 | WHITESPACE@[74; 75) " " | 76 | WHITESPACE@74..75 " " |
77 | PATH_TYPE@[75; 77) | 77 | PATH_TYPE@75..77 |
78 | PATH@[75; 77) | 78 | PATH@75..77 |
79 | PATH_SEGMENT@[75; 77) | 79 | PATH_SEGMENT@75..77 |
80 | NAME_REF@[75; 77) | 80 | NAME_REF@75..77 |
81 | IDENT@[75; 77) "u8" | 81 | IDENT@75..77 "u8" |
82 | WHITESPACE@[77; 78) " " | 82 | WHITESPACE@77..78 " " |
83 | LTEQ@[78; 80) "<=" | 83 | LTEQ@78..80 "<=" |
84 | WHITESPACE@[80; 81) " " | 84 | WHITESPACE@80..81 " " |
85 | LITERAL@[81; 85) | 85 | LITERAL@81..85 |
86 | INT_NUMBER@[81; 85) "0x37" | 86 | INT_NUMBER@81..85 "0x37" |
87 | SEMICOLON@[85; 86) ";" | 87 | SEMICOLON@85..86 ";" |
88 | WHITESPACE@[86; 87) "\n" | 88 | WHITESPACE@86..87 "\n" |
89 | R_CURLY@[87; 88) "}" | 89 | R_CURLY@87..88 "}" |
90 | WHITESPACE@[88; 89) "\n" | 90 | WHITESPACE@88..89 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast index 6fd49c7bc..b6759541e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast | |||
@@ -1,209 +1,209 @@ | |||
1 | SOURCE_FILE@[0; 197) | 1 | SOURCE_FILE@0..197 |
2 | FN_DEF@[0; 37) | 2 | FN_DEF@0..37 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 37) | 11 | BLOCK_EXPR@9..37 |
12 | BLOCK@[9; 37) | 12 | BLOCK@9..37 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | IF_EXPR@[11; 35) | 15 | IF_EXPR@11..35 |
16 | IF_KW@[11; 13) "if" | 16 | IF_KW@11..13 "if" |
17 | WHITESPACE@[13; 14) " " | 17 | WHITESPACE@13..14 " " |
18 | CONDITION@[14; 32) | 18 | CONDITION@14..32 |
19 | LET_KW@[14; 17) "let" | 19 | LET_KW@14..17 "let" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | TUPLE_STRUCT_PAT@[18; 25) | 21 | TUPLE_STRUCT_PAT@18..25 |
22 | PATH@[18; 22) | 22 | PATH@18..22 |
23 | PATH_SEGMENT@[18; 22) | 23 | PATH_SEGMENT@18..22 |
24 | NAME_REF@[18; 22) | 24 | NAME_REF@18..22 |
25 | IDENT@[18; 22) "Some" | 25 | IDENT@18..22 "Some" |
26 | L_PAREN@[22; 23) "(" | 26 | L_PAREN@22..23 "(" |
27 | PLACEHOLDER_PAT@[23; 24) | 27 | PLACEHOLDER_PAT@23..24 |
28 | UNDERSCORE@[23; 24) "_" | 28 | UNDERSCORE@23..24 "_" |
29 | R_PAREN@[24; 25) ")" | 29 | R_PAREN@24..25 ")" |
30 | WHITESPACE@[25; 26) " " | 30 | WHITESPACE@25..26 " " |
31 | EQ@[26; 27) "=" | 31 | EQ@26..27 "=" |
32 | WHITESPACE@[27; 28) " " | 32 | WHITESPACE@27..28 " " |
33 | PATH_EXPR@[28; 32) | 33 | PATH_EXPR@28..32 |
34 | PATH@[28; 32) | 34 | PATH@28..32 |
35 | PATH_SEGMENT@[28; 32) | 35 | PATH_SEGMENT@28..32 |
36 | NAME_REF@[28; 32) | 36 | NAME_REF@28..32 |
37 | IDENT@[28; 32) "None" | 37 | IDENT@28..32 "None" |
38 | WHITESPACE@[32; 33) " " | 38 | WHITESPACE@32..33 " " |
39 | BLOCK_EXPR@[33; 35) | 39 | BLOCK_EXPR@33..35 |
40 | BLOCK@[33; 35) | 40 | BLOCK@33..35 |
41 | L_CURLY@[33; 34) "{" | 41 | L_CURLY@33..34 "{" |
42 | R_CURLY@[34; 35) "}" | 42 | R_CURLY@34..35 "}" |
43 | WHITESPACE@[35; 36) " " | 43 | WHITESPACE@35..36 " " |
44 | R_CURLY@[36; 37) "}" | 44 | R_CURLY@36..37 "}" |
45 | WHITESPACE@[37; 38) "\n" | 45 | WHITESPACE@37..38 "\n" |
46 | FN_DEF@[38; 196) | 46 | FN_DEF@38..196 |
47 | FN_KW@[38; 40) "fn" | 47 | FN_KW@38..40 "fn" |
48 | WHITESPACE@[40; 41) " " | 48 | WHITESPACE@40..41 " " |
49 | NAME@[41; 44) | 49 | NAME@41..44 |
50 | IDENT@[41; 44) "bar" | 50 | IDENT@41..44 "bar" |
51 | PARAM_LIST@[44; 46) | 51 | PARAM_LIST@44..46 |
52 | L_PAREN@[44; 45) "(" | 52 | L_PAREN@44..45 "(" |
53 | R_PAREN@[45; 46) ")" | 53 | R_PAREN@45..46 ")" |
54 | WHITESPACE@[46; 47) " " | 54 | WHITESPACE@46..47 " " |
55 | BLOCK_EXPR@[47; 196) | 55 | BLOCK_EXPR@47..196 |
56 | BLOCK@[47; 196) | 56 | BLOCK@47..196 |
57 | L_CURLY@[47; 48) "{" | 57 | L_CURLY@47..48 "{" |
58 | WHITESPACE@[48; 53) "\n " | 58 | WHITESPACE@48..53 "\n " |
59 | EXPR_STMT@[53; 87) | 59 | EXPR_STMT@53..87 |
60 | IF_EXPR@[53; 87) | 60 | IF_EXPR@53..87 |
61 | IF_KW@[53; 55) "if" | 61 | IF_KW@53..55 "if" |
62 | WHITESPACE@[55; 56) " " | 62 | WHITESPACE@55..56 " " |
63 | CONDITION@[56; 84) | 63 | CONDITION@56..84 |
64 | LET_KW@[56; 59) "let" | 64 | LET_KW@56..59 "let" |
65 | WHITESPACE@[59; 60) " " | 65 | WHITESPACE@59..60 " " |
66 | OR_PAT@[60; 77) | 66 | OR_PAT@60..77 |
67 | TUPLE_STRUCT_PAT@[60; 67) | 67 | TUPLE_STRUCT_PAT@60..67 |
68 | PATH@[60; 64) | 68 | PATH@60..64 |
69 | PATH_SEGMENT@[60; 64) | 69 | PATH_SEGMENT@60..64 |
70 | NAME_REF@[60; 64) | 70 | NAME_REF@60..64 |
71 | IDENT@[60; 64) "Some" | 71 | IDENT@60..64 "Some" |
72 | L_PAREN@[64; 65) "(" | 72 | L_PAREN@64..65 "(" |
73 | PLACEHOLDER_PAT@[65; 66) | 73 | PLACEHOLDER_PAT@65..66 |
74 | UNDERSCORE@[65; 66) "_" | 74 | UNDERSCORE@65..66 "_" |
75 | R_PAREN@[66; 67) ")" | 75 | R_PAREN@66..67 ")" |
76 | WHITESPACE@[67; 68) " " | 76 | WHITESPACE@67..68 " " |
77 | PIPE@[68; 69) "|" | 77 | PIPE@68..69 "|" |
78 | WHITESPACE@[69; 70) " " | 78 | WHITESPACE@69..70 " " |
79 | TUPLE_STRUCT_PAT@[70; 77) | 79 | TUPLE_STRUCT_PAT@70..77 |
80 | PATH@[70; 74) | 80 | PATH@70..74 |
81 | PATH_SEGMENT@[70; 74) | 81 | PATH_SEGMENT@70..74 |
82 | NAME_REF@[70; 74) | 82 | NAME_REF@70..74 |
83 | IDENT@[70; 74) "Some" | 83 | IDENT@70..74 "Some" |
84 | L_PAREN@[74; 75) "(" | 84 | L_PAREN@74..75 "(" |
85 | PLACEHOLDER_PAT@[75; 76) | 85 | PLACEHOLDER_PAT@75..76 |
86 | UNDERSCORE@[75; 76) "_" | 86 | UNDERSCORE@75..76 "_" |
87 | R_PAREN@[76; 77) ")" | 87 | R_PAREN@76..77 ")" |
88 | WHITESPACE@[77; 78) " " | 88 | WHITESPACE@77..78 " " |
89 | EQ@[78; 79) "=" | 89 | EQ@78..79 "=" |
90 | WHITESPACE@[79; 80) " " | 90 | WHITESPACE@79..80 " " |
91 | PATH_EXPR@[80; 84) | 91 | PATH_EXPR@80..84 |
92 | PATH@[80; 84) | 92 | PATH@80..84 |
93 | PATH_SEGMENT@[80; 84) | 93 | PATH_SEGMENT@80..84 |
94 | NAME_REF@[80; 84) | 94 | NAME_REF@80..84 |
95 | IDENT@[80; 84) "None" | 95 | IDENT@80..84 "None" |
96 | WHITESPACE@[84; 85) " " | 96 | WHITESPACE@84..85 " " |
97 | BLOCK_EXPR@[85; 87) | 97 | BLOCK_EXPR@85..87 |
98 | BLOCK@[85; 87) | 98 | BLOCK@85..87 |
99 | L_CURLY@[85; 86) "{" | 99 | L_CURLY@85..86 "{" |
100 | R_CURLY@[86; 87) "}" | 100 | R_CURLY@86..87 "}" |
101 | WHITESPACE@[87; 92) "\n " | 101 | WHITESPACE@87..92 "\n " |
102 | EXPR_STMT@[92; 118) | 102 | EXPR_STMT@92..118 |
103 | IF_EXPR@[92; 118) | 103 | IF_EXPR@92..118 |
104 | IF_KW@[92; 94) "if" | 104 | IF_KW@92..94 "if" |
105 | WHITESPACE@[94; 95) " " | 105 | WHITESPACE@94..95 " " |
106 | CONDITION@[95; 115) | 106 | CONDITION@95..115 |
107 | LET_KW@[95; 98) "let" | 107 | LET_KW@95..98 "let" |
108 | WHITESPACE@[98; 99) " " | 108 | WHITESPACE@98..99 " " |
109 | PIPE@[99; 100) "|" | 109 | PIPE@99..100 "|" |
110 | WHITESPACE@[100; 101) " " | 110 | WHITESPACE@100..101 " " |
111 | TUPLE_STRUCT_PAT@[101; 108) | 111 | TUPLE_STRUCT_PAT@101..108 |
112 | PATH@[101; 105) | 112 | PATH@101..105 |
113 | PATH_SEGMENT@[101; 105) | 113 | PATH_SEGMENT@101..105 |
114 | NAME_REF@[101; 105) | 114 | NAME_REF@101..105 |
115 | IDENT@[101; 105) "Some" | 115 | IDENT@101..105 "Some" |
116 | L_PAREN@[105; 106) "(" | 116 | L_PAREN@105..106 "(" |
117 | PLACEHOLDER_PAT@[106; 107) | 117 | PLACEHOLDER_PAT@106..107 |
118 | UNDERSCORE@[106; 107) "_" | 118 | UNDERSCORE@106..107 "_" |
119 | R_PAREN@[107; 108) ")" | 119 | R_PAREN@107..108 ")" |
120 | WHITESPACE@[108; 109) " " | 120 | WHITESPACE@108..109 " " |
121 | EQ@[109; 110) "=" | 121 | EQ@109..110 "=" |
122 | WHITESPACE@[110; 111) " " | 122 | WHITESPACE@110..111 " " |
123 | PATH_EXPR@[111; 115) | 123 | PATH_EXPR@111..115 |
124 | PATH@[111; 115) | 124 | PATH@111..115 |
125 | PATH_SEGMENT@[111; 115) | 125 | PATH_SEGMENT@111..115 |
126 | NAME_REF@[111; 115) | 126 | NAME_REF@111..115 |
127 | IDENT@[111; 115) "None" | 127 | IDENT@111..115 "None" |
128 | WHITESPACE@[115; 116) " " | 128 | WHITESPACE@115..116 " " |
129 | BLOCK_EXPR@[116; 118) | 129 | BLOCK_EXPR@116..118 |
130 | BLOCK@[116; 118) | 130 | BLOCK@116..118 |
131 | L_CURLY@[116; 117) "{" | 131 | L_CURLY@116..117 "{" |
132 | R_CURLY@[117; 118) "}" | 132 | R_CURLY@117..118 "}" |
133 | WHITESPACE@[118; 123) "\n " | 133 | WHITESPACE@118..123 "\n " |
134 | EXPR_STMT@[123; 160) | 134 | EXPR_STMT@123..160 |
135 | WHILE_EXPR@[123; 160) | 135 | WHILE_EXPR@123..160 |
136 | WHILE_KW@[123; 128) "while" | 136 | WHILE_KW@123..128 "while" |
137 | WHITESPACE@[128; 129) " " | 137 | WHITESPACE@128..129 " " |
138 | CONDITION@[129; 157) | 138 | CONDITION@129..157 |
139 | LET_KW@[129; 132) "let" | 139 | LET_KW@129..132 "let" |
140 | WHITESPACE@[132; 133) " " | 140 | WHITESPACE@132..133 " " |
141 | OR_PAT@[133; 150) | 141 | OR_PAT@133..150 |
142 | TUPLE_STRUCT_PAT@[133; 140) | 142 | TUPLE_STRUCT_PAT@133..140 |
143 | PATH@[133; 137) | 143 | PATH@133..137 |
144 | PATH_SEGMENT@[133; 137) | 144 | PATH_SEGMENT@133..137 |
145 | NAME_REF@[133; 137) | 145 | NAME_REF@133..137 |
146 | IDENT@[133; 137) "Some" | 146 | IDENT@133..137 "Some" |
147 | L_PAREN@[137; 138) "(" | 147 | L_PAREN@137..138 "(" |
148 | PLACEHOLDER_PAT@[138; 139) | 148 | PLACEHOLDER_PAT@138..139 |
149 | UNDERSCORE@[138; 139) "_" | 149 | UNDERSCORE@138..139 "_" |
150 | R_PAREN@[139; 140) ")" | 150 | R_PAREN@139..140 ")" |
151 | WHITESPACE@[140; 141) " " | 151 | WHITESPACE@140..141 " " |
152 | PIPE@[141; 142) "|" | 152 | PIPE@141..142 "|" |
153 | WHITESPACE@[142; 143) " " | 153 | WHITESPACE@142..143 " " |
154 | TUPLE_STRUCT_PAT@[143; 150) | 154 | TUPLE_STRUCT_PAT@143..150 |
155 | PATH@[143; 147) | 155 | PATH@143..147 |
156 | PATH_SEGMENT@[143; 147) | 156 | PATH_SEGMENT@143..147 |
157 | NAME_REF@[143; 147) | 157 | NAME_REF@143..147 |
158 | IDENT@[143; 147) "Some" | 158 | IDENT@143..147 "Some" |
159 | L_PAREN@[147; 148) "(" | 159 | L_PAREN@147..148 "(" |
160 | PLACEHOLDER_PAT@[148; 149) | 160 | PLACEHOLDER_PAT@148..149 |
161 | UNDERSCORE@[148; 149) "_" | 161 | UNDERSCORE@148..149 "_" |
162 | R_PAREN@[149; 150) ")" | 162 | R_PAREN@149..150 ")" |
163 | WHITESPACE@[150; 151) " " | 163 | WHITESPACE@150..151 " " |
164 | EQ@[151; 152) "=" | 164 | EQ@151..152 "=" |
165 | WHITESPACE@[152; 153) " " | 165 | WHITESPACE@152..153 " " |
166 | PATH_EXPR@[153; 157) | 166 | PATH_EXPR@153..157 |
167 | PATH@[153; 157) | 167 | PATH@153..157 |
168 | PATH_SEGMENT@[153; 157) | 168 | PATH_SEGMENT@153..157 |
169 | NAME_REF@[153; 157) | 169 | NAME_REF@153..157 |
170 | IDENT@[153; 157) "None" | 170 | IDENT@153..157 "None" |
171 | WHITESPACE@[157; 158) " " | 171 | WHITESPACE@157..158 " " |
172 | BLOCK_EXPR@[158; 160) | 172 | BLOCK_EXPR@158..160 |
173 | BLOCK@[158; 160) | 173 | BLOCK@158..160 |
174 | L_CURLY@[158; 159) "{" | 174 | L_CURLY@158..159 "{" |
175 | R_CURLY@[159; 160) "}" | 175 | R_CURLY@159..160 "}" |
176 | WHITESPACE@[160; 165) "\n " | 176 | WHITESPACE@160..165 "\n " |
177 | WHILE_EXPR@[165; 194) | 177 | WHILE_EXPR@165..194 |
178 | WHILE_KW@[165; 170) "while" | 178 | WHILE_KW@165..170 "while" |
179 | WHITESPACE@[170; 171) " " | 179 | WHITESPACE@170..171 " " |
180 | CONDITION@[171; 191) | 180 | CONDITION@171..191 |
181 | LET_KW@[171; 174) "let" | 181 | LET_KW@171..174 "let" |
182 | WHITESPACE@[174; 175) " " | 182 | WHITESPACE@174..175 " " |
183 | PIPE@[175; 176) "|" | 183 | PIPE@175..176 "|" |
184 | WHITESPACE@[176; 177) " " | 184 | WHITESPACE@176..177 " " |
185 | TUPLE_STRUCT_PAT@[177; 184) | 185 | TUPLE_STRUCT_PAT@177..184 |
186 | PATH@[177; 181) | 186 | PATH@177..181 |
187 | PATH_SEGMENT@[177; 181) | 187 | PATH_SEGMENT@177..181 |
188 | NAME_REF@[177; 181) | 188 | NAME_REF@177..181 |
189 | IDENT@[177; 181) "Some" | 189 | IDENT@177..181 "Some" |
190 | L_PAREN@[181; 182) "(" | 190 | L_PAREN@181..182 "(" |
191 | PLACEHOLDER_PAT@[182; 183) | 191 | PLACEHOLDER_PAT@182..183 |
192 | UNDERSCORE@[182; 183) "_" | 192 | UNDERSCORE@182..183 "_" |
193 | R_PAREN@[183; 184) ")" | 193 | R_PAREN@183..184 ")" |
194 | WHITESPACE@[184; 185) " " | 194 | WHITESPACE@184..185 " " |
195 | EQ@[185; 186) "=" | 195 | EQ@185..186 "=" |
196 | WHITESPACE@[186; 187) " " | 196 | WHITESPACE@186..187 " " |
197 | PATH_EXPR@[187; 191) | 197 | PATH_EXPR@187..191 |
198 | PATH@[187; 191) | 198 | PATH@187..191 |
199 | PATH_SEGMENT@[187; 191) | 199 | PATH_SEGMENT@187..191 |
200 | NAME_REF@[187; 191) | 200 | NAME_REF@187..191 |
201 | IDENT@[187; 191) "None" | 201 | IDENT@187..191 "None" |
202 | WHITESPACE@[191; 192) " " | 202 | WHITESPACE@191..192 " " |
203 | BLOCK_EXPR@[192; 194) | 203 | BLOCK_EXPR@192..194 |
204 | BLOCK@[192; 194) | 204 | BLOCK@192..194 |
205 | L_CURLY@[192; 193) "{" | 205 | L_CURLY@192..193 "{" |
206 | R_CURLY@[193; 194) "}" | 206 | R_CURLY@193..194 "}" |
207 | WHITESPACE@[194; 195) "\n" | 207 | WHITESPACE@194..195 "\n" |
208 | R_CURLY@[195; 196) "}" | 208 | R_CURLY@195..196 "}" |
209 | WHITESPACE@[196; 197) "\n" | 209 | WHITESPACE@196..197 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast index aaef408cc..e5138a599 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast | |||
@@ -1,89 +1,89 @@ | |||
1 | SOURCE_FILE@[0; 93) | 1 | SOURCE_FILE@0..93 |
2 | FN_DEF@[0; 92) | 2 | FN_DEF@0..92 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 92) | 11 | BLOCK_EXPR@9..92 |
12 | BLOCK@[9; 92) | 12 | BLOCK@9..92 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 29) | 15 | EXPR_STMT@15..29 |
16 | WHILE_EXPR@[15; 28) | 16 | WHILE_EXPR@15..28 |
17 | WHILE_KW@[15; 20) "while" | 17 | WHILE_KW@15..20 "while" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | CONDITION@[21; 25) | 19 | CONDITION@21..25 |
20 | LITERAL@[21; 25) | 20 | LITERAL@21..25 |
21 | TRUE_KW@[21; 25) "true" | 21 | TRUE_KW@21..25 "true" |
22 | WHITESPACE@[25; 26) " " | 22 | WHITESPACE@25..26 " " |
23 | BLOCK_EXPR@[26; 28) | 23 | BLOCK_EXPR@26..28 |
24 | BLOCK@[26; 28) | 24 | BLOCK@26..28 |
25 | L_CURLY@[26; 27) "{" | 25 | L_CURLY@26..27 "{" |
26 | R_CURLY@[27; 28) "}" | 26 | R_CURLY@27..28 "}" |
27 | SEMICOLON@[28; 29) ";" | 27 | SEMICOLON@28..29 ";" |
28 | WHITESPACE@[29; 34) "\n " | 28 | WHITESPACE@29..34 "\n " |
29 | EXPR_STMT@[34; 67) | 29 | EXPR_STMT@34..67 |
30 | WHILE_EXPR@[34; 66) | 30 | WHILE_EXPR@34..66 |
31 | WHILE_KW@[34; 39) "while" | 31 | WHILE_KW@34..39 "while" |
32 | WHITESPACE@[39; 40) " " | 32 | WHITESPACE@39..40 " " |
33 | CONDITION@[40; 63) | 33 | CONDITION@40..63 |
34 | LET_KW@[40; 43) "let" | 34 | LET_KW@40..43 "let" |
35 | WHITESPACE@[43; 44) " " | 35 | WHITESPACE@43..44 " " |
36 | TUPLE_STRUCT_PAT@[44; 51) | 36 | TUPLE_STRUCT_PAT@44..51 |
37 | PATH@[44; 48) | 37 | PATH@44..48 |
38 | PATH_SEGMENT@[44; 48) | 38 | PATH_SEGMENT@44..48 |
39 | NAME_REF@[44; 48) | 39 | NAME_REF@44..48 |
40 | IDENT@[44; 48) "Some" | 40 | IDENT@44..48 "Some" |
41 | L_PAREN@[48; 49) "(" | 41 | L_PAREN@48..49 "(" |
42 | BIND_PAT@[49; 50) | 42 | BIND_PAT@49..50 |
43 | NAME@[49; 50) | 43 | NAME@49..50 |
44 | IDENT@[49; 50) "x" | 44 | IDENT@49..50 "x" |
45 | R_PAREN@[50; 51) ")" | 45 | R_PAREN@50..51 ")" |
46 | WHITESPACE@[51; 52) " " | 46 | WHITESPACE@51..52 " " |
47 | EQ@[52; 53) "=" | 47 | EQ@52..53 "=" |
48 | WHITESPACE@[53; 54) " " | 48 | WHITESPACE@53..54 " " |
49 | METHOD_CALL_EXPR@[54; 63) | 49 | METHOD_CALL_EXPR@54..63 |
50 | PATH_EXPR@[54; 56) | 50 | PATH_EXPR@54..56 |
51 | PATH@[54; 56) | 51 | PATH@54..56 |
52 | PATH_SEGMENT@[54; 56) | 52 | PATH_SEGMENT@54..56 |
53 | NAME_REF@[54; 56) | 53 | NAME_REF@54..56 |
54 | IDENT@[54; 56) "it" | 54 | IDENT@54..56 "it" |
55 | DOT@[56; 57) "." | 55 | DOT@56..57 "." |
56 | NAME_REF@[57; 61) | 56 | NAME_REF@57..61 |
57 | IDENT@[57; 61) "next" | 57 | IDENT@57..61 "next" |
58 | ARG_LIST@[61; 63) | 58 | ARG_LIST@61..63 |
59 | L_PAREN@[61; 62) "(" | 59 | L_PAREN@61..62 "(" |
60 | R_PAREN@[62; 63) ")" | 60 | R_PAREN@62..63 ")" |
61 | WHITESPACE@[63; 64) " " | 61 | WHITESPACE@63..64 " " |
62 | BLOCK_EXPR@[64; 66) | 62 | BLOCK_EXPR@64..66 |
63 | BLOCK@[64; 66) | 63 | BLOCK@64..66 |
64 | L_CURLY@[64; 65) "{" | 64 | L_CURLY@64..65 "{" |
65 | R_CURLY@[65; 66) "}" | 65 | R_CURLY@65..66 "}" |
66 | SEMICOLON@[66; 67) ";" | 66 | SEMICOLON@66..67 ";" |
67 | WHITESPACE@[67; 72) "\n " | 67 | WHITESPACE@67..72 "\n " |
68 | EXPR_STMT@[72; 90) | 68 | EXPR_STMT@72..90 |
69 | WHILE_EXPR@[72; 89) | 69 | WHILE_EXPR@72..89 |
70 | WHILE_KW@[72; 77) "while" | 70 | WHILE_KW@72..77 "while" |
71 | WHITESPACE@[77; 78) " " | 71 | WHITESPACE@77..78 " " |
72 | CONDITION@[78; 86) | 72 | CONDITION@78..86 |
73 | BLOCK_EXPR@[78; 86) | 73 | BLOCK_EXPR@78..86 |
74 | BLOCK@[78; 86) | 74 | BLOCK@78..86 |
75 | L_CURLY@[78; 79) "{" | 75 | L_CURLY@78..79 "{" |
76 | WHITESPACE@[79; 80) " " | 76 | WHITESPACE@79..80 " " |
77 | LITERAL@[80; 84) | 77 | LITERAL@80..84 |
78 | TRUE_KW@[80; 84) "true" | 78 | TRUE_KW@80..84 "true" |
79 | WHITESPACE@[84; 85) " " | 79 | WHITESPACE@84..85 " " |
80 | R_CURLY@[85; 86) "}" | 80 | R_CURLY@85..86 "}" |
81 | WHITESPACE@[86; 87) " " | 81 | WHITESPACE@86..87 " " |
82 | BLOCK_EXPR@[87; 89) | 82 | BLOCK_EXPR@87..89 |
83 | BLOCK@[87; 89) | 83 | BLOCK@87..89 |
84 | L_CURLY@[87; 88) "{" | 84 | L_CURLY@87..88 "{" |
85 | R_CURLY@[88; 89) "}" | 85 | R_CURLY@88..89 "}" |
86 | SEMICOLON@[89; 90) ";" | 86 | SEMICOLON@89..90 ";" |
87 | WHITESPACE@[90; 91) "\n" | 87 | WHITESPACE@90..91 "\n" |
88 | R_CURLY@[91; 92) "}" | 88 | R_CURLY@91..92 "}" |
89 | WHITESPACE@[92; 93) "\n" | 89 | WHITESPACE@92..93 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast index bad769850..72705e148 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast | |||
@@ -1,98 +1,98 @@ | |||
1 | SOURCE_FILE@[0; 113) | 1 | SOURCE_FILE@0..113 |
2 | TYPE_ALIAS_DEF@[0; 14) | 2 | TYPE_ALIAS_DEF@0..14 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | FN_POINTER_TYPE@[9; 13) | 10 | FN_POINTER_TYPE@9..13 |
11 | FN_KW@[9; 11) "fn" | 11 | FN_KW@9..11 "fn" |
12 | PARAM_LIST@[11; 13) | 12 | PARAM_LIST@11..13 |
13 | L_PAREN@[11; 12) "(" | 13 | L_PAREN@11..12 "(" |
14 | R_PAREN@[12; 13) ")" | 14 | R_PAREN@12..13 ")" |
15 | SEMICOLON@[13; 14) ";" | 15 | SEMICOLON@13..14 ";" |
16 | WHITESPACE@[14; 15) "\n" | 16 | WHITESPACE@14..15 "\n" |
17 | TYPE_ALIAS_DEF@[15; 36) | 17 | TYPE_ALIAS_DEF@15..36 |
18 | TYPE_KW@[15; 19) "type" | 18 | TYPE_KW@15..19 "type" |
19 | WHITESPACE@[19; 20) " " | 19 | WHITESPACE@19..20 " " |
20 | NAME@[20; 21) | 20 | NAME@20..21 |
21 | IDENT@[20; 21) "B" | 21 | IDENT@20..21 "B" |
22 | WHITESPACE@[21; 22) " " | 22 | WHITESPACE@21..22 " " |
23 | EQ@[22; 23) "=" | 23 | EQ@22..23 "=" |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | FN_POINTER_TYPE@[24; 35) | 25 | FN_POINTER_TYPE@24..35 |
26 | UNSAFE_KW@[24; 30) "unsafe" | 26 | UNSAFE_KW@24..30 "unsafe" |
27 | WHITESPACE@[30; 31) " " | 27 | WHITESPACE@30..31 " " |
28 | FN_KW@[31; 33) "fn" | 28 | FN_KW@31..33 "fn" |
29 | PARAM_LIST@[33; 35) | 29 | PARAM_LIST@33..35 |
30 | L_PAREN@[33; 34) "(" | 30 | L_PAREN@33..34 "(" |
31 | R_PAREN@[34; 35) ")" | 31 | R_PAREN@34..35 ")" |
32 | SEMICOLON@[35; 36) ";" | 32 | SEMICOLON@35..36 ";" |
33 | WHITESPACE@[36; 37) "\n" | 33 | WHITESPACE@36..37 "\n" |
34 | TYPE_ALIAS_DEF@[37; 69) | 34 | TYPE_ALIAS_DEF@37..69 |
35 | TYPE_KW@[37; 41) "type" | 35 | TYPE_KW@37..41 "type" |
36 | WHITESPACE@[41; 42) " " | 36 | WHITESPACE@41..42 " " |
37 | NAME@[42; 43) | 37 | NAME@42..43 |
38 | IDENT@[42; 43) "C" | 38 | IDENT@42..43 "C" |
39 | WHITESPACE@[43; 44) " " | 39 | WHITESPACE@43..44 " " |
40 | EQ@[44; 45) "=" | 40 | EQ@44..45 "=" |
41 | WHITESPACE@[45; 46) " " | 41 | WHITESPACE@45..46 " " |
42 | FN_POINTER_TYPE@[46; 68) | 42 | FN_POINTER_TYPE@46..68 |
43 | UNSAFE_KW@[46; 52) "unsafe" | 43 | UNSAFE_KW@46..52 "unsafe" |
44 | WHITESPACE@[52; 53) " " | 44 | WHITESPACE@52..53 " " |
45 | ABI@[53; 63) | 45 | ABI@53..63 |
46 | EXTERN_KW@[53; 59) "extern" | 46 | EXTERN_KW@53..59 "extern" |
47 | WHITESPACE@[59; 60) " " | 47 | WHITESPACE@59..60 " " |
48 | STRING@[60; 63) "\"C\"" | 48 | STRING@60..63 "\"C\"" |
49 | WHITESPACE@[63; 64) " " | 49 | WHITESPACE@63..64 " " |
50 | FN_KW@[64; 66) "fn" | 50 | FN_KW@64..66 "fn" |
51 | PARAM_LIST@[66; 68) | 51 | PARAM_LIST@66..68 |
52 | L_PAREN@[66; 67) "(" | 52 | L_PAREN@66..67 "(" |
53 | R_PAREN@[67; 68) ")" | 53 | R_PAREN@67..68 ")" |
54 | SEMICOLON@[68; 69) ";" | 54 | SEMICOLON@68..69 ";" |
55 | WHITESPACE@[69; 70) "\n" | 55 | WHITESPACE@69..70 "\n" |
56 | TYPE_ALIAS_DEF@[70; 112) | 56 | TYPE_ALIAS_DEF@70..112 |
57 | TYPE_KW@[70; 74) "type" | 57 | TYPE_KW@70..74 "type" |
58 | WHITESPACE@[74; 75) " " | 58 | WHITESPACE@74..75 " " |
59 | NAME@[75; 76) | 59 | NAME@75..76 |
60 | IDENT@[75; 76) "D" | 60 | IDENT@75..76 "D" |
61 | WHITESPACE@[76; 77) " " | 61 | WHITESPACE@76..77 " " |
62 | EQ@[77; 78) "=" | 62 | EQ@77..78 "=" |
63 | WHITESPACE@[78; 79) " " | 63 | WHITESPACE@78..79 " " |
64 | FN_POINTER_TYPE@[79; 111) | 64 | FN_POINTER_TYPE@79..111 |
65 | ABI@[79; 89) | 65 | ABI@79..89 |
66 | EXTERN_KW@[79; 85) "extern" | 66 | EXTERN_KW@79..85 "extern" |
67 | WHITESPACE@[85; 86) " " | 67 | WHITESPACE@85..86 " " |
68 | STRING@[86; 89) "\"C\"" | 68 | STRING@86..89 "\"C\"" |
69 | WHITESPACE@[89; 90) " " | 69 | WHITESPACE@89..90 " " |
70 | FN_KW@[90; 92) "fn" | 70 | FN_KW@90..92 "fn" |
71 | WHITESPACE@[92; 93) " " | 71 | WHITESPACE@92..93 " " |
72 | PARAM_LIST@[93; 105) | 72 | PARAM_LIST@93..105 |
73 | L_PAREN@[93; 94) "(" | 73 | L_PAREN@93..94 "(" |
74 | WHITESPACE@[94; 95) " " | 74 | WHITESPACE@94..95 " " |
75 | PARAM@[95; 97) | 75 | PARAM@95..97 |
76 | PATH_TYPE@[95; 97) | 76 | PATH_TYPE@95..97 |
77 | PATH@[95; 97) | 77 | PATH@95..97 |
78 | PATH_SEGMENT@[95; 97) | 78 | PATH_SEGMENT@95..97 |
79 | NAME_REF@[95; 97) | 79 | NAME_REF@95..97 |
80 | IDENT@[95; 97) "u8" | 80 | IDENT@95..97 "u8" |
81 | WHITESPACE@[97; 98) " " | 81 | WHITESPACE@97..98 " " |
82 | COMMA@[98; 99) "," | 82 | COMMA@98..99 "," |
83 | WHITESPACE@[99; 100) " " | 83 | WHITESPACE@99..100 " " |
84 | PARAM@[100; 103) | 84 | PARAM@100..103 |
85 | DOT3@[100; 103) "..." | 85 | DOT3@100..103 "..." |
86 | WHITESPACE@[103; 104) " " | 86 | WHITESPACE@103..104 " " |
87 | R_PAREN@[104; 105) ")" | 87 | R_PAREN@104..105 ")" |
88 | WHITESPACE@[105; 106) " " | 88 | WHITESPACE@105..106 " " |
89 | RET_TYPE@[106; 111) | 89 | RET_TYPE@106..111 |
90 | THIN_ARROW@[106; 108) "->" | 90 | THIN_ARROW@106..108 "->" |
91 | WHITESPACE@[108; 109) " " | 91 | WHITESPACE@108..109 " " |
92 | PATH_TYPE@[109; 111) | 92 | PATH_TYPE@109..111 |
93 | PATH@[109; 111) | 93 | PATH@109..111 |
94 | PATH_SEGMENT@[109; 111) | 94 | PATH_SEGMENT@109..111 |
95 | NAME_REF@[109; 111) | 95 | NAME_REF@109..111 |
96 | IDENT@[109; 111) "u8" | 96 | IDENT@109..111 "u8" |
97 | SEMICOLON@[111; 112) ";" | 97 | SEMICOLON@111..112 ";" |
98 | WHITESPACE@[112; 113) "\n" | 98 | WHITESPACE@112..113 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast index e6ee20b9a..784fbb592 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast | |||
@@ -1,50 +1,50 @@ | |||
1 | SOURCE_FILE@[0; 54) | 1 | SOURCE_FILE@0..54 |
2 | TYPE_ALIAS_DEF@[0; 13) | 2 | TYPE_ALIAS_DEF@0..13 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | REFERENCE_TYPE@[9; 12) | 10 | REFERENCE_TYPE@9..12 |
11 | AMP@[9; 10) "&" | 11 | AMP@9..10 "&" |
12 | TUPLE_TYPE@[10; 12) | 12 | TUPLE_TYPE@10..12 |
13 | L_PAREN@[10; 11) "(" | 13 | L_PAREN@10..11 "(" |
14 | R_PAREN@[11; 12) ")" | 14 | R_PAREN@11..12 ")" |
15 | SEMICOLON@[12; 13) ";" | 15 | SEMICOLON@12..13 ";" |
16 | WHITESPACE@[13; 14) "\n" | 16 | WHITESPACE@13..14 "\n" |
17 | TYPE_ALIAS_DEF@[14; 35) | 17 | TYPE_ALIAS_DEF@14..35 |
18 | TYPE_KW@[14; 18) "type" | 18 | TYPE_KW@14..18 "type" |
19 | WHITESPACE@[18; 19) " " | 19 | WHITESPACE@18..19 " " |
20 | NAME@[19; 20) | 20 | NAME@19..20 |
21 | IDENT@[19; 20) "B" | 21 | IDENT@19..20 "B" |
22 | WHITESPACE@[20; 21) " " | 22 | WHITESPACE@20..21 " " |
23 | EQ@[21; 22) "=" | 23 | EQ@21..22 "=" |
24 | WHITESPACE@[22; 23) " " | 24 | WHITESPACE@22..23 " " |
25 | REFERENCE_TYPE@[23; 34) | 25 | REFERENCE_TYPE@23..34 |
26 | AMP@[23; 24) "&" | 26 | AMP@23..24 "&" |
27 | LIFETIME@[24; 31) "\'static" | 27 | LIFETIME@24..31 "\'static" |
28 | WHITESPACE@[31; 32) " " | 28 | WHITESPACE@31..32 " " |
29 | TUPLE_TYPE@[32; 34) | 29 | TUPLE_TYPE@32..34 |
30 | L_PAREN@[32; 33) "(" | 30 | L_PAREN@32..33 "(" |
31 | R_PAREN@[33; 34) ")" | 31 | R_PAREN@33..34 ")" |
32 | SEMICOLON@[34; 35) ";" | 32 | SEMICOLON@34..35 ";" |
33 | WHITESPACE@[35; 36) "\n" | 33 | WHITESPACE@35..36 "\n" |
34 | TYPE_ALIAS_DEF@[36; 53) | 34 | TYPE_ALIAS_DEF@36..53 |
35 | TYPE_KW@[36; 40) "type" | 35 | TYPE_KW@36..40 "type" |
36 | WHITESPACE@[40; 41) " " | 36 | WHITESPACE@40..41 " " |
37 | NAME@[41; 42) | 37 | NAME@41..42 |
38 | IDENT@[41; 42) "C" | 38 | IDENT@41..42 "C" |
39 | WHITESPACE@[42; 43) " " | 39 | WHITESPACE@42..43 " " |
40 | EQ@[43; 44) "=" | 40 | EQ@43..44 "=" |
41 | WHITESPACE@[44; 45) " " | 41 | WHITESPACE@44..45 " " |
42 | REFERENCE_TYPE@[45; 52) | 42 | REFERENCE_TYPE@45..52 |
43 | AMP@[45; 46) "&" | 43 | AMP@45..46 "&" |
44 | MUT_KW@[46; 49) "mut" | 44 | MUT_KW@46..49 "mut" |
45 | WHITESPACE@[49; 50) " " | 45 | WHITESPACE@49..50 " " |
46 | TUPLE_TYPE@[50; 52) | 46 | TUPLE_TYPE@50..52 |
47 | L_PAREN@[50; 51) "(" | 47 | L_PAREN@50..51 "(" |
48 | R_PAREN@[51; 52) ")" | 48 | R_PAREN@51..52 ")" |
49 | SEMICOLON@[52; 53) ";" | 49 | SEMICOLON@52..53 ";" |
50 | WHITESPACE@[53; 54) "\n" | 50 | WHITESPACE@53..54 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast index 4bb95314f..52644da8f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast | |||
@@ -1,55 +1,55 @@ | |||
1 | SOURCE_FILE@[0; 102) | 1 | SOURCE_FILE@0..102 |
2 | FN_DEF@[0; 101) | 2 | FN_DEF@0..101 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 101) | 11 | BLOCK_EXPR@9..101 |
12 | BLOCK@[9; 101) | 12 | BLOCK@9..101 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LOOP_EXPR@[15; 99) | 15 | LOOP_EXPR@15..99 |
16 | LOOP_KW@[15; 19) "loop" | 16 | LOOP_KW@15..19 "loop" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | BLOCK_EXPR@[20; 99) | 18 | BLOCK_EXPR@20..99 |
19 | BLOCK@[20; 99) | 19 | BLOCK@20..99 |
20 | L_CURLY@[20; 21) "{" | 20 | L_CURLY@20..21 "{" |
21 | WHITESPACE@[21; 30) "\n " | 21 | WHITESPACE@21..30 "\n " |
22 | EXPR_STMT@[30; 36) | 22 | EXPR_STMT@30..36 |
23 | BREAK_EXPR@[30; 35) | 23 | BREAK_EXPR@30..35 |
24 | BREAK_KW@[30; 35) "break" | 24 | BREAK_KW@30..35 "break" |
25 | SEMICOLON@[35; 36) ";" | 25 | SEMICOLON@35..36 ";" |
26 | WHITESPACE@[36; 45) "\n " | 26 | WHITESPACE@36..45 "\n " |
27 | EXPR_STMT@[45; 54) | 27 | EXPR_STMT@45..54 |
28 | BREAK_EXPR@[45; 53) | 28 | BREAK_EXPR@45..53 |
29 | BREAK_KW@[45; 50) "break" | 29 | BREAK_KW@45..50 "break" |
30 | WHITESPACE@[50; 51) " " | 30 | WHITESPACE@50..51 " " |
31 | LIFETIME@[51; 53) "\'l" | 31 | LIFETIME@51..53 "\'l" |
32 | SEMICOLON@[53; 54) ";" | 32 | SEMICOLON@53..54 ";" |
33 | WHITESPACE@[54; 63) "\n " | 33 | WHITESPACE@54..63 "\n " |
34 | EXPR_STMT@[63; 72) | 34 | EXPR_STMT@63..72 |
35 | BREAK_EXPR@[63; 71) | 35 | BREAK_EXPR@63..71 |
36 | BREAK_KW@[63; 68) "break" | 36 | BREAK_KW@63..68 "break" |
37 | WHITESPACE@[68; 69) " " | 37 | WHITESPACE@68..69 " " |
38 | LITERAL@[69; 71) | 38 | LITERAL@69..71 |
39 | INT_NUMBER@[69; 71) "92" | 39 | INT_NUMBER@69..71 "92" |
40 | SEMICOLON@[71; 72) ";" | 40 | SEMICOLON@71..72 ";" |
41 | WHITESPACE@[72; 81) "\n " | 41 | WHITESPACE@72..81 "\n " |
42 | EXPR_STMT@[81; 93) | 42 | EXPR_STMT@81..93 |
43 | BREAK_EXPR@[81; 92) | 43 | BREAK_EXPR@81..92 |
44 | BREAK_KW@[81; 86) "break" | 44 | BREAK_KW@81..86 "break" |
45 | WHITESPACE@[86; 87) " " | 45 | WHITESPACE@86..87 " " |
46 | LIFETIME@[87; 89) "\'l" | 46 | LIFETIME@87..89 "\'l" |
47 | WHITESPACE@[89; 90) " " | 47 | WHITESPACE@89..90 " " |
48 | LITERAL@[90; 92) | 48 | LITERAL@90..92 |
49 | INT_NUMBER@[90; 92) "92" | 49 | INT_NUMBER@90..92 "92" |
50 | SEMICOLON@[92; 93) ";" | 50 | SEMICOLON@92..93 ";" |
51 | WHITESPACE@[93; 98) "\n " | 51 | WHITESPACE@93..98 "\n " |
52 | R_CURLY@[98; 99) "}" | 52 | R_CURLY@98..99 "}" |
53 | WHITESPACE@[99; 100) "\n" | 53 | WHITESPACE@99..100 "\n" |
54 | R_CURLY@[100; 101) "}" | 54 | R_CURLY@100..101 "}" |
55 | WHITESPACE@[101; 102) "\n" | 55 | WHITESPACE@101..102 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast index a7dfe167c..f061c0cac 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast | |||
@@ -1,22 +1,22 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 29) | 2 | FN_DEF@0..29 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | ABI@[7; 17) | 5 | ABI@7..17 |
6 | EXTERN_KW@[7; 13) "extern" | 6 | EXTERN_KW@7..13 "extern" |
7 | WHITESPACE@[13; 14) " " | 7 | WHITESPACE@13..14 " " |
8 | STRING@[14; 17) "\"C\"" | 8 | STRING@14..17 "\"C\"" |
9 | WHITESPACE@[17; 18) " " | 9 | WHITESPACE@17..18 " " |
10 | FN_KW@[18; 20) "fn" | 10 | FN_KW@18..20 "fn" |
11 | WHITESPACE@[20; 21) " " | 11 | WHITESPACE@20..21 " " |
12 | NAME@[21; 24) | 12 | NAME@21..24 |
13 | IDENT@[21; 24) "foo" | 13 | IDENT@21..24 "foo" |
14 | PARAM_LIST@[24; 26) | 14 | PARAM_LIST@24..26 |
15 | L_PAREN@[24; 25) "(" | 15 | L_PAREN@24..25 "(" |
16 | R_PAREN@[25; 26) ")" | 16 | R_PAREN@25..26 ")" |
17 | WHITESPACE@[26; 27) " " | 17 | WHITESPACE@26..27 " " |
18 | BLOCK_EXPR@[27; 29) | 18 | BLOCK_EXPR@27..29 |
19 | BLOCK@[27; 29) | 19 | BLOCK@27..29 |
20 | L_CURLY@[27; 28) "{" | 20 | L_CURLY@27..28 "{" |
21 | R_CURLY@[28; 29) "}" | 21 | R_CURLY@28..29 "}" |
22 | WHITESPACE@[29; 30) "\n" | 22 | WHITESPACE@29..30 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast index 1cd7a443f..e25fc8c3e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast | |||
@@ -1,79 +1,79 @@ | |||
1 | SOURCE_FILE@[0; 71) | 1 | SOURCE_FILE@0..71 |
2 | TYPE_ALIAS_DEF@[0; 26) | 2 | TYPE_ALIAS_DEF@0..26 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "X" | 6 | IDENT@5..6 "X" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PATH_TYPE@[9; 25) | 10 | PATH_TYPE@9..25 |
11 | PATH@[9; 25) | 11 | PATH@9..25 |
12 | PATH@[9; 17) | 12 | PATH@9..17 |
13 | PATH_SEGMENT@[9; 17) | 13 | PATH_SEGMENT@9..17 |
14 | L_ANGLE@[9; 10) "<" | 14 | L_ANGLE@9..10 "<" |
15 | PATH_TYPE@[10; 11) | 15 | PATH_TYPE@10..11 |
16 | PATH@[10; 11) | 16 | PATH@10..11 |
17 | PATH_SEGMENT@[10; 11) | 17 | PATH_SEGMENT@10..11 |
18 | NAME_REF@[10; 11) | 18 | NAME_REF@10..11 |
19 | IDENT@[10; 11) "A" | 19 | IDENT@10..11 "A" |
20 | WHITESPACE@[11; 12) " " | 20 | WHITESPACE@11..12 " " |
21 | AS_KW@[12; 14) "as" | 21 | AS_KW@12..14 "as" |
22 | WHITESPACE@[14; 15) " " | 22 | WHITESPACE@14..15 " " |
23 | PATH_TYPE@[15; 16) | 23 | PATH_TYPE@15..16 |
24 | PATH@[15; 16) | 24 | PATH@15..16 |
25 | PATH_SEGMENT@[15; 16) | 25 | PATH_SEGMENT@15..16 |
26 | NAME_REF@[15; 16) | 26 | NAME_REF@15..16 |
27 | IDENT@[15; 16) "B" | 27 | IDENT@15..16 "B" |
28 | R_ANGLE@[16; 17) ">" | 28 | R_ANGLE@16..17 ">" |
29 | COLON2@[17; 19) "::" | 29 | COLON2@17..19 "::" |
30 | PATH_SEGMENT@[19; 25) | 30 | PATH_SEGMENT@19..25 |
31 | NAME_REF@[19; 25) | 31 | NAME_REF@19..25 |
32 | IDENT@[19; 25) "Output" | 32 | IDENT@19..25 "Output" |
33 | SEMICOLON@[25; 26) ";" | 33 | SEMICOLON@25..26 ";" |
34 | WHITESPACE@[26; 27) "\n" | 34 | WHITESPACE@26..27 "\n" |
35 | FN_DEF@[27; 70) | 35 | FN_DEF@27..70 |
36 | FN_KW@[27; 29) "fn" | 36 | FN_KW@27..29 "fn" |
37 | WHITESPACE@[29; 30) " " | 37 | WHITESPACE@29..30 " " |
38 | NAME@[30; 33) | 38 | NAME@30..33 |
39 | IDENT@[30; 33) "foo" | 39 | IDENT@30..33 "foo" |
40 | PARAM_LIST@[33; 35) | 40 | PARAM_LIST@33..35 |
41 | L_PAREN@[33; 34) "(" | 41 | L_PAREN@33..34 "(" |
42 | R_PAREN@[34; 35) ")" | 42 | R_PAREN@34..35 ")" |
43 | WHITESPACE@[35; 36) " " | 43 | WHITESPACE@35..36 " " |
44 | BLOCK_EXPR@[36; 70) | 44 | BLOCK_EXPR@36..70 |
45 | BLOCK@[36; 70) | 45 | BLOCK@36..70 |
46 | L_CURLY@[36; 37) "{" | 46 | L_CURLY@36..37 "{" |
47 | WHITESPACE@[37; 38) " " | 47 | WHITESPACE@37..38 " " |
48 | EXPR_STMT@[38; 68) | 48 | EXPR_STMT@38..68 |
49 | CALL_EXPR@[38; 67) | 49 | CALL_EXPR@38..67 |
50 | PATH_EXPR@[38; 65) | 50 | PATH_EXPR@38..65 |
51 | PATH@[38; 65) | 51 | PATH@38..65 |
52 | PATH@[38; 56) | 52 | PATH@38..56 |
53 | PATH_SEGMENT@[38; 56) | 53 | PATH_SEGMENT@38..56 |
54 | L_ANGLE@[38; 39) "<" | 54 | L_ANGLE@38..39 "<" |
55 | PATH_TYPE@[39; 44) | 55 | PATH_TYPE@39..44 |
56 | PATH@[39; 44) | 56 | PATH@39..44 |
57 | PATH_SEGMENT@[39; 44) | 57 | PATH_SEGMENT@39..44 |
58 | NAME_REF@[39; 44) | 58 | NAME_REF@39..44 |
59 | IDENT@[39; 44) "usize" | 59 | IDENT@39..44 "usize" |
60 | WHITESPACE@[44; 45) " " | 60 | WHITESPACE@44..45 " " |
61 | AS_KW@[45; 47) "as" | 61 | AS_KW@45..47 "as" |
62 | WHITESPACE@[47; 48) " " | 62 | WHITESPACE@47..48 " " |
63 | PATH_TYPE@[48; 55) | 63 | PATH_TYPE@48..55 |
64 | PATH@[48; 55) | 64 | PATH@48..55 |
65 | PATH_SEGMENT@[48; 55) | 65 | PATH_SEGMENT@48..55 |
66 | NAME_REF@[48; 55) | 66 | NAME_REF@48..55 |
67 | IDENT@[48; 55) "Default" | 67 | IDENT@48..55 "Default" |
68 | R_ANGLE@[55; 56) ">" | 68 | R_ANGLE@55..56 ">" |
69 | COLON2@[56; 58) "::" | 69 | COLON2@56..58 "::" |
70 | PATH_SEGMENT@[58; 65) | 70 | PATH_SEGMENT@58..65 |
71 | NAME_REF@[58; 65) | 71 | NAME_REF@58..65 |
72 | IDENT@[58; 65) "default" | 72 | IDENT@58..65 "default" |
73 | ARG_LIST@[65; 67) | 73 | ARG_LIST@65..67 |
74 | L_PAREN@[65; 66) "(" | 74 | L_PAREN@65..66 "(" |
75 | R_PAREN@[66; 67) ")" | 75 | R_PAREN@66..67 ")" |
76 | SEMICOLON@[67; 68) ";" | 76 | SEMICOLON@67..68 ";" |
77 | WHITESPACE@[68; 69) " " | 77 | WHITESPACE@68..69 " " |
78 | R_CURLY@[69; 70) "}" | 78 | R_CURLY@69..70 "}" |
79 | WHITESPACE@[70; 71) "\n" | 79 | WHITESPACE@70..71 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast index f5db5a9e6..a1238d610 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | FN_DEF@[0; 20) | 2 | FN_DEF@0..20 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 20) | 11 | BLOCK_EXPR@9..20 |
12 | BLOCK@[9; 20) | 12 | BLOCK@9..20 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | EXPR_STMT@[11; 18) | 15 | EXPR_STMT@11..18 |
16 | INDEX_EXPR@[11; 17) | 16 | INDEX_EXPR@11..17 |
17 | PATH_EXPR@[11; 13) | 17 | PATH_EXPR@11..13 |
18 | PATH@[11; 13) | 18 | PATH@11..13 |
19 | PATH_SEGMENT@[11; 13) | 19 | PATH_SEGMENT@11..13 |
20 | NAME_REF@[11; 13) | 20 | NAME_REF@11..13 |
21 | IDENT@[11; 13) "xs" | 21 | IDENT@11..13 "xs" |
22 | L_BRACK@[13; 14) "[" | 22 | L_BRACK@13..14 "[" |
23 | RANGE_EXPR@[14; 16) | 23 | RANGE_EXPR@14..16 |
24 | DOT2@[14; 16) ".." | 24 | DOT2@14..16 ".." |
25 | R_BRACK@[16; 17) "]" | 25 | R_BRACK@16..17 "]" |
26 | SEMICOLON@[17; 18) ";" | 26 | SEMICOLON@17..18 ";" |
27 | WHITESPACE@[18; 19) " " | 27 | WHITESPACE@18..19 " " |
28 | R_CURLY@[19; 20) "}" | 28 | R_CURLY@19..20 "}" |
29 | WHITESPACE@[20; 21) "\n" | 29 | WHITESPACE@20..21 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast index 2d9db61b3..69e5fe4bc 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast | |||
@@ -1,55 +1,55 @@ | |||
1 | SOURCE_FILE@[0; 46) | 1 | SOURCE_FILE@0..46 |
2 | TYPE_ALIAS_DEF@[0; 45) | 2 | TYPE_ALIAS_DEF@0..45 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PATH_TYPE@[9; 44) | 10 | PATH_TYPE@9..44 |
11 | PATH@[9; 44) | 11 | PATH@9..44 |
12 | PATH_SEGMENT@[9; 44) | 12 | PATH_SEGMENT@9..44 |
13 | NAME_REF@[9; 10) | 13 | NAME_REF@9..10 |
14 | IDENT@[9; 10) "B" | 14 | IDENT@9..10 "B" |
15 | TYPE_ARG_LIST@[10; 44) | 15 | TYPE_ARG_LIST@10..44 |
16 | L_ANGLE@[10; 11) "<" | 16 | L_ANGLE@10..11 "<" |
17 | LIFETIME_ARG@[11; 18) | 17 | LIFETIME_ARG@11..18 |
18 | LIFETIME@[11; 18) "\'static" | 18 | LIFETIME@11..18 "\'static" |
19 | COMMA@[18; 19) "," | 19 | COMMA@18..19 "," |
20 | WHITESPACE@[19; 20) " " | 20 | WHITESPACE@19..20 " " |
21 | TYPE_ARG@[20; 23) | 21 | TYPE_ARG@20..23 |
22 | PATH_TYPE@[20; 23) | 22 | PATH_TYPE@20..23 |
23 | PATH@[20; 23) | 23 | PATH@20..23 |
24 | PATH_SEGMENT@[20; 23) | 24 | PATH_SEGMENT@20..23 |
25 | NAME_REF@[20; 23) | 25 | NAME_REF@20..23 |
26 | IDENT@[20; 23) "i32" | 26 | IDENT@20..23 "i32" |
27 | COMMA@[23; 24) "," | 27 | COMMA@23..24 "," |
28 | WHITESPACE@[24; 25) " " | 28 | WHITESPACE@24..25 " " |
29 | CONST_ARG@[25; 26) | 29 | CONST_ARG@25..26 |
30 | INT_NUMBER@[25; 26) "1" | 30 | INT_NUMBER@25..26 "1" |
31 | COMMA@[26; 27) "," | 31 | COMMA@26..27 "," |
32 | WHITESPACE@[27; 28) " " | 32 | WHITESPACE@27..28 " " |
33 | CONST_ARG@[28; 33) | 33 | CONST_ARG@28..33 |
34 | BLOCK_EXPR@[28; 33) | 34 | BLOCK_EXPR@28..33 |
35 | BLOCK@[28; 33) | 35 | BLOCK@28..33 |
36 | L_CURLY@[28; 29) "{" | 36 | L_CURLY@28..29 "{" |
37 | WHITESPACE@[29; 30) " " | 37 | WHITESPACE@29..30 " " |
38 | LITERAL@[30; 31) | 38 | LITERAL@30..31 |
39 | INT_NUMBER@[30; 31) "2" | 39 | INT_NUMBER@30..31 "2" |
40 | WHITESPACE@[31; 32) " " | 40 | WHITESPACE@31..32 " " |
41 | R_CURLY@[32; 33) "}" | 41 | R_CURLY@32..33 "}" |
42 | COMMA@[33; 34) "," | 42 | COMMA@33..34 "," |
43 | WHITESPACE@[34; 35) " " | 43 | WHITESPACE@34..35 " " |
44 | ASSOC_TYPE_ARG@[35; 43) | 44 | ASSOC_TYPE_ARG@35..43 |
45 | NAME_REF@[35; 39) | 45 | NAME_REF@35..39 |
46 | IDENT@[35; 39) "Item" | 46 | IDENT@35..39 "Item" |
47 | EQ@[39; 40) "=" | 47 | EQ@39..40 "=" |
48 | PATH_TYPE@[40; 43) | 48 | PATH_TYPE@40..43 |
49 | PATH@[40; 43) | 49 | PATH@40..43 |
50 | PATH_SEGMENT@[40; 43) | 50 | PATH_SEGMENT@40..43 |
51 | NAME_REF@[40; 43) | 51 | NAME_REF@40..43 |
52 | IDENT@[40; 43) "u64" | 52 | IDENT@40..43 "u64" |
53 | R_ANGLE@[43; 44) ">" | 53 | R_ANGLE@43..44 ">" |
54 | SEMICOLON@[44; 45) ";" | 54 | SEMICOLON@44..45 ";" |
55 | WHITESPACE@[45; 46) "\n" | 55 | WHITESPACE@45..46 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast index 4c175e210..1a98e2610 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast | |||
@@ -1,63 +1,63 @@ | |||
1 | SOURCE_FILE@[0; 71) | 1 | SOURCE_FILE@0..71 |
2 | FN_DEF@[0; 19) | 2 | FN_DEF@0..19 |
3 | VISIBILITY@[0; 5) | 3 | VISIBILITY@0..5 |
4 | CRATE_KW@[0; 5) "crate" | 4 | CRATE_KW@0..5 "crate" |
5 | WHITESPACE@[5; 6) " " | 5 | WHITESPACE@5..6 " " |
6 | FN_KW@[6; 8) "fn" | 6 | FN_KW@6..8 "fn" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | NAME@[9; 13) | 8 | NAME@9..13 |
9 | IDENT@[9; 13) "main" | 9 | IDENT@9..13 "main" |
10 | PARAM_LIST@[13; 15) | 10 | PARAM_LIST@13..15 |
11 | L_PAREN@[13; 14) "(" | 11 | L_PAREN@13..14 "(" |
12 | R_PAREN@[14; 15) ")" | 12 | R_PAREN@14..15 ")" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | BLOCK_EXPR@[16; 19) | 14 | BLOCK_EXPR@16..19 |
15 | BLOCK@[16; 19) | 15 | BLOCK@16..19 |
16 | L_CURLY@[16; 17) "{" | 16 | L_CURLY@16..17 "{" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | R_CURLY@[18; 19) "}" | 18 | R_CURLY@18..19 "}" |
19 | WHITESPACE@[19; 20) "\n" | 19 | WHITESPACE@19..20 "\n" |
20 | STRUCT_DEF@[20; 49) | 20 | STRUCT_DEF@20..49 |
21 | STRUCT_KW@[20; 26) "struct" | 21 | STRUCT_KW@20..26 "struct" |
22 | WHITESPACE@[26; 27) " " | 22 | WHITESPACE@26..27 " " |
23 | NAME@[27; 28) | 23 | NAME@27..28 |
24 | IDENT@[27; 28) "S" | 24 | IDENT@27..28 "S" |
25 | WHITESPACE@[28; 29) " " | 25 | WHITESPACE@28..29 " " |
26 | RECORD_FIELD_DEF_LIST@[29; 49) | 26 | RECORD_FIELD_DEF_LIST@29..49 |
27 | L_CURLY@[29; 30) "{" | 27 | L_CURLY@29..30 "{" |
28 | WHITESPACE@[30; 31) " " | 28 | WHITESPACE@30..31 " " |
29 | RECORD_FIELD_DEF@[31; 47) | 29 | RECORD_FIELD_DEF@31..47 |
30 | VISIBILITY@[31; 36) | 30 | VISIBILITY@31..36 |
31 | CRATE_KW@[31; 36) "crate" | 31 | CRATE_KW@31..36 "crate" |
32 | WHITESPACE@[36; 37) " " | 32 | WHITESPACE@36..37 " " |
33 | NAME@[37; 42) | 33 | NAME@37..42 |
34 | IDENT@[37; 42) "field" | 34 | IDENT@37..42 "field" |
35 | COLON@[42; 43) ":" | 35 | COLON@42..43 ":" |
36 | WHITESPACE@[43; 44) " " | 36 | WHITESPACE@43..44 " " |
37 | PATH_TYPE@[44; 47) | 37 | PATH_TYPE@44..47 |
38 | PATH@[44; 47) | 38 | PATH@44..47 |
39 | PATH_SEGMENT@[44; 47) | 39 | PATH_SEGMENT@44..47 |
40 | NAME_REF@[44; 47) | 40 | NAME_REF@44..47 |
41 | IDENT@[44; 47) "u32" | 41 | IDENT@44..47 "u32" |
42 | WHITESPACE@[47; 48) " " | 42 | WHITESPACE@47..48 " " |
43 | R_CURLY@[48; 49) "}" | 43 | R_CURLY@48..49 "}" |
44 | WHITESPACE@[49; 50) "\n" | 44 | WHITESPACE@49..50 "\n" |
45 | STRUCT_DEF@[50; 70) | 45 | STRUCT_DEF@50..70 |
46 | STRUCT_KW@[50; 56) "struct" | 46 | STRUCT_KW@50..56 "struct" |
47 | WHITESPACE@[56; 57) " " | 47 | WHITESPACE@56..57 " " |
48 | NAME@[57; 58) | 48 | NAME@57..58 |
49 | IDENT@[57; 58) "T" | 49 | IDENT@57..58 "T" |
50 | TUPLE_FIELD_DEF_LIST@[58; 69) | 50 | TUPLE_FIELD_DEF_LIST@58..69 |
51 | L_PAREN@[58; 59) "(" | 51 | L_PAREN@58..59 "(" |
52 | TUPLE_FIELD_DEF@[59; 68) | 52 | TUPLE_FIELD_DEF@59..68 |
53 | VISIBILITY@[59; 64) | 53 | VISIBILITY@59..64 |
54 | CRATE_KW@[59; 64) "crate" | 54 | CRATE_KW@59..64 "crate" |
55 | WHITESPACE@[64; 65) " " | 55 | WHITESPACE@64..65 " " |
56 | PATH_TYPE@[65; 68) | 56 | PATH_TYPE@65..68 |
57 | PATH@[65; 68) | 57 | PATH@65..68 |
58 | PATH_SEGMENT@[65; 68) | 58 | PATH_SEGMENT@65..68 |
59 | NAME_REF@[65; 68) | 59 | NAME_REF@65..68 |
60 | IDENT@[65; 68) "u32" | 60 | IDENT@65..68 "u32" |
61 | R_PAREN@[68; 69) ")" | 61 | R_PAREN@68..69 ")" |
62 | SEMICOLON@[69; 70) ";" | 62 | SEMICOLON@69..70 ";" |
63 | WHITESPACE@[70; 71) "\n" | 63 | WHITESPACE@70..71 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast index 578361715..1ae791361 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast | |||
@@ -1,125 +1,125 @@ | |||
1 | SOURCE_FILE@[0; 101) | 1 | SOURCE_FILE@0..101 |
2 | TRAIT_DEF@[0; 41) | 2 | TRAIT_DEF@0..41 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "T" | 6 | IDENT@6..7 "T" |
7 | TYPE_PARAM_LIST@[7; 10) | 7 | TYPE_PARAM_LIST@7..10 |
8 | L_ANGLE@[7; 8) "<" | 8 | L_ANGLE@7..8 "<" |
9 | TYPE_PARAM@[8; 9) | 9 | TYPE_PARAM@8..9 |
10 | NAME@[8; 9) | 10 | NAME@8..9 |
11 | IDENT@[8; 9) "U" | 11 | IDENT@8..9 "U" |
12 | R_ANGLE@[9; 10) ">" | 12 | R_ANGLE@9..10 ">" |
13 | COLON@[10; 11) ":" | 13 | COLON@10..11 ":" |
14 | WHITESPACE@[11; 12) " " | 14 | WHITESPACE@11..12 " " |
15 | TYPE_BOUND_LIST@[12; 24) | 15 | TYPE_BOUND_LIST@12..24 |
16 | TYPE_BOUND@[12; 16) | 16 | TYPE_BOUND@12..16 |
17 | PATH_TYPE@[12; 16) | 17 | PATH_TYPE@12..16 |
18 | PATH@[12; 16) | 18 | PATH@12..16 |
19 | PATH_SEGMENT@[12; 16) | 19 | PATH_SEGMENT@12..16 |
20 | NAME_REF@[12; 16) | 20 | NAME_REF@12..16 |
21 | IDENT@[12; 16) "Hash" | 21 | IDENT@12..16 "Hash" |
22 | WHITESPACE@[16; 17) " " | 22 | WHITESPACE@16..17 " " |
23 | PLUS@[17; 18) "+" | 23 | PLUS@17..18 "+" |
24 | WHITESPACE@[18; 19) " " | 24 | WHITESPACE@18..19 " " |
25 | TYPE_BOUND@[19; 24) | 25 | TYPE_BOUND@19..24 |
26 | PATH_TYPE@[19; 24) | 26 | PATH_TYPE@19..24 |
27 | PATH@[19; 24) | 27 | PATH@19..24 |
28 | PATH_SEGMENT@[19; 24) | 28 | PATH_SEGMENT@19..24 |
29 | NAME_REF@[19; 24) | 29 | NAME_REF@19..24 |
30 | IDENT@[19; 24) "Clone" | 30 | IDENT@19..24 "Clone" |
31 | WHITESPACE@[24; 25) " " | 31 | WHITESPACE@24..25 " " |
32 | WHERE_CLAUSE@[25; 38) | 32 | WHERE_CLAUSE@25..38 |
33 | WHERE_KW@[25; 30) "where" | 33 | WHERE_KW@25..30 "where" |
34 | WHITESPACE@[30; 31) " " | 34 | WHITESPACE@30..31 " " |
35 | WHERE_PRED@[31; 38) | 35 | WHERE_PRED@31..38 |
36 | PATH_TYPE@[31; 32) | 36 | PATH_TYPE@31..32 |
37 | PATH@[31; 32) | 37 | PATH@31..32 |
38 | PATH_SEGMENT@[31; 32) | 38 | PATH_SEGMENT@31..32 |
39 | NAME_REF@[31; 32) | 39 | NAME_REF@31..32 |
40 | IDENT@[31; 32) "U" | 40 | IDENT@31..32 "U" |
41 | COLON@[32; 33) ":" | 41 | COLON@32..33 ":" |
42 | WHITESPACE@[33; 34) " " | 42 | WHITESPACE@33..34 " " |
43 | TYPE_BOUND_LIST@[34; 38) | 43 | TYPE_BOUND_LIST@34..38 |
44 | TYPE_BOUND@[34; 38) | 44 | TYPE_BOUND@34..38 |
45 | PATH_TYPE@[34; 38) | 45 | PATH_TYPE@34..38 |
46 | PATH@[34; 38) | 46 | PATH@34..38 |
47 | PATH_SEGMENT@[34; 38) | 47 | PATH_SEGMENT@34..38 |
48 | NAME_REF@[34; 38) | 48 | NAME_REF@34..38 |
49 | IDENT@[34; 38) "Copy" | 49 | IDENT@34..38 "Copy" |
50 | WHITESPACE@[38; 39) " " | 50 | WHITESPACE@38..39 " " |
51 | ITEM_LIST@[39; 41) | 51 | ITEM_LIST@39..41 |
52 | L_CURLY@[39; 40) "{" | 52 | L_CURLY@39..40 "{" |
53 | R_CURLY@[40; 41) "}" | 53 | R_CURLY@40..41 "}" |
54 | WHITESPACE@[41; 42) "\n" | 54 | WHITESPACE@41..42 "\n" |
55 | TRAIT_DEF@[42; 100) | 55 | TRAIT_DEF@42..100 |
56 | TRAIT_KW@[42; 47) "trait" | 56 | TRAIT_KW@42..47 "trait" |
57 | WHITESPACE@[47; 48) " " | 57 | WHITESPACE@47..48 " " |
58 | NAME@[48; 49) | 58 | NAME@48..49 |
59 | IDENT@[48; 49) "X" | 59 | IDENT@48..49 "X" |
60 | TYPE_PARAM_LIST@[49; 69) | 60 | TYPE_PARAM_LIST@49..69 |
61 | L_ANGLE@[49; 50) "<" | 61 | L_ANGLE@49..50 "<" |
62 | TYPE_PARAM@[50; 68) | 62 | TYPE_PARAM@50..68 |
63 | NAME@[50; 51) | 63 | NAME@50..51 |
64 | IDENT@[50; 51) "U" | 64 | IDENT@50..51 "U" |
65 | COLON@[51; 52) ":" | 65 | COLON@51..52 ":" |
66 | WHITESPACE@[52; 53) " " | 66 | WHITESPACE@52..53 " " |
67 | TYPE_BOUND_LIST@[53; 68) | 67 | TYPE_BOUND_LIST@53..68 |
68 | TYPE_BOUND@[53; 58) | 68 | TYPE_BOUND@53..58 |
69 | PATH_TYPE@[53; 58) | 69 | PATH_TYPE@53..58 |
70 | PATH@[53; 58) | 70 | PATH@53..58 |
71 | PATH_SEGMENT@[53; 58) | 71 | PATH_SEGMENT@53..58 |
72 | NAME_REF@[53; 58) | 72 | NAME_REF@53..58 |
73 | IDENT@[53; 58) "Debug" | 73 | IDENT@53..58 "Debug" |
74 | WHITESPACE@[58; 59) " " | 74 | WHITESPACE@58..59 " " |
75 | PLUS@[59; 60) "+" | 75 | PLUS@59..60 "+" |
76 | WHITESPACE@[60; 61) " " | 76 | WHITESPACE@60..61 " " |
77 | TYPE_BOUND@[61; 68) | 77 | TYPE_BOUND@61..68 |
78 | PATH_TYPE@[61; 68) | 78 | PATH_TYPE@61..68 |
79 | PATH@[61; 68) | 79 | PATH@61..68 |
80 | PATH_SEGMENT@[61; 68) | 80 | PATH_SEGMENT@61..68 |
81 | NAME_REF@[61; 68) | 81 | NAME_REF@61..68 |
82 | IDENT@[61; 68) "Display" | 82 | IDENT@61..68 "Display" |
83 | R_ANGLE@[68; 69) ">" | 83 | R_ANGLE@68..69 ">" |
84 | COLON@[69; 70) ":" | 84 | COLON@69..70 ":" |
85 | WHITESPACE@[70; 71) " " | 85 | WHITESPACE@70..71 " " |
86 | TYPE_BOUND_LIST@[71; 83) | 86 | TYPE_BOUND_LIST@71..83 |
87 | TYPE_BOUND@[71; 75) | 87 | TYPE_BOUND@71..75 |
88 | PATH_TYPE@[71; 75) | 88 | PATH_TYPE@71..75 |
89 | PATH@[71; 75) | 89 | PATH@71..75 |
90 | PATH_SEGMENT@[71; 75) | 90 | PATH_SEGMENT@71..75 |
91 | NAME_REF@[71; 75) | 91 | NAME_REF@71..75 |
92 | IDENT@[71; 75) "Hash" | 92 | IDENT@71..75 "Hash" |
93 | WHITESPACE@[75; 76) " " | 93 | WHITESPACE@75..76 " " |
94 | PLUS@[76; 77) "+" | 94 | PLUS@76..77 "+" |
95 | WHITESPACE@[77; 78) " " | 95 | WHITESPACE@77..78 " " |
96 | TYPE_BOUND@[78; 83) | 96 | TYPE_BOUND@78..83 |
97 | PATH_TYPE@[78; 83) | 97 | PATH_TYPE@78..83 |
98 | PATH@[78; 83) | 98 | PATH@78..83 |
99 | PATH_SEGMENT@[78; 83) | 99 | PATH_SEGMENT@78..83 |
100 | NAME_REF@[78; 83) | 100 | NAME_REF@78..83 |
101 | IDENT@[78; 83) "Clone" | 101 | IDENT@78..83 "Clone" |
102 | WHITESPACE@[83; 84) " " | 102 | WHITESPACE@83..84 " " |
103 | WHERE_CLAUSE@[84; 97) | 103 | WHERE_CLAUSE@84..97 |
104 | WHERE_KW@[84; 89) "where" | 104 | WHERE_KW@84..89 "where" |
105 | WHITESPACE@[89; 90) " " | 105 | WHITESPACE@89..90 " " |
106 | WHERE_PRED@[90; 97) | 106 | WHERE_PRED@90..97 |
107 | PATH_TYPE@[90; 91) | 107 | PATH_TYPE@90..91 |
108 | PATH@[90; 91) | 108 | PATH@90..91 |
109 | PATH_SEGMENT@[90; 91) | 109 | PATH_SEGMENT@90..91 |
110 | NAME_REF@[90; 91) | 110 | NAME_REF@90..91 |
111 | IDENT@[90; 91) "U" | 111 | IDENT@90..91 "U" |
112 | COLON@[91; 92) ":" | 112 | COLON@91..92 ":" |
113 | WHITESPACE@[92; 93) " " | 113 | WHITESPACE@92..93 " " |
114 | TYPE_BOUND_LIST@[93; 97) | 114 | TYPE_BOUND_LIST@93..97 |
115 | TYPE_BOUND@[93; 97) | 115 | TYPE_BOUND@93..97 |
116 | PATH_TYPE@[93; 97) | 116 | PATH_TYPE@93..97 |
117 | PATH@[93; 97) | 117 | PATH@93..97 |
118 | PATH_SEGMENT@[93; 97) | 118 | PATH_SEGMENT@93..97 |
119 | NAME_REF@[93; 97) | 119 | NAME_REF@93..97 |
120 | IDENT@[93; 97) "Copy" | 120 | IDENT@93..97 "Copy" |
121 | WHITESPACE@[97; 98) " " | 121 | WHITESPACE@97..98 " " |
122 | ITEM_LIST@[98; 100) | 122 | ITEM_LIST@98..100 |
123 | L_CURLY@[98; 99) "{" | 123 | L_CURLY@98..99 "{" |
124 | R_CURLY@[99; 100) "}" | 124 | R_CURLY@99..100 "}" |
125 | WHITESPACE@[100; 101) "\n" | 125 | WHITESPACE@100..101 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast index f9e677a03..bbf6dc494 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast | |||
@@ -1,148 +1,148 @@ | |||
1 | SOURCE_FILE@[0; 118) | 1 | SOURCE_FILE@0..118 |
2 | FN_DEF@[0; 117) | 2 | FN_DEF@0..117 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 117) | 11 | BLOCK_EXPR@9..117 |
12 | BLOCK@[9; 117) | 12 | BLOCK@9..117 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 27) | 15 | LET_STMT@15..27 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | CALL_EXPR@[23; 26) | 23 | CALL_EXPR@23..26 |
24 | PATH_EXPR@[23; 24) | 24 | PATH_EXPR@23..24 |
25 | PATH@[23; 24) | 25 | PATH@23..24 |
26 | PATH_SEGMENT@[23; 24) | 26 | PATH_SEGMENT@23..24 |
27 | NAME_REF@[23; 24) | 27 | NAME_REF@23..24 |
28 | IDENT@[23; 24) "f" | 28 | IDENT@23..24 "f" |
29 | ARG_LIST@[24; 26) | 29 | ARG_LIST@24..26 |
30 | L_PAREN@[24; 25) "(" | 30 | L_PAREN@24..25 "(" |
31 | R_PAREN@[25; 26) ")" | 31 | R_PAREN@25..26 ")" |
32 | SEMICOLON@[26; 27) ";" | 32 | SEMICOLON@26..27 ";" |
33 | WHITESPACE@[27; 32) "\n " | 33 | WHITESPACE@27..32 "\n " |
34 | LET_STMT@[32; 54) | 34 | LET_STMT@32..54 |
35 | LET_KW@[32; 35) "let" | 35 | LET_KW@32..35 "let" |
36 | WHITESPACE@[35; 36) " " | 36 | WHITESPACE@35..36 " " |
37 | PLACEHOLDER_PAT@[36; 37) | 37 | PLACEHOLDER_PAT@36..37 |
38 | UNDERSCORE@[36; 37) "_" | 38 | UNDERSCORE@36..37 "_" |
39 | WHITESPACE@[37; 38) " " | 39 | WHITESPACE@37..38 " " |
40 | EQ@[38; 39) "=" | 40 | EQ@38..39 "=" |
41 | WHITESPACE@[39; 40) " " | 41 | WHITESPACE@39..40 " " |
42 | CALL_EXPR@[40; 53) | 42 | CALL_EXPR@40..53 |
43 | CALL_EXPR@[40; 46) | 43 | CALL_EXPR@40..46 |
44 | CALL_EXPR@[40; 43) | 44 | CALL_EXPR@40..43 |
45 | PATH_EXPR@[40; 41) | 45 | PATH_EXPR@40..41 |
46 | PATH@[40; 41) | 46 | PATH@40..41 |
47 | PATH_SEGMENT@[40; 41) | 47 | PATH_SEGMENT@40..41 |
48 | NAME_REF@[40; 41) | 48 | NAME_REF@40..41 |
49 | IDENT@[40; 41) "f" | 49 | IDENT@40..41 "f" |
50 | ARG_LIST@[41; 43) | 50 | ARG_LIST@41..43 |
51 | L_PAREN@[41; 42) "(" | 51 | L_PAREN@41..42 "(" |
52 | R_PAREN@[42; 43) ")" | 52 | R_PAREN@42..43 ")" |
53 | ARG_LIST@[43; 46) | 53 | ARG_LIST@43..46 |
54 | L_PAREN@[43; 44) "(" | 54 | L_PAREN@43..44 "(" |
55 | LITERAL@[44; 45) | 55 | LITERAL@44..45 |
56 | INT_NUMBER@[44; 45) "1" | 56 | INT_NUMBER@44..45 "1" |
57 | R_PAREN@[45; 46) ")" | 57 | R_PAREN@45..46 ")" |
58 | ARG_LIST@[46; 53) | 58 | ARG_LIST@46..53 |
59 | L_PAREN@[46; 47) "(" | 59 | L_PAREN@46..47 "(" |
60 | LITERAL@[47; 48) | 60 | LITERAL@47..48 |
61 | INT_NUMBER@[47; 48) "1" | 61 | INT_NUMBER@47..48 "1" |
62 | COMMA@[48; 49) "," | 62 | COMMA@48..49 "," |
63 | WHITESPACE@[49; 50) " " | 63 | WHITESPACE@49..50 " " |
64 | LITERAL@[50; 51) | 64 | LITERAL@50..51 |
65 | INT_NUMBER@[50; 51) "2" | 65 | INT_NUMBER@50..51 "2" |
66 | COMMA@[51; 52) "," | 66 | COMMA@51..52 "," |
67 | R_PAREN@[52; 53) ")" | 67 | R_PAREN@52..53 ")" |
68 | SEMICOLON@[53; 54) ";" | 68 | SEMICOLON@53..54 ";" |
69 | WHITESPACE@[54; 59) "\n " | 69 | WHITESPACE@54..59 "\n " |
70 | LET_STMT@[59; 84) | 70 | LET_STMT@59..84 |
71 | LET_KW@[59; 62) "let" | 71 | LET_KW@59..62 "let" |
72 | WHITESPACE@[62; 63) " " | 72 | WHITESPACE@62..63 " " |
73 | PLACEHOLDER_PAT@[63; 64) | 73 | PLACEHOLDER_PAT@63..64 |
74 | UNDERSCORE@[63; 64) "_" | 74 | UNDERSCORE@63..64 "_" |
75 | WHITESPACE@[64; 65) " " | 75 | WHITESPACE@64..65 " " |
76 | EQ@[65; 66) "=" | 76 | EQ@65..66 "=" |
77 | WHITESPACE@[66; 67) " " | 77 | WHITESPACE@66..67 " " |
78 | CALL_EXPR@[67; 83) | 78 | CALL_EXPR@67..83 |
79 | PATH_EXPR@[67; 68) | 79 | PATH_EXPR@67..68 |
80 | PATH@[67; 68) | 80 | PATH@67..68 |
81 | PATH_SEGMENT@[67; 68) | 81 | PATH_SEGMENT@67..68 |
82 | NAME_REF@[67; 68) | 82 | NAME_REF@67..68 |
83 | IDENT@[67; 68) "f" | 83 | IDENT@67..68 "f" |
84 | ARG_LIST@[68; 83) | 84 | ARG_LIST@68..83 |
85 | L_PAREN@[68; 69) "(" | 85 | L_PAREN@68..69 "(" |
86 | CALL_EXPR@[69; 82) | 86 | CALL_EXPR@69..82 |
87 | PATH_EXPR@[69; 80) | 87 | PATH_EXPR@69..80 |
88 | PATH@[69; 80) | 88 | PATH@69..80 |
89 | PATH@[69; 74) | 89 | PATH@69..74 |
90 | PATH_SEGMENT@[69; 74) | 90 | PATH_SEGMENT@69..74 |
91 | L_ANGLE@[69; 70) "<" | 91 | L_ANGLE@69..70 "<" |
92 | PATH_TYPE@[70; 73) | 92 | PATH_TYPE@70..73 |
93 | PATH@[70; 73) | 93 | PATH@70..73 |
94 | PATH_SEGMENT@[70; 73) | 94 | PATH_SEGMENT@70..73 |
95 | NAME_REF@[70; 73) | 95 | NAME_REF@70..73 |
96 | IDENT@[70; 73) "Foo" | 96 | IDENT@70..73 "Foo" |
97 | R_ANGLE@[73; 74) ">" | 97 | R_ANGLE@73..74 ">" |
98 | COLON2@[74; 76) "::" | 98 | COLON2@74..76 "::" |
99 | PATH_SEGMENT@[76; 80) | 99 | PATH_SEGMENT@76..80 |
100 | NAME_REF@[76; 80) | 100 | NAME_REF@76..80 |
101 | IDENT@[76; 80) "func" | 101 | IDENT@76..80 "func" |
102 | ARG_LIST@[80; 82) | 102 | ARG_LIST@80..82 |
103 | L_PAREN@[80; 81) "(" | 103 | L_PAREN@80..81 "(" |
104 | R_PAREN@[81; 82) ")" | 104 | R_PAREN@81..82 ")" |
105 | R_PAREN@[82; 83) ")" | 105 | R_PAREN@82..83 ")" |
106 | SEMICOLON@[83; 84) ";" | 106 | SEMICOLON@83..84 ";" |
107 | WHITESPACE@[84; 89) "\n " | 107 | WHITESPACE@84..89 "\n " |
108 | EXPR_STMT@[89; 115) | 108 | EXPR_STMT@89..115 |
109 | CALL_EXPR@[89; 114) | 109 | CALL_EXPR@89..114 |
110 | PATH_EXPR@[89; 90) | 110 | PATH_EXPR@89..90 |
111 | PATH@[89; 90) | 111 | PATH@89..90 |
112 | PATH_SEGMENT@[89; 90) | 112 | PATH_SEGMENT@89..90 |
113 | NAME_REF@[89; 90) | 113 | NAME_REF@89..90 |
114 | IDENT@[89; 90) "f" | 114 | IDENT@89..90 "f" |
115 | ARG_LIST@[90; 114) | 115 | ARG_LIST@90..114 |
116 | L_PAREN@[90; 91) "(" | 116 | L_PAREN@90..91 "(" |
117 | CALL_EXPR@[91; 113) | 117 | CALL_EXPR@91..113 |
118 | PATH_EXPR@[91; 111) | 118 | PATH_EXPR@91..111 |
119 | PATH@[91; 111) | 119 | PATH@91..111 |
120 | PATH@[91; 105) | 120 | PATH@91..105 |
121 | PATH_SEGMENT@[91; 105) | 121 | PATH_SEGMENT@91..105 |
122 | L_ANGLE@[91; 92) "<" | 122 | L_ANGLE@91..92 "<" |
123 | PATH_TYPE@[92; 95) | 123 | PATH_TYPE@92..95 |
124 | PATH@[92; 95) | 124 | PATH@92..95 |
125 | PATH_SEGMENT@[92; 95) | 125 | PATH_SEGMENT@92..95 |
126 | NAME_REF@[92; 95) | 126 | NAME_REF@92..95 |
127 | IDENT@[92; 95) "Foo" | 127 | IDENT@92..95 "Foo" |
128 | WHITESPACE@[95; 96) " " | 128 | WHITESPACE@95..96 " " |
129 | AS_KW@[96; 98) "as" | 129 | AS_KW@96..98 "as" |
130 | WHITESPACE@[98; 99) " " | 130 | WHITESPACE@98..99 " " |
131 | PATH_TYPE@[99; 104) | 131 | PATH_TYPE@99..104 |
132 | PATH@[99; 104) | 132 | PATH@99..104 |
133 | PATH_SEGMENT@[99; 104) | 133 | PATH_SEGMENT@99..104 |
134 | NAME_REF@[99; 104) | 134 | NAME_REF@99..104 |
135 | IDENT@[99; 104) "Trait" | 135 | IDENT@99..104 "Trait" |
136 | R_ANGLE@[104; 105) ">" | 136 | R_ANGLE@104..105 ">" |
137 | COLON2@[105; 107) "::" | 137 | COLON2@105..107 "::" |
138 | PATH_SEGMENT@[107; 111) | 138 | PATH_SEGMENT@107..111 |
139 | NAME_REF@[107; 111) | 139 | NAME_REF@107..111 |
140 | IDENT@[107; 111) "func" | 140 | IDENT@107..111 "func" |
141 | ARG_LIST@[111; 113) | 141 | ARG_LIST@111..113 |
142 | L_PAREN@[111; 112) "(" | 142 | L_PAREN@111..112 "(" |
143 | R_PAREN@[112; 113) ")" | 143 | R_PAREN@112..113 ")" |
144 | R_PAREN@[113; 114) ")" | 144 | R_PAREN@113..114 ")" |
145 | SEMICOLON@[114; 115) ";" | 145 | SEMICOLON@114..115 ";" |
146 | WHITESPACE@[115; 116) "\n" | 146 | WHITESPACE@115..116 "\n" |
147 | R_CURLY@[116; 117) "}" | 147 | R_CURLY@116..117 "}" |
148 | WHITESPACE@[117; 118) "\n" | 148 | WHITESPACE@117..118 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast index 580f29cfb..f0e09d40d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast | |||
@@ -1,138 +1,138 @@ | |||
1 | SOURCE_FILE@[0; 198) | 1 | SOURCE_FILE@0..198 |
2 | USE_ITEM@[0; 28) | 2 | USE_ITEM@0..28 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 27) | 5 | USE_TREE@4..27 |
6 | PATH@[4; 14) | 6 | PATH@4..14 |
7 | PATH@[4; 8) | 7 | PATH@4..8 |
8 | PATH_SEGMENT@[4; 8) | 8 | PATH_SEGMENT@4..8 |
9 | NAME_REF@[4; 8) | 9 | NAME_REF@4..8 |
10 | IDENT@[4; 8) "some" | 10 | IDENT@4..8 "some" |
11 | COLON2@[8; 10) "::" | 11 | COLON2@8..10 "::" |
12 | PATH_SEGMENT@[10; 14) | 12 | PATH_SEGMENT@10..14 |
13 | NAME_REF@[10; 14) | 13 | NAME_REF@10..14 |
14 | IDENT@[10; 14) "path" | 14 | IDENT@10..14 "path" |
15 | WHITESPACE@[14; 15) " " | 15 | WHITESPACE@14..15 " " |
16 | ALIAS@[15; 27) | 16 | ALIAS@15..27 |
17 | AS_KW@[15; 17) "as" | 17 | AS_KW@15..17 "as" |
18 | WHITESPACE@[17; 18) " " | 18 | WHITESPACE@17..18 " " |
19 | NAME@[18; 27) | 19 | NAME@18..27 |
20 | IDENT@[18; 27) "some_name" | 20 | IDENT@18..27 "some_name" |
21 | SEMICOLON@[27; 28) ";" | 21 | SEMICOLON@27..28 ";" |
22 | WHITESPACE@[28; 29) "\n" | 22 | WHITESPACE@28..29 "\n" |
23 | USE_ITEM@[29; 181) | 23 | USE_ITEM@29..181 |
24 | USE_KW@[29; 32) "use" | 24 | USE_KW@29..32 "use" |
25 | WHITESPACE@[32; 33) " " | 25 | WHITESPACE@32..33 " " |
26 | USE_TREE@[33; 180) | 26 | USE_TREE@33..180 |
27 | PATH@[33; 37) | 27 | PATH@33..37 |
28 | PATH_SEGMENT@[33; 37) | 28 | PATH_SEGMENT@33..37 |
29 | NAME_REF@[33; 37) | 29 | NAME_REF@33..37 |
30 | IDENT@[33; 37) "some" | 30 | IDENT@33..37 "some" |
31 | COLON2@[37; 39) "::" | 31 | COLON2@37..39 "::" |
32 | USE_TREE_LIST@[39; 180) | 32 | USE_TREE_LIST@39..180 |
33 | L_CURLY@[39; 40) "{" | 33 | L_CURLY@39..40 "{" |
34 | WHITESPACE@[40; 42) "\n " | 34 | WHITESPACE@40..42 "\n " |
35 | USE_TREE@[42; 72) | 35 | USE_TREE@42..72 |
36 | PATH@[42; 53) | 36 | PATH@42..53 |
37 | PATH@[42; 47) | 37 | PATH@42..47 |
38 | PATH_SEGMENT@[42; 47) | 38 | PATH_SEGMENT@42..47 |
39 | NAME_REF@[42; 47) | 39 | NAME_REF@42..47 |
40 | IDENT@[42; 47) "other" | 40 | IDENT@42..47 "other" |
41 | COLON2@[47; 49) "::" | 41 | COLON2@47..49 "::" |
42 | PATH_SEGMENT@[49; 53) | 42 | PATH_SEGMENT@49..53 |
43 | NAME_REF@[49; 53) | 43 | NAME_REF@49..53 |
44 | IDENT@[49; 53) "path" | 44 | IDENT@49..53 "path" |
45 | WHITESPACE@[53; 54) " " | 45 | WHITESPACE@53..54 " " |
46 | ALIAS@[54; 72) | 46 | ALIAS@54..72 |
47 | AS_KW@[54; 56) "as" | 47 | AS_KW@54..56 "as" |
48 | WHITESPACE@[56; 57) " " | 48 | WHITESPACE@56..57 " " |
49 | NAME@[57; 72) | 49 | NAME@57..72 |
50 | IDENT@[57; 72) "some_other_name" | 50 | IDENT@57..72 "some_other_name" |
51 | COMMA@[72; 73) "," | 51 | COMMA@72..73 "," |
52 | WHITESPACE@[73; 75) "\n " | 52 | WHITESPACE@73..75 "\n " |
53 | USE_TREE@[75; 108) | 53 | USE_TREE@75..108 |
54 | PATH@[75; 90) | 54 | PATH@75..90 |
55 | PATH@[75; 84) | 55 | PATH@75..84 |
56 | PATH_SEGMENT@[75; 84) | 56 | PATH_SEGMENT@75..84 |
57 | NAME_REF@[75; 84) | 57 | NAME_REF@75..84 |
58 | IDENT@[75; 84) "different" | 58 | IDENT@75..84 "different" |
59 | COLON2@[84; 86) "::" | 59 | COLON2@84..86 "::" |
60 | PATH_SEGMENT@[86; 90) | 60 | PATH_SEGMENT@86..90 |
61 | NAME_REF@[86; 90) | 61 | NAME_REF@86..90 |
62 | IDENT@[86; 90) "path" | 62 | IDENT@86..90 "path" |
63 | WHITESPACE@[90; 91) " " | 63 | WHITESPACE@90..91 " " |
64 | ALIAS@[91; 108) | 64 | ALIAS@91..108 |
65 | AS_KW@[91; 93) "as" | 65 | AS_KW@91..93 "as" |
66 | WHITESPACE@[93; 94) " " | 66 | WHITESPACE@93..94 " " |
67 | NAME@[94; 108) | 67 | NAME@94..108 |
68 | IDENT@[94; 108) "different_name" | 68 | IDENT@94..108 "different_name" |
69 | COMMA@[108; 109) "," | 69 | COMMA@108..109 "," |
70 | WHITESPACE@[109; 111) "\n " | 70 | WHITESPACE@109..111 "\n " |
71 | USE_TREE@[111; 129) | 71 | USE_TREE@111..129 |
72 | PATH@[111; 129) | 72 | PATH@111..129 |
73 | PATH@[111; 123) | 73 | PATH@111..123 |
74 | PATH@[111; 114) | 74 | PATH@111..114 |
75 | PATH_SEGMENT@[111; 114) | 75 | PATH_SEGMENT@111..114 |
76 | NAME_REF@[111; 114) | 76 | NAME_REF@111..114 |
77 | IDENT@[111; 114) "yet" | 77 | IDENT@111..114 "yet" |
78 | COLON2@[114; 116) "::" | 78 | COLON2@114..116 "::" |
79 | PATH_SEGMENT@[116; 123) | 79 | PATH_SEGMENT@116..123 |
80 | NAME_REF@[116; 123) | 80 | NAME_REF@116..123 |
81 | IDENT@[116; 123) "another" | 81 | IDENT@116..123 "another" |
82 | COLON2@[123; 125) "::" | 82 | COLON2@123..125 "::" |
83 | PATH_SEGMENT@[125; 129) | 83 | PATH_SEGMENT@125..129 |
84 | NAME_REF@[125; 129) | 84 | NAME_REF@125..129 |
85 | IDENT@[125; 129) "path" | 85 | IDENT@125..129 "path" |
86 | COMMA@[129; 130) "," | 86 | COMMA@129..130 "," |
87 | WHITESPACE@[130; 132) "\n " | 87 | WHITESPACE@130..132 "\n " |
88 | USE_TREE@[132; 178) | 88 | USE_TREE@132..178 |
89 | PATH@[132; 175) | 89 | PATH@132..175 |
90 | PATH@[132; 164) | 90 | PATH@132..164 |
91 | PATH@[132; 158) | 91 | PATH@132..158 |
92 | PATH@[132; 148) | 92 | PATH@132..148 |
93 | PATH@[132; 144) | 93 | PATH@132..144 |
94 | PATH@[132; 139) | 94 | PATH@132..139 |
95 | PATH_SEGMENT@[132; 139) | 95 | PATH_SEGMENT@132..139 |
96 | NAME_REF@[132; 139) | 96 | NAME_REF@132..139 |
97 | IDENT@[132; 139) "running" | 97 | IDENT@132..139 "running" |
98 | COLON2@[139; 141) "::" | 98 | COLON2@139..141 "::" |
99 | PATH_SEGMENT@[141; 144) | 99 | PATH_SEGMENT@141..144 |
100 | NAME_REF@[141; 144) | 100 | NAME_REF@141..144 |
101 | IDENT@[141; 144) "out" | 101 | IDENT@141..144 "out" |
102 | COLON2@[144; 146) "::" | 102 | COLON2@144..146 "::" |
103 | PATH_SEGMENT@[146; 148) | 103 | PATH_SEGMENT@146..148 |
104 | NAME_REF@[146; 148) | 104 | NAME_REF@146..148 |
105 | IDENT@[146; 148) "of" | 105 | IDENT@146..148 "of" |
106 | COLON2@[148; 150) "::" | 106 | COLON2@148..150 "::" |
107 | PATH_SEGMENT@[150; 158) | 107 | PATH_SEGMENT@150..158 |
108 | NAME_REF@[150; 158) | 108 | NAME_REF@150..158 |
109 | IDENT@[150; 158) "synonyms" | 109 | IDENT@150..158 "synonyms" |
110 | COLON2@[158; 160) "::" | 110 | COLON2@158..160 "::" |
111 | PATH_SEGMENT@[160; 164) | 111 | PATH_SEGMENT@160..164 |
112 | NAME_REF@[160; 164) | 112 | NAME_REF@160..164 |
113 | IDENT@[160; 164) "for_" | 113 | IDENT@160..164 "for_" |
114 | COLON2@[164; 166) "::" | 114 | COLON2@164..166 "::" |
115 | PATH_SEGMENT@[166; 175) | 115 | PATH_SEGMENT@166..175 |
116 | NAME_REF@[166; 175) | 116 | NAME_REF@166..175 |
117 | IDENT@[166; 175) "different" | 117 | IDENT@166..175 "different" |
118 | COLON2@[175; 177) "::" | 118 | COLON2@175..177 "::" |
119 | STAR@[177; 178) "*" | 119 | STAR@177..178 "*" |
120 | WHITESPACE@[178; 179) "\n" | 120 | WHITESPACE@178..179 "\n" |
121 | R_CURLY@[179; 180) "}" | 121 | R_CURLY@179..180 "}" |
122 | SEMICOLON@[180; 181) ";" | 122 | SEMICOLON@180..181 ";" |
123 | WHITESPACE@[181; 182) "\n" | 123 | WHITESPACE@181..182 "\n" |
124 | USE_ITEM@[182; 197) | 124 | USE_ITEM@182..197 |
125 | USE_KW@[182; 185) "use" | 125 | USE_KW@182..185 "use" |
126 | WHITESPACE@[185; 186) " " | 126 | WHITESPACE@185..186 " " |
127 | USE_TREE@[186; 196) | 127 | USE_TREE@186..196 |
128 | PATH@[186; 191) | 128 | PATH@186..191 |
129 | PATH_SEGMENT@[186; 191) | 129 | PATH_SEGMENT@186..191 |
130 | NAME_REF@[186; 191) | 130 | NAME_REF@186..191 |
131 | IDENT@[186; 191) "Trait" | 131 | IDENT@186..191 "Trait" |
132 | WHITESPACE@[191; 192) " " | 132 | WHITESPACE@191..192 " " |
133 | ALIAS@[192; 196) | 133 | ALIAS@192..196 |
134 | AS_KW@[192; 194) "as" | 134 | AS_KW@192..194 "as" |
135 | WHITESPACE@[194; 195) " " | 135 | WHITESPACE@194..195 " " |
136 | UNDERSCORE@[195; 196) "_" | 136 | UNDERSCORE@195..196 "_" |
137 | SEMICOLON@[196; 197) ";" | 137 | SEMICOLON@196..197 ";" |
138 | WHITESPACE@[197; 198) "\n" | 138 | WHITESPACE@197..198 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast index e75d569f0..a454dfc3a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast | |||
@@ -1,30 +1,30 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | FN_DEF@[0; 20) | 2 | FN_DEF@0..20 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | BLOCK_EXPR@[7; 20) | 11 | BLOCK_EXPR@7..20 |
12 | BLOCK@[7; 20) | 12 | BLOCK@7..20 |
13 | L_CURLY@[7; 8) "{" | 13 | L_CURLY@7..8 "{" |
14 | WHITESPACE@[8; 9) " " | 14 | WHITESPACE@8..9 " " |
15 | FN_DEF@[9; 18) | 15 | FN_DEF@9..18 |
16 | FN_KW@[9; 11) "fn" | 16 | FN_KW@9..11 "fn" |
17 | WHITESPACE@[11; 12) " " | 17 | WHITESPACE@11..12 " " |
18 | NAME@[12; 13) | 18 | NAME@12..13 |
19 | IDENT@[12; 13) "b" | 19 | IDENT@12..13 "b" |
20 | PARAM_LIST@[13; 15) | 20 | PARAM_LIST@13..15 |
21 | L_PAREN@[13; 14) "(" | 21 | L_PAREN@13..14 "(" |
22 | R_PAREN@[14; 15) ")" | 22 | R_PAREN@14..15 ")" |
23 | WHITESPACE@[15; 16) " " | 23 | WHITESPACE@15..16 " " |
24 | BLOCK_EXPR@[16; 18) | 24 | BLOCK_EXPR@16..18 |
25 | BLOCK@[16; 18) | 25 | BLOCK@16..18 |
26 | L_CURLY@[16; 17) "{" | 26 | L_CURLY@16..17 "{" |
27 | R_CURLY@[17; 18) "}" | 27 | R_CURLY@17..18 "}" |
28 | WHITESPACE@[18; 19) " " | 28 | WHITESPACE@18..19 " " |
29 | R_CURLY@[19; 20) "}" | 29 | R_CURLY@19..20 "}" |
30 | WHITESPACE@[20; 21) "\n" | 30 | WHITESPACE@20..21 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast index 33886154d..2a50f796c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast | |||
@@ -1,47 +1,47 @@ | |||
1 | SOURCE_FILE@[0; 35) | 1 | SOURCE_FILE@0..35 |
2 | FN_DEF@[0; 34) | 2 | FN_DEF@0..34 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | TYPE_PARAM_LIST@[6; 30) | 7 | TYPE_PARAM_LIST@6..30 |
8 | L_ANGLE@[6; 7) "<" | 8 | L_ANGLE@6..7 "<" |
9 | TYPE_PARAM@[7; 29) | 9 | TYPE_PARAM@7..29 |
10 | NAME@[7; 8) | 10 | NAME@7..8 |
11 | IDENT@[7; 8) "F" | 11 | IDENT@7..8 "F" |
12 | COLON@[8; 9) ":" | 12 | COLON@8..9 ":" |
13 | WHITESPACE@[9; 10) " " | 13 | WHITESPACE@9..10 " " |
14 | TYPE_BOUND_LIST@[10; 29) | 14 | TYPE_BOUND_LIST@10..29 |
15 | TYPE_BOUND@[10; 29) | 15 | TYPE_BOUND@10..29 |
16 | PATH_TYPE@[10; 29) | 16 | PATH_TYPE@10..29 |
17 | PATH@[10; 29) | 17 | PATH@10..29 |
18 | PATH_SEGMENT@[10; 29) | 18 | PATH_SEGMENT@10..29 |
19 | NAME_REF@[10; 15) | 19 | NAME_REF@10..15 |
20 | IDENT@[10; 15) "FnMut" | 20 | IDENT@10..15 "FnMut" |
21 | PARAM_LIST@[15; 29) | 21 | PARAM_LIST@15..29 |
22 | L_PAREN@[15; 16) "(" | 22 | L_PAREN@15..16 "(" |
23 | PARAM@[16; 28) | 23 | PARAM@16..28 |
24 | REFERENCE_TYPE@[16; 28) | 24 | REFERENCE_TYPE@16..28 |
25 | AMP@[16; 17) "&" | 25 | AMP@16..17 "&" |
26 | MUT_KW@[17; 20) "mut" | 26 | MUT_KW@17..20 "mut" |
27 | WHITESPACE@[20; 21) " " | 27 | WHITESPACE@20..21 " " |
28 | PATH_TYPE@[21; 28) | 28 | PATH_TYPE@21..28 |
29 | PATH@[21; 28) | 29 | PATH@21..28 |
30 | PATH_SEGMENT@[21; 28) | 30 | PATH_SEGMENT@21..28 |
31 | NAME_REF@[21; 24) | 31 | NAME_REF@21..24 |
32 | IDENT@[21; 24) "Foo" | 32 | IDENT@21..24 "Foo" |
33 | TYPE_ARG_LIST@[24; 28) | 33 | TYPE_ARG_LIST@24..28 |
34 | L_ANGLE@[24; 25) "<" | 34 | L_ANGLE@24..25 "<" |
35 | LIFETIME_ARG@[25; 27) | 35 | LIFETIME_ARG@25..27 |
36 | LIFETIME@[25; 27) "\'a" | 36 | LIFETIME@25..27 "\'a" |
37 | R_ANGLE@[27; 28) ">" | 37 | R_ANGLE@27..28 ">" |
38 | R_PAREN@[28; 29) ")" | 38 | R_PAREN@28..29 ")" |
39 | R_ANGLE@[29; 30) ">" | 39 | R_ANGLE@29..30 ">" |
40 | PARAM_LIST@[30; 32) | 40 | PARAM_LIST@30..32 |
41 | L_PAREN@[30; 31) "(" | 41 | L_PAREN@30..31 "(" |
42 | R_PAREN@[31; 32) ")" | 42 | R_PAREN@31..32 ")" |
43 | BLOCK_EXPR@[32; 34) | 43 | BLOCK_EXPR@32..34 |
44 | BLOCK@[32; 34) | 44 | BLOCK@32..34 |
45 | L_CURLY@[32; 33) "{" | 45 | L_CURLY@32..33 "{" |
46 | R_CURLY@[33; 34) "}" | 46 | R_CURLY@33..34 "}" |
47 | WHITESPACE@[34; 35) "\n" | 47 | WHITESPACE@34..35 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast index 988b58d82..c28dc9d61 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast | |||
@@ -1,20 +1,20 @@ | |||
1 | SOURCE_FILE@[0; 17) | 1 | SOURCE_FILE@0..17 |
2 | TYPE_ALIAS_DEF@[0; 16) | 2 | TYPE_ALIAS_DEF@0..16 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | TUPLE_TYPE@[9; 15) | 10 | TUPLE_TYPE@9..15 |
11 | L_PAREN@[9; 10) "(" | 11 | L_PAREN@9..10 "(" |
12 | PATH_TYPE@[10; 13) | 12 | PATH_TYPE@10..13 |
13 | PATH@[10; 13) | 13 | PATH@10..13 |
14 | PATH_SEGMENT@[10; 13) | 14 | PATH_SEGMENT@10..13 |
15 | NAME_REF@[10; 13) | 15 | NAME_REF@10..13 |
16 | IDENT@[10; 13) "i32" | 16 | IDENT@10..13 "i32" |
17 | COMMA@[13; 14) "," | 17 | COMMA@13..14 "," |
18 | R_PAREN@[14; 15) ")" | 18 | R_PAREN@14..15 ")" |
19 | SEMICOLON@[15; 16) ";" | 19 | SEMICOLON@15..16 ";" |
20 | WHITESPACE@[16; 17) "\n" | 20 | WHITESPACE@16..17 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast index 0a768a8e3..52de6023b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast | |||
@@ -1,18 +1,18 @@ | |||
1 | SOURCE_FILE@[0; 27) | 1 | SOURCE_FILE@0..27 |
2 | IMPL_DEF@[0; 26) | 2 | IMPL_DEF@0..26 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | DEFAULT_KW@[7; 14) "default" | 5 | DEFAULT_KW@7..14 "default" |
6 | WHITESPACE@[14; 15) " " | 6 | WHITESPACE@14..15 " " |
7 | IMPL_KW@[15; 19) "impl" | 7 | IMPL_KW@15..19 "impl" |
8 | WHITESPACE@[19; 20) " " | 8 | WHITESPACE@19..20 " " |
9 | PATH_TYPE@[20; 23) | 9 | PATH_TYPE@20..23 |
10 | PATH@[20; 23) | 10 | PATH@20..23 |
11 | PATH_SEGMENT@[20; 23) | 11 | PATH_SEGMENT@20..23 |
12 | NAME_REF@[20; 23) | 12 | NAME_REF@20..23 |
13 | IDENT@[20; 23) "Foo" | 13 | IDENT@20..23 "Foo" |
14 | WHITESPACE@[23; 24) " " | 14 | WHITESPACE@23..24 " " |
15 | ITEM_LIST@[24; 26) | 15 | ITEM_LIST@24..26 |
16 | L_CURLY@[24; 25) "{" | 16 | L_CURLY@24..25 "{" |
17 | R_CURLY@[25; 26) "}" | 17 | R_CURLY@25..26 "}" |
18 | WHITESPACE@[26; 27) "\n" | 18 | WHITESPACE@26..27 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast index 02f2a9db6..7f87e05ec 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast | |||
@@ -1,83 +1,83 @@ | |||
1 | SOURCE_FILE@[0; 58) | 1 | SOURCE_FILE@0..58 |
2 | FN_DEF@[0; 26) | 2 | FN_DEF@0..26 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | RET_TYPE@[9; 23) | 11 | RET_TYPE@9..23 |
12 | THIN_ARROW@[9; 11) "->" | 12 | THIN_ARROW@9..11 "->" |
13 | WHITESPACE@[11; 12) " " | 13 | WHITESPACE@11..12 " " |
14 | PATH_TYPE@[12; 23) | 14 | PATH_TYPE@12..23 |
15 | PATH@[12; 23) | 15 | PATH@12..23 |
16 | PATH_SEGMENT@[12; 23) | 16 | PATH_SEGMENT@12..23 |
17 | NAME_REF@[12; 15) | 17 | NAME_REF@12..15 |
18 | IDENT@[12; 15) "Box" | 18 | IDENT@12..15 "Box" |
19 | TYPE_ARG_LIST@[15; 23) | 19 | TYPE_ARG_LIST@15..23 |
20 | L_ANGLE@[15; 16) "<" | 20 | L_ANGLE@15..16 "<" |
21 | TYPE_ARG@[16; 22) | 21 | TYPE_ARG@16..22 |
22 | DYN_TRAIT_TYPE@[16; 22) | 22 | DYN_TRAIT_TYPE@16..22 |
23 | TYPE_BOUND_LIST@[16; 22) | 23 | TYPE_BOUND_LIST@16..22 |
24 | TYPE_BOUND@[16; 17) | 24 | TYPE_BOUND@16..17 |
25 | PATH_TYPE@[16; 17) | 25 | PATH_TYPE@16..17 |
26 | PATH@[16; 17) | 26 | PATH@16..17 |
27 | PATH_SEGMENT@[16; 17) | 27 | PATH_SEGMENT@16..17 |
28 | NAME_REF@[16; 17) | 28 | NAME_REF@16..17 |
29 | IDENT@[16; 17) "T" | 29 | IDENT@16..17 "T" |
30 | WHITESPACE@[17; 18) " " | 30 | WHITESPACE@17..18 " " |
31 | PLUS@[18; 19) "+" | 31 | PLUS@18..19 "+" |
32 | WHITESPACE@[19; 20) " " | 32 | WHITESPACE@19..20 " " |
33 | TYPE_BOUND@[20; 22) | 33 | TYPE_BOUND@20..22 |
34 | LIFETIME@[20; 22) "\'f" | 34 | LIFETIME@20..22 "\'f" |
35 | R_ANGLE@[22; 23) ">" | 35 | R_ANGLE@22..23 ">" |
36 | WHITESPACE@[23; 24) " " | 36 | WHITESPACE@23..24 " " |
37 | BLOCK_EXPR@[24; 26) | 37 | BLOCK_EXPR@24..26 |
38 | BLOCK@[24; 26) | 38 | BLOCK@24..26 |
39 | L_CURLY@[24; 25) "{" | 39 | L_CURLY@24..25 "{" |
40 | R_CURLY@[25; 26) "}" | 40 | R_CURLY@25..26 "}" |
41 | WHITESPACE@[26; 27) "\n" | 41 | WHITESPACE@26..27 "\n" |
42 | FN_DEF@[27; 57) | 42 | FN_DEF@27..57 |
43 | FN_KW@[27; 29) "fn" | 43 | FN_KW@27..29 "fn" |
44 | WHITESPACE@[29; 30) " " | 44 | WHITESPACE@29..30 " " |
45 | NAME@[30; 33) | 45 | NAME@30..33 |
46 | IDENT@[30; 33) "foo" | 46 | IDENT@30..33 "foo" |
47 | PARAM_LIST@[33; 35) | 47 | PARAM_LIST@33..35 |
48 | L_PAREN@[33; 34) "(" | 48 | L_PAREN@33..34 "(" |
49 | R_PAREN@[34; 35) ")" | 49 | R_PAREN@34..35 ")" |
50 | WHITESPACE@[35; 36) " " | 50 | WHITESPACE@35..36 " " |
51 | RET_TYPE@[36; 54) | 51 | RET_TYPE@36..54 |
52 | THIN_ARROW@[36; 38) "->" | 52 | THIN_ARROW@36..38 "->" |
53 | WHITESPACE@[38; 39) " " | 53 | WHITESPACE@38..39 " " |
54 | PATH_TYPE@[39; 54) | 54 | PATH_TYPE@39..54 |
55 | PATH@[39; 54) | 55 | PATH@39..54 |
56 | PATH_SEGMENT@[39; 54) | 56 | PATH_SEGMENT@39..54 |
57 | NAME_REF@[39; 42) | 57 | NAME_REF@39..42 |
58 | IDENT@[39; 42) "Box" | 58 | IDENT@39..42 "Box" |
59 | TYPE_ARG_LIST@[42; 54) | 59 | TYPE_ARG_LIST@42..54 |
60 | L_ANGLE@[42; 43) "<" | 60 | L_ANGLE@42..43 "<" |
61 | TYPE_ARG@[43; 53) | 61 | TYPE_ARG@43..53 |
62 | DYN_TRAIT_TYPE@[43; 53) | 62 | DYN_TRAIT_TYPE@43..53 |
63 | DYN_KW@[43; 46) "dyn" | 63 | DYN_KW@43..46 "dyn" |
64 | WHITESPACE@[46; 47) " " | 64 | WHITESPACE@46..47 " " |
65 | TYPE_BOUND_LIST@[47; 53) | 65 | TYPE_BOUND_LIST@47..53 |
66 | TYPE_BOUND@[47; 48) | 66 | TYPE_BOUND@47..48 |
67 | PATH_TYPE@[47; 48) | 67 | PATH_TYPE@47..48 |
68 | PATH@[47; 48) | 68 | PATH@47..48 |
69 | PATH_SEGMENT@[47; 48) | 69 | PATH_SEGMENT@47..48 |
70 | NAME_REF@[47; 48) | 70 | NAME_REF@47..48 |
71 | IDENT@[47; 48) "T" | 71 | IDENT@47..48 "T" |
72 | WHITESPACE@[48; 49) " " | 72 | WHITESPACE@48..49 " " |
73 | PLUS@[49; 50) "+" | 73 | PLUS@49..50 "+" |
74 | WHITESPACE@[50; 51) " " | 74 | WHITESPACE@50..51 " " |
75 | TYPE_BOUND@[51; 53) | 75 | TYPE_BOUND@51..53 |
76 | LIFETIME@[51; 53) "\'f" | 76 | LIFETIME@51..53 "\'f" |
77 | R_ANGLE@[53; 54) ">" | 77 | R_ANGLE@53..54 ">" |
78 | WHITESPACE@[54; 55) " " | 78 | WHITESPACE@54..55 " " |
79 | BLOCK_EXPR@[55; 57) | 79 | BLOCK_EXPR@55..57 |
80 | BLOCK@[55; 57) | 80 | BLOCK@55..57 |
81 | L_CURLY@[55; 56) "{" | 81 | L_CURLY@55..56 "{" |
82 | R_CURLY@[56; 57) "}" | 82 | R_CURLY@56..57 "}" |
83 | WHITESPACE@[57; 58) "\n" | 83 | WHITESPACE@57..58 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast index 036035f6c..8bf62cda9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast | |||
@@ -1,22 +1,22 @@ | |||
1 | SOURCE_FILE@[0; 22) | 1 | SOURCE_FILE@0..22 |
2 | TRAIT_DEF@[0; 21) | 2 | TRAIT_DEF@0..21 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "T" | 6 | IDENT@6..7 "T" |
7 | WHITESPACE@[7; 8) " " | 7 | WHITESPACE@7..8 " " |
8 | ITEM_LIST@[8; 21) | 8 | ITEM_LIST@8..21 |
9 | L_CURLY@[8; 9) "{" | 9 | L_CURLY@8..9 "{" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | FN_DEF@[10; 19) | 11 | FN_DEF@10..19 |
12 | FN_KW@[10; 12) "fn" | 12 | FN_KW@10..12 "fn" |
13 | WHITESPACE@[12; 13) " " | 13 | WHITESPACE@12..13 " " |
14 | NAME@[13; 16) | 14 | NAME@13..16 |
15 | IDENT@[13; 16) "foo" | 15 | IDENT@13..16 "foo" |
16 | PARAM_LIST@[16; 18) | 16 | PARAM_LIST@16..18 |
17 | L_PAREN@[16; 17) "(" | 17 | L_PAREN@16..17 "(" |
18 | R_PAREN@[17; 18) ")" | 18 | R_PAREN@17..18 ")" |
19 | SEMICOLON@[18; 19) ";" | 19 | SEMICOLON@18..19 ";" |
20 | WHITESPACE@[19; 20) " " | 20 | WHITESPACE@19..20 " " |
21 | R_CURLY@[20; 21) "}" | 21 | R_CURLY@20..21 "}" |
22 | WHITESPACE@[21; 22) "\n" | 22 | WHITESPACE@21..22 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast index d9fc5eb8a..798ef2a48 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast | |||
@@ -1,14 +1,14 @@ | |||
1 | SOURCE_FILE@[0; 13) | 1 | SOURCE_FILE@0..13 |
2 | TYPE_ALIAS_DEF@[0; 12) | 2 | TYPE_ALIAS_DEF@0..12 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | TUPLE_TYPE@[9; 11) | 10 | TUPLE_TYPE@9..11 |
11 | L_PAREN@[9; 10) "(" | 11 | L_PAREN@9..10 "(" |
12 | R_PAREN@[10; 11) ")" | 12 | R_PAREN@10..11 ")" |
13 | SEMICOLON@[11; 12) ";" | 13 | SEMICOLON@11..12 ";" |
14 | WHITESPACE@[12; 13) "\n" | 14 | WHITESPACE@12..13 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast index 8647c23bf..0d2f5ff56 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast | |||
@@ -1,70 +1,70 @@ | |||
1 | SOURCE_FILE@[0; 71) | 1 | SOURCE_FILE@0..71 |
2 | TYPE_ALIAS_DEF@[0; 13) | 2 | TYPE_ALIAS_DEF@0..13 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PATH_TYPE@[9; 12) | 10 | PATH_TYPE@9..12 |
11 | PATH@[9; 12) | 11 | PATH@9..12 |
12 | PATH_SEGMENT@[9; 12) | 12 | PATH_SEGMENT@9..12 |
13 | NAME_REF@[9; 12) | 13 | NAME_REF@9..12 |
14 | IDENT@[9; 12) "Foo" | 14 | IDENT@9..12 "Foo" |
15 | SEMICOLON@[12; 13) ";" | 15 | SEMICOLON@12..13 ";" |
16 | WHITESPACE@[13; 14) "\n" | 16 | WHITESPACE@13..14 "\n" |
17 | TYPE_ALIAS_DEF@[14; 29) | 17 | TYPE_ALIAS_DEF@14..29 |
18 | TYPE_KW@[14; 18) "type" | 18 | TYPE_KW@14..18 "type" |
19 | WHITESPACE@[18; 19) " " | 19 | WHITESPACE@18..19 " " |
20 | NAME@[19; 20) | 20 | NAME@19..20 |
21 | IDENT@[19; 20) "B" | 21 | IDENT@19..20 "B" |
22 | WHITESPACE@[20; 21) " " | 22 | WHITESPACE@20..21 " " |
23 | EQ@[21; 22) "=" | 23 | EQ@21..22 "=" |
24 | WHITESPACE@[22; 23) " " | 24 | WHITESPACE@22..23 " " |
25 | PATH_TYPE@[23; 28) | 25 | PATH_TYPE@23..28 |
26 | PATH@[23; 28) | 26 | PATH@23..28 |
27 | PATH_SEGMENT@[23; 28) | 27 | PATH_SEGMENT@23..28 |
28 | COLON2@[23; 25) "::" | 28 | COLON2@23..25 "::" |
29 | NAME_REF@[25; 28) | 29 | NAME_REF@25..28 |
30 | IDENT@[25; 28) "Foo" | 30 | IDENT@25..28 "Foo" |
31 | SEMICOLON@[28; 29) ";" | 31 | SEMICOLON@28..29 ";" |
32 | WHITESPACE@[29; 30) "\n" | 32 | WHITESPACE@29..30 "\n" |
33 | TYPE_ALIAS_DEF@[30; 49) | 33 | TYPE_ALIAS_DEF@30..49 |
34 | TYPE_KW@[30; 34) "type" | 34 | TYPE_KW@30..34 "type" |
35 | WHITESPACE@[34; 35) " " | 35 | WHITESPACE@34..35 " " |
36 | NAME@[35; 36) | 36 | NAME@35..36 |
37 | IDENT@[35; 36) "C" | 37 | IDENT@35..36 "C" |
38 | WHITESPACE@[36; 37) " " | 38 | WHITESPACE@36..37 " " |
39 | EQ@[37; 38) "=" | 39 | EQ@37..38 "=" |
40 | WHITESPACE@[38; 39) " " | 40 | WHITESPACE@38..39 " " |
41 | PATH_TYPE@[39; 48) | 41 | PATH_TYPE@39..48 |
42 | PATH@[39; 48) | 42 | PATH@39..48 |
43 | PATH@[39; 43) | 43 | PATH@39..43 |
44 | PATH_SEGMENT@[39; 43) | 44 | PATH_SEGMENT@39..43 |
45 | SELF_KW@[39; 43) "self" | 45 | SELF_KW@39..43 "self" |
46 | COLON2@[43; 45) "::" | 46 | COLON2@43..45 "::" |
47 | PATH_SEGMENT@[45; 48) | 47 | PATH_SEGMENT@45..48 |
48 | NAME_REF@[45; 48) | 48 | NAME_REF@45..48 |
49 | IDENT@[45; 48) "Foo" | 49 | IDENT@45..48 "Foo" |
50 | SEMICOLON@[48; 49) ";" | 50 | SEMICOLON@48..49 ";" |
51 | WHITESPACE@[49; 50) "\n" | 51 | WHITESPACE@49..50 "\n" |
52 | TYPE_ALIAS_DEF@[50; 70) | 52 | TYPE_ALIAS_DEF@50..70 |
53 | TYPE_KW@[50; 54) "type" | 53 | TYPE_KW@50..54 "type" |
54 | WHITESPACE@[54; 55) " " | 54 | WHITESPACE@54..55 " " |
55 | NAME@[55; 56) | 55 | NAME@55..56 |
56 | IDENT@[55; 56) "D" | 56 | IDENT@55..56 "D" |
57 | WHITESPACE@[56; 57) " " | 57 | WHITESPACE@56..57 " " |
58 | EQ@[57; 58) "=" | 58 | EQ@57..58 "=" |
59 | WHITESPACE@[58; 59) " " | 59 | WHITESPACE@58..59 " " |
60 | PATH_TYPE@[59; 69) | 60 | PATH_TYPE@59..69 |
61 | PATH@[59; 69) | 61 | PATH@59..69 |
62 | PATH@[59; 64) | 62 | PATH@59..64 |
63 | PATH_SEGMENT@[59; 64) | 63 | PATH_SEGMENT@59..64 |
64 | SUPER_KW@[59; 64) "super" | 64 | SUPER_KW@59..64 "super" |
65 | COLON2@[64; 66) "::" | 65 | COLON2@64..66 "::" |
66 | PATH_SEGMENT@[66; 69) | 66 | PATH_SEGMENT@66..69 |
67 | NAME_REF@[66; 69) | 67 | NAME_REF@66..69 |
68 | IDENT@[66; 69) "Foo" | 68 | IDENT@66..69 "Foo" |
69 | SEMICOLON@[69; 70) ";" | 69 | SEMICOLON@69..70 ";" |
70 | WHITESPACE@[70; 71) "\n" | 70 | WHITESPACE@70..71 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast index 690d8504e..5f846177e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast | |||
@@ -1,96 +1,96 @@ | |||
1 | SOURCE_FILE@[0; 91) | 1 | SOURCE_FILE@0..91 |
2 | FN_DEF@[0; 90) | 2 | FN_DEF@0..90 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 90) | 11 | BLOCK_EXPR@9..90 |
12 | BLOCK@[9; 90) | 12 | BLOCK@9..90 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 25) | 15 | LET_STMT@15..25 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | PATH_EXPR@[23; 24) | 23 | PATH_EXPR@23..24 |
24 | PATH@[23; 24) | 24 | PATH@23..24 |
25 | PATH_SEGMENT@[23; 24) | 25 | PATH_SEGMENT@23..24 |
26 | NAME_REF@[23; 24) | 26 | NAME_REF@23..24 |
27 | IDENT@[23; 24) "a" | 27 | IDENT@23..24 "a" |
28 | SEMICOLON@[24; 25) ";" | 28 | SEMICOLON@24..25 ";" |
29 | WHITESPACE@[25; 30) "\n " | 29 | WHITESPACE@25..30 "\n " |
30 | LET_STMT@[30; 43) | 30 | LET_STMT@30..43 |
31 | LET_KW@[30; 33) "let" | 31 | LET_KW@30..33 "let" |
32 | WHITESPACE@[33; 34) " " | 32 | WHITESPACE@33..34 " " |
33 | PLACEHOLDER_PAT@[34; 35) | 33 | PLACEHOLDER_PAT@34..35 |
34 | UNDERSCORE@[34; 35) "_" | 34 | UNDERSCORE@34..35 "_" |
35 | WHITESPACE@[35; 36) " " | 35 | WHITESPACE@35..36 " " |
36 | EQ@[36; 37) "=" | 36 | EQ@36..37 "=" |
37 | WHITESPACE@[37; 38) " " | 37 | WHITESPACE@37..38 " " |
38 | PATH_EXPR@[38; 42) | 38 | PATH_EXPR@38..42 |
39 | PATH@[38; 42) | 39 | PATH@38..42 |
40 | PATH@[38; 39) | 40 | PATH@38..39 |
41 | PATH_SEGMENT@[38; 39) | 41 | PATH_SEGMENT@38..39 |
42 | NAME_REF@[38; 39) | 42 | NAME_REF@38..39 |
43 | IDENT@[38; 39) "a" | 43 | IDENT@38..39 "a" |
44 | COLON2@[39; 41) "::" | 44 | COLON2@39..41 "::" |
45 | PATH_SEGMENT@[41; 42) | 45 | PATH_SEGMENT@41..42 |
46 | NAME_REF@[41; 42) | 46 | NAME_REF@41..42 |
47 | IDENT@[41; 42) "b" | 47 | IDENT@41..42 "b" |
48 | SEMICOLON@[42; 43) ";" | 48 | SEMICOLON@42..43 ";" |
49 | WHITESPACE@[43; 48) "\n " | 49 | WHITESPACE@43..48 "\n " |
50 | LET_STMT@[48; 65) | 50 | LET_STMT@48..65 |
51 | LET_KW@[48; 51) "let" | 51 | LET_KW@48..51 "let" |
52 | WHITESPACE@[51; 52) " " | 52 | WHITESPACE@51..52 " " |
53 | PLACEHOLDER_PAT@[52; 53) | 53 | PLACEHOLDER_PAT@52..53 |
54 | UNDERSCORE@[52; 53) "_" | 54 | UNDERSCORE@52..53 "_" |
55 | WHITESPACE@[53; 54) " " | 55 | WHITESPACE@53..54 " " |
56 | EQ@[54; 55) "=" | 56 | EQ@54..55 "=" |
57 | WHITESPACE@[55; 56) " " | 57 | WHITESPACE@55..56 " " |
58 | PATH_EXPR@[56; 64) | 58 | PATH_EXPR@56..64 |
59 | PATH@[56; 64) | 59 | PATH@56..64 |
60 | PATH_SEGMENT@[56; 64) | 60 | PATH_SEGMENT@56..64 |
61 | COLON2@[56; 58) "::" | 61 | COLON2@56..58 "::" |
62 | NAME_REF@[58; 59) | 62 | NAME_REF@58..59 |
63 | IDENT@[58; 59) "a" | 63 | IDENT@58..59 "a" |
64 | TYPE_ARG_LIST@[59; 64) | 64 | TYPE_ARG_LIST@59..64 |
65 | COLON2@[59; 61) "::" | 65 | COLON2@59..61 "::" |
66 | L_ANGLE@[61; 62) "<" | 66 | L_ANGLE@61..62 "<" |
67 | TYPE_ARG@[62; 63) | 67 | TYPE_ARG@62..63 |
68 | PATH_TYPE@[62; 63) | 68 | PATH_TYPE@62..63 |
69 | PATH@[62; 63) | 69 | PATH@62..63 |
70 | PATH_SEGMENT@[62; 63) | 70 | PATH_SEGMENT@62..63 |
71 | NAME_REF@[62; 63) | 71 | NAME_REF@62..63 |
72 | IDENT@[62; 63) "b" | 72 | IDENT@62..63 "b" |
73 | R_ANGLE@[63; 64) ">" | 73 | R_ANGLE@63..64 ">" |
74 | SEMICOLON@[64; 65) ";" | 74 | SEMICOLON@64..65 ";" |
75 | WHITESPACE@[65; 70) "\n " | 75 | WHITESPACE@65..70 "\n " |
76 | LET_STMT@[70; 88) | 76 | LET_STMT@70..88 |
77 | LET_KW@[70; 73) "let" | 77 | LET_KW@70..73 "let" |
78 | WHITESPACE@[73; 74) " " | 78 | WHITESPACE@73..74 " " |
79 | PLACEHOLDER_PAT@[74; 75) | 79 | PLACEHOLDER_PAT@74..75 |
80 | UNDERSCORE@[74; 75) "_" | 80 | UNDERSCORE@74..75 "_" |
81 | WHITESPACE@[75; 76) " " | 81 | WHITESPACE@75..76 " " |
82 | EQ@[76; 77) "=" | 82 | EQ@76..77 "=" |
83 | WHITESPACE@[77; 78) " " | 83 | WHITESPACE@77..78 " " |
84 | MACRO_CALL@[78; 87) | 84 | MACRO_CALL@78..87 |
85 | PATH@[78; 84) | 85 | PATH@78..84 |
86 | PATH_SEGMENT@[78; 84) | 86 | PATH_SEGMENT@78..84 |
87 | NAME_REF@[78; 84) | 87 | NAME_REF@78..84 |
88 | IDENT@[78; 84) "format" | 88 | IDENT@78..84 "format" |
89 | BANG@[84; 85) "!" | 89 | BANG@84..85 "!" |
90 | TOKEN_TREE@[85; 87) | 90 | TOKEN_TREE@85..87 |
91 | L_PAREN@[85; 86) "(" | 91 | L_PAREN@85..86 "(" |
92 | R_PAREN@[86; 87) ")" | 92 | R_PAREN@86..87 ")" |
93 | SEMICOLON@[87; 88) ";" | 93 | SEMICOLON@87..88 ";" |
94 | WHITESPACE@[88; 89) "\n" | 94 | WHITESPACE@88..89 "\n" |
95 | R_CURLY@[89; 90) "}" | 95 | R_CURLY@89..90 "}" |
96 | WHITESPACE@[90; 91) "\n" | 96 | WHITESPACE@90..91 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast index 731c31f76..6362aa02d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast | |||
@@ -1,44 +1,44 @@ | |||
1 | SOURCE_FILE@[0; 64) | 1 | SOURCE_FILE@0..64 |
2 | STRUCT_DEF@[0; 63) | 2 | STRUCT_DEF@0..63 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 63) | 8 | RECORD_FIELD_DEF_LIST@9..63 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 60) | 11 | RECORD_FIELD_DEF@15..60 |
12 | ATTR@[15; 43) | 12 | ATTR@15..43 |
13 | POUND@[15; 16) "#" | 13 | POUND@15..16 "#" |
14 | L_BRACK@[16; 17) "[" | 14 | L_BRACK@16..17 "[" |
15 | PATH@[17; 22) | 15 | PATH@17..22 |
16 | PATH_SEGMENT@[17; 22) | 16 | PATH_SEGMENT@17..22 |
17 | NAME_REF@[17; 22) | 17 | NAME_REF@17..22 |
18 | IDENT@[17; 22) "serde" | 18 | IDENT@17..22 "serde" |
19 | TOKEN_TREE@[22; 42) | 19 | TOKEN_TREE@22..42 |
20 | L_PAREN@[22; 23) "(" | 20 | L_PAREN@22..23 "(" |
21 | IDENT@[23; 27) "with" | 21 | IDENT@23..27 "with" |
22 | WHITESPACE@[27; 28) " " | 22 | WHITESPACE@27..28 " " |
23 | EQ@[28; 29) "=" | 23 | EQ@28..29 "=" |
24 | WHITESPACE@[29; 30) " " | 24 | WHITESPACE@29..30 " " |
25 | STRING@[30; 41) "\"url_serde\"" | 25 | STRING@30..41 "\"url_serde\"" |
26 | R_PAREN@[41; 42) ")" | 26 | R_PAREN@41..42 ")" |
27 | R_BRACK@[42; 43) "]" | 27 | R_BRACK@42..43 "]" |
28 | WHITESPACE@[43; 48) "\n " | 28 | WHITESPACE@43..48 "\n " |
29 | VISIBILITY@[48; 51) | 29 | VISIBILITY@48..51 |
30 | PUB_KW@[48; 51) "pub" | 30 | PUB_KW@48..51 "pub" |
31 | WHITESPACE@[51; 52) " " | 31 | WHITESPACE@51..52 " " |
32 | NAME@[52; 55) | 32 | NAME@52..55 |
33 | IDENT@[52; 55) "uri" | 33 | IDENT@52..55 "uri" |
34 | COLON@[55; 56) ":" | 34 | COLON@55..56 ":" |
35 | WHITESPACE@[56; 57) " " | 35 | WHITESPACE@56..57 " " |
36 | PATH_TYPE@[57; 60) | 36 | PATH_TYPE@57..60 |
37 | PATH@[57; 60) | 37 | PATH@57..60 |
38 | PATH_SEGMENT@[57; 60) | 38 | PATH_SEGMENT@57..60 |
39 | NAME_REF@[57; 60) | 39 | NAME_REF@57..60 |
40 | IDENT@[57; 60) "Uri" | 40 | IDENT@57..60 "Uri" |
41 | COMMA@[60; 61) "," | 41 | COMMA@60..61 "," |
42 | WHITESPACE@[61; 62) "\n" | 42 | WHITESPACE@61..62 "\n" |
43 | R_CURLY@[62; 63) "}" | 43 | R_CURLY@62..63 "}" |
44 | WHITESPACE@[63; 64) "\n" | 44 | WHITESPACE@63..64 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast index 2b28cec67..d9310e82e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast | |||
@@ -1,77 +1,77 @@ | |||
1 | SOURCE_FILE@[0; 113) | 1 | SOURCE_FILE@0..113 |
2 | FN_DEF@[0; 112) | 2 | FN_DEF@0..112 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 112) | 11 | BLOCK_EXPR@10..112 |
12 | BLOCK@[10; 112) | 12 | BLOCK@10..112 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | MATCH_EXPR@[16; 110) | 15 | MATCH_EXPR@16..110 |
16 | MATCH_KW@[16; 21) "match" | 16 | MATCH_KW@16..21 "match" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | TUPLE_EXPR@[22; 24) | 18 | TUPLE_EXPR@22..24 |
19 | L_PAREN@[22; 23) "(" | 19 | L_PAREN@22..23 "(" |
20 | R_PAREN@[23; 24) ")" | 20 | R_PAREN@23..24 ")" |
21 | WHITESPACE@[24; 25) " " | 21 | WHITESPACE@24..25 " " |
22 | MATCH_ARM_LIST@[25; 110) | 22 | MATCH_ARM_LIST@25..110 |
23 | L_CURLY@[25; 26) "{" | 23 | L_CURLY@25..26 "{" |
24 | WHITESPACE@[26; 35) "\n " | 24 | WHITESPACE@26..35 "\n " |
25 | MATCH_ARM@[35; 43) | 25 | MATCH_ARM@35..43 |
26 | LITERAL_PAT@[35; 37) | 26 | LITERAL_PAT@35..37 |
27 | MINUS@[35; 36) "-" | 27 | MINUS@35..36 "-" |
28 | LITERAL@[36; 37) | 28 | LITERAL@36..37 |
29 | INT_NUMBER@[36; 37) "1" | 29 | INT_NUMBER@36..37 "1" |
30 | WHITESPACE@[37; 38) " " | 30 | WHITESPACE@37..38 " " |
31 | FAT_ARROW@[38; 40) "=>" | 31 | FAT_ARROW@38..40 "=>" |
32 | WHITESPACE@[40; 41) " " | 32 | WHITESPACE@40..41 " " |
33 | TUPLE_EXPR@[41; 43) | 33 | TUPLE_EXPR@41..43 |
34 | L_PAREN@[41; 42) "(" | 34 | L_PAREN@41..42 "(" |
35 | R_PAREN@[42; 43) ")" | 35 | R_PAREN@42..43 ")" |
36 | COMMA@[43; 44) "," | 36 | COMMA@43..44 "," |
37 | WHITESPACE@[44; 53) "\n " | 37 | WHITESPACE@44..53 "\n " |
38 | MATCH_ARM@[53; 61) | 38 | MATCH_ARM@53..61 |
39 | LITERAL_PAT@[53; 55) | 39 | LITERAL_PAT@53..55 |
40 | LITERAL@[53; 55) | 40 | LITERAL@53..55 |
41 | INT_NUMBER@[53; 55) "92" | 41 | INT_NUMBER@53..55 "92" |
42 | WHITESPACE@[55; 56) " " | 42 | WHITESPACE@55..56 " " |
43 | FAT_ARROW@[56; 58) "=>" | 43 | FAT_ARROW@56..58 "=>" |
44 | WHITESPACE@[58; 59) " " | 44 | WHITESPACE@58..59 " " |
45 | TUPLE_EXPR@[59; 61) | 45 | TUPLE_EXPR@59..61 |
46 | L_PAREN@[59; 60) "(" | 46 | L_PAREN@59..60 "(" |
47 | R_PAREN@[60; 61) ")" | 47 | R_PAREN@60..61 ")" |
48 | COMMA@[61; 62) "," | 48 | COMMA@61..62 "," |
49 | WHITESPACE@[62; 71) "\n " | 49 | WHITESPACE@62..71 "\n " |
50 | MATCH_ARM@[71; 80) | 50 | MATCH_ARM@71..80 |
51 | LITERAL_PAT@[71; 74) | 51 | LITERAL_PAT@71..74 |
52 | LITERAL@[71; 74) | 52 | LITERAL@71..74 |
53 | CHAR@[71; 74) "\'c\'" | 53 | CHAR@71..74 "\'c\'" |
54 | WHITESPACE@[74; 75) " " | 54 | WHITESPACE@74..75 " " |
55 | FAT_ARROW@[75; 77) "=>" | 55 | FAT_ARROW@75..77 "=>" |
56 | WHITESPACE@[77; 78) " " | 56 | WHITESPACE@77..78 " " |
57 | TUPLE_EXPR@[78; 80) | 57 | TUPLE_EXPR@78..80 |
58 | L_PAREN@[78; 79) "(" | 58 | L_PAREN@78..79 "(" |
59 | R_PAREN@[79; 80) ")" | 59 | R_PAREN@79..80 ")" |
60 | COMMA@[80; 81) "," | 60 | COMMA@80..81 "," |
61 | WHITESPACE@[81; 90) "\n " | 61 | WHITESPACE@81..90 "\n " |
62 | MATCH_ARM@[90; 103) | 62 | MATCH_ARM@90..103 |
63 | LITERAL_PAT@[90; 97) | 63 | LITERAL_PAT@90..97 |
64 | LITERAL@[90; 97) | 64 | LITERAL@90..97 |
65 | STRING@[90; 97) "\"hello\"" | 65 | STRING@90..97 "\"hello\"" |
66 | WHITESPACE@[97; 98) " " | 66 | WHITESPACE@97..98 " " |
67 | FAT_ARROW@[98; 100) "=>" | 67 | FAT_ARROW@98..100 "=>" |
68 | WHITESPACE@[100; 101) " " | 68 | WHITESPACE@100..101 " " |
69 | TUPLE_EXPR@[101; 103) | 69 | TUPLE_EXPR@101..103 |
70 | L_PAREN@[101; 102) "(" | 70 | L_PAREN@101..102 "(" |
71 | R_PAREN@[102; 103) ")" | 71 | R_PAREN@102..103 ")" |
72 | COMMA@[103; 104) "," | 72 | COMMA@103..104 "," |
73 | WHITESPACE@[104; 109) "\n " | 73 | WHITESPACE@104..109 "\n " |
74 | R_CURLY@[109; 110) "}" | 74 | R_CURLY@109..110 "}" |
75 | WHITESPACE@[110; 111) "\n" | 75 | WHITESPACE@110..111 "\n" |
76 | R_CURLY@[111; 112) "}" | 76 | R_CURLY@111..112 "}" |
77 | WHITESPACE@[112; 113) "\n" | 77 | WHITESPACE@112..113 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast index c6082791a..2e727c1ef 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast | |||
@@ -1,111 +1,111 @@ | |||
1 | SOURCE_FILE@[0; 116) | 1 | SOURCE_FILE@0..116 |
2 | FN_DEF@[0; 115) | 2 | FN_DEF@0..115 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) "\n" | 10 | WHITESPACE@8..9 "\n" |
11 | WHERE_CLAUSE@[9; 112) | 11 | WHERE_CLAUSE@9..112 |
12 | WHERE_KW@[9; 14) "where" | 12 | WHERE_KW@9..14 "where" |
13 | WHITESPACE@[14; 18) "\n " | 13 | WHITESPACE@14..18 "\n " |
14 | WHERE_PRED@[18; 29) | 14 | WHERE_PRED@18..29 |
15 | LIFETIME@[18; 20) "\'a" | 15 | LIFETIME@18..20 "\'a" |
16 | COLON@[20; 21) ":" | 16 | COLON@20..21 ":" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | TYPE_BOUND_LIST@[22; 29) | 18 | TYPE_BOUND_LIST@22..29 |
19 | TYPE_BOUND@[22; 24) | 19 | TYPE_BOUND@22..24 |
20 | LIFETIME@[22; 24) "\'b" | 20 | LIFETIME@22..24 "\'b" |
21 | WHITESPACE@[24; 25) " " | 21 | WHITESPACE@24..25 " " |
22 | PLUS@[25; 26) "+" | 22 | PLUS@25..26 "+" |
23 | WHITESPACE@[26; 27) " " | 23 | WHITESPACE@26..27 " " |
24 | TYPE_BOUND@[27; 29) | 24 | TYPE_BOUND@27..29 |
25 | LIFETIME@[27; 29) "\'c" | 25 | LIFETIME@27..29 "\'c" |
26 | COMMA@[29; 30) "," | 26 | COMMA@29..30 "," |
27 | WHITESPACE@[30; 34) "\n " | 27 | WHITESPACE@30..34 "\n " |
28 | WHERE_PRED@[34; 59) | 28 | WHERE_PRED@34..59 |
29 | PATH_TYPE@[34; 35) | 29 | PATH_TYPE@34..35 |
30 | PATH@[34; 35) | 30 | PATH@34..35 |
31 | PATH_SEGMENT@[34; 35) | 31 | PATH_SEGMENT@34..35 |
32 | NAME_REF@[34; 35) | 32 | NAME_REF@34..35 |
33 | IDENT@[34; 35) "T" | 33 | IDENT@34..35 "T" |
34 | COLON@[35; 36) ":" | 34 | COLON@35..36 ":" |
35 | WHITESPACE@[36; 37) " " | 35 | WHITESPACE@36..37 " " |
36 | TYPE_BOUND_LIST@[37; 59) | 36 | TYPE_BOUND_LIST@37..59 |
37 | TYPE_BOUND@[37; 42) | 37 | TYPE_BOUND@37..42 |
38 | PATH_TYPE@[37; 42) | 38 | PATH_TYPE@37..42 |
39 | PATH@[37; 42) | 39 | PATH@37..42 |
40 | PATH_SEGMENT@[37; 42) | 40 | PATH_SEGMENT@37..42 |
41 | NAME_REF@[37; 42) | 41 | NAME_REF@37..42 |
42 | IDENT@[37; 42) "Clone" | 42 | IDENT@37..42 "Clone" |
43 | WHITESPACE@[42; 43) " " | 43 | WHITESPACE@42..43 " " |
44 | PLUS@[43; 44) "+" | 44 | PLUS@43..44 "+" |
45 | WHITESPACE@[44; 45) " " | 45 | WHITESPACE@44..45 " " |
46 | TYPE_BOUND@[45; 49) | 46 | TYPE_BOUND@45..49 |
47 | PATH_TYPE@[45; 49) | 47 | PATH_TYPE@45..49 |
48 | PATH@[45; 49) | 48 | PATH@45..49 |
49 | PATH_SEGMENT@[45; 49) | 49 | PATH_SEGMENT@45..49 |
50 | NAME_REF@[45; 49) | 50 | NAME_REF@45..49 |
51 | IDENT@[45; 49) "Copy" | 51 | IDENT@45..49 "Copy" |
52 | WHITESPACE@[49; 50) " " | 52 | WHITESPACE@49..50 " " |
53 | PLUS@[50; 51) "+" | 53 | PLUS@50..51 "+" |
54 | WHITESPACE@[51; 52) " " | 54 | WHITESPACE@51..52 " " |
55 | TYPE_BOUND@[52; 59) | 55 | TYPE_BOUND@52..59 |
56 | LIFETIME@[52; 59) "\'static" | 56 | LIFETIME@52..59 "\'static" |
57 | COMMA@[59; 60) "," | 57 | COMMA@59..60 "," |
58 | WHITESPACE@[60; 64) "\n " | 58 | WHITESPACE@60..64 "\n " |
59 | WHERE_PRED@[64; 82) | 59 | WHERE_PRED@64..82 |
60 | PATH_TYPE@[64; 78) | 60 | PATH_TYPE@64..78 |
61 | PATH@[64; 78) | 61 | PATH@64..78 |
62 | PATH@[64; 72) | 62 | PATH@64..72 |
63 | PATH_SEGMENT@[64; 72) | 63 | PATH_SEGMENT@64..72 |
64 | NAME_REF@[64; 72) | 64 | NAME_REF@64..72 |
65 | IDENT@[64; 72) "Iterator" | 65 | IDENT@64..72 "Iterator" |
66 | COLON2@[72; 74) "::" | 66 | COLON2@72..74 "::" |
67 | PATH_SEGMENT@[74; 78) | 67 | PATH_SEGMENT@74..78 |
68 | NAME_REF@[74; 78) | 68 | NAME_REF@74..78 |
69 | IDENT@[74; 78) "Item" | 69 | IDENT@74..78 "Item" |
70 | COLON@[78; 79) ":" | 70 | COLON@78..79 ":" |
71 | WHITESPACE@[79; 80) " " | 71 | WHITESPACE@79..80 " " |
72 | TYPE_BOUND_LIST@[80; 82) | 72 | TYPE_BOUND_LIST@80..82 |
73 | TYPE_BOUND@[80; 82) | 73 | TYPE_BOUND@80..82 |
74 | LIFETIME@[80; 82) "\'a" | 74 | LIFETIME@80..82 "\'a" |
75 | COMMA@[82; 83) "," | 75 | COMMA@82..83 "," |
76 | WHITESPACE@[83; 87) "\n " | 76 | WHITESPACE@83..87 "\n " |
77 | WHERE_PRED@[87; 112) | 77 | WHERE_PRED@87..112 |
78 | PATH_TYPE@[87; 108) | 78 | PATH_TYPE@87..108 |
79 | PATH@[87; 108) | 79 | PATH@87..108 |
80 | PATH@[87; 102) | 80 | PATH@87..102 |
81 | PATH_SEGMENT@[87; 102) | 81 | PATH_SEGMENT@87..102 |
82 | L_ANGLE@[87; 88) "<" | 82 | L_ANGLE@87..88 "<" |
83 | PATH_TYPE@[88; 89) | 83 | PATH_TYPE@88..89 |
84 | PATH@[88; 89) | 84 | PATH@88..89 |
85 | PATH_SEGMENT@[88; 89) | 85 | PATH_SEGMENT@88..89 |
86 | NAME_REF@[88; 89) | 86 | NAME_REF@88..89 |
87 | IDENT@[88; 89) "T" | 87 | IDENT@88..89 "T" |
88 | WHITESPACE@[89; 90) " " | 88 | WHITESPACE@89..90 " " |
89 | AS_KW@[90; 92) "as" | 89 | AS_KW@90..92 "as" |
90 | WHITESPACE@[92; 93) " " | 90 | WHITESPACE@92..93 " " |
91 | PATH_TYPE@[93; 101) | 91 | PATH_TYPE@93..101 |
92 | PATH@[93; 101) | 92 | PATH@93..101 |
93 | PATH_SEGMENT@[93; 101) | 93 | PATH_SEGMENT@93..101 |
94 | NAME_REF@[93; 101) | 94 | NAME_REF@93..101 |
95 | IDENT@[93; 101) "Iterator" | 95 | IDENT@93..101 "Iterator" |
96 | R_ANGLE@[101; 102) ">" | 96 | R_ANGLE@101..102 ">" |
97 | COLON2@[102; 104) "::" | 97 | COLON2@102..104 "::" |
98 | PATH_SEGMENT@[104; 108) | 98 | PATH_SEGMENT@104..108 |
99 | NAME_REF@[104; 108) | 99 | NAME_REF@104..108 |
100 | IDENT@[104; 108) "Item" | 100 | IDENT@104..108 "Item" |
101 | COLON@[108; 109) ":" | 101 | COLON@108..109 ":" |
102 | WHITESPACE@[109; 110) " " | 102 | WHITESPACE@109..110 " " |
103 | TYPE_BOUND_LIST@[110; 112) | 103 | TYPE_BOUND_LIST@110..112 |
104 | TYPE_BOUND@[110; 112) | 104 | TYPE_BOUND@110..112 |
105 | LIFETIME@[110; 112) "\'a" | 105 | LIFETIME@110..112 "\'a" |
106 | WHITESPACE@[112; 113) "\n" | 106 | WHITESPACE@112..113 "\n" |
107 | BLOCK_EXPR@[113; 115) | 107 | BLOCK_EXPR@113..115 |
108 | BLOCK@[113; 115) | 108 | BLOCK@113..115 |
109 | L_CURLY@[113; 114) "{" | 109 | L_CURLY@113..114 "{" |
110 | R_CURLY@[114; 115) "}" | 110 | R_CURLY@114..115 "}" |
111 | WHITESPACE@[115; 116) "\n" | 111 | WHITESPACE@115..116 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast index 9788197be..c1e58f9bf 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 18) | 1 | SOURCE_FILE@0..18 |
2 | FN_DEF@[0; 17) | 2 | FN_DEF@0..17 |
3 | CONST_KW@[0; 5) "const" | 3 | CONST_KW@0..5 "const" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | FN_KW@[6; 8) "fn" | 5 | FN_KW@6..8 "fn" |
6 | WHITESPACE@[8; 9) " " | 6 | WHITESPACE@8..9 " " |
7 | NAME@[9; 12) | 7 | NAME@9..12 |
8 | IDENT@[9; 12) "foo" | 8 | IDENT@9..12 "foo" |
9 | PARAM_LIST@[12; 14) | 9 | PARAM_LIST@12..14 |
10 | L_PAREN@[12; 13) "(" | 10 | L_PAREN@12..13 "(" |
11 | R_PAREN@[13; 14) ")" | 11 | R_PAREN@13..14 ")" |
12 | WHITESPACE@[14; 15) " " | 12 | WHITESPACE@14..15 " " |
13 | BLOCK_EXPR@[15; 17) | 13 | BLOCK_EXPR@15..17 |
14 | BLOCK@[15; 17) | 14 | BLOCK@15..17 |
15 | L_CURLY@[15; 16) "{" | 15 | L_CURLY@15..16 "{" |
16 | R_CURLY@[16; 17) "}" | 16 | R_CURLY@16..17 "}" |
17 | WHITESPACE@[17; 18) "\n" | 17 | WHITESPACE@17..18 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast index 8d7083e97..9bdf2379f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast | |||
@@ -1,83 +1,83 @@ | |||
1 | SOURCE_FILE@[0; 112) | 1 | SOURCE_FILE@0..112 |
2 | FN_DEF@[0; 111) | 2 | FN_DEF@0..111 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 111) | 11 | BLOCK_EXPR@10..111 |
12 | BLOCK@[10; 111) | 12 | BLOCK@10..111 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | MATCH_EXPR@[16; 109) | 15 | MATCH_EXPR@16..109 |
16 | MATCH_KW@[16; 21) "match" | 16 | MATCH_KW@16..21 "match" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | LITERAL@[22; 24) | 18 | LITERAL@22..24 |
19 | INT_NUMBER@[22; 24) "92" | 19 | INT_NUMBER@22..24 "92" |
20 | WHITESPACE@[24; 25) " " | 20 | WHITESPACE@24..25 " " |
21 | MATCH_ARM_LIST@[25; 109) | 21 | MATCH_ARM_LIST@25..109 |
22 | L_CURLY@[25; 26) "{" | 22 | L_CURLY@25..26 "{" |
23 | WHITESPACE@[26; 35) "\n " | 23 | WHITESPACE@26..35 "\n " |
24 | MATCH_ARM@[35; 50) | 24 | MATCH_ARM@35..50 |
25 | RANGE_PAT@[35; 44) | 25 | RANGE_PAT@35..44 |
26 | LITERAL_PAT@[35; 36) | 26 | LITERAL_PAT@35..36 |
27 | LITERAL@[35; 36) | 27 | LITERAL@35..36 |
28 | INT_NUMBER@[35; 36) "0" | 28 | INT_NUMBER@35..36 "0" |
29 | WHITESPACE@[36; 37) " " | 29 | WHITESPACE@36..37 " " |
30 | DOT3@[37; 40) "..." | 30 | DOT3@37..40 "..." |
31 | WHITESPACE@[40; 41) " " | 31 | WHITESPACE@40..41 " " |
32 | LITERAL_PAT@[41; 44) | 32 | LITERAL_PAT@41..44 |
33 | LITERAL@[41; 44) | 33 | LITERAL@41..44 |
34 | INT_NUMBER@[41; 44) "100" | 34 | INT_NUMBER@41..44 "100" |
35 | WHITESPACE@[44; 45) " " | 35 | WHITESPACE@44..45 " " |
36 | FAT_ARROW@[45; 47) "=>" | 36 | FAT_ARROW@45..47 "=>" |
37 | WHITESPACE@[47; 48) " " | 37 | WHITESPACE@47..48 " " |
38 | TUPLE_EXPR@[48; 50) | 38 | TUPLE_EXPR@48..50 |
39 | L_PAREN@[48; 49) "(" | 39 | L_PAREN@48..49 "(" |
40 | R_PAREN@[49; 50) ")" | 40 | R_PAREN@49..50 ")" |
41 | COMMA@[50; 51) "," | 41 | COMMA@50..51 "," |
42 | WHITESPACE@[51; 60) "\n " | 42 | WHITESPACE@51..60 "\n " |
43 | MATCH_ARM@[60; 77) | 43 | MATCH_ARM@60..77 |
44 | RANGE_PAT@[60; 71) | 44 | RANGE_PAT@60..71 |
45 | LITERAL_PAT@[60; 63) | 45 | LITERAL_PAT@60..63 |
46 | LITERAL@[60; 63) | 46 | LITERAL@60..63 |
47 | INT_NUMBER@[60; 63) "101" | 47 | INT_NUMBER@60..63 "101" |
48 | WHITESPACE@[63; 64) " " | 48 | WHITESPACE@63..64 " " |
49 | DOT2EQ@[64; 67) "..=" | 49 | DOT2EQ@64..67 "..=" |
50 | WHITESPACE@[67; 68) " " | 50 | WHITESPACE@67..68 " " |
51 | LITERAL_PAT@[68; 71) | 51 | LITERAL_PAT@68..71 |
52 | LITERAL@[68; 71) | 52 | LITERAL@68..71 |
53 | INT_NUMBER@[68; 71) "200" | 53 | INT_NUMBER@68..71 "200" |
54 | WHITESPACE@[71; 72) " " | 54 | WHITESPACE@71..72 " " |
55 | FAT_ARROW@[72; 74) "=>" | 55 | FAT_ARROW@72..74 "=>" |
56 | WHITESPACE@[74; 75) " " | 56 | WHITESPACE@74..75 " " |
57 | TUPLE_EXPR@[75; 77) | 57 | TUPLE_EXPR@75..77 |
58 | L_PAREN@[75; 76) "(" | 58 | L_PAREN@75..76 "(" |
59 | R_PAREN@[76; 77) ")" | 59 | R_PAREN@76..77 ")" |
60 | COMMA@[77; 78) "," | 60 | COMMA@77..78 "," |
61 | WHITESPACE@[78; 87) "\n " | 61 | WHITESPACE@78..87 "\n " |
62 | MATCH_ARM@[87; 102) | 62 | MATCH_ARM@87..102 |
63 | RANGE_PAT@[87; 97) | 63 | RANGE_PAT@87..97 |
64 | LITERAL_PAT@[87; 90) | 64 | LITERAL_PAT@87..90 |
65 | LITERAL@[87; 90) | 65 | LITERAL@87..90 |
66 | INT_NUMBER@[87; 90) "200" | 66 | INT_NUMBER@87..90 "200" |
67 | WHITESPACE@[90; 91) " " | 67 | WHITESPACE@90..91 " " |
68 | DOT2@[91; 93) ".." | 68 | DOT2@91..93 ".." |
69 | WHITESPACE@[93; 94) " " | 69 | WHITESPACE@93..94 " " |
70 | LITERAL_PAT@[94; 97) | 70 | LITERAL_PAT@94..97 |
71 | LITERAL@[94; 97) | 71 | LITERAL@94..97 |
72 | INT_NUMBER@[94; 97) "301" | 72 | INT_NUMBER@94..97 "301" |
73 | FAT_ARROW@[97; 99) "=>" | 73 | FAT_ARROW@97..99 "=>" |
74 | WHITESPACE@[99; 100) " " | 74 | WHITESPACE@99..100 " " |
75 | TUPLE_EXPR@[100; 102) | 75 | TUPLE_EXPR@100..102 |
76 | L_PAREN@[100; 101) "(" | 76 | L_PAREN@100..101 "(" |
77 | R_PAREN@[101; 102) ")" | 77 | R_PAREN@101..102 ")" |
78 | COMMA@[102; 103) "," | 78 | COMMA@102..103 "," |
79 | WHITESPACE@[103; 108) "\n " | 79 | WHITESPACE@103..108 "\n " |
80 | R_CURLY@[108; 109) "}" | 80 | R_CURLY@108..109 "}" |
81 | WHITESPACE@[109; 110) "\n" | 81 | WHITESPACE@109..110 "\n" |
82 | R_CURLY@[110; 111) "}" | 82 | R_CURLY@110..111 "}" |
83 | WHITESPACE@[111; 112) "\n" | 83 | WHITESPACE@111..112 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast index efcd89c4c..e9ca92364 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast | |||
@@ -1,60 +1,60 @@ | |||
1 | SOURCE_FILE@[0; 83) | 1 | SOURCE_FILE@0..83 |
2 | FN_DEF@[0; 82) | 2 | FN_DEF@0..82 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 82) | 11 | BLOCK_EXPR@9..82 |
12 | BLOCK@[9; 82) | 12 | BLOCK@9..82 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 80) | 15 | MATCH_EXPR@15..80 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 80) | 22 | MATCH_ARM_LIST@24..80 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | MATCH_ARM@[34; 41) | 25 | MATCH_ARM@34..41 |
26 | PLACEHOLDER_PAT@[34; 35) | 26 | PLACEHOLDER_PAT@34..35 |
27 | UNDERSCORE@[34; 35) "_" | 27 | UNDERSCORE@34..35 "_" |
28 | WHITESPACE@[35; 36) " " | 28 | WHITESPACE@35..36 " " |
29 | FAT_ARROW@[36; 38) "=>" | 29 | FAT_ARROW@36..38 "=>" |
30 | WHITESPACE@[38; 39) " " | 30 | WHITESPACE@38..39 " " |
31 | TUPLE_EXPR@[39; 41) | 31 | TUPLE_EXPR@39..41 |
32 | L_PAREN@[39; 40) "(" | 32 | L_PAREN@39..40 "(" |
33 | R_PAREN@[40; 41) ")" | 33 | R_PAREN@40..41 ")" |
34 | COMMA@[41; 42) "," | 34 | COMMA@41..42 "," |
35 | WHITESPACE@[42; 51) "\n " | 35 | WHITESPACE@42..51 "\n " |
36 | MATCH_ARM@[51; 58) | 36 | MATCH_ARM@51..58 |
37 | PLACEHOLDER_PAT@[51; 52) | 37 | PLACEHOLDER_PAT@51..52 |
38 | UNDERSCORE@[51; 52) "_" | 38 | UNDERSCORE@51..52 "_" |
39 | WHITESPACE@[52; 53) " " | 39 | WHITESPACE@52..53 " " |
40 | FAT_ARROW@[53; 55) "=>" | 40 | FAT_ARROW@53..55 "=>" |
41 | WHITESPACE@[55; 56) " " | 41 | WHITESPACE@55..56 " " |
42 | BLOCK_EXPR@[56; 58) | 42 | BLOCK_EXPR@56..58 |
43 | BLOCK@[56; 58) | 43 | BLOCK@56..58 |
44 | L_CURLY@[56; 57) "{" | 44 | L_CURLY@56..57 "{" |
45 | R_CURLY@[57; 58) "}" | 45 | R_CURLY@57..58 "}" |
46 | WHITESPACE@[58; 67) "\n " | 46 | WHITESPACE@58..67 "\n " |
47 | MATCH_ARM@[67; 74) | 47 | MATCH_ARM@67..74 |
48 | PLACEHOLDER_PAT@[67; 68) | 48 | PLACEHOLDER_PAT@67..68 |
49 | UNDERSCORE@[67; 68) "_" | 49 | UNDERSCORE@67..68 "_" |
50 | WHITESPACE@[68; 69) " " | 50 | WHITESPACE@68..69 " " |
51 | FAT_ARROW@[69; 71) "=>" | 51 | FAT_ARROW@69..71 "=>" |
52 | WHITESPACE@[71; 72) " " | 52 | WHITESPACE@71..72 " " |
53 | TUPLE_EXPR@[72; 74) | 53 | TUPLE_EXPR@72..74 |
54 | L_PAREN@[72; 73) "(" | 54 | L_PAREN@72..73 "(" |
55 | R_PAREN@[73; 74) ")" | 55 | R_PAREN@73..74 ")" |
56 | WHITESPACE@[74; 79) "\n " | 56 | WHITESPACE@74..79 "\n " |
57 | R_CURLY@[79; 80) "}" | 57 | R_CURLY@79..80 "}" |
58 | WHITESPACE@[80; 81) "\n" | 58 | WHITESPACE@80..81 "\n" |
59 | R_CURLY@[81; 82) "}" | 59 | R_CURLY@81..82 "}" |
60 | WHITESPACE@[82; 83) "\n" | 60 | WHITESPACE@82..83 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast index c6e4ee532..d06fc0be5 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast | |||
@@ -1,10 +1,10 @@ | |||
1 | SOURCE_FILE@[0; 18) | 1 | SOURCE_FILE@0..18 |
2 | EXTERN_CRATE_ITEM@[0; 17) | 2 | EXTERN_CRATE_ITEM@0..17 |
3 | EXTERN_KW@[0; 6) "extern" | 3 | EXTERN_KW@0..6 "extern" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | CRATE_KW@[7; 12) "crate" | 5 | CRATE_KW@7..12 "crate" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | NAME_REF@[13; 16) | 7 | NAME_REF@13..16 |
8 | IDENT@[13; 16) "foo" | 8 | IDENT@13..16 "foo" |
9 | SEMICOLON@[16; 17) ";" | 9 | SEMICOLON@16..17 ";" |
10 | WHITESPACE@[17; 18) "\n" | 10 | WHITESPACE@17..18 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast index 89a611799..15d332938 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast | |||
@@ -1,125 +1,125 @@ | |||
1 | SOURCE_FILE@[0; 112) | 1 | SOURCE_FILE@0..112 |
2 | FN_DEF@[0; 111) | 2 | FN_DEF@0..111 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 111) | 11 | BLOCK_EXPR@9..111 |
12 | BLOCK@[9; 111) | 12 | BLOCK@9..111 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 20) | 15 | EXPR_STMT@15..20 |
16 | RECORD_LIT@[15; 19) | 16 | RECORD_LIT@15..19 |
17 | PATH@[15; 16) | 17 | PATH@15..16 |
18 | PATH_SEGMENT@[15; 16) | 18 | PATH_SEGMENT@15..16 |
19 | NAME_REF@[15; 16) | 19 | NAME_REF@15..16 |
20 | IDENT@[15; 16) "S" | 20 | IDENT@15..16 "S" |
21 | WHITESPACE@[16; 17) " " | 21 | WHITESPACE@16..17 " " |
22 | RECORD_FIELD_LIST@[17; 19) | 22 | RECORD_FIELD_LIST@17..19 |
23 | L_CURLY@[17; 18) "{" | 23 | L_CURLY@17..18 "{" |
24 | R_CURLY@[18; 19) "}" | 24 | R_CURLY@18..19 "}" |
25 | SEMICOLON@[19; 20) ";" | 25 | SEMICOLON@19..20 ";" |
26 | WHITESPACE@[20; 25) "\n " | 26 | WHITESPACE@20..25 "\n " |
27 | EXPR_STMT@[25; 41) | 27 | EXPR_STMT@25..41 |
28 | RECORD_LIT@[25; 40) | 28 | RECORD_LIT@25..40 |
29 | PATH@[25; 26) | 29 | PATH@25..26 |
30 | PATH_SEGMENT@[25; 26) | 30 | PATH_SEGMENT@25..26 |
31 | NAME_REF@[25; 26) | 31 | NAME_REF@25..26 |
32 | IDENT@[25; 26) "S" | 32 | IDENT@25..26 "S" |
33 | WHITESPACE@[26; 27) " " | 33 | WHITESPACE@26..27 " " |
34 | RECORD_FIELD_LIST@[27; 40) | 34 | RECORD_FIELD_LIST@27..40 |
35 | L_CURLY@[27; 28) "{" | 35 | L_CURLY@27..28 "{" |
36 | WHITESPACE@[28; 29) " " | 36 | WHITESPACE@28..29 " " |
37 | RECORD_FIELD@[29; 30) | 37 | RECORD_FIELD@29..30 |
38 | PATH_EXPR@[29; 30) | 38 | PATH_EXPR@29..30 |
39 | PATH@[29; 30) | 39 | PATH@29..30 |
40 | PATH_SEGMENT@[29; 30) | 40 | PATH_SEGMENT@29..30 |
41 | NAME_REF@[29; 30) | 41 | NAME_REF@29..30 |
42 | IDENT@[29; 30) "x" | 42 | IDENT@29..30 "x" |
43 | COMMA@[30; 31) "," | 43 | COMMA@30..31 "," |
44 | WHITESPACE@[31; 32) " " | 44 | WHITESPACE@31..32 " " |
45 | RECORD_FIELD@[32; 37) | 45 | RECORD_FIELD@32..37 |
46 | NAME_REF@[32; 33) | 46 | NAME_REF@32..33 |
47 | IDENT@[32; 33) "y" | 47 | IDENT@32..33 "y" |
48 | COLON@[33; 34) ":" | 48 | COLON@33..34 ":" |
49 | WHITESPACE@[34; 35) " " | 49 | WHITESPACE@34..35 " " |
50 | LITERAL@[35; 37) | 50 | LITERAL@35..37 |
51 | INT_NUMBER@[35; 37) "32" | 51 | INT_NUMBER@35..37 "32" |
52 | COMMA@[37; 38) "," | 52 | COMMA@37..38 "," |
53 | WHITESPACE@[38; 39) " " | 53 | WHITESPACE@38..39 " " |
54 | R_CURLY@[39; 40) "}" | 54 | R_CURLY@39..40 "}" |
55 | SEMICOLON@[40; 41) ";" | 55 | SEMICOLON@40..41 ";" |
56 | WHITESPACE@[41; 46) "\n " | 56 | WHITESPACE@41..46 "\n " |
57 | EXPR_STMT@[46; 83) | 57 | EXPR_STMT@46..83 |
58 | RECORD_LIT@[46; 82) | 58 | RECORD_LIT@46..82 |
59 | PATH@[46; 47) | 59 | PATH@46..47 |
60 | PATH_SEGMENT@[46; 47) | 60 | PATH_SEGMENT@46..47 |
61 | NAME_REF@[46; 47) | 61 | NAME_REF@46..47 |
62 | IDENT@[46; 47) "S" | 62 | IDENT@46..47 "S" |
63 | WHITESPACE@[47; 48) " " | 63 | WHITESPACE@47..48 " " |
64 | RECORD_FIELD_LIST@[48; 82) | 64 | RECORD_FIELD_LIST@48..82 |
65 | L_CURLY@[48; 49) "{" | 65 | L_CURLY@48..49 "{" |
66 | WHITESPACE@[49; 50) " " | 66 | WHITESPACE@49..50 " " |
67 | RECORD_FIELD@[50; 51) | 67 | RECORD_FIELD@50..51 |
68 | PATH_EXPR@[50; 51) | 68 | PATH_EXPR@50..51 |
69 | PATH@[50; 51) | 69 | PATH@50..51 |
70 | PATH_SEGMENT@[50; 51) | 70 | PATH_SEGMENT@50..51 |
71 | NAME_REF@[50; 51) | 71 | NAME_REF@50..51 |
72 | IDENT@[50; 51) "x" | 72 | IDENT@50..51 "x" |
73 | COMMA@[51; 52) "," | 73 | COMMA@51..52 "," |
74 | WHITESPACE@[52; 53) " " | 74 | WHITESPACE@52..53 " " |
75 | RECORD_FIELD@[53; 58) | 75 | RECORD_FIELD@53..58 |
76 | NAME_REF@[53; 54) | 76 | NAME_REF@53..54 |
77 | IDENT@[53; 54) "y" | 77 | IDENT@53..54 "y" |
78 | COLON@[54; 55) ":" | 78 | COLON@54..55 ":" |
79 | WHITESPACE@[55; 56) " " | 79 | WHITESPACE@55..56 " " |
80 | LITERAL@[56; 58) | 80 | LITERAL@56..58 |
81 | INT_NUMBER@[56; 58) "32" | 81 | INT_NUMBER@56..58 "32" |
82 | COMMA@[58; 59) "," | 82 | COMMA@58..59 "," |
83 | WHITESPACE@[59; 60) " " | 83 | WHITESPACE@59..60 " " |
84 | DOT2@[60; 62) ".." | 84 | DOT2@60..62 ".." |
85 | CALL_EXPR@[62; 80) | 85 | CALL_EXPR@62..80 |
86 | PATH_EXPR@[62; 78) | 86 | PATH_EXPR@62..78 |
87 | PATH@[62; 78) | 87 | PATH@62..78 |
88 | PATH@[62; 69) | 88 | PATH@62..69 |
89 | PATH_SEGMENT@[62; 69) | 89 | PATH_SEGMENT@62..69 |
90 | NAME_REF@[62; 69) | 90 | NAME_REF@62..69 |
91 | IDENT@[62; 69) "Default" | 91 | IDENT@62..69 "Default" |
92 | COLON2@[69; 71) "::" | 92 | COLON2@69..71 "::" |
93 | PATH_SEGMENT@[71; 78) | 93 | PATH_SEGMENT@71..78 |
94 | NAME_REF@[71; 78) | 94 | NAME_REF@71..78 |
95 | IDENT@[71; 78) "default" | 95 | IDENT@71..78 "default" |
96 | ARG_LIST@[78; 80) | 96 | ARG_LIST@78..80 |
97 | L_PAREN@[78; 79) "(" | 97 | L_PAREN@78..79 "(" |
98 | R_PAREN@[79; 80) ")" | 98 | R_PAREN@79..80 ")" |
99 | WHITESPACE@[80; 81) " " | 99 | WHITESPACE@80..81 " " |
100 | R_CURLY@[81; 82) "}" | 100 | R_CURLY@81..82 "}" |
101 | SEMICOLON@[82; 83) ";" | 101 | SEMICOLON@82..83 ";" |
102 | WHITESPACE@[83; 88) "\n " | 102 | WHITESPACE@83..88 "\n " |
103 | EXPR_STMT@[88; 109) | 103 | EXPR_STMT@88..109 |
104 | RECORD_LIT@[88; 108) | 104 | RECORD_LIT@88..108 |
105 | PATH@[88; 99) | 105 | PATH@88..99 |
106 | PATH_SEGMENT@[88; 99) | 106 | PATH_SEGMENT@88..99 |
107 | NAME_REF@[88; 99) | 107 | NAME_REF@88..99 |
108 | IDENT@[88; 99) "TupleStruct" | 108 | IDENT@88..99 "TupleStruct" |
109 | WHITESPACE@[99; 100) " " | 109 | WHITESPACE@99..100 " " |
110 | RECORD_FIELD_LIST@[100; 108) | 110 | RECORD_FIELD_LIST@100..108 |
111 | L_CURLY@[100; 101) "{" | 111 | L_CURLY@100..101 "{" |
112 | WHITESPACE@[101; 102) " " | 112 | WHITESPACE@101..102 " " |
113 | RECORD_FIELD@[102; 106) | 113 | RECORD_FIELD@102..106 |
114 | NAME_REF@[102; 103) | 114 | NAME_REF@102..103 |
115 | INT_NUMBER@[102; 103) "0" | 115 | INT_NUMBER@102..103 "0" |
116 | COLON@[103; 104) ":" | 116 | COLON@103..104 ":" |
117 | WHITESPACE@[104; 105) " " | 117 | WHITESPACE@104..105 " " |
118 | LITERAL@[105; 106) | 118 | LITERAL@105..106 |
119 | INT_NUMBER@[105; 106) "1" | 119 | INT_NUMBER@105..106 "1" |
120 | WHITESPACE@[106; 107) " " | 120 | WHITESPACE@106..107 " " |
121 | R_CURLY@[107; 108) "}" | 121 | R_CURLY@107..108 "}" |
122 | SEMICOLON@[108; 109) ";" | 122 | SEMICOLON@108..109 ";" |
123 | WHITESPACE@[109; 110) "\n" | 123 | WHITESPACE@109..110 "\n" |
124 | R_CURLY@[110; 111) "}" | 124 | R_CURLY@110..111 "}" |
125 | WHITESPACE@[111; 112) "\n" | 125 | WHITESPACE@111..112 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast index 99e0a0bec..3cce106e4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast | |||
@@ -1,67 +1,67 @@ | |||
1 | SOURCE_FILE@[0; 70) | 1 | SOURCE_FILE@0..70 |
2 | FN_DEF@[0; 11) | 2 | FN_DEF@0..11 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 11) | 11 | BLOCK_EXPR@9..11 |
12 | BLOCK@[9; 11) | 12 | BLOCK@9..11 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | R_CURLY@[10; 11) "}" | 14 | R_CURLY@10..11 "}" |
15 | WHITESPACE@[11; 12) "\n" | 15 | WHITESPACE@11..12 "\n" |
16 | MACRO_CALL@[12; 31) | 16 | MACRO_CALL@12..31 |
17 | PATH@[12; 23) | 17 | PATH@12..23 |
18 | PATH_SEGMENT@[12; 23) | 18 | PATH_SEGMENT@12..23 |
19 | NAME_REF@[12; 23) | 19 | NAME_REF@12..23 |
20 | IDENT@[12; 23) "macro_rules" | 20 | IDENT@12..23 "macro_rules" |
21 | BANG@[23; 24) "!" | 21 | BANG@23..24 "!" |
22 | WHITESPACE@[24; 25) " " | 22 | WHITESPACE@24..25 " " |
23 | NAME@[25; 28) | 23 | NAME@25..28 |
24 | IDENT@[25; 28) "foo" | 24 | IDENT@25..28 "foo" |
25 | WHITESPACE@[28; 29) " " | 25 | WHITESPACE@28..29 " " |
26 | TOKEN_TREE@[29; 31) | 26 | TOKEN_TREE@29..31 |
27 | L_CURLY@[29; 30) "{" | 27 | L_CURLY@29..30 "{" |
28 | R_CURLY@[30; 31) "}" | 28 | R_CURLY@30..31 "}" |
29 | WHITESPACE@[31; 32) "\n" | 29 | WHITESPACE@31..32 "\n" |
30 | MACRO_CALL@[32; 44) | 30 | MACRO_CALL@32..44 |
31 | PATH@[32; 40) | 31 | PATH@32..40 |
32 | PATH@[32; 35) | 32 | PATH@32..35 |
33 | PATH_SEGMENT@[32; 35) | 33 | PATH_SEGMENT@32..35 |
34 | NAME_REF@[32; 35) | 34 | NAME_REF@32..35 |
35 | IDENT@[32; 35) "foo" | 35 | IDENT@32..35 "foo" |
36 | COLON2@[35; 37) "::" | 36 | COLON2@35..37 "::" |
37 | PATH_SEGMENT@[37; 40) | 37 | PATH_SEGMENT@37..40 |
38 | NAME_REF@[37; 40) | 38 | NAME_REF@37..40 |
39 | IDENT@[37; 40) "bar" | 39 | IDENT@37..40 "bar" |
40 | BANG@[40; 41) "!" | 40 | BANG@40..41 "!" |
41 | TOKEN_TREE@[41; 43) | 41 | TOKEN_TREE@41..43 |
42 | L_PAREN@[41; 42) "(" | 42 | L_PAREN@41..42 "(" |
43 | R_PAREN@[42; 43) ")" | 43 | R_PAREN@42..43 ")" |
44 | SEMICOLON@[43; 44) ";" | 44 | SEMICOLON@43..44 ";" |
45 | WHITESPACE@[44; 45) "\n" | 45 | WHITESPACE@44..45 "\n" |
46 | MACRO_CALL@[45; 59) | 46 | MACRO_CALL@45..59 |
47 | PATH@[45; 55) | 47 | PATH@45..55 |
48 | PATH@[45; 50) | 48 | PATH@45..50 |
49 | PATH_SEGMENT@[45; 50) | 49 | PATH_SEGMENT@45..50 |
50 | SUPER_KW@[45; 50) "super" | 50 | SUPER_KW@45..50 "super" |
51 | COLON2@[50; 52) "::" | 51 | COLON2@50..52 "::" |
52 | PATH_SEGMENT@[52; 55) | 52 | PATH_SEGMENT@52..55 |
53 | NAME_REF@[52; 55) | 53 | NAME_REF@52..55 |
54 | IDENT@[52; 55) "baz" | 54 | IDENT@52..55 "baz" |
55 | BANG@[55; 56) "!" | 55 | BANG@55..56 "!" |
56 | WHITESPACE@[56; 57) " " | 56 | WHITESPACE@56..57 " " |
57 | TOKEN_TREE@[57; 59) | 57 | TOKEN_TREE@57..59 |
58 | L_CURLY@[57; 58) "{" | 58 | L_CURLY@57..58 "{" |
59 | R_CURLY@[58; 59) "}" | 59 | R_CURLY@58..59 "}" |
60 | WHITESPACE@[59; 60) "\n" | 60 | WHITESPACE@59..60 "\n" |
61 | STRUCT_DEF@[60; 69) | 61 | STRUCT_DEF@60..69 |
62 | STRUCT_KW@[60; 66) "struct" | 62 | STRUCT_KW@60..66 "struct" |
63 | WHITESPACE@[66; 67) " " | 63 | WHITESPACE@66..67 " " |
64 | NAME@[67; 68) | 64 | NAME@67..68 |
65 | IDENT@[67; 68) "S" | 65 | IDENT@67..68 "S" |
66 | SEMICOLON@[68; 69) ";" | 66 | SEMICOLON@68..69 ";" |
67 | WHITESPACE@[69; 70) "\n" | 67 | WHITESPACE@69..70 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast index 278549a46..24b9a1f46 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast | |||
@@ -1,23 +1,23 @@ | |||
1 | SOURCE_FILE@[0; 20) | 1 | SOURCE_FILE@0..20 |
2 | IMPL_DEF@[0; 19) | 2 | IMPL_DEF@0..19 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | BANG@[5; 6) "!" | 5 | BANG@5..6 "!" |
6 | PATH_TYPE@[6; 10) | 6 | PATH_TYPE@6..10 |
7 | PATH@[6; 10) | 7 | PATH@6..10 |
8 | PATH_SEGMENT@[6; 10) | 8 | PATH_SEGMENT@6..10 |
9 | NAME_REF@[6; 10) | 9 | NAME_REF@6..10 |
10 | IDENT@[6; 10) "Send" | 10 | IDENT@6..10 "Send" |
11 | WHITESPACE@[10; 11) " " | 11 | WHITESPACE@10..11 " " |
12 | FOR_KW@[11; 14) "for" | 12 | FOR_KW@11..14 "for" |
13 | WHITESPACE@[14; 15) " " | 13 | WHITESPACE@14..15 " " |
14 | PATH_TYPE@[15; 16) | 14 | PATH_TYPE@15..16 |
15 | PATH@[15; 16) | 15 | PATH@15..16 |
16 | PATH_SEGMENT@[15; 16) | 16 | PATH_SEGMENT@15..16 |
17 | NAME_REF@[15; 16) | 17 | NAME_REF@15..16 |
18 | IDENT@[15; 16) "X" | 18 | IDENT@15..16 "X" |
19 | WHITESPACE@[16; 17) " " | 19 | WHITESPACE@16..17 " " |
20 | ITEM_LIST@[17; 19) | 20 | ITEM_LIST@17..19 |
21 | L_CURLY@[17; 18) "{" | 21 | L_CURLY@17..18 "{" |
22 | R_CURLY@[18; 19) "}" | 22 | R_CURLY@18..19 "}" |
23 | WHITESPACE@[19; 20) "\n" | 23 | WHITESPACE@19..20 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast index df24ae189..5e1b4cc68 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast | |||
@@ -1,132 +1,132 @@ | |||
1 | SOURCE_FILE@[0; 137) | 1 | SOURCE_FILE@0..137 |
2 | FN_DEF@[0; 136) | 2 | FN_DEF@0..136 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 136) | 11 | BLOCK_EXPR@9..136 |
12 | BLOCK@[9; 136) | 12 | BLOCK@9..136 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 26) | 15 | EXPR_STMT@15..26 |
16 | IF_EXPR@[15; 25) | 16 | IF_EXPR@15..25 |
17 | IF_KW@[15; 17) "if" | 17 | IF_KW@15..17 "if" |
18 | WHITESPACE@[17; 18) " " | 18 | WHITESPACE@17..18 " " |
19 | CONDITION@[18; 22) | 19 | CONDITION@18..22 |
20 | LITERAL@[18; 22) | 20 | LITERAL@18..22 |
21 | TRUE_KW@[18; 22) "true" | 21 | TRUE_KW@18..22 "true" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | BLOCK_EXPR@[23; 25) | 23 | BLOCK_EXPR@23..25 |
24 | BLOCK@[23; 25) | 24 | BLOCK@23..25 |
25 | L_CURLY@[23; 24) "{" | 25 | L_CURLY@23..24 "{" |
26 | R_CURLY@[24; 25) "}" | 26 | R_CURLY@24..25 "}" |
27 | SEMICOLON@[25; 26) ";" | 27 | SEMICOLON@25..26 ";" |
28 | WHITESPACE@[26; 31) "\n " | 28 | WHITESPACE@26..31 "\n " |
29 | EXPR_STMT@[31; 50) | 29 | EXPR_STMT@31..50 |
30 | IF_EXPR@[31; 49) | 30 | IF_EXPR@31..49 |
31 | IF_KW@[31; 33) "if" | 31 | IF_KW@31..33 "if" |
32 | WHITESPACE@[33; 34) " " | 32 | WHITESPACE@33..34 " " |
33 | CONDITION@[34; 38) | 33 | CONDITION@34..38 |
34 | LITERAL@[34; 38) | 34 | LITERAL@34..38 |
35 | TRUE_KW@[34; 38) "true" | 35 | TRUE_KW@34..38 "true" |
36 | WHITESPACE@[38; 39) " " | 36 | WHITESPACE@38..39 " " |
37 | BLOCK_EXPR@[39; 41) | 37 | BLOCK_EXPR@39..41 |
38 | BLOCK@[39; 41) | 38 | BLOCK@39..41 |
39 | L_CURLY@[39; 40) "{" | 39 | L_CURLY@39..40 "{" |
40 | R_CURLY@[40; 41) "}" | 40 | R_CURLY@40..41 "}" |
41 | WHITESPACE@[41; 42) " " | 41 | WHITESPACE@41..42 " " |
42 | ELSE_KW@[42; 46) "else" | 42 | ELSE_KW@42..46 "else" |
43 | WHITESPACE@[46; 47) " " | 43 | WHITESPACE@46..47 " " |
44 | BLOCK_EXPR@[47; 49) | 44 | BLOCK_EXPR@47..49 |
45 | BLOCK@[47; 49) | 45 | BLOCK@47..49 |
46 | L_CURLY@[47; 48) "{" | 46 | L_CURLY@47..48 "{" |
47 | R_CURLY@[48; 49) "}" | 47 | R_CURLY@48..49 "}" |
48 | SEMICOLON@[49; 50) ";" | 48 | SEMICOLON@49..50 ";" |
49 | WHITESPACE@[50; 55) "\n " | 49 | WHITESPACE@50..55 "\n " |
50 | EXPR_STMT@[55; 91) | 50 | EXPR_STMT@55..91 |
51 | IF_EXPR@[55; 90) | 51 | IF_EXPR@55..90 |
52 | IF_KW@[55; 57) "if" | 52 | IF_KW@55..57 "if" |
53 | WHITESPACE@[57; 58) " " | 53 | WHITESPACE@57..58 " " |
54 | CONDITION@[58; 62) | 54 | CONDITION@58..62 |
55 | LITERAL@[58; 62) | 55 | LITERAL@58..62 |
56 | TRUE_KW@[58; 62) "true" | 56 | TRUE_KW@58..62 "true" |
57 | WHITESPACE@[62; 63) " " | 57 | WHITESPACE@62..63 " " |
58 | BLOCK_EXPR@[63; 65) | 58 | BLOCK_EXPR@63..65 |
59 | BLOCK@[63; 65) | 59 | BLOCK@63..65 |
60 | L_CURLY@[63; 64) "{" | 60 | L_CURLY@63..64 "{" |
61 | R_CURLY@[64; 65) "}" | 61 | R_CURLY@64..65 "}" |
62 | WHITESPACE@[65; 66) " " | 62 | WHITESPACE@65..66 " " |
63 | ELSE_KW@[66; 70) "else" | 63 | ELSE_KW@66..70 "else" |
64 | WHITESPACE@[70; 71) " " | 64 | WHITESPACE@70..71 " " |
65 | IF_EXPR@[71; 90) | 65 | IF_EXPR@71..90 |
66 | IF_KW@[71; 73) "if" | 66 | IF_KW@71..73 "if" |
67 | WHITESPACE@[73; 74) " " | 67 | WHITESPACE@73..74 " " |
68 | CONDITION@[74; 79) | 68 | CONDITION@74..79 |
69 | LITERAL@[74; 79) | 69 | LITERAL@74..79 |
70 | FALSE_KW@[74; 79) "false" | 70 | FALSE_KW@74..79 "false" |
71 | WHITESPACE@[79; 80) " " | 71 | WHITESPACE@79..80 " " |
72 | BLOCK_EXPR@[80; 82) | 72 | BLOCK_EXPR@80..82 |
73 | BLOCK@[80; 82) | 73 | BLOCK@80..82 |
74 | L_CURLY@[80; 81) "{" | 74 | L_CURLY@80..81 "{" |
75 | R_CURLY@[81; 82) "}" | 75 | R_CURLY@81..82 "}" |
76 | WHITESPACE@[82; 83) " " | 76 | WHITESPACE@82..83 " " |
77 | ELSE_KW@[83; 87) "else" | 77 | ELSE_KW@83..87 "else" |
78 | WHITESPACE@[87; 88) " " | 78 | WHITESPACE@87..88 " " |
79 | BLOCK_EXPR@[88; 90) | 79 | BLOCK_EXPR@88..90 |
80 | BLOCK@[88; 90) | 80 | BLOCK@88..90 |
81 | L_CURLY@[88; 89) "{" | 81 | L_CURLY@88..89 "{" |
82 | R_CURLY@[89; 90) "}" | 82 | R_CURLY@89..90 "}" |
83 | SEMICOLON@[90; 91) ";" | 83 | SEMICOLON@90..91 ";" |
84 | WHITESPACE@[91; 96) "\n " | 84 | WHITESPACE@91..96 "\n " |
85 | EXPR_STMT@[96; 104) | 85 | EXPR_STMT@96..104 |
86 | IF_EXPR@[96; 103) | 86 | IF_EXPR@96..103 |
87 | IF_KW@[96; 98) "if" | 87 | IF_KW@96..98 "if" |
88 | WHITESPACE@[98; 99) " " | 88 | WHITESPACE@98..99 " " |
89 | CONDITION@[99; 100) | 89 | CONDITION@99..100 |
90 | PATH_EXPR@[99; 100) | 90 | PATH_EXPR@99..100 |
91 | PATH@[99; 100) | 91 | PATH@99..100 |
92 | PATH_SEGMENT@[99; 100) | 92 | PATH_SEGMENT@99..100 |
93 | NAME_REF@[99; 100) | 93 | NAME_REF@99..100 |
94 | IDENT@[99; 100) "S" | 94 | IDENT@99..100 "S" |
95 | WHITESPACE@[100; 101) " " | 95 | WHITESPACE@100..101 " " |
96 | BLOCK_EXPR@[101; 103) | 96 | BLOCK_EXPR@101..103 |
97 | BLOCK@[101; 103) | 97 | BLOCK@101..103 |
98 | L_CURLY@[101; 102) "{" | 98 | L_CURLY@101..102 "{" |
99 | R_CURLY@[102; 103) "}" | 99 | R_CURLY@102..103 "}" |
100 | SEMICOLON@[103; 104) ";" | 100 | SEMICOLON@103..104 ";" |
101 | WHITESPACE@[104; 109) "\n " | 101 | WHITESPACE@104..109 "\n " |
102 | EXPR_STMT@[109; 134) | 102 | EXPR_STMT@109..134 |
103 | IF_EXPR@[109; 133) | 103 | IF_EXPR@109..133 |
104 | IF_KW@[109; 111) "if" | 104 | IF_KW@109..111 "if" |
105 | WHITESPACE@[111; 112) " " | 105 | WHITESPACE@111..112 " " |
106 | CONDITION@[112; 120) | 106 | CONDITION@112..120 |
107 | BLOCK_EXPR@[112; 120) | 107 | BLOCK_EXPR@112..120 |
108 | BLOCK@[112; 120) | 108 | BLOCK@112..120 |
109 | L_CURLY@[112; 113) "{" | 109 | L_CURLY@112..113 "{" |
110 | WHITESPACE@[113; 114) " " | 110 | WHITESPACE@113..114 " " |
111 | LITERAL@[114; 118) | 111 | LITERAL@114..118 |
112 | TRUE_KW@[114; 118) "true" | 112 | TRUE_KW@114..118 "true" |
113 | WHITESPACE@[118; 119) " " | 113 | WHITESPACE@118..119 " " |
114 | R_CURLY@[119; 120) "}" | 114 | R_CURLY@119..120 "}" |
115 | WHITESPACE@[120; 121) " " | 115 | WHITESPACE@120..121 " " |
116 | BLOCK_EXPR@[121; 124) | 116 | BLOCK_EXPR@121..124 |
117 | BLOCK@[121; 124) | 117 | BLOCK@121..124 |
118 | L_CURLY@[121; 122) "{" | 118 | L_CURLY@121..122 "{" |
119 | WHITESPACE@[122; 123) " " | 119 | WHITESPACE@122..123 " " |
120 | R_CURLY@[123; 124) "}" | 120 | R_CURLY@123..124 "}" |
121 | WHITESPACE@[124; 125) " " | 121 | WHITESPACE@124..125 " " |
122 | ELSE_KW@[125; 129) "else" | 122 | ELSE_KW@125..129 "else" |
123 | WHITESPACE@[129; 130) " " | 123 | WHITESPACE@129..130 " " |
124 | BLOCK_EXPR@[130; 133) | 124 | BLOCK_EXPR@130..133 |
125 | BLOCK@[130; 133) | 125 | BLOCK@130..133 |
126 | L_CURLY@[130; 131) "{" | 126 | L_CURLY@130..131 "{" |
127 | WHITESPACE@[131; 132) " " | 127 | WHITESPACE@131..132 " " |
128 | R_CURLY@[132; 133) "}" | 128 | R_CURLY@132..133 "}" |
129 | SEMICOLON@[133; 134) ";" | 129 | SEMICOLON@133..134 ";" |
130 | WHITESPACE@[134; 135) "\n" | 130 | WHITESPACE@134..135 "\n" |
131 | R_CURLY@[135; 136) "}" | 131 | R_CURLY@135..136 "}" |
132 | WHITESPACE@[136; 137) "\n" | 132 | WHITESPACE@136..137 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast index bbf347580..8e10f3673 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 42) | 1 | SOURCE_FILE@0..42 |
2 | TYPE_ALIAS_DEF@[0; 41) | 2 | TYPE_ALIAS_DEF@0..41 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | DYN_TRAIT_TYPE@[9; 40) | 10 | DYN_TRAIT_TYPE@9..40 |
11 | DYN_KW@[9; 12) "dyn" | 11 | DYN_KW@9..12 "dyn" |
12 | WHITESPACE@[12; 13) " " | 12 | WHITESPACE@12..13 " " |
13 | TYPE_BOUND_LIST@[13; 40) | 13 | TYPE_BOUND_LIST@13..40 |
14 | TYPE_BOUND@[13; 35) | 14 | TYPE_BOUND@13..35 |
15 | PATH_TYPE@[13; 35) | 15 | PATH_TYPE@13..35 |
16 | PATH@[13; 35) | 16 | PATH@13..35 |
17 | PATH_SEGMENT@[13; 35) | 17 | PATH_SEGMENT@13..35 |
18 | NAME_REF@[13; 21) | 18 | NAME_REF@13..21 |
19 | IDENT@[13; 21) "Iterator" | 19 | IDENT@13..21 "Iterator" |
20 | TYPE_ARG_LIST@[21; 35) | 20 | TYPE_ARG_LIST@21..35 |
21 | L_ANGLE@[21; 22) "<" | 21 | L_ANGLE@21..22 "<" |
22 | ASSOC_TYPE_ARG@[22; 34) | 22 | ASSOC_TYPE_ARG@22..34 |
23 | NAME_REF@[22; 26) | 23 | NAME_REF@22..26 |
24 | IDENT@[22; 26) "Item" | 24 | IDENT@22..26 "Item" |
25 | EQ@[26; 27) "=" | 25 | EQ@26..27 "=" |
26 | PATH_TYPE@[27; 34) | 26 | PATH_TYPE@27..34 |
27 | PATH@[27; 34) | 27 | PATH@27..34 |
28 | PATH_SEGMENT@[27; 34) | 28 | PATH_SEGMENT@27..34 |
29 | NAME_REF@[27; 30) | 29 | NAME_REF@27..30 |
30 | IDENT@[27; 30) "Foo" | 30 | IDENT@27..30 "Foo" |
31 | TYPE_ARG_LIST@[30; 34) | 31 | TYPE_ARG_LIST@30..34 |
32 | L_ANGLE@[30; 31) "<" | 32 | L_ANGLE@30..31 "<" |
33 | LIFETIME_ARG@[31; 33) | 33 | LIFETIME_ARG@31..33 |
34 | LIFETIME@[31; 33) "\'a" | 34 | LIFETIME@31..33 "\'a" |
35 | R_ANGLE@[33; 34) ">" | 35 | R_ANGLE@33..34 ">" |
36 | R_ANGLE@[34; 35) ">" | 36 | R_ANGLE@34..35 ">" |
37 | WHITESPACE@[35; 36) " " | 37 | WHITESPACE@35..36 " " |
38 | PLUS@[36; 37) "+" | 38 | PLUS@36..37 "+" |
39 | WHITESPACE@[37; 38) " " | 39 | WHITESPACE@37..38 " " |
40 | TYPE_BOUND@[38; 40) | 40 | TYPE_BOUND@38..40 |
41 | LIFETIME@[38; 40) "\'a" | 41 | LIFETIME@38..40 "\'a" |
42 | SEMICOLON@[40; 41) ";" | 42 | SEMICOLON@40..41 ";" |
43 | WHITESPACE@[41; 42) "\n" | 43 | WHITESPACE@41..42 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast index 85edd0845..108e5c5cc 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast | |||
@@ -1,152 +1,152 @@ | |||
1 | SOURCE_FILE@[0; 167) | 1 | SOURCE_FILE@0..167 |
2 | FN_DEF@[0; 166) | 2 | FN_DEF@0..166 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 166) | 11 | BLOCK_EXPR@9..166 |
12 | BLOCK@[9; 166) | 12 | BLOCK@9..166 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 164) | 15 | EXPR_STMT@15..164 |
16 | MATCH_EXPR@[15; 163) | 16 | MATCH_EXPR@15..163 |
17 | MATCH_KW@[15; 20) "match" | 17 | MATCH_KW@15..20 "match" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | TUPLE_EXPR@[21; 23) | 19 | TUPLE_EXPR@21..23 |
20 | L_PAREN@[21; 22) "(" | 20 | L_PAREN@21..22 "(" |
21 | R_PAREN@[22; 23) ")" | 21 | R_PAREN@22..23 ")" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | MATCH_ARM_LIST@[24; 163) | 23 | MATCH_ARM_LIST@24..163 |
24 | L_CURLY@[24; 25) "{" | 24 | L_CURLY@24..25 "{" |
25 | WHITESPACE@[25; 34) "\n " | 25 | WHITESPACE@25..34 "\n " |
26 | MATCH_ARM@[34; 41) | 26 | MATCH_ARM@34..41 |
27 | PLACEHOLDER_PAT@[34; 35) | 27 | PLACEHOLDER_PAT@34..35 |
28 | UNDERSCORE@[34; 35) "_" | 28 | UNDERSCORE@34..35 "_" |
29 | WHITESPACE@[35; 36) " " | 29 | WHITESPACE@35..36 " " |
30 | FAT_ARROW@[36; 38) "=>" | 30 | FAT_ARROW@36..38 "=>" |
31 | WHITESPACE@[38; 39) " " | 31 | WHITESPACE@38..39 " " |
32 | TUPLE_EXPR@[39; 41) | 32 | TUPLE_EXPR@39..41 |
33 | L_PAREN@[39; 40) "(" | 33 | L_PAREN@39..40 "(" |
34 | R_PAREN@[40; 41) ")" | 34 | R_PAREN@40..41 ")" |
35 | COMMA@[41; 42) "," | 35 | COMMA@41..42 "," |
36 | WHITESPACE@[42; 51) "\n " | 36 | WHITESPACE@42..51 "\n " |
37 | MATCH_ARM@[51; 83) | 37 | MATCH_ARM@51..83 |
38 | PLACEHOLDER_PAT@[51; 52) | 38 | PLACEHOLDER_PAT@51..52 |
39 | UNDERSCORE@[51; 52) "_" | 39 | UNDERSCORE@51..52 "_" |
40 | WHITESPACE@[52; 53) " " | 40 | WHITESPACE@52..53 " " |
41 | MATCH_GUARD@[53; 77) | 41 | MATCH_GUARD@53..77 |
42 | IF_KW@[53; 55) "if" | 42 | IF_KW@53..55 "if" |
43 | WHITESPACE@[55; 56) " " | 43 | WHITESPACE@55..56 " " |
44 | BIN_EXPR@[56; 77) | 44 | BIN_EXPR@56..77 |
45 | PATH_EXPR@[56; 60) | 45 | PATH_EXPR@56..60 |
46 | PATH@[56; 60) | 46 | PATH@56..60 |
47 | PATH_SEGMENT@[56; 60) | 47 | PATH_SEGMENT@56..60 |
48 | NAME_REF@[56; 60) | 48 | NAME_REF@56..60 |
49 | IDENT@[56; 60) "Test" | 49 | IDENT@56..60 "Test" |
50 | WHITESPACE@[60; 61) " " | 50 | WHITESPACE@60..61 " " |
51 | R_ANGLE@[61; 62) ">" | 51 | R_ANGLE@61..62 ">" |
52 | WHITESPACE@[62; 63) " " | 52 | WHITESPACE@62..63 " " |
53 | RECORD_LIT@[63; 77) | 53 | RECORD_LIT@63..77 |
54 | PATH@[63; 67) | 54 | PATH@63..67 |
55 | PATH_SEGMENT@[63; 67) | 55 | PATH_SEGMENT@63..67 |
56 | NAME_REF@[63; 67) | 56 | NAME_REF@63..67 |
57 | IDENT@[63; 67) "Test" | 57 | IDENT@63..67 "Test" |
58 | RECORD_FIELD_LIST@[67; 77) | 58 | RECORD_FIELD_LIST@67..77 |
59 | L_CURLY@[67; 68) "{" | 59 | L_CURLY@67..68 "{" |
60 | RECORD_FIELD@[68; 76) | 60 | RECORD_FIELD@68..76 |
61 | NAME_REF@[68; 73) | 61 | NAME_REF@68..73 |
62 | IDENT@[68; 73) "field" | 62 | IDENT@68..73 "field" |
63 | COLON@[73; 74) ":" | 63 | COLON@73..74 ":" |
64 | WHITESPACE@[74; 75) " " | 64 | WHITESPACE@74..75 " " |
65 | LITERAL@[75; 76) | 65 | LITERAL@75..76 |
66 | INT_NUMBER@[75; 76) "0" | 66 | INT_NUMBER@75..76 "0" |
67 | R_CURLY@[76; 77) "}" | 67 | R_CURLY@76..77 "}" |
68 | WHITESPACE@[77; 78) " " | 68 | WHITESPACE@77..78 " " |
69 | FAT_ARROW@[78; 80) "=>" | 69 | FAT_ARROW@78..80 "=>" |
70 | WHITESPACE@[80; 81) " " | 70 | WHITESPACE@80..81 " " |
71 | TUPLE_EXPR@[81; 83) | 71 | TUPLE_EXPR@81..83 |
72 | L_PAREN@[81; 82) "(" | 72 | L_PAREN@81..82 "(" |
73 | R_PAREN@[82; 83) ")" | 73 | R_PAREN@82..83 ")" |
74 | COMMA@[83; 84) "," | 74 | COMMA@83..84 "," |
75 | WHITESPACE@[84; 93) "\n " | 75 | WHITESPACE@84..93 "\n " |
76 | MATCH_ARM@[93; 109) | 76 | MATCH_ARM@93..109 |
77 | OR_PAT@[93; 98) | 77 | OR_PAT@93..98 |
78 | BIND_PAT@[93; 94) | 78 | BIND_PAT@93..94 |
79 | NAME@[93; 94) | 79 | NAME@93..94 |
80 | IDENT@[93; 94) "X" | 80 | IDENT@93..94 "X" |
81 | WHITESPACE@[94; 95) " " | 81 | WHITESPACE@94..95 " " |
82 | PIPE@[95; 96) "|" | 82 | PIPE@95..96 "|" |
83 | WHITESPACE@[96; 97) " " | 83 | WHITESPACE@96..97 " " |
84 | BIND_PAT@[97; 98) | 84 | BIND_PAT@97..98 |
85 | NAME@[97; 98) | 85 | NAME@97..98 |
86 | IDENT@[97; 98) "Y" | 86 | IDENT@97..98 "Y" |
87 | WHITESPACE@[98; 99) " " | 87 | WHITESPACE@98..99 " " |
88 | MATCH_GUARD@[99; 103) | 88 | MATCH_GUARD@99..103 |
89 | IF_KW@[99; 101) "if" | 89 | IF_KW@99..101 "if" |
90 | WHITESPACE@[101; 102) " " | 90 | WHITESPACE@101..102 " " |
91 | PATH_EXPR@[102; 103) | 91 | PATH_EXPR@102..103 |
92 | PATH@[102; 103) | 92 | PATH@102..103 |
93 | PATH_SEGMENT@[102; 103) | 93 | PATH_SEGMENT@102..103 |
94 | NAME_REF@[102; 103) | 94 | NAME_REF@102..103 |
95 | IDENT@[102; 103) "Z" | 95 | IDENT@102..103 "Z" |
96 | WHITESPACE@[103; 104) " " | 96 | WHITESPACE@103..104 " " |
97 | FAT_ARROW@[104; 106) "=>" | 97 | FAT_ARROW@104..106 "=>" |
98 | WHITESPACE@[106; 107) " " | 98 | WHITESPACE@106..107 " " |
99 | TUPLE_EXPR@[107; 109) | 99 | TUPLE_EXPR@107..109 |
100 | L_PAREN@[107; 108) "(" | 100 | L_PAREN@107..108 "(" |
101 | R_PAREN@[108; 109) ")" | 101 | R_PAREN@108..109 ")" |
102 | COMMA@[109; 110) "," | 102 | COMMA@109..110 "," |
103 | WHITESPACE@[110; 119) "\n " | 103 | WHITESPACE@110..119 "\n " |
104 | MATCH_ARM@[119; 137) | 104 | MATCH_ARM@119..137 |
105 | PIPE@[119; 120) "|" | 105 | PIPE@119..120 "|" |
106 | WHITESPACE@[120; 121) " " | 106 | WHITESPACE@120..121 " " |
107 | OR_PAT@[121; 126) | 107 | OR_PAT@121..126 |
108 | BIND_PAT@[121; 122) | 108 | BIND_PAT@121..122 |
109 | NAME@[121; 122) | 109 | NAME@121..122 |
110 | IDENT@[121; 122) "X" | 110 | IDENT@121..122 "X" |
111 | WHITESPACE@[122; 123) " " | 111 | WHITESPACE@122..123 " " |
112 | PIPE@[123; 124) "|" | 112 | PIPE@123..124 "|" |
113 | WHITESPACE@[124; 125) " " | 113 | WHITESPACE@124..125 " " |
114 | BIND_PAT@[125; 126) | 114 | BIND_PAT@125..126 |
115 | NAME@[125; 126) | 115 | NAME@125..126 |
116 | IDENT@[125; 126) "Y" | 116 | IDENT@125..126 "Y" |
117 | WHITESPACE@[126; 127) " " | 117 | WHITESPACE@126..127 " " |
118 | MATCH_GUARD@[127; 131) | 118 | MATCH_GUARD@127..131 |
119 | IF_KW@[127; 129) "if" | 119 | IF_KW@127..129 "if" |
120 | WHITESPACE@[129; 130) " " | 120 | WHITESPACE@129..130 " " |
121 | PATH_EXPR@[130; 131) | 121 | PATH_EXPR@130..131 |
122 | PATH@[130; 131) | 122 | PATH@130..131 |
123 | PATH_SEGMENT@[130; 131) | 123 | PATH_SEGMENT@130..131 |
124 | NAME_REF@[130; 131) | 124 | NAME_REF@130..131 |
125 | IDENT@[130; 131) "Z" | 125 | IDENT@130..131 "Z" |
126 | WHITESPACE@[131; 132) " " | 126 | WHITESPACE@131..132 " " |
127 | FAT_ARROW@[132; 134) "=>" | 127 | FAT_ARROW@132..134 "=>" |
128 | WHITESPACE@[134; 135) " " | 128 | WHITESPACE@134..135 " " |
129 | TUPLE_EXPR@[135; 137) | 129 | TUPLE_EXPR@135..137 |
130 | L_PAREN@[135; 136) "(" | 130 | L_PAREN@135..136 "(" |
131 | R_PAREN@[136; 137) ")" | 131 | R_PAREN@136..137 ")" |
132 | COMMA@[137; 138) "," | 132 | COMMA@137..138 "," |
133 | WHITESPACE@[138; 147) "\n " | 133 | WHITESPACE@138..147 "\n " |
134 | MATCH_ARM@[147; 156) | 134 | MATCH_ARM@147..156 |
135 | PIPE@[147; 148) "|" | 135 | PIPE@147..148 "|" |
136 | WHITESPACE@[148; 149) " " | 136 | WHITESPACE@148..149 " " |
137 | BIND_PAT@[149; 150) | 137 | BIND_PAT@149..150 |
138 | NAME@[149; 150) | 138 | NAME@149..150 |
139 | IDENT@[149; 150) "X" | 139 | IDENT@149..150 "X" |
140 | WHITESPACE@[150; 151) " " | 140 | WHITESPACE@150..151 " " |
141 | FAT_ARROW@[151; 153) "=>" | 141 | FAT_ARROW@151..153 "=>" |
142 | WHITESPACE@[153; 154) " " | 142 | WHITESPACE@153..154 " " |
143 | TUPLE_EXPR@[154; 156) | 143 | TUPLE_EXPR@154..156 |
144 | L_PAREN@[154; 155) "(" | 144 | L_PAREN@154..155 "(" |
145 | R_PAREN@[155; 156) ")" | 145 | R_PAREN@155..156 ")" |
146 | COMMA@[156; 157) "," | 146 | COMMA@156..157 "," |
147 | WHITESPACE@[157; 162) "\n " | 147 | WHITESPACE@157..162 "\n " |
148 | R_CURLY@[162; 163) "}" | 148 | R_CURLY@162..163 "}" |
149 | SEMICOLON@[163; 164) ";" | 149 | SEMICOLON@163..164 ";" |
150 | WHITESPACE@[164; 165) "\n" | 150 | WHITESPACE@164..165 "\n" |
151 | R_CURLY@[165; 166) "}" | 151 | R_CURLY@165..166 "}" |
152 | WHITESPACE@[166; 167) "\n" | 152 | WHITESPACE@166..167 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast index 35994e3fd..caa76fe8a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast | |||
@@ -1,15 +1,15 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | USE_ITEM@[0; 15) | 2 | USE_ITEM@0..15 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 14) | 5 | USE_TREE@4..14 |
6 | PATH@[4; 14) | 6 | PATH@4..14 |
7 | PATH@[4; 9) | 7 | PATH@4..9 |
8 | PATH_SEGMENT@[4; 9) | 8 | PATH_SEGMENT@4..9 |
9 | CRATE_KW@[4; 9) "crate" | 9 | CRATE_KW@4..9 "crate" |
10 | COLON2@[9; 11) "::" | 10 | COLON2@9..11 "::" |
11 | PATH_SEGMENT@[11; 14) | 11 | PATH_SEGMENT@11..14 |
12 | NAME_REF@[11; 14) | 12 | NAME_REF@11..14 |
13 | IDENT@[11; 14) "foo" | 13 | IDENT@11..14 "foo" |
14 | SEMICOLON@[14; 15) ";" | 14 | SEMICOLON@14..15 ";" |
15 | WHITESPACE@[15; 16) "\n" | 15 | WHITESPACE@15..16 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast index 9d7982684..ec2496072 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast | |||
@@ -1,46 +1,46 @@ | |||
1 | SOURCE_FILE@[0; 51) | 1 | SOURCE_FILE@0..51 |
2 | UNION_DEF@[0; 12) | 2 | UNION_DEF@0..12 |
3 | UNION_KW@[0; 5) "union" | 3 | UNION_KW@0..5 "union" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 9) | 5 | NAME@6..9 |
6 | IDENT@[6; 9) "Foo" | 6 | IDENT@6..9 "Foo" |
7 | WHITESPACE@[9; 10) " " | 7 | WHITESPACE@9..10 " " |
8 | RECORD_FIELD_DEF_LIST@[10; 12) | 8 | RECORD_FIELD_DEF_LIST@10..12 |
9 | L_CURLY@[10; 11) "{" | 9 | L_CURLY@10..11 "{" |
10 | R_CURLY@[11; 12) "}" | 10 | R_CURLY@11..12 "}" |
11 | WHITESPACE@[12; 13) "\n" | 11 | WHITESPACE@12..13 "\n" |
12 | UNION_DEF@[13; 50) | 12 | UNION_DEF@13..50 |
13 | UNION_KW@[13; 18) "union" | 13 | UNION_KW@13..18 "union" |
14 | WHITESPACE@[18; 19) " " | 14 | WHITESPACE@18..19 " " |
15 | NAME@[19; 22) | 15 | NAME@19..22 |
16 | IDENT@[19; 22) "Foo" | 16 | IDENT@19..22 "Foo" |
17 | WHITESPACE@[22; 23) " " | 17 | WHITESPACE@22..23 " " |
18 | RECORD_FIELD_DEF_LIST@[23; 50) | 18 | RECORD_FIELD_DEF_LIST@23..50 |
19 | L_CURLY@[23; 24) "{" | 19 | L_CURLY@23..24 "{" |
20 | WHITESPACE@[24; 29) "\n " | 20 | WHITESPACE@24..29 "\n " |
21 | RECORD_FIELD_DEF@[29; 35) | 21 | RECORD_FIELD_DEF@29..35 |
22 | NAME@[29; 30) | 22 | NAME@29..30 |
23 | IDENT@[29; 30) "a" | 23 | IDENT@29..30 "a" |
24 | COLON@[30; 31) ":" | 24 | COLON@30..31 ":" |
25 | WHITESPACE@[31; 32) " " | 25 | WHITESPACE@31..32 " " |
26 | PATH_TYPE@[32; 35) | 26 | PATH_TYPE@32..35 |
27 | PATH@[32; 35) | 27 | PATH@32..35 |
28 | PATH_SEGMENT@[32; 35) | 28 | PATH_SEGMENT@32..35 |
29 | NAME_REF@[32; 35) | 29 | NAME_REF@32..35 |
30 | IDENT@[32; 35) "i32" | 30 | IDENT@32..35 "i32" |
31 | COMMA@[35; 36) "," | 31 | COMMA@35..36 "," |
32 | WHITESPACE@[36; 41) "\n " | 32 | WHITESPACE@36..41 "\n " |
33 | RECORD_FIELD_DEF@[41; 47) | 33 | RECORD_FIELD_DEF@41..47 |
34 | NAME@[41; 42) | 34 | NAME@41..42 |
35 | IDENT@[41; 42) "b" | 35 | IDENT@41..42 "b" |
36 | COLON@[42; 43) ":" | 36 | COLON@42..43 ":" |
37 | WHITESPACE@[43; 44) " " | 37 | WHITESPACE@43..44 " " |
38 | PATH_TYPE@[44; 47) | 38 | PATH_TYPE@44..47 |
39 | PATH@[44; 47) | 39 | PATH@44..47 |
40 | PATH_SEGMENT@[44; 47) | 40 | PATH_SEGMENT@44..47 |
41 | NAME_REF@[44; 47) | 41 | NAME_REF@44..47 |
42 | IDENT@[44; 47) "f32" | 42 | IDENT@44..47 "f32" |
43 | COMMA@[47; 48) "," | 43 | COMMA@47..48 "," |
44 | WHITESPACE@[48; 49) "\n" | 44 | WHITESPACE@48..49 "\n" |
45 | R_CURLY@[49; 50) "}" | 45 | R_CURLY@49..50 "}" |
46 | WHITESPACE@[50; 51) "\n" | 46 | WHITESPACE@50..51 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast index e24247890..18cd5271f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 37) | 1 | SOURCE_FILE@0..37 |
2 | USE_ITEM@[0; 18) | 2 | USE_ITEM@0..18 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 17) | 5 | USE_TREE@4..17 |
6 | PATH@[4; 9) | 6 | PATH@4..9 |
7 | PATH_SEGMENT@[4; 9) | 7 | PATH_SEGMENT@4..9 |
8 | CRATE_KW@[4; 9) "crate" | 8 | CRATE_KW@4..9 "crate" |
9 | COLON2@[9; 11) "::" | 9 | COLON2@9..11 "::" |
10 | USE_TREE_LIST@[11; 17) | 10 | USE_TREE_LIST@11..17 |
11 | L_CURLY@[11; 12) "{" | 11 | L_CURLY@11..12 "{" |
12 | USE_TREE@[12; 16) | 12 | USE_TREE@12..16 |
13 | PATH@[12; 16) | 13 | PATH@12..16 |
14 | PATH_SEGMENT@[12; 16) | 14 | PATH_SEGMENT@12..16 |
15 | NAME_REF@[12; 16) | 15 | NAME_REF@12..16 |
16 | IDENT@[12; 16) "Item" | 16 | IDENT@12..16 "Item" |
17 | R_CURLY@[16; 17) "}" | 17 | R_CURLY@16..17 "}" |
18 | SEMICOLON@[17; 18) ";" | 18 | SEMICOLON@17..18 ";" |
19 | WHITESPACE@[18; 19) "\n" | 19 | WHITESPACE@18..19 "\n" |
20 | USE_ITEM@[19; 36) | 20 | USE_ITEM@19..36 |
21 | USE_KW@[19; 22) "use" | 21 | USE_KW@19..22 "use" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | USE_TREE@[23; 35) | 23 | USE_TREE@23..35 |
24 | PATH@[23; 27) | 24 | PATH@23..27 |
25 | PATH_SEGMENT@[23; 27) | 25 | PATH_SEGMENT@23..27 |
26 | SELF_KW@[23; 27) "self" | 26 | SELF_KW@23..27 "self" |
27 | COLON2@[27; 29) "::" | 27 | COLON2@27..29 "::" |
28 | USE_TREE_LIST@[29; 35) | 28 | USE_TREE_LIST@29..35 |
29 | L_CURLY@[29; 30) "{" | 29 | L_CURLY@29..30 "{" |
30 | USE_TREE@[30; 34) | 30 | USE_TREE@30..34 |
31 | PATH@[30; 34) | 31 | PATH@30..34 |
32 | PATH_SEGMENT@[30; 34) | 32 | PATH_SEGMENT@30..34 |
33 | NAME_REF@[30; 34) | 33 | NAME_REF@30..34 |
34 | IDENT@[30; 34) "Item" | 34 | IDENT@30..34 "Item" |
35 | R_CURLY@[34; 35) "}" | 35 | R_CURLY@34..35 "}" |
36 | SEMICOLON@[35; 36) ";" | 36 | SEMICOLON@35..36 ";" |
37 | WHITESPACE@[36; 37) "\n" | 37 | WHITESPACE@36..37 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast index 4b075569a..1e888063e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast | |||
@@ -1,53 +1,53 @@ | |||
1 | SOURCE_FILE@[0; 46) | 1 | SOURCE_FILE@0..46 |
2 | FN_DEF@[0; 45) | 2 | FN_DEF@0..45 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 45) | 11 | BLOCK_EXPR@9..45 |
12 | BLOCK@[9; 45) | 12 | BLOCK@9..45 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 31) | 15 | LET_STMT@15..31 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | BIN_EXPR@[23; 30) | 23 | BIN_EXPR@23..30 |
24 | BLOCK_EXPR@[23; 26) | 24 | BLOCK_EXPR@23..26 |
25 | BLOCK@[23; 26) | 25 | BLOCK@23..26 |
26 | L_CURLY@[23; 24) "{" | 26 | L_CURLY@23..24 "{" |
27 | LITERAL@[24; 25) | 27 | LITERAL@24..25 |
28 | INT_NUMBER@[24; 25) "1" | 28 | INT_NUMBER@24..25 "1" |
29 | R_CURLY@[25; 26) "}" | 29 | R_CURLY@25..26 "}" |
30 | WHITESPACE@[26; 27) " " | 30 | WHITESPACE@26..27 " " |
31 | AMP@[27; 28) "&" | 31 | AMP@27..28 "&" |
32 | WHITESPACE@[28; 29) " " | 32 | WHITESPACE@28..29 " " |
33 | LITERAL@[29; 30) | 33 | LITERAL@29..30 |
34 | INT_NUMBER@[29; 30) "2" | 34 | INT_NUMBER@29..30 "2" |
35 | SEMICOLON@[30; 31) ";" | 35 | SEMICOLON@30..31 ";" |
36 | WHITESPACE@[31; 36) "\n " | 36 | WHITESPACE@31..36 "\n " |
37 | EXPR_STMT@[36; 39) | 37 | EXPR_STMT@36..39 |
38 | BLOCK_EXPR@[36; 39) | 38 | BLOCK_EXPR@36..39 |
39 | BLOCK@[36; 39) | 39 | BLOCK@36..39 |
40 | L_CURLY@[36; 37) "{" | 40 | L_CURLY@36..37 "{" |
41 | LITERAL@[37; 38) | 41 | LITERAL@37..38 |
42 | INT_NUMBER@[37; 38) "1" | 42 | INT_NUMBER@37..38 "1" |
43 | R_CURLY@[38; 39) "}" | 43 | R_CURLY@38..39 "}" |
44 | WHITESPACE@[39; 40) " " | 44 | WHITESPACE@39..40 " " |
45 | EXPR_STMT@[40; 43) | 45 | EXPR_STMT@40..43 |
46 | REF_EXPR@[40; 42) | 46 | REF_EXPR@40..42 |
47 | AMP@[40; 41) "&" | 47 | AMP@40..41 "&" |
48 | LITERAL@[41; 42) | 48 | LITERAL@41..42 |
49 | INT_NUMBER@[41; 42) "2" | 49 | INT_NUMBER@41..42 "2" |
50 | SEMICOLON@[42; 43) ";" | 50 | SEMICOLON@42..43 ";" |
51 | WHITESPACE@[43; 44) "\n" | 51 | WHITESPACE@43..44 "\n" |
52 | R_CURLY@[44; 45) "}" | 52 | R_CURLY@44..45 "}" |
53 | WHITESPACE@[45; 46) "\n" | 53 | WHITESPACE@45..46 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast index 559ffb578..218b3ec9e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast | |||
@@ -1,96 +1,96 @@ | |||
1 | SOURCE_FILE@[0; 97) | 1 | SOURCE_FILE@0..97 |
2 | FN_DEF@[0; 96) | 2 | FN_DEF@0..96 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 96) | 11 | BLOCK_EXPR@9..96 |
12 | BLOCK@[9; 96) | 12 | BLOCK@9..96 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 28) | 15 | EXPR_STMT@15..28 |
16 | MATCH_EXPR@[15; 27) | 16 | MATCH_EXPR@15..27 |
17 | MATCH_KW@[15; 20) "match" | 17 | MATCH_KW@15..20 "match" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | TUPLE_EXPR@[21; 23) | 19 | TUPLE_EXPR@21..23 |
20 | L_PAREN@[21; 22) "(" | 20 | L_PAREN@21..22 "(" |
21 | R_PAREN@[22; 23) ")" | 21 | R_PAREN@22..23 ")" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | MATCH_ARM_LIST@[24; 27) | 23 | MATCH_ARM_LIST@24..27 |
24 | L_CURLY@[24; 25) "{" | 24 | L_CURLY@24..25 "{" |
25 | WHITESPACE@[25; 26) " " | 25 | WHITESPACE@25..26 " " |
26 | R_CURLY@[26; 27) "}" | 26 | R_CURLY@26..27 "}" |
27 | SEMICOLON@[27; 28) ";" | 27 | SEMICOLON@27..28 ";" |
28 | WHITESPACE@[28; 33) "\n " | 28 | WHITESPACE@28..33 "\n " |
29 | EXPR_STMT@[33; 44) | 29 | EXPR_STMT@33..44 |
30 | MATCH_EXPR@[33; 43) | 30 | MATCH_EXPR@33..43 |
31 | MATCH_KW@[33; 38) "match" | 31 | MATCH_KW@33..38 "match" |
32 | WHITESPACE@[38; 39) " " | 32 | WHITESPACE@38..39 " " |
33 | PATH_EXPR@[39; 40) | 33 | PATH_EXPR@39..40 |
34 | PATH@[39; 40) | 34 | PATH@39..40 |
35 | PATH_SEGMENT@[39; 40) | 35 | PATH_SEGMENT@39..40 |
36 | NAME_REF@[39; 40) | 36 | NAME_REF@39..40 |
37 | IDENT@[39; 40) "S" | 37 | IDENT@39..40 "S" |
38 | WHITESPACE@[40; 41) " " | 38 | WHITESPACE@40..41 " " |
39 | MATCH_ARM_LIST@[41; 43) | 39 | MATCH_ARM_LIST@41..43 |
40 | L_CURLY@[41; 42) "{" | 40 | L_CURLY@41..42 "{" |
41 | R_CURLY@[42; 43) "}" | 41 | R_CURLY@42..43 "}" |
42 | SEMICOLON@[43; 44) ";" | 42 | SEMICOLON@43..44 ";" |
43 | WHITESPACE@[44; 49) "\n " | 43 | WHITESPACE@44..49 "\n " |
44 | EXPR_STMT@[49; 71) | 44 | EXPR_STMT@49..71 |
45 | MATCH_EXPR@[49; 70) | 45 | MATCH_EXPR@49..70 |
46 | MATCH_KW@[49; 54) "match" | 46 | MATCH_KW@49..54 "match" |
47 | WHITESPACE@[54; 55) " " | 47 | WHITESPACE@54..55 " " |
48 | BLOCK_EXPR@[55; 58) | 48 | BLOCK_EXPR@55..58 |
49 | BLOCK@[55; 58) | 49 | BLOCK@55..58 |
50 | L_CURLY@[55; 56) "{" | 50 | L_CURLY@55..56 "{" |
51 | WHITESPACE@[56; 57) " " | 51 | WHITESPACE@56..57 " " |
52 | R_CURLY@[57; 58) "}" | 52 | R_CURLY@57..58 "}" |
53 | WHITESPACE@[58; 59) " " | 53 | WHITESPACE@58..59 " " |
54 | MATCH_ARM_LIST@[59; 70) | 54 | MATCH_ARM_LIST@59..70 |
55 | L_CURLY@[59; 60) "{" | 55 | L_CURLY@59..60 "{" |
56 | WHITESPACE@[60; 61) " " | 56 | WHITESPACE@60..61 " " |
57 | MATCH_ARM@[61; 68) | 57 | MATCH_ARM@61..68 |
58 | PLACEHOLDER_PAT@[61; 62) | 58 | PLACEHOLDER_PAT@61..62 |
59 | UNDERSCORE@[61; 62) "_" | 59 | UNDERSCORE@61..62 "_" |
60 | WHITESPACE@[62; 63) " " | 60 | WHITESPACE@62..63 " " |
61 | FAT_ARROW@[63; 65) "=>" | 61 | FAT_ARROW@63..65 "=>" |
62 | WHITESPACE@[65; 66) " " | 62 | WHITESPACE@65..66 " " |
63 | TUPLE_EXPR@[66; 68) | 63 | TUPLE_EXPR@66..68 |
64 | L_PAREN@[66; 67) "(" | 64 | L_PAREN@66..67 "(" |
65 | R_PAREN@[67; 68) ")" | 65 | R_PAREN@67..68 ")" |
66 | WHITESPACE@[68; 69) " " | 66 | WHITESPACE@68..69 " " |
67 | R_CURLY@[69; 70) "}" | 67 | R_CURLY@69..70 "}" |
68 | SEMICOLON@[70; 71) ";" | 68 | SEMICOLON@70..71 ";" |
69 | WHITESPACE@[71; 76) "\n " | 69 | WHITESPACE@71..76 "\n " |
70 | EXPR_STMT@[76; 94) | 70 | EXPR_STMT@76..94 |
71 | MATCH_EXPR@[76; 93) | 71 | MATCH_EXPR@76..93 |
72 | MATCH_KW@[76; 81) "match" | 72 | MATCH_KW@76..81 "match" |
73 | WHITESPACE@[81; 82) " " | 73 | WHITESPACE@81..82 " " |
74 | BLOCK_EXPR@[82; 90) | 74 | BLOCK_EXPR@82..90 |
75 | BLOCK@[82; 90) | 75 | BLOCK@82..90 |
76 | L_CURLY@[82; 83) "{" | 76 | L_CURLY@82..83 "{" |
77 | WHITESPACE@[83; 84) " " | 77 | WHITESPACE@83..84 " " |
78 | RECORD_LIT@[84; 88) | 78 | RECORD_LIT@84..88 |
79 | PATH@[84; 85) | 79 | PATH@84..85 |
80 | PATH_SEGMENT@[84; 85) | 80 | PATH_SEGMENT@84..85 |
81 | NAME_REF@[84; 85) | 81 | NAME_REF@84..85 |
82 | IDENT@[84; 85) "S" | 82 | IDENT@84..85 "S" |
83 | WHITESPACE@[85; 86) " " | 83 | WHITESPACE@85..86 " " |
84 | RECORD_FIELD_LIST@[86; 88) | 84 | RECORD_FIELD_LIST@86..88 |
85 | L_CURLY@[86; 87) "{" | 85 | L_CURLY@86..87 "{" |
86 | R_CURLY@[87; 88) "}" | 86 | R_CURLY@87..88 "}" |
87 | WHITESPACE@[88; 89) " " | 87 | WHITESPACE@88..89 " " |
88 | R_CURLY@[89; 90) "}" | 88 | R_CURLY@89..90 "}" |
89 | WHITESPACE@[90; 91) " " | 89 | WHITESPACE@90..91 " " |
90 | MATCH_ARM_LIST@[91; 93) | 90 | MATCH_ARM_LIST@91..93 |
91 | L_CURLY@[91; 92) "{" | 91 | L_CURLY@91..92 "{" |
92 | R_CURLY@[92; 93) "}" | 92 | R_CURLY@92..93 "}" |
93 | SEMICOLON@[93; 94) ";" | 93 | SEMICOLON@93..94 ";" |
94 | WHITESPACE@[94; 95) "\n" | 94 | WHITESPACE@94..95 "\n" |
95 | R_CURLY@[95; 96) "}" | 95 | R_CURLY@95..96 "}" |
96 | WHITESPACE@[96; 97) "\n" | 96 | WHITESPACE@96..97 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast index 084efaee2..b8171dc9c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | FN_DEF@[0; 39) | 2 | FN_DEF@0..39 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 39) | 11 | BLOCK_EXPR@9..39 |
12 | BLOCK@[9; 39) | 12 | BLOCK@9..39 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 22) | 15 | EXPR_STMT@15..22 |
16 | RETURN_EXPR@[15; 21) | 16 | RETURN_EXPR@15..21 |
17 | RETURN_KW@[15; 21) "return" | 17 | RETURN_KW@15..21 "return" |
18 | SEMICOLON@[21; 22) ";" | 18 | SEMICOLON@21..22 ";" |
19 | WHITESPACE@[22; 27) "\n " | 19 | WHITESPACE@22..27 "\n " |
20 | EXPR_STMT@[27; 37) | 20 | EXPR_STMT@27..37 |
21 | RETURN_EXPR@[27; 36) | 21 | RETURN_EXPR@27..36 |
22 | RETURN_KW@[27; 33) "return" | 22 | RETURN_KW@27..33 "return" |
23 | WHITESPACE@[33; 34) " " | 23 | WHITESPACE@33..34 " " |
24 | LITERAL@[34; 36) | 24 | LITERAL@34..36 |
25 | INT_NUMBER@[34; 36) "92" | 25 | INT_NUMBER@34..36 "92" |
26 | SEMICOLON@[36; 37) ";" | 26 | SEMICOLON@36..37 ";" |
27 | WHITESPACE@[37; 38) "\n" | 27 | WHITESPACE@37..38 "\n" |
28 | R_CURLY@[38; 39) "}" | 28 | R_CURLY@38..39 "}" |
29 | WHITESPACE@[39; 40) "\n" | 29 | WHITESPACE@39..40 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast index 64150b774..cc871ac0c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast | |||
@@ -1,20 +1,20 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | TYPE_ALIAS_DEF@[0; 20) | 2 | TYPE_ALIAS_DEF@0..20 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 11) | 5 | NAME@5..11 |
6 | IDENT@[5; 11) "Result" | 6 | IDENT@5..11 "Result" |
7 | TYPE_PARAM_LIST@[11; 14) | 7 | TYPE_PARAM_LIST@11..14 |
8 | L_ANGLE@[11; 12) "<" | 8 | L_ANGLE@11..12 "<" |
9 | TYPE_PARAM@[12; 13) | 9 | TYPE_PARAM@12..13 |
10 | NAME@[12; 13) | 10 | NAME@12..13 |
11 | IDENT@[12; 13) "T" | 11 | IDENT@12..13 "T" |
12 | R_ANGLE@[13; 14) ">" | 12 | R_ANGLE@13..14 ">" |
13 | WHITESPACE@[14; 15) " " | 13 | WHITESPACE@14..15 " " |
14 | EQ@[15; 16) "=" | 14 | EQ@15..16 "=" |
15 | WHITESPACE@[16; 17) " " | 15 | WHITESPACE@16..17 " " |
16 | TUPLE_TYPE@[17; 19) | 16 | TUPLE_TYPE@17..19 |
17 | L_PAREN@[17; 18) "(" | 17 | L_PAREN@17..18 "(" |
18 | R_PAREN@[18; 19) ")" | 18 | R_PAREN@18..19 ")" |
19 | SEMICOLON@[19; 20) ";" | 19 | SEMICOLON@19..20 ";" |
20 | WHITESPACE@[20; 21) "\n" | 20 | WHITESPACE@20..21 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast index cbd2d5fbf..c2a73ef25 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast | |||
@@ -1,63 +1,63 @@ | |||
1 | SOURCE_FILE@[0; 84) | 1 | SOURCE_FILE@0..84 |
2 | FN_DEF@[0; 83) | 2 | FN_DEF@0..83 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 83) | 11 | BLOCK_EXPR@9..83 |
12 | BLOCK@[9; 83) | 12 | BLOCK@9..83 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 81) | 15 | MATCH_EXPR@15..81 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 81) | 22 | MATCH_ARM_LIST@24..81 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | MATCH_ARM@[34; 41) | 25 | MATCH_ARM@34..41 |
26 | PLACEHOLDER_PAT@[34; 35) | 26 | PLACEHOLDER_PAT@34..35 |
27 | UNDERSCORE@[34; 35) "_" | 27 | UNDERSCORE@34..35 "_" |
28 | WHITESPACE@[35; 36) " " | 28 | WHITESPACE@35..36 " " |
29 | FAT_ARROW@[36; 38) "=>" | 29 | FAT_ARROW@36..38 "=>" |
30 | WHITESPACE@[38; 39) " " | 30 | WHITESPACE@38..39 " " |
31 | BLOCK_EXPR@[39; 41) | 31 | BLOCK_EXPR@39..41 |
32 | BLOCK@[39; 41) | 32 | BLOCK@39..41 |
33 | L_CURLY@[39; 40) "{" | 33 | L_CURLY@39..40 "{" |
34 | R_CURLY@[40; 41) "}" | 34 | R_CURLY@40..41 "}" |
35 | WHITESPACE@[41; 50) "\n " | 35 | WHITESPACE@41..50 "\n " |
36 | MATCH_ARM@[50; 58) | 36 | MATCH_ARM@50..58 |
37 | TUPLE_PAT@[50; 52) | 37 | TUPLE_PAT@50..52 |
38 | L_PAREN@[50; 51) "(" | 38 | L_PAREN@50..51 "(" |
39 | R_PAREN@[51; 52) ")" | 39 | R_PAREN@51..52 ")" |
40 | WHITESPACE@[52; 53) " " | 40 | WHITESPACE@52..53 " " |
41 | FAT_ARROW@[53; 55) "=>" | 41 | FAT_ARROW@53..55 "=>" |
42 | WHITESPACE@[55; 56) " " | 42 | WHITESPACE@55..56 " " |
43 | BLOCK_EXPR@[56; 58) | 43 | BLOCK_EXPR@56..58 |
44 | BLOCK@[56; 58) | 44 | BLOCK@56..58 |
45 | L_CURLY@[56; 57) "{" | 45 | L_CURLY@56..57 "{" |
46 | R_CURLY@[57; 58) "}" | 46 | R_CURLY@57..58 "}" |
47 | WHITESPACE@[58; 67) "\n " | 47 | WHITESPACE@58..67 "\n " |
48 | MATCH_ARM@[67; 75) | 48 | MATCH_ARM@67..75 |
49 | SLICE_PAT@[67; 69) | 49 | SLICE_PAT@67..69 |
50 | L_BRACK@[67; 68) "[" | 50 | L_BRACK@67..68 "[" |
51 | R_BRACK@[68; 69) "]" | 51 | R_BRACK@68..69 "]" |
52 | WHITESPACE@[69; 70) " " | 52 | WHITESPACE@69..70 " " |
53 | FAT_ARROW@[70; 72) "=>" | 53 | FAT_ARROW@70..72 "=>" |
54 | WHITESPACE@[72; 73) " " | 54 | WHITESPACE@72..73 " " |
55 | BLOCK_EXPR@[73; 75) | 55 | BLOCK_EXPR@73..75 |
56 | BLOCK@[73; 75) | 56 | BLOCK@73..75 |
57 | L_CURLY@[73; 74) "{" | 57 | L_CURLY@73..74 "{" |
58 | R_CURLY@[74; 75) "}" | 58 | R_CURLY@74..75 "}" |
59 | WHITESPACE@[75; 80) "\n " | 59 | WHITESPACE@75..80 "\n " |
60 | R_CURLY@[80; 81) "}" | 60 | R_CURLY@80..81 "}" |
61 | WHITESPACE@[81; 82) "\n" | 61 | WHITESPACE@81..82 "\n" |
62 | R_CURLY@[82; 83) "}" | 62 | R_CURLY@82..83 "}" |
63 | WHITESPACE@[83; 84) "\n" | 63 | WHITESPACE@83..84 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast index 5c7cb4a88..39a86d002 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast | |||
@@ -1,90 +1,90 @@ | |||
1 | SOURCE_FILE@[0; 65) | 1 | SOURCE_FILE@0..65 |
2 | FN_DEF@[0; 9) | 2 | FN_DEF@0..9 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | BLOCK_EXPR@[7; 9) | 11 | BLOCK_EXPR@7..9 |
12 | BLOCK@[7; 9) | 12 | BLOCK@7..9 |
13 | L_CURLY@[7; 8) "{" | 13 | L_CURLY@7..8 "{" |
14 | R_CURLY@[8; 9) "}" | 14 | R_CURLY@8..9 "}" |
15 | WHITESPACE@[9; 10) "\n" | 15 | WHITESPACE@9..10 "\n" |
16 | FN_DEF@[10; 31) | 16 | FN_DEF@10..31 |
17 | FN_KW@[10; 12) "fn" | 17 | FN_KW@10..12 "fn" |
18 | WHITESPACE@[12; 13) " " | 18 | WHITESPACE@12..13 " " |
19 | NAME@[13; 14) | 19 | NAME@13..14 |
20 | IDENT@[13; 14) "b" | 20 | IDENT@13..14 "b" |
21 | PARAM_LIST@[14; 16) | 21 | PARAM_LIST@14..16 |
22 | L_PAREN@[14; 15) "(" | 22 | L_PAREN@14..15 "(" |
23 | R_PAREN@[15; 16) ")" | 23 | R_PAREN@15..16 ")" |
24 | WHITESPACE@[16; 17) " " | 24 | WHITESPACE@16..17 " " |
25 | BLOCK_EXPR@[17; 31) | 25 | BLOCK_EXPR@17..31 |
26 | BLOCK@[17; 31) | 26 | BLOCK@17..31 |
27 | L_CURLY@[17; 18) "{" | 27 | L_CURLY@17..18 "{" |
28 | WHITESPACE@[18; 19) " " | 28 | WHITESPACE@18..19 " " |
29 | LET_STMT@[19; 29) | 29 | LET_STMT@19..29 |
30 | LET_KW@[19; 22) "let" | 30 | LET_KW@19..22 "let" |
31 | WHITESPACE@[22; 23) " " | 31 | WHITESPACE@22..23 " " |
32 | PLACEHOLDER_PAT@[23; 24) | 32 | PLACEHOLDER_PAT@23..24 |
33 | UNDERSCORE@[23; 24) "_" | 33 | UNDERSCORE@23..24 "_" |
34 | WHITESPACE@[24; 25) " " | 34 | WHITESPACE@24..25 " " |
35 | EQ@[25; 26) "=" | 35 | EQ@25..26 "=" |
36 | WHITESPACE@[26; 27) " " | 36 | WHITESPACE@26..27 " " |
37 | LITERAL@[27; 28) | 37 | LITERAL@27..28 |
38 | INT_NUMBER@[27; 28) "1" | 38 | INT_NUMBER@27..28 "1" |
39 | SEMICOLON@[28; 29) ";" | 39 | SEMICOLON@28..29 ";" |
40 | WHITESPACE@[29; 30) " " | 40 | WHITESPACE@29..30 " " |
41 | R_CURLY@[30; 31) "}" | 41 | R_CURLY@30..31 "}" |
42 | WHITESPACE@[31; 32) "\n" | 42 | WHITESPACE@31..32 "\n" |
43 | FN_DEF@[32; 48) | 43 | FN_DEF@32..48 |
44 | FN_KW@[32; 34) "fn" | 44 | FN_KW@32..34 "fn" |
45 | WHITESPACE@[34; 35) " " | 45 | WHITESPACE@34..35 " " |
46 | NAME@[35; 36) | 46 | NAME@35..36 |
47 | IDENT@[35; 36) "c" | 47 | IDENT@35..36 "c" |
48 | PARAM_LIST@[36; 38) | 48 | PARAM_LIST@36..38 |
49 | L_PAREN@[36; 37) "(" | 49 | L_PAREN@36..37 "(" |
50 | R_PAREN@[37; 38) ")" | 50 | R_PAREN@37..38 ")" |
51 | WHITESPACE@[38; 39) " " | 51 | WHITESPACE@38..39 " " |
52 | BLOCK_EXPR@[39; 48) | 52 | BLOCK_EXPR@39..48 |
53 | BLOCK@[39; 48) | 53 | BLOCK@39..48 |
54 | L_CURLY@[39; 40) "{" | 54 | L_CURLY@39..40 "{" |
55 | WHITESPACE@[40; 41) " " | 55 | WHITESPACE@40..41 " " |
56 | EXPR_STMT@[41; 43) | 56 | EXPR_STMT@41..43 |
57 | LITERAL@[41; 42) | 57 | LITERAL@41..42 |
58 | INT_NUMBER@[41; 42) "1" | 58 | INT_NUMBER@41..42 "1" |
59 | SEMICOLON@[42; 43) ";" | 59 | SEMICOLON@42..43 ";" |
60 | WHITESPACE@[43; 44) " " | 60 | WHITESPACE@43..44 " " |
61 | EXPR_STMT@[44; 46) | 61 | EXPR_STMT@44..46 |
62 | LITERAL@[44; 45) | 62 | LITERAL@44..45 |
63 | INT_NUMBER@[44; 45) "2" | 63 | INT_NUMBER@44..45 "2" |
64 | SEMICOLON@[45; 46) ";" | 64 | SEMICOLON@45..46 ";" |
65 | WHITESPACE@[46; 47) " " | 65 | WHITESPACE@46..47 " " |
66 | R_CURLY@[47; 48) "}" | 66 | R_CURLY@47..48 "}" |
67 | WHITESPACE@[48; 49) "\n" | 67 | WHITESPACE@48..49 "\n" |
68 | FN_DEF@[49; 64) | 68 | FN_DEF@49..64 |
69 | FN_KW@[49; 51) "fn" | 69 | FN_KW@49..51 "fn" |
70 | WHITESPACE@[51; 52) " " | 70 | WHITESPACE@51..52 " " |
71 | NAME@[52; 53) | 71 | NAME@52..53 |
72 | IDENT@[52; 53) "d" | 72 | IDENT@52..53 "d" |
73 | PARAM_LIST@[53; 55) | 73 | PARAM_LIST@53..55 |
74 | L_PAREN@[53; 54) "(" | 74 | L_PAREN@53..54 "(" |
75 | R_PAREN@[54; 55) ")" | 75 | R_PAREN@54..55 ")" |
76 | WHITESPACE@[55; 56) " " | 76 | WHITESPACE@55..56 " " |
77 | BLOCK_EXPR@[56; 64) | 77 | BLOCK_EXPR@56..64 |
78 | BLOCK@[56; 64) | 78 | BLOCK@56..64 |
79 | L_CURLY@[56; 57) "{" | 79 | L_CURLY@56..57 "{" |
80 | WHITESPACE@[57; 58) " " | 80 | WHITESPACE@57..58 " " |
81 | EXPR_STMT@[58; 60) | 81 | EXPR_STMT@58..60 |
82 | LITERAL@[58; 59) | 82 | LITERAL@58..59 |
83 | INT_NUMBER@[58; 59) "1" | 83 | INT_NUMBER@58..59 "1" |
84 | SEMICOLON@[59; 60) ";" | 84 | SEMICOLON@59..60 ";" |
85 | WHITESPACE@[60; 61) " " | 85 | WHITESPACE@60..61 " " |
86 | LITERAL@[61; 62) | 86 | LITERAL@61..62 |
87 | INT_NUMBER@[61; 62) "2" | 87 | INT_NUMBER@61..62 "2" |
88 | WHITESPACE@[62; 63) " " | 88 | WHITESPACE@62..63 " " |
89 | R_CURLY@[63; 64) "}" | 89 | R_CURLY@63..64 "}" |
90 | WHITESPACE@[64; 65) "\n" | 90 | WHITESPACE@64..65 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast index 8e4b63f02..9621ba59e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast | |||
@@ -1,40 +1,40 @@ | |||
1 | SOURCE_FILE@[0; 29) | 1 | SOURCE_FILE@0..29 |
2 | FN_DEF@[0; 28) | 2 | FN_DEF@0..28 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | TYPE_PARAM_LIST@[6; 9) | 7 | TYPE_PARAM_LIST@6..9 |
8 | L_ANGLE@[6; 7) "<" | 8 | L_ANGLE@6..7 "<" |
9 | TYPE_PARAM@[7; 8) | 9 | TYPE_PARAM@7..8 |
10 | NAME@[7; 8) | 10 | NAME@7..8 |
11 | IDENT@[7; 8) "T" | 11 | IDENT@7..8 "T" |
12 | R_ANGLE@[8; 9) ">" | 12 | R_ANGLE@8..9 ">" |
13 | PARAM_LIST@[9; 11) | 13 | PARAM_LIST@9..11 |
14 | L_PAREN@[9; 10) "(" | 14 | L_PAREN@9..10 "(" |
15 | R_PAREN@[10; 11) ")" | 15 | R_PAREN@10..11 ")" |
16 | WHITESPACE@[11; 12) " " | 16 | WHITESPACE@11..12 " " |
17 | WHERE_CLAUSE@[12; 25) | 17 | WHERE_CLAUSE@12..25 |
18 | WHERE_KW@[12; 17) "where" | 18 | WHERE_KW@12..17 "where" |
19 | WHITESPACE@[17; 18) " " | 19 | WHITESPACE@17..18 " " |
20 | WHERE_PRED@[18; 25) | 20 | WHERE_PRED@18..25 |
21 | PATH_TYPE@[18; 19) | 21 | PATH_TYPE@18..19 |
22 | PATH@[18; 19) | 22 | PATH@18..19 |
23 | PATH_SEGMENT@[18; 19) | 23 | PATH_SEGMENT@18..19 |
24 | NAME_REF@[18; 19) | 24 | NAME_REF@18..19 |
25 | IDENT@[18; 19) "T" | 25 | IDENT@18..19 "T" |
26 | COLON@[19; 20) ":" | 26 | COLON@19..20 ":" |
27 | WHITESPACE@[20; 21) " " | 27 | WHITESPACE@20..21 " " |
28 | TYPE_BOUND_LIST@[21; 25) | 28 | TYPE_BOUND_LIST@21..25 |
29 | TYPE_BOUND@[21; 25) | 29 | TYPE_BOUND@21..25 |
30 | PATH_TYPE@[21; 25) | 30 | PATH_TYPE@21..25 |
31 | PATH@[21; 25) | 31 | PATH@21..25 |
32 | PATH_SEGMENT@[21; 25) | 32 | PATH_SEGMENT@21..25 |
33 | NAME_REF@[21; 25) | 33 | NAME_REF@21..25 |
34 | IDENT@[21; 25) "Copy" | 34 | IDENT@21..25 "Copy" |
35 | WHITESPACE@[25; 26) " " | 35 | WHITESPACE@25..26 " " |
36 | BLOCK_EXPR@[26; 28) | 36 | BLOCK_EXPR@26..28 |
37 | BLOCK@[26; 28) | 37 | BLOCK@26..28 |
38 | L_CURLY@[26; 27) "{" | 38 | L_CURLY@26..27 "{" |
39 | R_CURLY@[27; 28) "}" | 39 | R_CURLY@27..28 "}" |
40 | WHITESPACE@[28; 29) "\n" | 40 | WHITESPACE@28..29 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast index bb9f674e1..ed9d62c5f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast | |||
@@ -1,26 +1,26 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | FN_DEF@[0; 20) | 2 | FN_DEF@0..20 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 20) | 11 | BLOCK_EXPR@9..20 |
12 | BLOCK@[9; 20) | 12 | BLOCK@9..20 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 18) | 15 | EXPR_STMT@15..18 |
16 | TRY_EXPR@[15; 17) | 16 | TRY_EXPR@15..17 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "x" | 21 | IDENT@15..16 "x" |
22 | QUESTION@[16; 17) "?" | 22 | QUESTION@16..17 "?" |
23 | SEMICOLON@[17; 18) ";" | 23 | SEMICOLON@17..18 ";" |
24 | WHITESPACE@[18; 19) "\n" | 24 | WHITESPACE@18..19 "\n" |
25 | R_CURLY@[19; 20) "}" | 25 | R_CURLY@19..20 "}" |
26 | WHITESPACE@[20; 21) "\n" | 26 | WHITESPACE@20..21 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast index 9a38192d9..a08e16fab 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | TYPE_ALIAS_DEF@[0; 15) | 2 | TYPE_ALIAS_DEF@0..15 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 8) | 5 | NAME@5..8 |
6 | IDENT@[5; 8) "Foo" | 6 | IDENT@5..8 "Foo" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | EQ@[9; 10) "=" | 8 | EQ@9..10 "=" |
9 | WHITESPACE@[10; 11) " " | 9 | WHITESPACE@10..11 " " |
10 | PATH_TYPE@[11; 14) | 10 | PATH_TYPE@11..14 |
11 | PATH@[11; 14) | 11 | PATH@11..14 |
12 | PATH_SEGMENT@[11; 14) | 12 | PATH_SEGMENT@11..14 |
13 | NAME_REF@[11; 14) | 13 | NAME_REF@11..14 |
14 | IDENT@[11; 14) "Bar" | 14 | IDENT@11..14 "Bar" |
15 | SEMICOLON@[14; 15) ";" | 15 | SEMICOLON@14..15 ";" |
16 | WHITESPACE@[15; 16) "\n" | 16 | WHITESPACE@15..16 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast index 4c2863ba7..a00ab40f9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast | |||
@@ -1,14 +1,14 @@ | |||
1 | SOURCE_FILE@[0; 12) | 1 | SOURCE_FILE@0..12 |
2 | IMPL_DEF@[0; 11) | 2 | IMPL_DEF@0..11 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 8) | 5 | PATH_TYPE@5..8 |
6 | PATH@[5; 8) | 6 | PATH@5..8 |
7 | PATH_SEGMENT@[5; 8) | 7 | PATH_SEGMENT@5..8 |
8 | NAME_REF@[5; 8) | 8 | NAME_REF@5..8 |
9 | IDENT@[5; 8) "Foo" | 9 | IDENT@5..8 "Foo" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | ITEM_LIST@[9; 11) | 11 | ITEM_LIST@9..11 |
12 | L_CURLY@[9; 10) "{" | 12 | L_CURLY@9..10 "{" |
13 | R_CURLY@[10; 11) "}" | 13 | R_CURLY@10..11 "}" |
14 | WHITESPACE@[11; 12) "\n" | 14 | WHITESPACE@11..12 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast index b8bafc220..5141ce70d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast | |||
@@ -1,96 +1,96 @@ | |||
1 | SOURCE_FILE@[0; 89) | 1 | SOURCE_FILE@0..89 |
2 | FN_DEF@[0; 88) | 2 | FN_DEF@0..88 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 88) | 11 | BLOCK_EXPR@9..88 |
12 | BLOCK@[9; 88) | 12 | BLOCK@9..88 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 27) | 15 | LET_STMT@15..27 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | BIND_PAT@[19; 20) | 18 | BIND_PAT@19..20 |
19 | NAME@[19; 20) | 19 | NAME@19..20 |
20 | IDENT@[19; 20) "x" | 20 | IDENT@19..20 "x" |
21 | WHITESPACE@[20; 21) " " | 21 | WHITESPACE@20..21 " " |
22 | EQ@[21; 22) "=" | 22 | EQ@21..22 "=" |
23 | WHITESPACE@[22; 23) " " | 23 | WHITESPACE@22..23 " " |
24 | RANGE_EXPR@[23; 26) | 24 | RANGE_EXPR@23..26 |
25 | LITERAL@[23; 24) | 25 | LITERAL@23..24 |
26 | INT_NUMBER@[23; 24) "1" | 26 | INT_NUMBER@23..24 "1" |
27 | DOT2@[24; 26) ".." | 27 | DOT2@24..26 ".." |
28 | SEMICOLON@[26; 27) ";" | 28 | SEMICOLON@26..27 ";" |
29 | WHITESPACE@[27; 32) "\n " | 29 | WHITESPACE@27..32 "\n " |
30 | EXPR_STMT@[32; 54) | 30 | EXPR_STMT@32..54 |
31 | MATCH_EXPR@[32; 53) | 31 | MATCH_EXPR@32..53 |
32 | MATCH_KW@[32; 37) "match" | 32 | MATCH_KW@32..37 "match" |
33 | WHITESPACE@[37; 38) " " | 33 | WHITESPACE@37..38 " " |
34 | RANGE_EXPR@[38; 41) | 34 | RANGE_EXPR@38..41 |
35 | LITERAL@[38; 39) | 35 | LITERAL@38..39 |
36 | INT_NUMBER@[38; 39) "1" | 36 | INT_NUMBER@38..39 "1" |
37 | DOT2@[39; 41) ".." | 37 | DOT2@39..41 ".." |
38 | WHITESPACE@[41; 42) " " | 38 | WHITESPACE@41..42 " " |
39 | MATCH_ARM_LIST@[42; 53) | 39 | MATCH_ARM_LIST@42..53 |
40 | L_CURLY@[42; 43) "{" | 40 | L_CURLY@42..43 "{" |
41 | WHITESPACE@[43; 44) " " | 41 | WHITESPACE@43..44 " " |
42 | MATCH_ARM@[44; 51) | 42 | MATCH_ARM@44..51 |
43 | PLACEHOLDER_PAT@[44; 45) | 43 | PLACEHOLDER_PAT@44..45 |
44 | UNDERSCORE@[44; 45) "_" | 44 | UNDERSCORE@44..45 "_" |
45 | WHITESPACE@[45; 46) " " | 45 | WHITESPACE@45..46 " " |
46 | FAT_ARROW@[46; 48) "=>" | 46 | FAT_ARROW@46..48 "=>" |
47 | WHITESPACE@[48; 49) " " | 47 | WHITESPACE@48..49 " " |
48 | TUPLE_EXPR@[49; 51) | 48 | TUPLE_EXPR@49..51 |
49 | L_PAREN@[49; 50) "(" | 49 | L_PAREN@49..50 "(" |
50 | R_PAREN@[50; 51) ")" | 50 | R_PAREN@50..51 ")" |
51 | WHITESPACE@[51; 52) " " | 51 | WHITESPACE@51..52 " " |
52 | R_CURLY@[52; 53) "}" | 52 | R_CURLY@52..53 "}" |
53 | SEMICOLON@[53; 54) ";" | 53 | SEMICOLON@53..54 ";" |
54 | WHITESPACE@[54; 59) "\n " | 54 | WHITESPACE@54..59 "\n " |
55 | EXPR_STMT@[59; 86) | 55 | EXPR_STMT@59..86 |
56 | MATCH_EXPR@[59; 85) | 56 | MATCH_EXPR@59..85 |
57 | MATCH_KW@[59; 64) "match" | 57 | MATCH_KW@59..64 "match" |
58 | WHITESPACE@[64; 65) " " | 58 | WHITESPACE@64..65 " " |
59 | RANGE_EXPR@[65; 73) | 59 | RANGE_EXPR@65..73 |
60 | METHOD_CALL_EXPR@[65; 70) | 60 | METHOD_CALL_EXPR@65..70 |
61 | PATH_EXPR@[65; 66) | 61 | PATH_EXPR@65..66 |
62 | PATH@[65; 66) | 62 | PATH@65..66 |
63 | PATH_SEGMENT@[65; 66) | 63 | PATH_SEGMENT@65..66 |
64 | NAME_REF@[65; 66) | 64 | NAME_REF@65..66 |
65 | IDENT@[65; 66) "a" | 65 | IDENT@65..66 "a" |
66 | DOT@[66; 67) "." | 66 | DOT@66..67 "." |
67 | NAME_REF@[67; 68) | 67 | NAME_REF@67..68 |
68 | IDENT@[67; 68) "b" | 68 | IDENT@67..68 "b" |
69 | ARG_LIST@[68; 70) | 69 | ARG_LIST@68..70 |
70 | L_PAREN@[68; 69) "(" | 70 | L_PAREN@68..69 "(" |
71 | R_PAREN@[69; 70) ")" | 71 | R_PAREN@69..70 ")" |
72 | DOT2@[70; 72) ".." | 72 | DOT2@70..72 ".." |
73 | PATH_EXPR@[72; 73) | 73 | PATH_EXPR@72..73 |
74 | PATH@[72; 73) | 74 | PATH@72..73 |
75 | PATH_SEGMENT@[72; 73) | 75 | PATH_SEGMENT@72..73 |
76 | NAME_REF@[72; 73) | 76 | NAME_REF@72..73 |
77 | IDENT@[72; 73) "S" | 77 | IDENT@72..73 "S" |
78 | WHITESPACE@[73; 74) " " | 78 | WHITESPACE@73..74 " " |
79 | MATCH_ARM_LIST@[74; 85) | 79 | MATCH_ARM_LIST@74..85 |
80 | L_CURLY@[74; 75) "{" | 80 | L_CURLY@74..75 "{" |
81 | WHITESPACE@[75; 76) " " | 81 | WHITESPACE@75..76 " " |
82 | MATCH_ARM@[76; 83) | 82 | MATCH_ARM@76..83 |
83 | PLACEHOLDER_PAT@[76; 77) | 83 | PLACEHOLDER_PAT@76..77 |
84 | UNDERSCORE@[76; 77) "_" | 84 | UNDERSCORE@76..77 "_" |
85 | WHITESPACE@[77; 78) " " | 85 | WHITESPACE@77..78 " " |
86 | FAT_ARROW@[78; 80) "=>" | 86 | FAT_ARROW@78..80 "=>" |
87 | WHITESPACE@[80; 81) " " | 87 | WHITESPACE@80..81 " " |
88 | TUPLE_EXPR@[81; 83) | 88 | TUPLE_EXPR@81..83 |
89 | L_PAREN@[81; 82) "(" | 89 | L_PAREN@81..82 "(" |
90 | R_PAREN@[82; 83) ")" | 90 | R_PAREN@82..83 ")" |
91 | WHITESPACE@[83; 84) " " | 91 | WHITESPACE@83..84 " " |
92 | R_CURLY@[84; 85) "}" | 92 | R_CURLY@84..85 "}" |
93 | SEMICOLON@[85; 86) ";" | 93 | SEMICOLON@85..86 ";" |
94 | WHITESPACE@[86; 87) "\n" | 94 | WHITESPACE@86..87 "\n" |
95 | R_CURLY@[87; 88) "}" | 95 | R_CURLY@87..88 "}" |
96 | WHITESPACE@[88; 89) "\n" | 96 | WHITESPACE@88..89 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast index 00c4e4220..cdbe64180 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast | |||
@@ -1,243 +1,243 @@ | |||
1 | SOURCE_FILE@[0; 200) | 1 | SOURCE_FILE@0..200 |
2 | TYPE_ALIAS_DEF@[0; 28) | 2 | TYPE_ALIAS_DEF@0..28 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | FOR_TYPE@[9; 27) | 10 | FOR_TYPE@9..27 |
11 | FOR_KW@[9; 12) "for" | 11 | FOR_KW@9..12 "for" |
12 | TYPE_PARAM_LIST@[12; 16) | 12 | TYPE_PARAM_LIST@12..16 |
13 | L_ANGLE@[12; 13) "<" | 13 | L_ANGLE@12..13 "<" |
14 | LIFETIME_PARAM@[13; 15) | 14 | LIFETIME_PARAM@13..15 |
15 | LIFETIME@[13; 15) "\'a" | 15 | LIFETIME@13..15 "\'a" |
16 | R_ANGLE@[15; 16) ">" | 16 | R_ANGLE@15..16 ">" |
17 | WHITESPACE@[16; 17) " " | 17 | WHITESPACE@16..17 " " |
18 | FN_POINTER_TYPE@[17; 27) | 18 | FN_POINTER_TYPE@17..27 |
19 | FN_KW@[17; 19) "fn" | 19 | FN_KW@17..19 "fn" |
20 | PARAM_LIST@[19; 21) | 20 | PARAM_LIST@19..21 |
21 | L_PAREN@[19; 20) "(" | 21 | L_PAREN@19..20 "(" |
22 | R_PAREN@[20; 21) ")" | 22 | R_PAREN@20..21 ")" |
23 | WHITESPACE@[21; 22) " " | 23 | WHITESPACE@21..22 " " |
24 | RET_TYPE@[22; 27) | 24 | RET_TYPE@22..27 |
25 | THIN_ARROW@[22; 24) "->" | 25 | THIN_ARROW@22..24 "->" |
26 | WHITESPACE@[24; 25) " " | 26 | WHITESPACE@24..25 " " |
27 | TUPLE_TYPE@[25; 27) | 27 | TUPLE_TYPE@25..27 |
28 | L_PAREN@[25; 26) "(" | 28 | L_PAREN@25..26 "(" |
29 | R_PAREN@[26; 27) ")" | 29 | R_PAREN@26..27 ")" |
30 | SEMICOLON@[27; 28) ";" | 30 | SEMICOLON@27..28 ";" |
31 | WHITESPACE@[28; 29) "\n" | 31 | WHITESPACE@28..29 "\n" |
32 | FN_DEF@[29; 79) | 32 | FN_DEF@29..79 |
33 | FN_KW@[29; 31) "fn" | 33 | FN_KW@29..31 "fn" |
34 | WHITESPACE@[31; 32) " " | 34 | WHITESPACE@31..32 " " |
35 | NAME@[32; 35) | 35 | NAME@32..35 |
36 | IDENT@[32; 35) "foo" | 36 | IDENT@32..35 "foo" |
37 | TYPE_PARAM_LIST@[35; 38) | 37 | TYPE_PARAM_LIST@35..38 |
38 | L_ANGLE@[35; 36) "<" | 38 | L_ANGLE@35..36 "<" |
39 | TYPE_PARAM@[36; 37) | 39 | TYPE_PARAM@36..37 |
40 | NAME@[36; 37) | 40 | NAME@36..37 |
41 | IDENT@[36; 37) "T" | 41 | IDENT@36..37 "T" |
42 | R_ANGLE@[37; 38) ">" | 42 | R_ANGLE@37..38 ">" |
43 | PARAM_LIST@[38; 46) | 43 | PARAM_LIST@38..46 |
44 | L_PAREN@[38; 39) "(" | 44 | L_PAREN@38..39 "(" |
45 | PARAM@[39; 45) | 45 | PARAM@39..45 |
46 | BIND_PAT@[39; 41) | 46 | BIND_PAT@39..41 |
47 | NAME@[39; 41) | 47 | NAME@39..41 |
48 | IDENT@[39; 41) "_t" | 48 | IDENT@39..41 "_t" |
49 | COLON@[41; 42) ":" | 49 | COLON@41..42 ":" |
50 | WHITESPACE@[42; 43) " " | 50 | WHITESPACE@42..43 " " |
51 | REFERENCE_TYPE@[43; 45) | 51 | REFERENCE_TYPE@43..45 |
52 | AMP@[43; 44) "&" | 52 | AMP@43..44 "&" |
53 | PATH_TYPE@[44; 45) | 53 | PATH_TYPE@44..45 |
54 | PATH@[44; 45) | 54 | PATH@44..45 |
55 | PATH_SEGMENT@[44; 45) | 55 | PATH_SEGMENT@44..45 |
56 | NAME_REF@[44; 45) | 56 | NAME_REF@44..45 |
57 | IDENT@[44; 45) "T" | 57 | IDENT@44..45 "T" |
58 | R_PAREN@[45; 46) ")" | 58 | R_PAREN@45..46 ")" |
59 | WHITESPACE@[46; 47) " " | 59 | WHITESPACE@46..47 " " |
60 | WHERE_CLAUSE@[47; 76) | 60 | WHERE_CLAUSE@47..76 |
61 | WHERE_KW@[47; 52) "where" | 61 | WHERE_KW@47..52 "where" |
62 | WHITESPACE@[52; 53) " " | 62 | WHITESPACE@52..53 " " |
63 | WHERE_PRED@[53; 76) | 63 | WHERE_PRED@53..76 |
64 | FOR_TYPE@[53; 66) | 64 | FOR_TYPE@53..66 |
65 | FOR_KW@[53; 56) "for" | 65 | FOR_KW@53..56 "for" |
66 | TYPE_PARAM_LIST@[56; 60) | 66 | TYPE_PARAM_LIST@56..60 |
67 | L_ANGLE@[56; 57) "<" | 67 | L_ANGLE@56..57 "<" |
68 | LIFETIME_PARAM@[57; 59) | 68 | LIFETIME_PARAM@57..59 |
69 | LIFETIME@[57; 59) "\'a" | 69 | LIFETIME@57..59 "\'a" |
70 | R_ANGLE@[59; 60) ">" | 70 | R_ANGLE@59..60 ">" |
71 | WHITESPACE@[60; 61) " " | 71 | WHITESPACE@60..61 " " |
72 | REFERENCE_TYPE@[61; 66) | 72 | REFERENCE_TYPE@61..66 |
73 | AMP@[61; 62) "&" | 73 | AMP@61..62 "&" |
74 | LIFETIME@[62; 64) "\'a" | 74 | LIFETIME@62..64 "\'a" |
75 | WHITESPACE@[64; 65) " " | 75 | WHITESPACE@64..65 " " |
76 | PATH_TYPE@[65; 66) | 76 | PATH_TYPE@65..66 |
77 | PATH@[65; 66) | 77 | PATH@65..66 |
78 | PATH_SEGMENT@[65; 66) | 78 | PATH_SEGMENT@65..66 |
79 | NAME_REF@[65; 66) | 79 | NAME_REF@65..66 |
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 | TYPE_BOUND_LIST@[68; 76) | 83 | TYPE_BOUND_LIST@68..76 |
84 | TYPE_BOUND@[68; 76) | 84 | TYPE_BOUND@68..76 |
85 | PATH_TYPE@[68; 76) | 85 | PATH_TYPE@68..76 |
86 | PATH@[68; 76) | 86 | PATH@68..76 |
87 | PATH_SEGMENT@[68; 76) | 87 | PATH_SEGMENT@68..76 |
88 | NAME_REF@[68; 76) | 88 | NAME_REF@68..76 |
89 | IDENT@[68; 76) "Iterator" | 89 | IDENT@68..76 "Iterator" |
90 | WHITESPACE@[76; 77) " " | 90 | WHITESPACE@76..77 " " |
91 | BLOCK_EXPR@[77; 79) | 91 | BLOCK_EXPR@77..79 |
92 | BLOCK@[77; 79) | 92 | BLOCK@77..79 |
93 | L_CURLY@[77; 78) "{" | 93 | L_CURLY@77..78 "{" |
94 | R_CURLY@[78; 79) "}" | 94 | R_CURLY@78..79 "}" |
95 | WHITESPACE@[79; 80) "\n" | 95 | WHITESPACE@79..80 "\n" |
96 | FN_DEF@[80; 134) | 96 | FN_DEF@80..134 |
97 | FN_KW@[80; 82) "fn" | 97 | FN_KW@80..82 "fn" |
98 | WHITESPACE@[82; 83) " " | 98 | WHITESPACE@82..83 " " |
99 | NAME@[83; 86) | 99 | NAME@83..86 |
100 | IDENT@[83; 86) "bar" | 100 | IDENT@83..86 "bar" |
101 | TYPE_PARAM_LIST@[86; 89) | 101 | TYPE_PARAM_LIST@86..89 |
102 | L_ANGLE@[86; 87) "<" | 102 | L_ANGLE@86..87 "<" |
103 | TYPE_PARAM@[87; 88) | 103 | TYPE_PARAM@87..88 |
104 | NAME@[87; 88) | 104 | NAME@87..88 |
105 | IDENT@[87; 88) "T" | 105 | IDENT@87..88 "T" |
106 | R_ANGLE@[88; 89) ">" | 106 | R_ANGLE@88..89 ">" |
107 | PARAM_LIST@[89; 97) | 107 | PARAM_LIST@89..97 |
108 | L_PAREN@[89; 90) "(" | 108 | L_PAREN@89..90 "(" |
109 | PARAM@[90; 96) | 109 | PARAM@90..96 |
110 | BIND_PAT@[90; 92) | 110 | BIND_PAT@90..92 |
111 | NAME@[90; 92) | 111 | NAME@90..92 |
112 | IDENT@[90; 92) "_t" | 112 | IDENT@90..92 "_t" |
113 | COLON@[92; 93) ":" | 113 | COLON@92..93 ":" |
114 | WHITESPACE@[93; 94) " " | 114 | WHITESPACE@93..94 " " |
115 | REFERENCE_TYPE@[94; 96) | 115 | REFERENCE_TYPE@94..96 |
116 | AMP@[94; 95) "&" | 116 | AMP@94..95 "&" |
117 | PATH_TYPE@[95; 96) | 117 | PATH_TYPE@95..96 |
118 | PATH@[95; 96) | 118 | PATH@95..96 |
119 | PATH_SEGMENT@[95; 96) | 119 | PATH_SEGMENT@95..96 |
120 | NAME_REF@[95; 96) | 120 | NAME_REF@95..96 |
121 | IDENT@[95; 96) "T" | 121 | IDENT@95..96 "T" |
122 | R_PAREN@[96; 97) ")" | 122 | R_PAREN@96..97 ")" |
123 | WHITESPACE@[97; 98) " " | 123 | WHITESPACE@97..98 " " |
124 | WHERE_CLAUSE@[98; 131) | 124 | WHERE_CLAUSE@98..131 |
125 | WHERE_KW@[98; 103) "where" | 125 | WHERE_KW@98..103 "where" |
126 | WHITESPACE@[103; 104) " " | 126 | WHITESPACE@103..104 " " |
127 | WHERE_PRED@[104; 131) | 127 | WHERE_PRED@104..131 |
128 | FOR_TYPE@[104; 121) | 128 | FOR_TYPE@104..121 |
129 | FOR_KW@[104; 107) "for" | 129 | FOR_KW@104..107 "for" |
130 | TYPE_PARAM_LIST@[107; 111) | 130 | TYPE_PARAM_LIST@107..111 |
131 | L_ANGLE@[107; 108) "<" | 131 | L_ANGLE@107..108 "<" |
132 | LIFETIME_PARAM@[108; 110) | 132 | LIFETIME_PARAM@108..110 |
133 | LIFETIME@[108; 110) "\'a" | 133 | LIFETIME@108..110 "\'a" |
134 | R_ANGLE@[110; 111) ">" | 134 | R_ANGLE@110..111 ">" |
135 | WHITESPACE@[111; 112) " " | 135 | WHITESPACE@111..112 " " |
136 | REFERENCE_TYPE@[112; 121) | 136 | REFERENCE_TYPE@112..121 |
137 | AMP@[112; 113) "&" | 137 | AMP@112..113 "&" |
138 | LIFETIME@[113; 115) "\'a" | 138 | LIFETIME@113..115 "\'a" |
139 | WHITESPACE@[115; 116) " " | 139 | WHITESPACE@115..116 " " |
140 | MUT_KW@[116; 119) "mut" | 140 | MUT_KW@116..119 "mut" |
141 | WHITESPACE@[119; 120) " " | 141 | WHITESPACE@119..120 " " |
142 | PATH_TYPE@[120; 121) | 142 | PATH_TYPE@120..121 |
143 | PATH@[120; 121) | 143 | PATH@120..121 |
144 | PATH_SEGMENT@[120; 121) | 144 | PATH_SEGMENT@120..121 |
145 | NAME_REF@[120; 121) | 145 | NAME_REF@120..121 |
146 | IDENT@[120; 121) "T" | 146 | IDENT@120..121 "T" |
147 | COLON@[121; 122) ":" | 147 | COLON@121..122 ":" |
148 | WHITESPACE@[122; 123) " " | 148 | WHITESPACE@122..123 " " |
149 | TYPE_BOUND_LIST@[123; 131) | 149 | TYPE_BOUND_LIST@123..131 |
150 | TYPE_BOUND@[123; 131) | 150 | TYPE_BOUND@123..131 |
151 | PATH_TYPE@[123; 131) | 151 | PATH_TYPE@123..131 |
152 | PATH@[123; 131) | 152 | PATH@123..131 |
153 | PATH_SEGMENT@[123; 131) | 153 | PATH_SEGMENT@123..131 |
154 | NAME_REF@[123; 131) | 154 | NAME_REF@123..131 |
155 | IDENT@[123; 131) "Iterator" | 155 | IDENT@123..131 "Iterator" |
156 | WHITESPACE@[131; 132) " " | 156 | WHITESPACE@131..132 " " |
157 | BLOCK_EXPR@[132; 134) | 157 | BLOCK_EXPR@132..134 |
158 | BLOCK@[132; 134) | 158 | BLOCK@132..134 |
159 | L_CURLY@[132; 133) "{" | 159 | L_CURLY@132..133 "{" |
160 | R_CURLY@[133; 134) "}" | 160 | R_CURLY@133..134 "}" |
161 | WHITESPACE@[134; 135) "\n" | 161 | WHITESPACE@134..135 "\n" |
162 | FN_DEF@[135; 199) | 162 | FN_DEF@135..199 |
163 | FN_KW@[135; 137) "fn" | 163 | FN_KW@135..137 "fn" |
164 | WHITESPACE@[137; 138) " " | 164 | WHITESPACE@137..138 " " |
165 | NAME@[138; 141) | 165 | NAME@138..141 |
166 | IDENT@[138; 141) "baz" | 166 | IDENT@138..141 "baz" |
167 | TYPE_PARAM_LIST@[141; 144) | 167 | TYPE_PARAM_LIST@141..144 |
168 | L_ANGLE@[141; 142) "<" | 168 | L_ANGLE@141..142 "<" |
169 | TYPE_PARAM@[142; 143) | 169 | TYPE_PARAM@142..143 |
170 | NAME@[142; 143) | 170 | NAME@142..143 |
171 | IDENT@[142; 143) "T" | 171 | IDENT@142..143 "T" |
172 | R_ANGLE@[143; 144) ">" | 172 | R_ANGLE@143..144 ">" |
173 | PARAM_LIST@[144; 152) | 173 | PARAM_LIST@144..152 |
174 | L_PAREN@[144; 145) "(" | 174 | L_PAREN@144..145 "(" |
175 | PARAM@[145; 151) | 175 | PARAM@145..151 |
176 | BIND_PAT@[145; 147) | 176 | BIND_PAT@145..147 |
177 | NAME@[145; 147) | 177 | NAME@145..147 |
178 | IDENT@[145; 147) "_t" | 178 | IDENT@145..147 "_t" |
179 | COLON@[147; 148) ":" | 179 | COLON@147..148 ":" |
180 | WHITESPACE@[148; 149) " " | 180 | WHITESPACE@148..149 " " |
181 | REFERENCE_TYPE@[149; 151) | 181 | REFERENCE_TYPE@149..151 |
182 | AMP@[149; 150) "&" | 182 | AMP@149..150 "&" |
183 | PATH_TYPE@[150; 151) | 183 | PATH_TYPE@150..151 |
184 | PATH@[150; 151) | 184 | PATH@150..151 |
185 | PATH_SEGMENT@[150; 151) | 185 | PATH_SEGMENT@150..151 |
186 | NAME_REF@[150; 151) | 186 | NAME_REF@150..151 |
187 | IDENT@[150; 151) "T" | 187 | IDENT@150..151 "T" |
188 | R_PAREN@[151; 152) ")" | 188 | R_PAREN@151..152 ")" |
189 | WHITESPACE@[152; 153) " " | 189 | WHITESPACE@152..153 " " |
190 | WHERE_CLAUSE@[153; 196) | 190 | WHERE_CLAUSE@153..196 |
191 | WHERE_KW@[153; 158) "where" | 191 | WHERE_KW@153..158 "where" |
192 | WHITESPACE@[158; 159) " " | 192 | WHITESPACE@158..159 " " |
193 | WHERE_PRED@[159; 196) | 193 | WHERE_PRED@159..196 |
194 | FOR_TYPE@[159; 186) | 194 | FOR_TYPE@159..186 |
195 | FOR_KW@[159; 162) "for" | 195 | FOR_KW@159..162 "for" |
196 | TYPE_PARAM_LIST@[162; 166) | 196 | TYPE_PARAM_LIST@162..166 |
197 | L_ANGLE@[162; 163) "<" | 197 | L_ANGLE@162..163 "<" |
198 | LIFETIME_PARAM@[163; 165) | 198 | LIFETIME_PARAM@163..165 |
199 | LIFETIME@[163; 165) "\'a" | 199 | LIFETIME@163..165 "\'a" |
200 | R_ANGLE@[165; 166) ">" | 200 | R_ANGLE@165..166 ">" |
201 | WHITESPACE@[166; 167) " " | 201 | WHITESPACE@166..167 " " |
202 | PATH_TYPE@[167; 186) | 202 | PATH_TYPE@167..186 |
203 | PATH@[167; 186) | 203 | PATH@167..186 |
204 | PATH@[167; 181) | 204 | PATH@167..181 |
205 | PATH_SEGMENT@[167; 181) | 205 | PATH_SEGMENT@167..181 |
206 | L_ANGLE@[167; 168) "<" | 206 | L_ANGLE@167..168 "<" |
207 | REFERENCE_TYPE@[168; 173) | 207 | REFERENCE_TYPE@168..173 |
208 | AMP@[168; 169) "&" | 208 | AMP@168..169 "&" |
209 | LIFETIME@[169; 171) "\'a" | 209 | LIFETIME@169..171 "\'a" |
210 | WHITESPACE@[171; 172) " " | 210 | WHITESPACE@171..172 " " |
211 | PATH_TYPE@[172; 173) | 211 | PATH_TYPE@172..173 |
212 | PATH@[172; 173) | 212 | PATH@172..173 |
213 | PATH_SEGMENT@[172; 173) | 213 | PATH_SEGMENT@172..173 |
214 | NAME_REF@[172; 173) | 214 | NAME_REF@172..173 |
215 | IDENT@[172; 173) "T" | 215 | IDENT@172..173 "T" |
216 | WHITESPACE@[173; 174) " " | 216 | WHITESPACE@173..174 " " |
217 | AS_KW@[174; 176) "as" | 217 | AS_KW@174..176 "as" |
218 | WHITESPACE@[176; 177) " " | 218 | WHITESPACE@176..177 " " |
219 | PATH_TYPE@[177; 180) | 219 | PATH_TYPE@177..180 |
220 | PATH@[177; 180) | 220 | PATH@177..180 |
221 | PATH_SEGMENT@[177; 180) | 221 | PATH_SEGMENT@177..180 |
222 | NAME_REF@[177; 180) | 222 | NAME_REF@177..180 |
223 | IDENT@[177; 180) "Baz" | 223 | IDENT@177..180 "Baz" |
224 | R_ANGLE@[180; 181) ">" | 224 | R_ANGLE@180..181 ">" |
225 | COLON2@[181; 183) "::" | 225 | COLON2@181..183 "::" |
226 | PATH_SEGMENT@[183; 186) | 226 | PATH_SEGMENT@183..186 |
227 | NAME_REF@[183; 186) | 227 | NAME_REF@183..186 |
228 | IDENT@[183; 186) "Foo" | 228 | IDENT@183..186 "Foo" |
229 | COLON@[186; 187) ":" | 229 | COLON@186..187 ":" |
230 | WHITESPACE@[187; 188) " " | 230 | WHITESPACE@187..188 " " |
231 | TYPE_BOUND_LIST@[188; 196) | 231 | TYPE_BOUND_LIST@188..196 |
232 | TYPE_BOUND@[188; 196) | 232 | TYPE_BOUND@188..196 |
233 | PATH_TYPE@[188; 196) | 233 | PATH_TYPE@188..196 |
234 | PATH@[188; 196) | 234 | PATH@188..196 |
235 | PATH_SEGMENT@[188; 196) | 235 | PATH_SEGMENT@188..196 |
236 | NAME_REF@[188; 196) | 236 | NAME_REF@188..196 |
237 | IDENT@[188; 196) "Iterator" | 237 | IDENT@188..196 "Iterator" |
238 | WHITESPACE@[196; 197) " " | 238 | WHITESPACE@196..197 " " |
239 | BLOCK_EXPR@[197; 199) | 239 | BLOCK_EXPR@197..199 |
240 | BLOCK@[197; 199) | 240 | BLOCK@197..199 |
241 | L_CURLY@[197; 198) "{" | 241 | L_CURLY@197..198 "{" |
242 | R_CURLY@[198; 199) "}" | 242 | R_CURLY@198..199 "}" |
243 | WHITESPACE@[199; 200) "\n" | 243 | WHITESPACE@199..200 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast index 2999977fc..fbad33389 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast | |||
@@ -1,55 +1,55 @@ | |||
1 | SOURCE_FILE@[0; 52) | 1 | SOURCE_FILE@0..52 |
2 | FN_DEF@[0; 51) | 2 | FN_DEF@0..51 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 51) | 11 | BLOCK_EXPR@9..51 |
12 | BLOCK@[9; 51) | 12 | BLOCK@9..51 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 26) | 15 | LET_STMT@15..26 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | REF_EXPR@[23; 25) | 23 | REF_EXPR@23..25 |
24 | AMP@[23; 24) "&" | 24 | AMP@23..24 "&" |
25 | LITERAL@[24; 25) | 25 | LITERAL@24..25 |
26 | INT_NUMBER@[24; 25) "1" | 26 | INT_NUMBER@24..25 "1" |
27 | SEMICOLON@[25; 26) ";" | 27 | SEMICOLON@25..26 ";" |
28 | WHITESPACE@[26; 31) "\n " | 28 | WHITESPACE@26..31 "\n " |
29 | LET_STMT@[31; 49) | 29 | LET_STMT@31..49 |
30 | LET_KW@[31; 34) "let" | 30 | LET_KW@31..34 "let" |
31 | WHITESPACE@[34; 35) " " | 31 | WHITESPACE@34..35 " " |
32 | PLACEHOLDER_PAT@[35; 36) | 32 | PLACEHOLDER_PAT@35..36 |
33 | UNDERSCORE@[35; 36) "_" | 33 | UNDERSCORE@35..36 "_" |
34 | WHITESPACE@[36; 37) " " | 34 | WHITESPACE@36..37 " " |
35 | EQ@[37; 38) "=" | 35 | EQ@37..38 "=" |
36 | WHITESPACE@[38; 39) " " | 36 | WHITESPACE@38..39 " " |
37 | REF_EXPR@[39; 48) | 37 | REF_EXPR@39..48 |
38 | AMP@[39; 40) "&" | 38 | AMP@39..40 "&" |
39 | MUT_KW@[40; 43) "mut" | 39 | MUT_KW@40..43 "mut" |
40 | WHITESPACE@[43; 44) " " | 40 | WHITESPACE@43..44 " " |
41 | REF_EXPR@[44; 48) | 41 | REF_EXPR@44..48 |
42 | AMP@[44; 45) "&" | 42 | AMP@44..45 "&" |
43 | CALL_EXPR@[45; 48) | 43 | CALL_EXPR@45..48 |
44 | PATH_EXPR@[45; 46) | 44 | PATH_EXPR@45..46 |
45 | PATH@[45; 46) | 45 | PATH@45..46 |
46 | PATH_SEGMENT@[45; 46) | 46 | PATH_SEGMENT@45..46 |
47 | NAME_REF@[45; 46) | 47 | NAME_REF@45..46 |
48 | IDENT@[45; 46) "f" | 48 | IDENT@45..46 "f" |
49 | ARG_LIST@[46; 48) | 49 | ARG_LIST@46..48 |
50 | L_PAREN@[46; 47) "(" | 50 | L_PAREN@46..47 "(" |
51 | R_PAREN@[47; 48) ")" | 51 | R_PAREN@47..48 ")" |
52 | SEMICOLON@[48; 49) ";" | 52 | SEMICOLON@48..49 ";" |
53 | WHITESPACE@[49; 50) "\n" | 53 | WHITESPACE@49..50 "\n" |
54 | R_CURLY@[50; 51) "}" | 54 | R_CURLY@50..51 "}" |
55 | WHITESPACE@[51; 52) "\n" | 55 | WHITESPACE@51..52 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast index 13393e4b8..217b07e59 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast | |||
@@ -1,87 +1,87 @@ | |||
1 | SOURCE_FILE@[0; 106) | 1 | SOURCE_FILE@0..106 |
2 | STRUCT_DEF@[0; 11) | 2 | STRUCT_DEF@0..11 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 10) | 5 | NAME@7..10 |
6 | IDENT@[7; 10) "Foo" | 6 | IDENT@7..10 "Foo" |
7 | SEMICOLON@[10; 11) ";" | 7 | SEMICOLON@10..11 ";" |
8 | WHITESPACE@[11; 12) "\n" | 8 | WHITESPACE@11..12 "\n" |
9 | STRUCT_DEF@[12; 25) | 9 | STRUCT_DEF@12..25 |
10 | STRUCT_KW@[12; 18) "struct" | 10 | STRUCT_KW@12..18 "struct" |
11 | WHITESPACE@[18; 19) " " | 11 | WHITESPACE@18..19 " " |
12 | NAME@[19; 22) | 12 | NAME@19..22 |
13 | IDENT@[19; 22) "Foo" | 13 | IDENT@19..22 "Foo" |
14 | WHITESPACE@[22; 23) " " | 14 | WHITESPACE@22..23 " " |
15 | RECORD_FIELD_DEF_LIST@[23; 25) | 15 | RECORD_FIELD_DEF_LIST@23..25 |
16 | L_CURLY@[23; 24) "{" | 16 | L_CURLY@23..24 "{" |
17 | R_CURLY@[24; 25) "}" | 17 | R_CURLY@24..25 "}" |
18 | WHITESPACE@[25; 26) "\n" | 18 | WHITESPACE@25..26 "\n" |
19 | STRUCT_DEF@[26; 39) | 19 | STRUCT_DEF@26..39 |
20 | STRUCT_KW@[26; 32) "struct" | 20 | STRUCT_KW@26..32 "struct" |
21 | WHITESPACE@[32; 33) " " | 21 | WHITESPACE@32..33 " " |
22 | NAME@[33; 36) | 22 | NAME@33..36 |
23 | IDENT@[33; 36) "Foo" | 23 | IDENT@33..36 "Foo" |
24 | TUPLE_FIELD_DEF_LIST@[36; 38) | 24 | TUPLE_FIELD_DEF_LIST@36..38 |
25 | L_PAREN@[36; 37) "(" | 25 | L_PAREN@36..37 "(" |
26 | R_PAREN@[37; 38) ")" | 26 | R_PAREN@37..38 ")" |
27 | SEMICOLON@[38; 39) ";" | 27 | SEMICOLON@38..39 ";" |
28 | WHITESPACE@[39; 40) "\n" | 28 | WHITESPACE@39..40 "\n" |
29 | STRUCT_DEF@[40; 66) | 29 | STRUCT_DEF@40..66 |
30 | STRUCT_KW@[40; 46) "struct" | 30 | STRUCT_KW@40..46 "struct" |
31 | WHITESPACE@[46; 47) " " | 31 | WHITESPACE@46..47 " " |
32 | NAME@[47; 50) | 32 | NAME@47..50 |
33 | IDENT@[47; 50) "Foo" | 33 | IDENT@47..50 "Foo" |
34 | TUPLE_FIELD_DEF_LIST@[50; 65) | 34 | TUPLE_FIELD_DEF_LIST@50..65 |
35 | L_PAREN@[50; 51) "(" | 35 | L_PAREN@50..51 "(" |
36 | TUPLE_FIELD_DEF@[51; 57) | 36 | TUPLE_FIELD_DEF@51..57 |
37 | PATH_TYPE@[51; 57) | 37 | PATH_TYPE@51..57 |
38 | PATH@[51; 57) | 38 | PATH@51..57 |
39 | PATH_SEGMENT@[51; 57) | 39 | PATH_SEGMENT@51..57 |
40 | NAME_REF@[51; 57) | 40 | NAME_REF@51..57 |
41 | IDENT@[51; 57) "String" | 41 | IDENT@51..57 "String" |
42 | COMMA@[57; 58) "," | 42 | COMMA@57..58 "," |
43 | WHITESPACE@[58; 59) " " | 43 | WHITESPACE@58..59 " " |
44 | TUPLE_FIELD_DEF@[59; 64) | 44 | TUPLE_FIELD_DEF@59..64 |
45 | PATH_TYPE@[59; 64) | 45 | PATH_TYPE@59..64 |
46 | PATH@[59; 64) | 46 | PATH@59..64 |
47 | PATH_SEGMENT@[59; 64) | 47 | PATH_SEGMENT@59..64 |
48 | NAME_REF@[59; 64) | 48 | NAME_REF@59..64 |
49 | IDENT@[59; 64) "usize" | 49 | IDENT@59..64 "usize" |
50 | R_PAREN@[64; 65) ")" | 50 | R_PAREN@64..65 ")" |
51 | SEMICOLON@[65; 66) ";" | 51 | SEMICOLON@65..66 ";" |
52 | WHITESPACE@[66; 67) "\n" | 52 | WHITESPACE@66..67 "\n" |
53 | STRUCT_DEF@[67; 105) | 53 | STRUCT_DEF@67..105 |
54 | STRUCT_KW@[67; 73) "struct" | 54 | STRUCT_KW@67..73 "struct" |
55 | WHITESPACE@[73; 74) " " | 55 | WHITESPACE@73..74 " " |
56 | NAME@[74; 77) | 56 | NAME@74..77 |
57 | IDENT@[74; 77) "Foo" | 57 | IDENT@74..77 "Foo" |
58 | WHITESPACE@[77; 78) " " | 58 | WHITESPACE@77..78 " " |
59 | RECORD_FIELD_DEF_LIST@[78; 105) | 59 | RECORD_FIELD_DEF_LIST@78..105 |
60 | L_CURLY@[78; 79) "{" | 60 | L_CURLY@78..79 "{" |
61 | WHITESPACE@[79; 84) "\n " | 61 | WHITESPACE@79..84 "\n " |
62 | RECORD_FIELD_DEF@[84; 90) | 62 | RECORD_FIELD_DEF@84..90 |
63 | NAME@[84; 85) | 63 | NAME@84..85 |
64 | IDENT@[84; 85) "a" | 64 | IDENT@84..85 "a" |
65 | COLON@[85; 86) ":" | 65 | COLON@85..86 ":" |
66 | WHITESPACE@[86; 87) " " | 66 | WHITESPACE@86..87 " " |
67 | PATH_TYPE@[87; 90) | 67 | PATH_TYPE@87..90 |
68 | PATH@[87; 90) | 68 | PATH@87..90 |
69 | PATH_SEGMENT@[87; 90) | 69 | PATH_SEGMENT@87..90 |
70 | NAME_REF@[87; 90) | 70 | NAME_REF@87..90 |
71 | IDENT@[87; 90) "i32" | 71 | IDENT@87..90 "i32" |
72 | COMMA@[90; 91) "," | 72 | COMMA@90..91 "," |
73 | WHITESPACE@[91; 96) "\n " | 73 | WHITESPACE@91..96 "\n " |
74 | RECORD_FIELD_DEF@[96; 102) | 74 | RECORD_FIELD_DEF@96..102 |
75 | NAME@[96; 97) | 75 | NAME@96..97 |
76 | IDENT@[96; 97) "b" | 76 | IDENT@96..97 "b" |
77 | COLON@[97; 98) ":" | 77 | COLON@97..98 ":" |
78 | WHITESPACE@[98; 99) " " | 78 | WHITESPACE@98..99 " " |
79 | PATH_TYPE@[99; 102) | 79 | PATH_TYPE@99..102 |
80 | PATH@[99; 102) | 80 | PATH@99..102 |
81 | PATH_SEGMENT@[99; 102) | 81 | PATH_SEGMENT@99..102 |
82 | NAME_REF@[99; 102) | 82 | NAME_REF@99..102 |
83 | IDENT@[99; 102) "f32" | 83 | IDENT@99..102 "f32" |
84 | COMMA@[102; 103) "," | 84 | COMMA@102..103 "," |
85 | WHITESPACE@[103; 104) "\n" | 85 | WHITESPACE@103..104 "\n" |
86 | R_CURLY@[104; 105) "}" | 86 | R_CURLY@104..105 "}" |
87 | WHITESPACE@[105; 106) "\n" | 87 | WHITESPACE@105..106 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast index 79d193616..9cd8910d4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast | |||
@@ -1,19 +1,19 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | TYPE_ALIAS_DEF@[0; 15) | 2 | TYPE_ALIAS_DEF@0..15 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "T" | 6 | IDENT@5..6 "T" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PAREN_TYPE@[9; 14) | 10 | PAREN_TYPE@9..14 |
11 | L_PAREN@[9; 10) "(" | 11 | L_PAREN@9..10 "(" |
12 | PATH_TYPE@[10; 13) | 12 | PATH_TYPE@10..13 |
13 | PATH@[10; 13) | 13 | PATH@10..13 |
14 | PATH_SEGMENT@[10; 13) | 14 | PATH_SEGMENT@10..13 |
15 | NAME_REF@[10; 13) | 15 | NAME_REF@10..13 |
16 | IDENT@[10; 13) "i32" | 16 | IDENT@10..13 "i32" |
17 | R_PAREN@[13; 14) ")" | 17 | R_PAREN@13..14 ")" |
18 | SEMICOLON@[14; 15) ";" | 18 | SEMICOLON@14..15 ";" |
19 | WHITESPACE@[15; 16) "\n" | 19 | WHITESPACE@15..16 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast index c2cec89b4..b165789fd 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast | |||
@@ -1,136 +1,136 @@ | |||
1 | SOURCE_FILE@[0; 189) | 1 | SOURCE_FILE@0..189 |
2 | FN_DEF@[0; 188) | 2 | FN_DEF@0..188 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 188) | 11 | BLOCK_EXPR@9..188 |
12 | BLOCK@[9; 188) | 12 | BLOCK@9..188 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 28) | 15 | LET_STMT@15..28 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | LITERAL@[23; 27) | 23 | LITERAL@23..27 |
24 | TRUE_KW@[23; 27) "true" | 24 | TRUE_KW@23..27 "true" |
25 | SEMICOLON@[27; 28) ";" | 25 | SEMICOLON@27..28 ";" |
26 | WHITESPACE@[28; 33) "\n " | 26 | WHITESPACE@28..33 "\n " |
27 | LET_STMT@[33; 47) | 27 | LET_STMT@33..47 |
28 | LET_KW@[33; 36) "let" | 28 | LET_KW@33..36 "let" |
29 | WHITESPACE@[36; 37) " " | 29 | WHITESPACE@36..37 " " |
30 | PLACEHOLDER_PAT@[37; 38) | 30 | PLACEHOLDER_PAT@37..38 |
31 | UNDERSCORE@[37; 38) "_" | 31 | UNDERSCORE@37..38 "_" |
32 | WHITESPACE@[38; 39) " " | 32 | WHITESPACE@38..39 " " |
33 | EQ@[39; 40) "=" | 33 | EQ@39..40 "=" |
34 | WHITESPACE@[40; 41) " " | 34 | WHITESPACE@40..41 " " |
35 | LITERAL@[41; 46) | 35 | LITERAL@41..46 |
36 | FALSE_KW@[41; 46) "false" | 36 | FALSE_KW@41..46 "false" |
37 | SEMICOLON@[46; 47) ";" | 37 | SEMICOLON@46..47 ";" |
38 | WHITESPACE@[47; 52) "\n " | 38 | WHITESPACE@47..52 "\n " |
39 | LET_STMT@[52; 62) | 39 | LET_STMT@52..62 |
40 | LET_KW@[52; 55) "let" | 40 | LET_KW@52..55 "let" |
41 | WHITESPACE@[55; 56) " " | 41 | WHITESPACE@55..56 " " |
42 | PLACEHOLDER_PAT@[56; 57) | 42 | PLACEHOLDER_PAT@56..57 |
43 | UNDERSCORE@[56; 57) "_" | 43 | UNDERSCORE@56..57 "_" |
44 | WHITESPACE@[57; 58) " " | 44 | WHITESPACE@57..58 " " |
45 | EQ@[58; 59) "=" | 45 | EQ@58..59 "=" |
46 | WHITESPACE@[59; 60) " " | 46 | WHITESPACE@59..60 " " |
47 | LITERAL@[60; 61) | 47 | LITERAL@60..61 |
48 | INT_NUMBER@[60; 61) "1" | 48 | INT_NUMBER@60..61 "1" |
49 | SEMICOLON@[61; 62) ";" | 49 | SEMICOLON@61..62 ";" |
50 | WHITESPACE@[62; 67) "\n " | 50 | WHITESPACE@62..67 "\n " |
51 | LET_STMT@[67; 79) | 51 | LET_STMT@67..79 |
52 | LET_KW@[67; 70) "let" | 52 | LET_KW@67..70 "let" |
53 | WHITESPACE@[70; 71) " " | 53 | WHITESPACE@70..71 " " |
54 | PLACEHOLDER_PAT@[71; 72) | 54 | PLACEHOLDER_PAT@71..72 |
55 | UNDERSCORE@[71; 72) "_" | 55 | UNDERSCORE@71..72 "_" |
56 | WHITESPACE@[72; 73) " " | 56 | WHITESPACE@72..73 " " |
57 | EQ@[73; 74) "=" | 57 | EQ@73..74 "=" |
58 | WHITESPACE@[74; 75) " " | 58 | WHITESPACE@74..75 " " |
59 | LITERAL@[75; 78) | 59 | LITERAL@75..78 |
60 | FLOAT_NUMBER@[75; 78) "2.0" | 60 | FLOAT_NUMBER@75..78 "2.0" |
61 | SEMICOLON@[78; 79) ";" | 61 | SEMICOLON@78..79 ";" |
62 | WHITESPACE@[79; 84) "\n " | 62 | WHITESPACE@79..84 "\n " |
63 | LET_STMT@[84; 97) | 63 | LET_STMT@84..97 |
64 | LET_KW@[84; 87) "let" | 64 | LET_KW@84..87 "let" |
65 | WHITESPACE@[87; 88) " " | 65 | WHITESPACE@87..88 " " |
66 | PLACEHOLDER_PAT@[88; 89) | 66 | PLACEHOLDER_PAT@88..89 |
67 | UNDERSCORE@[88; 89) "_" | 67 | UNDERSCORE@88..89 "_" |
68 | WHITESPACE@[89; 90) " " | 68 | WHITESPACE@89..90 " " |
69 | EQ@[90; 91) "=" | 69 | EQ@90..91 "=" |
70 | WHITESPACE@[91; 92) " " | 70 | WHITESPACE@91..92 " " |
71 | LITERAL@[92; 96) | 71 | LITERAL@92..96 |
72 | BYTE@[92; 96) "b\'a\'" | 72 | BYTE@92..96 "b\'a\'" |
73 | SEMICOLON@[96; 97) ";" | 73 | SEMICOLON@96..97 ";" |
74 | WHITESPACE@[97; 102) "\n " | 74 | WHITESPACE@97..102 "\n " |
75 | LET_STMT@[102; 114) | 75 | LET_STMT@102..114 |
76 | LET_KW@[102; 105) "let" | 76 | LET_KW@102..105 "let" |
77 | WHITESPACE@[105; 106) " " | 77 | WHITESPACE@105..106 " " |
78 | PLACEHOLDER_PAT@[106; 107) | 78 | PLACEHOLDER_PAT@106..107 |
79 | UNDERSCORE@[106; 107) "_" | 79 | UNDERSCORE@106..107 "_" |
80 | WHITESPACE@[107; 108) " " | 80 | WHITESPACE@107..108 " " |
81 | EQ@[108; 109) "=" | 81 | EQ@108..109 "=" |
82 | WHITESPACE@[109; 110) " " | 82 | WHITESPACE@109..110 " " |
83 | LITERAL@[110; 113) | 83 | LITERAL@110..113 |
84 | CHAR@[110; 113) "\'b\'" | 84 | CHAR@110..113 "\'b\'" |
85 | SEMICOLON@[113; 114) ";" | 85 | SEMICOLON@113..114 ";" |
86 | WHITESPACE@[114; 119) "\n " | 86 | WHITESPACE@114..119 "\n " |
87 | LET_STMT@[119; 131) | 87 | LET_STMT@119..131 |
88 | LET_KW@[119; 122) "let" | 88 | LET_KW@119..122 "let" |
89 | WHITESPACE@[122; 123) " " | 89 | WHITESPACE@122..123 " " |
90 | PLACEHOLDER_PAT@[123; 124) | 90 | PLACEHOLDER_PAT@123..124 |
91 | UNDERSCORE@[123; 124) "_" | 91 | UNDERSCORE@123..124 "_" |
92 | WHITESPACE@[124; 125) " " | 92 | WHITESPACE@124..125 " " |
93 | EQ@[125; 126) "=" | 93 | EQ@125..126 "=" |
94 | WHITESPACE@[126; 127) " " | 94 | WHITESPACE@126..127 " " |
95 | LITERAL@[127; 130) | 95 | LITERAL@127..130 |
96 | STRING@[127; 130) "\"c\"" | 96 | STRING@127..130 "\"c\"" |
97 | SEMICOLON@[130; 131) ";" | 97 | SEMICOLON@130..131 ";" |
98 | WHITESPACE@[131; 136) "\n " | 98 | WHITESPACE@131..136 "\n " |
99 | LET_STMT@[136; 149) | 99 | LET_STMT@136..149 |
100 | LET_KW@[136; 139) "let" | 100 | LET_KW@136..139 "let" |
101 | WHITESPACE@[139; 140) " " | 101 | WHITESPACE@139..140 " " |
102 | PLACEHOLDER_PAT@[140; 141) | 102 | PLACEHOLDER_PAT@140..141 |
103 | UNDERSCORE@[140; 141) "_" | 103 | UNDERSCORE@140..141 "_" |
104 | WHITESPACE@[141; 142) " " | 104 | WHITESPACE@141..142 " " |
105 | EQ@[142; 143) "=" | 105 | EQ@142..143 "=" |
106 | WHITESPACE@[143; 144) " " | 106 | WHITESPACE@143..144 " " |
107 | LITERAL@[144; 148) | 107 | LITERAL@144..148 |
108 | RAW_STRING@[144; 148) "r\"d\"" | 108 | RAW_STRING@144..148 "r\"d\"" |
109 | SEMICOLON@[148; 149) ";" | 109 | SEMICOLON@148..149 ";" |
110 | WHITESPACE@[149; 154) "\n " | 110 | WHITESPACE@149..154 "\n " |
111 | LET_STMT@[154; 167) | 111 | LET_STMT@154..167 |
112 | LET_KW@[154; 157) "let" | 112 | LET_KW@154..157 "let" |
113 | WHITESPACE@[157; 158) " " | 113 | WHITESPACE@157..158 " " |
114 | PLACEHOLDER_PAT@[158; 159) | 114 | PLACEHOLDER_PAT@158..159 |
115 | UNDERSCORE@[158; 159) "_" | 115 | UNDERSCORE@158..159 "_" |
116 | WHITESPACE@[159; 160) " " | 116 | WHITESPACE@159..160 " " |
117 | EQ@[160; 161) "=" | 117 | EQ@160..161 "=" |
118 | WHITESPACE@[161; 162) " " | 118 | WHITESPACE@161..162 " " |
119 | LITERAL@[162; 166) | 119 | LITERAL@162..166 |
120 | BYTE_STRING@[162; 166) "b\"e\"" | 120 | BYTE_STRING@162..166 "b\"e\"" |
121 | SEMICOLON@[166; 167) ";" | 121 | SEMICOLON@166..167 ";" |
122 | WHITESPACE@[167; 172) "\n " | 122 | WHITESPACE@167..172 "\n " |
123 | LET_STMT@[172; 186) | 123 | LET_STMT@172..186 |
124 | LET_KW@[172; 175) "let" | 124 | LET_KW@172..175 "let" |
125 | WHITESPACE@[175; 176) " " | 125 | WHITESPACE@175..176 " " |
126 | PLACEHOLDER_PAT@[176; 177) | 126 | PLACEHOLDER_PAT@176..177 |
127 | UNDERSCORE@[176; 177) "_" | 127 | UNDERSCORE@176..177 "_" |
128 | WHITESPACE@[177; 178) " " | 128 | WHITESPACE@177..178 " " |
129 | EQ@[178; 179) "=" | 129 | EQ@178..179 "=" |
130 | WHITESPACE@[179; 180) " " | 130 | WHITESPACE@179..180 " " |
131 | LITERAL@[180; 185) | 131 | LITERAL@180..185 |
132 | RAW_BYTE_STRING@[180; 185) "br\"f\"" | 132 | RAW_BYTE_STRING@180..185 "br\"f\"" |
133 | SEMICOLON@[185; 186) ";" | 133 | SEMICOLON@185..186 ";" |
134 | WHITESPACE@[186; 187) "\n" | 134 | WHITESPACE@186..187 "\n" |
135 | R_CURLY@[187; 188) "}" | 135 | R_CURLY@187..188 "}" |
136 | WHITESPACE@[188; 189) "\n" | 136 | WHITESPACE@188..189 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast index ca1a97161..36f17133d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast | |||
@@ -1,36 +1,36 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 11) | 2 | FN_DEF@0..11 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 11) | 11 | BLOCK_EXPR@9..11 |
12 | BLOCK@[9; 11) | 12 | BLOCK@9..11 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | R_CURLY@[10; 11) "}" | 14 | R_CURLY@10..11 "}" |
15 | WHITESPACE@[11; 12) "\n" | 15 | WHITESPACE@11..12 "\n" |
16 | FN_DEF@[12; 29) | 16 | FN_DEF@12..29 |
17 | FN_KW@[12; 14) "fn" | 17 | FN_KW@12..14 "fn" |
18 | WHITESPACE@[14; 15) " " | 18 | WHITESPACE@14..15 " " |
19 | NAME@[15; 18) | 19 | NAME@15..18 |
20 | IDENT@[15; 18) "bar" | 20 | IDENT@15..18 "bar" |
21 | PARAM_LIST@[18; 20) | 21 | PARAM_LIST@18..20 |
22 | L_PAREN@[18; 19) "(" | 22 | L_PAREN@18..19 "(" |
23 | R_PAREN@[19; 20) ")" | 23 | R_PAREN@19..20 ")" |
24 | WHITESPACE@[20; 21) " " | 24 | WHITESPACE@20..21 " " |
25 | RET_TYPE@[21; 26) | 25 | RET_TYPE@21..26 |
26 | THIN_ARROW@[21; 23) "->" | 26 | THIN_ARROW@21..23 "->" |
27 | WHITESPACE@[23; 24) " " | 27 | WHITESPACE@23..24 " " |
28 | TUPLE_TYPE@[24; 26) | 28 | TUPLE_TYPE@24..26 |
29 | L_PAREN@[24; 25) "(" | 29 | L_PAREN@24..25 "(" |
30 | R_PAREN@[25; 26) ")" | 30 | R_PAREN@25..26 ")" |
31 | WHITESPACE@[26; 27) " " | 31 | WHITESPACE@26..27 " " |
32 | BLOCK_EXPR@[27; 29) | 32 | BLOCK_EXPR@27..29 |
33 | BLOCK@[27; 29) | 33 | BLOCK@27..29 |
34 | L_CURLY@[27; 28) "{" | 34 | L_CURLY@27..28 "{" |
35 | R_CURLY@[28; 29) "}" | 35 | R_CURLY@28..29 "}" |
36 | WHITESPACE@[29; 30) "\n" | 36 | WHITESPACE@29..30 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast index e614acc6f..01ed3afca 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | IMPL_DEF@[0; 18) | 2 | IMPL_DEF@0..18 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | IMPL_KW@[7; 11) "impl" | 5 | IMPL_KW@7..11 "impl" |
6 | WHITESPACE@[11; 12) " " | 6 | WHITESPACE@11..12 " " |
7 | PATH_TYPE@[12; 15) | 7 | PATH_TYPE@12..15 |
8 | PATH@[12; 15) | 8 | PATH@12..15 |
9 | PATH_SEGMENT@[12; 15) | 9 | PATH_SEGMENT@12..15 |
10 | NAME_REF@[12; 15) | 10 | NAME_REF@12..15 |
11 | IDENT@[12; 15) "Foo" | 11 | IDENT@12..15 "Foo" |
12 | WHITESPACE@[15; 16) " " | 12 | WHITESPACE@15..16 " " |
13 | ITEM_LIST@[16; 18) | 13 | ITEM_LIST@16..18 |
14 | L_CURLY@[16; 17) "{" | 14 | L_CURLY@16..17 "{" |
15 | R_CURLY@[17; 18) "}" | 15 | R_CURLY@17..18 "}" |
16 | WHITESPACE@[18; 19) "\n" | 16 | WHITESPACE@18..19 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast index b23f43b46..ca5aa007e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast | |||
@@ -1,69 +1,69 @@ | |||
1 | SOURCE_FILE@[0; 88) | 1 | SOURCE_FILE@0..88 |
2 | FN_DEF@[0; 87) | 2 | FN_DEF@0..87 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | BLOCK_EXPR@[8; 87) | 10 | BLOCK_EXPR@8..87 |
11 | BLOCK@[8; 87) | 11 | BLOCK@8..87 |
12 | L_CURLY@[8; 9) "{" | 12 | L_CURLY@8..9 "{" |
13 | WHITESPACE@[9; 14) "\n " | 13 | WHITESPACE@9..14 "\n " |
14 | EXPR_STMT@[14; 25) | 14 | EXPR_STMT@14..25 |
15 | IF_EXPR@[14; 25) | 15 | IF_EXPR@14..25 |
16 | IF_KW@[14; 16) "if" | 16 | IF_KW@14..16 "if" |
17 | WHITESPACE@[16; 17) " " | 17 | WHITESPACE@16..17 " " |
18 | CONDITION@[17; 22) | 18 | CONDITION@17..22 |
19 | BREAK_EXPR@[17; 22) | 19 | BREAK_EXPR@17..22 |
20 | BREAK_KW@[17; 22) "break" | 20 | BREAK_KW@17..22 "break" |
21 | WHITESPACE@[22; 23) " " | 21 | WHITESPACE@22..23 " " |
22 | BLOCK_EXPR@[23; 25) | 22 | BLOCK_EXPR@23..25 |
23 | BLOCK@[23; 25) | 23 | BLOCK@23..25 |
24 | L_CURLY@[23; 24) "{" | 24 | L_CURLY@23..24 "{" |
25 | R_CURLY@[24; 25) "}" | 25 | R_CURLY@24..25 "}" |
26 | WHITESPACE@[25; 30) "\n " | 26 | WHITESPACE@25..30 "\n " |
27 | EXPR_STMT@[30; 44) | 27 | EXPR_STMT@30..44 |
28 | WHILE_EXPR@[30; 44) | 28 | WHILE_EXPR@30..44 |
29 | WHILE_KW@[30; 35) "while" | 29 | WHILE_KW@30..35 "while" |
30 | WHITESPACE@[35; 36) " " | 30 | WHITESPACE@35..36 " " |
31 | CONDITION@[36; 41) | 31 | CONDITION@36..41 |
32 | BREAK_EXPR@[36; 41) | 32 | BREAK_EXPR@36..41 |
33 | BREAK_KW@[36; 41) "break" | 33 | BREAK_KW@36..41 "break" |
34 | WHITESPACE@[41; 42) " " | 34 | WHITESPACE@41..42 " " |
35 | BLOCK_EXPR@[42; 44) | 35 | BLOCK_EXPR@42..44 |
36 | BLOCK@[42; 44) | 36 | BLOCK@42..44 |
37 | L_CURLY@[42; 43) "{" | 37 | L_CURLY@42..43 "{" |
38 | R_CURLY@[43; 44) "}" | 38 | R_CURLY@43..44 "}" |
39 | WHITESPACE@[44; 49) "\n " | 39 | WHITESPACE@44..49 "\n " |
40 | EXPR_STMT@[49; 66) | 40 | EXPR_STMT@49..66 |
41 | FOR_EXPR@[49; 66) | 41 | FOR_EXPR@49..66 |
42 | FOR_KW@[49; 52) "for" | 42 | FOR_KW@49..52 "for" |
43 | WHITESPACE@[52; 53) " " | 43 | WHITESPACE@52..53 " " |
44 | BIND_PAT@[53; 54) | 44 | BIND_PAT@53..54 |
45 | NAME@[53; 54) | 45 | NAME@53..54 |
46 | IDENT@[53; 54) "i" | 46 | IDENT@53..54 "i" |
47 | WHITESPACE@[54; 55) " " | 47 | WHITESPACE@54..55 " " |
48 | IN_KW@[55; 57) "in" | 48 | IN_KW@55..57 "in" |
49 | WHITESPACE@[57; 58) " " | 49 | WHITESPACE@57..58 " " |
50 | BREAK_EXPR@[58; 63) | 50 | BREAK_EXPR@58..63 |
51 | BREAK_KW@[58; 63) "break" | 51 | BREAK_KW@58..63 "break" |
52 | WHITESPACE@[63; 64) " " | 52 | WHITESPACE@63..64 " " |
53 | BLOCK_EXPR@[64; 66) | 53 | BLOCK_EXPR@64..66 |
54 | BLOCK@[64; 66) | 54 | BLOCK@64..66 |
55 | L_CURLY@[64; 65) "{" | 55 | L_CURLY@64..65 "{" |
56 | R_CURLY@[65; 66) "}" | 56 | R_CURLY@65..66 "}" |
57 | WHITESPACE@[66; 71) "\n " | 57 | WHITESPACE@66..71 "\n " |
58 | MATCH_EXPR@[71; 85) | 58 | MATCH_EXPR@71..85 |
59 | MATCH_KW@[71; 76) "match" | 59 | MATCH_KW@71..76 "match" |
60 | WHITESPACE@[76; 77) " " | 60 | WHITESPACE@76..77 " " |
61 | BREAK_EXPR@[77; 82) | 61 | BREAK_EXPR@77..82 |
62 | BREAK_KW@[77; 82) "break" | 62 | BREAK_KW@77..82 "break" |
63 | WHITESPACE@[82; 83) " " | 63 | WHITESPACE@82..83 " " |
64 | MATCH_ARM_LIST@[83; 85) | 64 | MATCH_ARM_LIST@83..85 |
65 | L_CURLY@[83; 84) "{" | 65 | L_CURLY@83..84 "{" |
66 | R_CURLY@[84; 85) "}" | 66 | R_CURLY@84..85 "}" |
67 | WHITESPACE@[85; 86) "\n" | 67 | WHITESPACE@85..86 "\n" |
68 | R_CURLY@[86; 87) "}" | 68 | R_CURLY@86..87 "}" |
69 | WHITESPACE@[87; 88) "\n" | 69 | WHITESPACE@87..88 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast index b494f6c59..1c1e349e1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast | |||
@@ -1,18 +1,18 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | FN_DEF@[0; 18) | 2 | FN_DEF@0..18 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | FN_KW@[7; 9) "fn" | 6 | FN_KW@7..9 "fn" |
7 | WHITESPACE@[9; 10) " " | 7 | WHITESPACE@9..10 " " |
8 | NAME@[10; 13) | 8 | NAME@10..13 |
9 | IDENT@[10; 13) "foo" | 9 | IDENT@10..13 "foo" |
10 | PARAM_LIST@[13; 15) | 10 | PARAM_LIST@13..15 |
11 | L_PAREN@[13; 14) "(" | 11 | L_PAREN@13..14 "(" |
12 | R_PAREN@[14; 15) ")" | 12 | R_PAREN@14..15 ")" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | BLOCK_EXPR@[16; 18) | 14 | BLOCK_EXPR@16..18 |
15 | BLOCK@[16; 18) | 15 | BLOCK@16..18 |
16 | L_CURLY@[16; 17) "{" | 16 | L_CURLY@16..17 "{" |
17 | R_CURLY@[17; 18) "}" | 17 | R_CURLY@17..18 "}" |
18 | WHITESPACE@[18; 19) "\n" | 18 | WHITESPACE@18..19 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast index 1d7796449..cee2bc906 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast | |||
@@ -1,22 +1,22 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | STRUCT_DEF@[0; 18) | 2 | STRUCT_DEF@0..18 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | TYPE_PARAM_LIST@[8; 17) | 7 | TYPE_PARAM_LIST@8..17 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | TYPE_PARAM@[9; 16) | 9 | TYPE_PARAM@9..16 |
10 | NAME@[9; 10) | 10 | NAME@9..10 |
11 | IDENT@[9; 10) "T" | 11 | IDENT@9..10 "T" |
12 | WHITESPACE@[10; 11) " " | 12 | WHITESPACE@10..11 " " |
13 | EQ@[11; 12) "=" | 13 | EQ@11..12 "=" |
14 | WHITESPACE@[12; 13) " " | 14 | WHITESPACE@12..13 " " |
15 | PATH_TYPE@[13; 16) | 15 | PATH_TYPE@13..16 |
16 | PATH@[13; 16) | 16 | PATH@13..16 |
17 | PATH_SEGMENT@[13; 16) | 17 | PATH_SEGMENT@13..16 |
18 | NAME_REF@[13; 16) | 18 | NAME_REF@13..16 |
19 | IDENT@[13; 16) "i32" | 19 | IDENT@13..16 "i32" |
20 | R_ANGLE@[16; 17) ">" | 20 | R_ANGLE@16..17 ">" |
21 | SEMICOLON@[17; 18) ";" | 21 | SEMICOLON@17..18 ";" |
22 | WHITESPACE@[18; 19) "\n" | 22 | WHITESPACE@18..19 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast index 7093c2b1f..800412cef 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast | |||
@@ -1,13 +1,13 @@ | |||
1 | SOURCE_FILE@[0; 16) | 1 | SOURCE_FILE@0..16 |
2 | TRAIT_DEF@[0; 15) | 2 | TRAIT_DEF@0..15 |
3 | AUTO_KW@[0; 4) "auto" | 3 | AUTO_KW@0..4 "auto" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | TRAIT_KW@[5; 10) "trait" | 5 | TRAIT_KW@5..10 "trait" |
6 | WHITESPACE@[10; 11) " " | 6 | WHITESPACE@10..11 " " |
7 | NAME@[11; 12) | 7 | NAME@11..12 |
8 | IDENT@[11; 12) "T" | 8 | IDENT@11..12 "T" |
9 | WHITESPACE@[12; 13) " " | 9 | WHITESPACE@12..13 " " |
10 | ITEM_LIST@[13; 15) | 10 | ITEM_LIST@13..15 |
11 | L_CURLY@[13; 14) "{" | 11 | L_CURLY@13..14 "{" |
12 | R_CURLY@[14; 15) "}" | 12 | R_CURLY@14..15 "}" |
13 | WHITESPACE@[15; 16) "\n" | 13 | WHITESPACE@15..16 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast b/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast index db6013c6f..1e2d7db7c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast | |||
@@ -1,23 +1,23 @@ | |||
1 | SOURCE_FILE@[0; 21) | 1 | SOURCE_FILE@0..21 |
2 | TYPE_ALIAS_DEF@[0; 20) | 2 | TYPE_ALIAS_DEF@0..20 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "F" | 6 | IDENT@5..6 "F" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | FN_POINTER_TYPE@[9; 19) | 10 | FN_POINTER_TYPE@9..19 |
11 | FN_KW@[9; 11) "fn" | 11 | FN_KW@9..11 "fn" |
12 | PARAM_LIST@[11; 13) | 12 | PARAM_LIST@11..13 |
13 | L_PAREN@[11; 12) "(" | 13 | L_PAREN@11..12 "(" |
14 | R_PAREN@[12; 13) ")" | 14 | R_PAREN@12..13 ")" |
15 | WHITESPACE@[13; 14) " " | 15 | WHITESPACE@13..14 " " |
16 | RET_TYPE@[14; 19) | 16 | RET_TYPE@14..19 |
17 | THIN_ARROW@[14; 16) "->" | 17 | THIN_ARROW@14..16 "->" |
18 | WHITESPACE@[16; 17) " " | 18 | WHITESPACE@16..17 " " |
19 | TUPLE_TYPE@[17; 19) | 19 | TUPLE_TYPE@17..19 |
20 | L_PAREN@[17; 18) "(" | 20 | L_PAREN@17..18 "(" |
21 | R_PAREN@[18; 19) ")" | 21 | R_PAREN@18..19 ")" |
22 | SEMICOLON@[19; 20) ";" | 22 | SEMICOLON@19..20 ";" |
23 | WHITESPACE@[20; 21) "\n" | 23 | WHITESPACE@20..21 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast index 118cfc096..c264dae5e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast | |||
@@ -1,34 +1,34 @@ | |||
1 | SOURCE_FILE@[0; 26) | 1 | SOURCE_FILE@0..26 |
2 | FN_DEF@[0; 25) | 2 | FN_DEF@0..25 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 25) | 11 | BLOCK_EXPR@9..25 |
12 | BLOCK@[9; 25) | 12 | BLOCK@9..25 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 23) | 15 | EXPR_STMT@15..23 |
16 | INDEX_EXPR@[15; 22) | 16 | INDEX_EXPR@15..22 |
17 | INDEX_EXPR@[15; 19) | 17 | INDEX_EXPR@15..19 |
18 | PATH_EXPR@[15; 16) | 18 | PATH_EXPR@15..16 |
19 | PATH@[15; 16) | 19 | PATH@15..16 |
20 | PATH_SEGMENT@[15; 16) | 20 | PATH_SEGMENT@15..16 |
21 | NAME_REF@[15; 16) | 21 | NAME_REF@15..16 |
22 | IDENT@[15; 16) "x" | 22 | IDENT@15..16 "x" |
23 | L_BRACK@[16; 17) "[" | 23 | L_BRACK@16..17 "[" |
24 | LITERAL@[17; 18) | 24 | LITERAL@17..18 |
25 | INT_NUMBER@[17; 18) "1" | 25 | INT_NUMBER@17..18 "1" |
26 | R_BRACK@[18; 19) "]" | 26 | R_BRACK@18..19 "]" |
27 | L_BRACK@[19; 20) "[" | 27 | L_BRACK@19..20 "[" |
28 | LITERAL@[20; 21) | 28 | LITERAL@20..21 |
29 | INT_NUMBER@[20; 21) "2" | 29 | INT_NUMBER@20..21 "2" |
30 | R_BRACK@[21; 22) "]" | 30 | R_BRACK@21..22 "]" |
31 | SEMICOLON@[22; 23) ";" | 31 | SEMICOLON@22..23 ";" |
32 | WHITESPACE@[23; 24) "\n" | 32 | WHITESPACE@23..24 "\n" |
33 | R_CURLY@[24; 25) "}" | 33 | R_CURLY@24..25 "}" |
34 | WHITESPACE@[25; 26) "\n" | 34 | WHITESPACE@25..26 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast index 3da3beaf4..9370f6ae7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast | |||
@@ -1,15 +1,15 @@ | |||
1 | SOURCE_FILE@[0; 23) | 1 | SOURCE_FILE@0..23 |
2 | TRAIT_DEF@[0; 22) | 2 | TRAIT_DEF@0..22 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | AUTO_KW@[7; 11) "auto" | 5 | AUTO_KW@7..11 "auto" |
6 | WHITESPACE@[11; 12) " " | 6 | WHITESPACE@11..12 " " |
7 | TRAIT_KW@[12; 17) "trait" | 7 | TRAIT_KW@12..17 "trait" |
8 | WHITESPACE@[17; 18) " " | 8 | WHITESPACE@17..18 " " |
9 | NAME@[18; 19) | 9 | NAME@18..19 |
10 | IDENT@[18; 19) "T" | 10 | IDENT@18..19 "T" |
11 | WHITESPACE@[19; 20) " " | 11 | WHITESPACE@19..20 " " |
12 | ITEM_LIST@[20; 22) | 12 | ITEM_LIST@20..22 |
13 | L_CURLY@[20; 21) "{" | 13 | L_CURLY@20..21 "{" |
14 | R_CURLY@[21; 22) "}" | 14 | R_CURLY@21..22 "}" |
15 | WHITESPACE@[22; 23) "\n" | 15 | WHITESPACE@22..23 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast index ebe7816a4..24e1ba8a0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 26) | 1 | SOURCE_FILE@0..26 |
2 | FN_DEF@[0; 25) | 2 | FN_DEF@0..25 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 25) | 11 | BLOCK_EXPR@10..25 |
12 | BLOCK@[10; 25) | 12 | BLOCK@10..25 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 12) " " | 14 | WHITESPACE@11..12 " " |
15 | LET_STMT@[12; 23) | 15 | LET_STMT@12..23 |
16 | LET_KW@[12; 15) "let" | 16 | LET_KW@12..15 "let" |
17 | WHITESPACE@[15; 16) " " | 17 | WHITESPACE@15..16 " " |
18 | PLACEHOLDER_PAT@[16; 17) | 18 | PLACEHOLDER_PAT@16..17 |
19 | UNDERSCORE@[16; 17) "_" | 19 | UNDERSCORE@16..17 "_" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | EQ@[18; 19) "=" | 21 | EQ@18..19 "=" |
22 | WHITESPACE@[19; 20) " " | 22 | WHITESPACE@19..20 " " |
23 | TUPLE_EXPR@[20; 22) | 23 | TUPLE_EXPR@20..22 |
24 | L_PAREN@[20; 21) "(" | 24 | L_PAREN@20..21 "(" |
25 | R_PAREN@[21; 22) ")" | 25 | R_PAREN@21..22 ")" |
26 | SEMICOLON@[22; 23) ";" | 26 | SEMICOLON@22..23 ";" |
27 | WHITESPACE@[23; 24) " " | 27 | WHITESPACE@23..24 " " |
28 | R_CURLY@[24; 25) "}" | 28 | R_CURLY@24..25 "}" |
29 | WHITESPACE@[25; 26) "\n" | 29 | WHITESPACE@25..26 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast index 6bd6f5a6b..47462d44e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast | |||
@@ -1,130 +1,130 @@ | |||
1 | SOURCE_FILE@[0; 167) | 1 | SOURCE_FILE@0..167 |
2 | FN_DEF@[0; 166) | 2 | FN_DEF@0..166 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 166) | 11 | BLOCK_EXPR@9..166 |
12 | BLOCK@[9; 166) | 12 | BLOCK@9..166 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 25) | 15 | EXPR_STMT@15..25 |
16 | IF_EXPR@[15; 25) | 16 | IF_EXPR@15..25 |
17 | IF_KW@[15; 17) "if" | 17 | IF_KW@15..17 "if" |
18 | WHITESPACE@[17; 18) " " | 18 | WHITESPACE@17..18 " " |
19 | CONDITION@[18; 22) | 19 | CONDITION@18..22 |
20 | LITERAL@[18; 22) | 20 | LITERAL@18..22 |
21 | TRUE_KW@[18; 22) "true" | 21 | TRUE_KW@18..22 "true" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | BLOCK_EXPR@[23; 25) | 23 | BLOCK_EXPR@23..25 |
24 | BLOCK@[23; 25) | 24 | BLOCK@23..25 |
25 | L_CURLY@[23; 24) "{" | 25 | L_CURLY@23..24 "{" |
26 | R_CURLY@[24; 25) "}" | 26 | R_CURLY@24..25 "}" |
27 | WHITESPACE@[25; 30) "\n " | 27 | WHITESPACE@25..30 "\n " |
28 | EXPR_STMT@[30; 37) | 28 | EXPR_STMT@30..37 |
29 | LOOP_EXPR@[30; 37) | 29 | LOOP_EXPR@30..37 |
30 | LOOP_KW@[30; 34) "loop" | 30 | LOOP_KW@30..34 "loop" |
31 | WHITESPACE@[34; 35) " " | 31 | WHITESPACE@34..35 " " |
32 | BLOCK_EXPR@[35; 37) | 32 | BLOCK_EXPR@35..37 |
33 | BLOCK@[35; 37) | 33 | BLOCK@35..37 |
34 | L_CURLY@[35; 36) "{" | 34 | L_CURLY@35..36 "{" |
35 | R_CURLY@[36; 37) "}" | 35 | R_CURLY@36..37 "}" |
36 | WHITESPACE@[37; 42) "\n " | 36 | WHITESPACE@37..42 "\n " |
37 | EXPR_STMT@[42; 53) | 37 | EXPR_STMT@42..53 |
38 | MATCH_EXPR@[42; 53) | 38 | MATCH_EXPR@42..53 |
39 | MATCH_KW@[42; 47) "match" | 39 | MATCH_KW@42..47 "match" |
40 | WHITESPACE@[47; 48) " " | 40 | WHITESPACE@47..48 " " |
41 | TUPLE_EXPR@[48; 50) | 41 | TUPLE_EXPR@48..50 |
42 | L_PAREN@[48; 49) "(" | 42 | L_PAREN@48..49 "(" |
43 | R_PAREN@[49; 50) ")" | 43 | R_PAREN@49..50 ")" |
44 | WHITESPACE@[50; 51) " " | 44 | WHITESPACE@50..51 " " |
45 | MATCH_ARM_LIST@[51; 53) | 45 | MATCH_ARM_LIST@51..53 |
46 | L_CURLY@[51; 52) "{" | 46 | L_CURLY@51..52 "{" |
47 | R_CURLY@[52; 53) "}" | 47 | R_CURLY@52..53 "}" |
48 | WHITESPACE@[53; 58) "\n " | 48 | WHITESPACE@53..58 "\n " |
49 | EXPR_STMT@[58; 71) | 49 | EXPR_STMT@58..71 |
50 | WHILE_EXPR@[58; 71) | 50 | WHILE_EXPR@58..71 |
51 | WHILE_KW@[58; 63) "while" | 51 | WHILE_KW@58..63 "while" |
52 | WHITESPACE@[63; 64) " " | 52 | WHITESPACE@63..64 " " |
53 | CONDITION@[64; 68) | 53 | CONDITION@64..68 |
54 | LITERAL@[64; 68) | 54 | LITERAL@64..68 |
55 | TRUE_KW@[64; 68) "true" | 55 | TRUE_KW@64..68 "true" |
56 | WHITESPACE@[68; 69) " " | 56 | WHITESPACE@68..69 " " |
57 | BLOCK_EXPR@[69; 71) | 57 | BLOCK_EXPR@69..71 |
58 | BLOCK@[69; 71) | 58 | BLOCK@69..71 |
59 | L_CURLY@[69; 70) "{" | 59 | L_CURLY@69..70 "{" |
60 | R_CURLY@[70; 71) "}" | 60 | R_CURLY@70..71 "}" |
61 | WHITESPACE@[71; 76) "\n " | 61 | WHITESPACE@71..76 "\n " |
62 | EXPR_STMT@[76; 90) | 62 | EXPR_STMT@76..90 |
63 | FOR_EXPR@[76; 90) | 63 | FOR_EXPR@76..90 |
64 | FOR_KW@[76; 79) "for" | 64 | FOR_KW@76..79 "for" |
65 | WHITESPACE@[79; 80) " " | 65 | WHITESPACE@79..80 " " |
66 | PLACEHOLDER_PAT@[80; 81) | 66 | PLACEHOLDER_PAT@80..81 |
67 | UNDERSCORE@[80; 81) "_" | 67 | UNDERSCORE@80..81 "_" |
68 | WHITESPACE@[81; 82) " " | 68 | WHITESPACE@81..82 " " |
69 | IN_KW@[82; 84) "in" | 69 | IN_KW@82..84 "in" |
70 | WHITESPACE@[84; 85) " " | 70 | WHITESPACE@84..85 " " |
71 | TUPLE_EXPR@[85; 87) | 71 | TUPLE_EXPR@85..87 |
72 | L_PAREN@[85; 86) "(" | 72 | L_PAREN@85..86 "(" |
73 | R_PAREN@[86; 87) ")" | 73 | R_PAREN@86..87 ")" |
74 | WHITESPACE@[87; 88) " " | 74 | WHITESPACE@87..88 " " |
75 | BLOCK_EXPR@[88; 90) | 75 | BLOCK_EXPR@88..90 |
76 | BLOCK@[88; 90) | 76 | BLOCK@88..90 |
77 | L_CURLY@[88; 89) "{" | 77 | L_CURLY@88..89 "{" |
78 | R_CURLY@[89; 90) "}" | 78 | R_CURLY@89..90 "}" |
79 | WHITESPACE@[90; 95) "\n " | 79 | WHITESPACE@90..95 "\n " |
80 | EXPR_STMT@[95; 97) | 80 | EXPR_STMT@95..97 |
81 | BLOCK_EXPR@[95; 97) | 81 | BLOCK_EXPR@95..97 |
82 | BLOCK@[95; 97) | 82 | BLOCK@95..97 |
83 | L_CURLY@[95; 96) "{" | 83 | L_CURLY@95..96 "{" |
84 | R_CURLY@[96; 97) "}" | 84 | R_CURLY@96..97 "}" |
85 | WHITESPACE@[97; 102) "\n " | 85 | WHITESPACE@97..102 "\n " |
86 | EXPR_STMT@[102; 104) | 86 | EXPR_STMT@102..104 |
87 | BLOCK_EXPR@[102; 104) | 87 | BLOCK_EXPR@102..104 |
88 | BLOCK@[102; 104) | 88 | BLOCK@102..104 |
89 | L_CURLY@[102; 103) "{" | 89 | L_CURLY@102..103 "{" |
90 | R_CURLY@[103; 104) "}" | 90 | R_CURLY@103..104 "}" |
91 | WHITESPACE@[104; 109) "\n " | 91 | WHITESPACE@104..109 "\n " |
92 | EXPR_STMT@[109; 152) | 92 | EXPR_STMT@109..152 |
93 | MACRO_CALL@[109; 152) | 93 | MACRO_CALL@109..152 |
94 | PATH@[109; 120) | 94 | PATH@109..120 |
95 | PATH_SEGMENT@[109; 120) | 95 | PATH_SEGMENT@109..120 |
96 | NAME_REF@[109; 120) | 96 | NAME_REF@109..120 |
97 | IDENT@[109; 120) "macro_rules" | 97 | IDENT@109..120 "macro_rules" |
98 | BANG@[120; 121) "!" | 98 | BANG@120..121 "!" |
99 | WHITESPACE@[121; 122) " " | 99 | WHITESPACE@121..122 " " |
100 | NAME@[122; 126) | 100 | NAME@122..126 |
101 | IDENT@[122; 126) "test" | 101 | IDENT@122..126 "test" |
102 | WHITESPACE@[126; 127) " " | 102 | WHITESPACE@126..127 " " |
103 | TOKEN_TREE@[127; 152) | 103 | TOKEN_TREE@127..152 |
104 | L_CURLY@[127; 128) "{" | 104 | L_CURLY@127..128 "{" |
105 | WHITESPACE@[128; 138) "\n " | 105 | WHITESPACE@128..138 "\n " |
106 | TOKEN_TREE@[138; 140) | 106 | TOKEN_TREE@138..140 |
107 | L_PAREN@[138; 139) "(" | 107 | L_PAREN@138..139 "(" |
108 | R_PAREN@[139; 140) ")" | 108 | R_PAREN@139..140 ")" |
109 | WHITESPACE@[140; 141) " " | 109 | WHITESPACE@140..141 " " |
110 | EQ@[141; 142) "=" | 110 | EQ@141..142 "=" |
111 | R_ANGLE@[142; 143) ">" | 111 | R_ANGLE@142..143 ">" |
112 | WHITESPACE@[143; 144) " " | 112 | WHITESPACE@143..144 " " |
113 | TOKEN_TREE@[144; 146) | 113 | TOKEN_TREE@144..146 |
114 | L_CURLY@[144; 145) "{" | 114 | L_CURLY@144..145 "{" |
115 | R_CURLY@[145; 146) "}" | 115 | R_CURLY@145..146 "}" |
116 | WHITESPACE@[146; 151) "\n " | 116 | WHITESPACE@146..151 "\n " |
117 | R_CURLY@[151; 152) "}" | 117 | R_CURLY@151..152 "}" |
118 | WHITESPACE@[152; 157) "\n " | 118 | WHITESPACE@152..157 "\n " |
119 | MACRO_CALL@[157; 164) | 119 | MACRO_CALL@157..164 |
120 | PATH@[157; 161) | 120 | PATH@157..161 |
121 | PATH_SEGMENT@[157; 161) | 121 | PATH_SEGMENT@157..161 |
122 | NAME_REF@[157; 161) | 122 | NAME_REF@157..161 |
123 | IDENT@[157; 161) "test" | 123 | IDENT@157..161 "test" |
124 | BANG@[161; 162) "!" | 124 | BANG@161..162 "!" |
125 | TOKEN_TREE@[162; 164) | 125 | TOKEN_TREE@162..164 |
126 | L_CURLY@[162; 163) "{" | 126 | L_CURLY@162..163 "{" |
127 | R_CURLY@[163; 164) "}" | 127 | R_CURLY@163..164 "}" |
128 | WHITESPACE@[164; 165) "\n" | 128 | WHITESPACE@164..165 "\n" |
129 | R_CURLY@[165; 166) "}" | 129 | R_CURLY@165..166 "}" |
130 | WHITESPACE@[166; 167) "\n" | 130 | WHITESPACE@166..167 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast index af9077270..80bda4ba7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 20) | 1 | SOURCE_FILE@0..20 |
2 | IMPL_DEF@[0; 19) | 2 | IMPL_DEF@0..19 |
3 | DEFAULT_KW@[0; 7) "default" | 3 | DEFAULT_KW@0..7 "default" |
4 | WHITESPACE@[7; 8) " " | 4 | WHITESPACE@7..8 " " |
5 | IMPL_KW@[8; 12) "impl" | 5 | IMPL_KW@8..12 "impl" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | PATH_TYPE@[13; 16) | 7 | PATH_TYPE@13..16 |
8 | PATH@[13; 16) | 8 | PATH@13..16 |
9 | PATH_SEGMENT@[13; 16) | 9 | PATH_SEGMENT@13..16 |
10 | NAME_REF@[13; 16) | 10 | NAME_REF@13..16 |
11 | IDENT@[13; 16) "Foo" | 11 | IDENT@13..16 "Foo" |
12 | WHITESPACE@[16; 17) " " | 12 | WHITESPACE@16..17 " " |
13 | ITEM_LIST@[17; 19) | 13 | ITEM_LIST@17..19 |
14 | L_CURLY@[17; 18) "{" | 14 | L_CURLY@17..18 "{" |
15 | R_CURLY@[18; 19) "}" | 15 | R_CURLY@18..19 "}" |
16 | WHITESPACE@[19; 20) "\n" | 16 | WHITESPACE@19..20 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast index 072dc9d16..a51fb5511 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast | |||
@@ -1,19 +1,19 @@ | |||
1 | SOURCE_FILE@[0; 25) | 1 | SOURCE_FILE@0..25 |
2 | FN_DEF@[0; 24) | 2 | FN_DEF@0..24 |
3 | CONST_KW@[0; 5) "const" | 3 | CONST_KW@0..5 "const" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | UNSAFE_KW@[6; 12) "unsafe" | 5 | UNSAFE_KW@6..12 "unsafe" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | FN_KW@[13; 15) "fn" | 7 | FN_KW@13..15 "fn" |
8 | WHITESPACE@[15; 16) " " | 8 | WHITESPACE@15..16 " " |
9 | NAME@[16; 19) | 9 | NAME@16..19 |
10 | IDENT@[16; 19) "foo" | 10 | IDENT@16..19 "foo" |
11 | PARAM_LIST@[19; 21) | 11 | PARAM_LIST@19..21 |
12 | L_PAREN@[19; 20) "(" | 12 | L_PAREN@19..20 "(" |
13 | R_PAREN@[20; 21) ")" | 13 | R_PAREN@20..21 ")" |
14 | WHITESPACE@[21; 22) " " | 14 | WHITESPACE@21..22 " " |
15 | BLOCK_EXPR@[22; 24) | 15 | BLOCK_EXPR@22..24 |
16 | BLOCK@[22; 24) | 16 | BLOCK@22..24 |
17 | L_CURLY@[22; 23) "{" | 17 | L_CURLY@22..23 "{" |
18 | R_CURLY@[23; 24) "}" | 18 | R_CURLY@23..24 "}" |
19 | WHITESPACE@[24; 25) "\n" | 19 | WHITESPACE@24..25 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast index ed57a9eea..61b47bf35 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast | |||
@@ -1,103 +1,103 @@ | |||
1 | SOURCE_FILE@[0; 67) | 1 | SOURCE_FILE@0..67 |
2 | FN_DEF@[0; 9) | 2 | FN_DEF@0..9 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | BLOCK_EXPR@[7; 9) | 11 | BLOCK_EXPR@7..9 |
12 | BLOCK@[7; 9) | 12 | BLOCK@7..9 |
13 | L_CURLY@[7; 8) "{" | 13 | L_CURLY@7..8 "{" |
14 | R_CURLY@[8; 9) "}" | 14 | R_CURLY@8..9 "}" |
15 | WHITESPACE@[9; 10) "\n" | 15 | WHITESPACE@9..10 "\n" |
16 | FN_DEF@[10; 25) | 16 | FN_DEF@10..25 |
17 | FN_KW@[10; 12) "fn" | 17 | FN_KW@10..12 "fn" |
18 | WHITESPACE@[12; 13) " " | 18 | WHITESPACE@12..13 " " |
19 | NAME@[13; 14) | 19 | NAME@13..14 |
20 | IDENT@[13; 14) "b" | 20 | IDENT@13..14 "b" |
21 | PARAM_LIST@[14; 22) | 21 | PARAM_LIST@14..22 |
22 | L_PAREN@[14; 15) "(" | 22 | L_PAREN@14..15 "(" |
23 | PARAM@[15; 21) | 23 | PARAM@15..21 |
24 | BIND_PAT@[15; 16) | 24 | BIND_PAT@15..16 |
25 | NAME@[15; 16) | 25 | NAME@15..16 |
26 | IDENT@[15; 16) "x" | 26 | IDENT@15..16 "x" |
27 | COLON@[16; 17) ":" | 27 | COLON@16..17 ":" |
28 | WHITESPACE@[17; 18) " " | 28 | WHITESPACE@17..18 " " |
29 | PATH_TYPE@[18; 21) | 29 | PATH_TYPE@18..21 |
30 | PATH@[18; 21) | 30 | PATH@18..21 |
31 | PATH_SEGMENT@[18; 21) | 31 | PATH_SEGMENT@18..21 |
32 | NAME_REF@[18; 21) | 32 | NAME_REF@18..21 |
33 | IDENT@[18; 21) "i32" | 33 | IDENT@18..21 "i32" |
34 | R_PAREN@[21; 22) ")" | 34 | R_PAREN@21..22 ")" |
35 | WHITESPACE@[22; 23) " " | 35 | WHITESPACE@22..23 " " |
36 | BLOCK_EXPR@[23; 25) | 36 | BLOCK_EXPR@23..25 |
37 | BLOCK@[23; 25) | 37 | BLOCK@23..25 |
38 | L_CURLY@[23; 24) "{" | 38 | L_CURLY@23..24 "{" |
39 | R_CURLY@[24; 25) "}" | 39 | R_CURLY@24..25 "}" |
40 | WHITESPACE@[25; 26) "\n" | 40 | WHITESPACE@25..26 "\n" |
41 | FN_DEF@[26; 43) | 41 | FN_DEF@26..43 |
42 | FN_KW@[26; 28) "fn" | 42 | FN_KW@26..28 "fn" |
43 | WHITESPACE@[28; 29) " " | 43 | WHITESPACE@28..29 " " |
44 | NAME@[29; 30) | 44 | NAME@29..30 |
45 | IDENT@[29; 30) "c" | 45 | IDENT@29..30 "c" |
46 | PARAM_LIST@[30; 40) | 46 | PARAM_LIST@30..40 |
47 | L_PAREN@[30; 31) "(" | 47 | L_PAREN@30..31 "(" |
48 | PARAM@[31; 37) | 48 | PARAM@31..37 |
49 | BIND_PAT@[31; 32) | 49 | BIND_PAT@31..32 |
50 | NAME@[31; 32) | 50 | NAME@31..32 |
51 | IDENT@[31; 32) "x" | 51 | IDENT@31..32 "x" |
52 | COLON@[32; 33) ":" | 52 | COLON@32..33 ":" |
53 | WHITESPACE@[33; 34) " " | 53 | WHITESPACE@33..34 " " |
54 | PATH_TYPE@[34; 37) | 54 | PATH_TYPE@34..37 |
55 | PATH@[34; 37) | 55 | PATH@34..37 |
56 | PATH_SEGMENT@[34; 37) | 56 | PATH_SEGMENT@34..37 |
57 | NAME_REF@[34; 37) | 57 | NAME_REF@34..37 |
58 | IDENT@[34; 37) "i32" | 58 | IDENT@34..37 "i32" |
59 | COMMA@[37; 38) "," | 59 | COMMA@37..38 "," |
60 | WHITESPACE@[38; 39) " " | 60 | WHITESPACE@38..39 " " |
61 | R_PAREN@[39; 40) ")" | 61 | R_PAREN@39..40 ")" |
62 | WHITESPACE@[40; 41) " " | 62 | WHITESPACE@40..41 " " |
63 | BLOCK_EXPR@[41; 43) | 63 | BLOCK_EXPR@41..43 |
64 | BLOCK@[41; 43) | 64 | BLOCK@41..43 |
65 | L_CURLY@[41; 42) "{" | 65 | L_CURLY@41..42 "{" |
66 | R_CURLY@[42; 43) "}" | 66 | R_CURLY@42..43 "}" |
67 | WHITESPACE@[43; 44) "\n" | 67 | WHITESPACE@43..44 "\n" |
68 | FN_DEF@[44; 66) | 68 | FN_DEF@44..66 |
69 | FN_KW@[44; 46) "fn" | 69 | FN_KW@44..46 "fn" |
70 | WHITESPACE@[46; 47) " " | 70 | WHITESPACE@46..47 " " |
71 | NAME@[47; 48) | 71 | NAME@47..48 |
72 | IDENT@[47; 48) "d" | 72 | IDENT@47..48 "d" |
73 | PARAM_LIST@[48; 63) | 73 | PARAM_LIST@48..63 |
74 | L_PAREN@[48; 49) "(" | 74 | L_PAREN@48..49 "(" |
75 | PARAM@[49; 55) | 75 | PARAM@49..55 |
76 | BIND_PAT@[49; 50) | 76 | BIND_PAT@49..50 |
77 | NAME@[49; 50) | 77 | NAME@49..50 |
78 | IDENT@[49; 50) "x" | 78 | IDENT@49..50 "x" |
79 | COLON@[50; 51) ":" | 79 | COLON@50..51 ":" |
80 | WHITESPACE@[51; 52) " " | 80 | WHITESPACE@51..52 " " |
81 | PATH_TYPE@[52; 55) | 81 | PATH_TYPE@52..55 |
82 | PATH@[52; 55) | 82 | PATH@52..55 |
83 | PATH_SEGMENT@[52; 55) | 83 | PATH_SEGMENT@52..55 |
84 | NAME_REF@[52; 55) | 84 | NAME_REF@52..55 |
85 | IDENT@[52; 55) "i32" | 85 | IDENT@52..55 "i32" |
86 | COMMA@[55; 56) "," | 86 | COMMA@55..56 "," |
87 | WHITESPACE@[56; 57) " " | 87 | WHITESPACE@56..57 " " |
88 | PARAM@[57; 62) | 88 | PARAM@57..62 |
89 | BIND_PAT@[57; 58) | 89 | BIND_PAT@57..58 |
90 | NAME@[57; 58) | 90 | NAME@57..58 |
91 | IDENT@[57; 58) "y" | 91 | IDENT@57..58 "y" |
92 | COLON@[58; 59) ":" | 92 | COLON@58..59 ":" |
93 | WHITESPACE@[59; 60) " " | 93 | WHITESPACE@59..60 " " |
94 | TUPLE_TYPE@[60; 62) | 94 | TUPLE_TYPE@60..62 |
95 | L_PAREN@[60; 61) "(" | 95 | L_PAREN@60..61 "(" |
96 | R_PAREN@[61; 62) ")" | 96 | R_PAREN@61..62 ")" |
97 | R_PAREN@[62; 63) ")" | 97 | R_PAREN@62..63 ")" |
98 | WHITESPACE@[63; 64) " " | 98 | WHITESPACE@63..64 " " |
99 | BLOCK_EXPR@[64; 66) | 99 | BLOCK_EXPR@64..66 |
100 | BLOCK@[64; 66) | 100 | BLOCK@64..66 |
101 | L_CURLY@[64; 65) "{" | 101 | L_CURLY@64..65 "{" |
102 | R_CURLY@[65; 66) "}" | 102 | R_CURLY@65..66 "}" |
103 | WHITESPACE@[66; 67) "\n" | 103 | WHITESPACE@66..67 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast index d25f087a5..89d435d1f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast | |||
@@ -1,36 +1,36 @@ | |||
1 | SOURCE_FILE@[0; 33) | 1 | SOURCE_FILE@0..33 |
2 | FN_DEF@[0; 32) | 2 | FN_DEF@0..32 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 32) | 11 | BLOCK_EXPR@9..32 |
12 | BLOCK@[9; 32) | 12 | BLOCK@9..32 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 30) | 15 | EXPR_STMT@15..30 |
16 | FOR_EXPR@[15; 29) | 16 | FOR_EXPR@15..29 |
17 | FOR_KW@[15; 18) "for" | 17 | FOR_KW@15..18 "for" |
18 | WHITESPACE@[18; 19) " " | 18 | WHITESPACE@18..19 " " |
19 | BIND_PAT@[19; 20) | 19 | BIND_PAT@19..20 |
20 | NAME@[19; 20) | 20 | NAME@19..20 |
21 | IDENT@[19; 20) "x" | 21 | IDENT@19..20 "x" |
22 | WHITESPACE@[20; 21) " " | 22 | WHITESPACE@20..21 " " |
23 | IN_KW@[21; 23) "in" | 23 | IN_KW@21..23 "in" |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | ARRAY_EXPR@[24; 26) | 25 | ARRAY_EXPR@24..26 |
26 | L_BRACK@[24; 25) "[" | 26 | L_BRACK@24..25 "[" |
27 | R_BRACK@[25; 26) "]" | 27 | R_BRACK@25..26 "]" |
28 | WHITESPACE@[26; 27) " " | 28 | WHITESPACE@26..27 " " |
29 | BLOCK_EXPR@[27; 29) | 29 | BLOCK_EXPR@27..29 |
30 | BLOCK@[27; 29) | 30 | BLOCK@27..29 |
31 | L_CURLY@[27; 28) "{" | 31 | L_CURLY@27..28 "{" |
32 | R_CURLY@[28; 29) "}" | 32 | R_CURLY@28..29 "}" |
33 | SEMICOLON@[29; 30) ";" | 33 | SEMICOLON@29..30 ";" |
34 | WHITESPACE@[30; 31) "\n" | 34 | WHITESPACE@30..31 "\n" |
35 | R_CURLY@[31; 32) "}" | 35 | R_CURLY@31..32 "}" |
36 | WHITESPACE@[32; 33) "\n" | 36 | WHITESPACE@32..33 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast index b7979fbf5..57b4d0c4f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | FN_DEF@[0; 18) | 2 | FN_DEF@0..18 |
3 | UNSAFE_KW@[0; 6) "unsafe" | 3 | UNSAFE_KW@0..6 "unsafe" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | FN_KW@[7; 9) "fn" | 5 | FN_KW@7..9 "fn" |
6 | WHITESPACE@[9; 10) " " | 6 | WHITESPACE@9..10 " " |
7 | NAME@[10; 13) | 7 | NAME@10..13 |
8 | IDENT@[10; 13) "foo" | 8 | IDENT@10..13 "foo" |
9 | PARAM_LIST@[13; 15) | 9 | PARAM_LIST@13..15 |
10 | L_PAREN@[13; 14) "(" | 10 | L_PAREN@13..14 "(" |
11 | R_PAREN@[14; 15) ")" | 11 | R_PAREN@14..15 ")" |
12 | WHITESPACE@[15; 16) " " | 12 | WHITESPACE@15..16 " " |
13 | BLOCK_EXPR@[16; 18) | 13 | BLOCK_EXPR@16..18 |
14 | BLOCK@[16; 18) | 14 | BLOCK@16..18 |
15 | L_CURLY@[16; 17) "{" | 15 | L_CURLY@16..17 "{" |
16 | R_CURLY@[17; 18) "}" | 16 | R_CURLY@17..18 "}" |
17 | WHITESPACE@[18; 19) "\n" | 17 | WHITESPACE@18..19 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast index fcd099de9..ed6f6f326 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast | |||
@@ -1,133 +1,133 @@ | |||
1 | SOURCE_FILE@[0; 119) | 1 | SOURCE_FILE@0..119 |
2 | FN_DEF@[0; 118) | 2 | FN_DEF@0..118 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 118) | 11 | BLOCK_EXPR@9..118 |
12 | BLOCK@[9; 118) | 12 | BLOCK@9..118 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 29) | 15 | LET_STMT@15..29 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | RECORD_PAT@[19; 23) | 18 | RECORD_PAT@19..23 |
19 | PATH@[19; 20) | 19 | PATH@19..20 |
20 | PATH_SEGMENT@[19; 20) | 20 | PATH_SEGMENT@19..20 |
21 | NAME_REF@[19; 20) | 21 | NAME_REF@19..20 |
22 | IDENT@[19; 20) "S" | 22 | IDENT@19..20 "S" |
23 | WHITESPACE@[20; 21) " " | 23 | WHITESPACE@20..21 " " |
24 | RECORD_FIELD_PAT_LIST@[21; 23) | 24 | RECORD_FIELD_PAT_LIST@21..23 |
25 | L_CURLY@[21; 22) "{" | 25 | L_CURLY@21..22 "{" |
26 | R_CURLY@[22; 23) "}" | 26 | R_CURLY@22..23 "}" |
27 | WHITESPACE@[23; 24) " " | 27 | WHITESPACE@23..24 " " |
28 | EQ@[24; 25) "=" | 28 | EQ@24..25 "=" |
29 | WHITESPACE@[25; 26) " " | 29 | WHITESPACE@25..26 " " |
30 | TUPLE_EXPR@[26; 28) | 30 | TUPLE_EXPR@26..28 |
31 | L_PAREN@[26; 27) "(" | 31 | L_PAREN@26..27 "(" |
32 | R_PAREN@[27; 28) ")" | 32 | R_PAREN@27..28 ")" |
33 | SEMICOLON@[28; 29) ";" | 33 | SEMICOLON@28..29 ";" |
34 | WHITESPACE@[29; 34) "\n " | 34 | WHITESPACE@29..34 "\n " |
35 | LET_STMT@[34; 62) | 35 | LET_STMT@34..62 |
36 | LET_KW@[34; 37) "let" | 36 | LET_KW@34..37 "let" |
37 | WHITESPACE@[37; 38) " " | 37 | WHITESPACE@37..38 " " |
38 | RECORD_PAT@[38; 56) | 38 | RECORD_PAT@38..56 |
39 | PATH@[38; 39) | 39 | PATH@38..39 |
40 | PATH_SEGMENT@[38; 39) | 40 | PATH_SEGMENT@38..39 |
41 | NAME_REF@[38; 39) | 41 | NAME_REF@38..39 |
42 | IDENT@[38; 39) "S" | 42 | IDENT@38..39 "S" |
43 | WHITESPACE@[39; 40) " " | 43 | WHITESPACE@39..40 " " |
44 | RECORD_FIELD_PAT_LIST@[40; 56) | 44 | RECORD_FIELD_PAT_LIST@40..56 |
45 | L_CURLY@[40; 41) "{" | 45 | L_CURLY@40..41 "{" |
46 | WHITESPACE@[41; 42) " " | 46 | WHITESPACE@41..42 " " |
47 | RECORD_FIELD_PAT@[42; 43) | 47 | RECORD_FIELD_PAT@42..43 |
48 | BIND_PAT@[42; 43) | 48 | BIND_PAT@42..43 |
49 | NAME@[42; 43) | 49 | NAME@42..43 |
50 | IDENT@[42; 43) "f" | 50 | IDENT@42..43 "f" |
51 | COMMA@[43; 44) "," | 51 | COMMA@43..44 "," |
52 | WHITESPACE@[44; 45) " " | 52 | WHITESPACE@44..45 " " |
53 | RECORD_FIELD_PAT@[45; 54) | 53 | RECORD_FIELD_PAT@45..54 |
54 | BIND_PAT@[45; 54) | 54 | BIND_PAT@45..54 |
55 | REF_KW@[45; 48) "ref" | 55 | REF_KW@45..48 "ref" |
56 | WHITESPACE@[48; 49) " " | 56 | WHITESPACE@48..49 " " |
57 | MUT_KW@[49; 52) "mut" | 57 | MUT_KW@49..52 "mut" |
58 | WHITESPACE@[52; 53) " " | 58 | WHITESPACE@52..53 " " |
59 | NAME@[53; 54) | 59 | NAME@53..54 |
60 | IDENT@[53; 54) "g" | 60 | IDENT@53..54 "g" |
61 | WHITESPACE@[54; 55) " " | 61 | WHITESPACE@54..55 " " |
62 | R_CURLY@[55; 56) "}" | 62 | R_CURLY@55..56 "}" |
63 | WHITESPACE@[56; 57) " " | 63 | WHITESPACE@56..57 " " |
64 | EQ@[57; 58) "=" | 64 | EQ@57..58 "=" |
65 | WHITESPACE@[58; 59) " " | 65 | WHITESPACE@58..59 " " |
66 | TUPLE_EXPR@[59; 61) | 66 | TUPLE_EXPR@59..61 |
67 | L_PAREN@[59; 60) "(" | 67 | L_PAREN@59..60 "(" |
68 | R_PAREN@[60; 61) ")" | 68 | R_PAREN@60..61 ")" |
69 | SEMICOLON@[61; 62) ";" | 69 | SEMICOLON@61..62 ";" |
70 | WHITESPACE@[62; 67) "\n " | 70 | WHITESPACE@62..67 "\n " |
71 | LET_STMT@[67; 90) | 71 | LET_STMT@67..90 |
72 | LET_KW@[67; 70) "let" | 72 | LET_KW@67..70 "let" |
73 | WHITESPACE@[70; 71) " " | 73 | WHITESPACE@70..71 " " |
74 | RECORD_PAT@[71; 84) | 74 | RECORD_PAT@71..84 |
75 | PATH@[71; 72) | 75 | PATH@71..72 |
76 | PATH_SEGMENT@[71; 72) | 76 | PATH_SEGMENT@71..72 |
77 | NAME_REF@[71; 72) | 77 | NAME_REF@71..72 |
78 | IDENT@[71; 72) "S" | 78 | IDENT@71..72 "S" |
79 | WHITESPACE@[72; 73) " " | 79 | WHITESPACE@72..73 " " |
80 | RECORD_FIELD_PAT_LIST@[73; 84) | 80 | RECORD_FIELD_PAT_LIST@73..84 |
81 | L_CURLY@[73; 74) "{" | 81 | L_CURLY@73..74 "{" |
82 | WHITESPACE@[74; 75) " " | 82 | WHITESPACE@74..75 " " |
83 | RECORD_FIELD_PAT@[75; 79) | 83 | RECORD_FIELD_PAT@75..79 |
84 | NAME_REF@[75; 76) | 84 | NAME_REF@75..76 |
85 | IDENT@[75; 76) "h" | 85 | IDENT@75..76 "h" |
86 | COLON@[76; 77) ":" | 86 | COLON@76..77 ":" |
87 | WHITESPACE@[77; 78) " " | 87 | WHITESPACE@77..78 " " |
88 | PLACEHOLDER_PAT@[78; 79) | 88 | PLACEHOLDER_PAT@78..79 |
89 | UNDERSCORE@[78; 79) "_" | 89 | UNDERSCORE@78..79 "_" |
90 | COMMA@[79; 80) "," | 90 | COMMA@79..80 "," |
91 | WHITESPACE@[80; 81) " " | 91 | WHITESPACE@80..81 " " |
92 | DOT2@[81; 83) ".." | 92 | DOT2@81..83 ".." |
93 | R_CURLY@[83; 84) "}" | 93 | R_CURLY@83..84 "}" |
94 | WHITESPACE@[84; 85) " " | 94 | WHITESPACE@84..85 " " |
95 | EQ@[85; 86) "=" | 95 | EQ@85..86 "=" |
96 | WHITESPACE@[86; 87) " " | 96 | WHITESPACE@86..87 " " |
97 | TUPLE_EXPR@[87; 89) | 97 | TUPLE_EXPR@87..89 |
98 | L_PAREN@[87; 88) "(" | 98 | L_PAREN@87..88 "(" |
99 | R_PAREN@[88; 89) ")" | 99 | R_PAREN@88..89 ")" |
100 | SEMICOLON@[89; 90) ";" | 100 | SEMICOLON@89..90 ";" |
101 | WHITESPACE@[90; 95) "\n " | 101 | WHITESPACE@90..95 "\n " |
102 | LET_STMT@[95; 116) | 102 | LET_STMT@95..116 |
103 | LET_KW@[95; 98) "let" | 103 | LET_KW@95..98 "let" |
104 | WHITESPACE@[98; 99) " " | 104 | WHITESPACE@98..99 " " |
105 | RECORD_PAT@[99; 110) | 105 | RECORD_PAT@99..110 |
106 | PATH@[99; 100) | 106 | PATH@99..100 |
107 | PATH_SEGMENT@[99; 100) | 107 | PATH_SEGMENT@99..100 |
108 | NAME_REF@[99; 100) | 108 | NAME_REF@99..100 |
109 | IDENT@[99; 100) "S" | 109 | IDENT@99..100 "S" |
110 | WHITESPACE@[100; 101) " " | 110 | WHITESPACE@100..101 " " |
111 | RECORD_FIELD_PAT_LIST@[101; 110) | 111 | RECORD_FIELD_PAT_LIST@101..110 |
112 | L_CURLY@[101; 102) "{" | 112 | L_CURLY@101..102 "{" |
113 | WHITESPACE@[102; 103) " " | 113 | WHITESPACE@102..103 " " |
114 | RECORD_FIELD_PAT@[103; 107) | 114 | RECORD_FIELD_PAT@103..107 |
115 | NAME_REF@[103; 104) | 115 | NAME_REF@103..104 |
116 | IDENT@[103; 104) "h" | 116 | IDENT@103..104 "h" |
117 | COLON@[104; 105) ":" | 117 | COLON@104..105 ":" |
118 | WHITESPACE@[105; 106) " " | 118 | WHITESPACE@105..106 " " |
119 | PLACEHOLDER_PAT@[106; 107) | 119 | PLACEHOLDER_PAT@106..107 |
120 | UNDERSCORE@[106; 107) "_" | 120 | UNDERSCORE@106..107 "_" |
121 | COMMA@[107; 108) "," | 121 | COMMA@107..108 "," |
122 | WHITESPACE@[108; 109) " " | 122 | WHITESPACE@108..109 " " |
123 | R_CURLY@[109; 110) "}" | 123 | R_CURLY@109..110 "}" |
124 | WHITESPACE@[110; 111) " " | 124 | WHITESPACE@110..111 " " |
125 | EQ@[111; 112) "=" | 125 | EQ@111..112 "=" |
126 | WHITESPACE@[112; 113) " " | 126 | WHITESPACE@112..113 " " |
127 | TUPLE_EXPR@[113; 115) | 127 | TUPLE_EXPR@113..115 |
128 | L_PAREN@[113; 114) "(" | 128 | L_PAREN@113..114 "(" |
129 | R_PAREN@[114; 115) ")" | 129 | R_PAREN@114..115 ")" |
130 | SEMICOLON@[115; 116) ";" | 130 | SEMICOLON@115..116 ";" |
131 | WHITESPACE@[116; 117) "\n" | 131 | WHITESPACE@116..117 "\n" |
132 | R_CURLY@[117; 118) "}" | 132 | R_CURLY@117..118 "}" |
133 | WHITESPACE@[118; 119) "\n" | 133 | WHITESPACE@118..119 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast index 60fbf2771..461c61914 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast | |||
@@ -1,55 +1,55 @@ | |||
1 | SOURCE_FILE@[0; 55) | 1 | SOURCE_FILE@0..55 |
2 | FN_DEF@[0; 54) | 2 | FN_DEF@0..54 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 54) | 11 | BLOCK_EXPR@9..54 |
12 | BLOCK@[9; 54) | 12 | BLOCK@9..54 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 18) | 15 | EXPR_STMT@15..18 |
16 | ARRAY_EXPR@[15; 17) | 16 | ARRAY_EXPR@15..17 |
17 | L_BRACK@[15; 16) "[" | 17 | L_BRACK@15..16 "[" |
18 | R_BRACK@[16; 17) "]" | 18 | R_BRACK@16..17 "]" |
19 | SEMICOLON@[17; 18) ";" | 19 | SEMICOLON@17..18 ";" |
20 | WHITESPACE@[18; 23) "\n " | 20 | WHITESPACE@18..23 "\n " |
21 | EXPR_STMT@[23; 27) | 21 | EXPR_STMT@23..27 |
22 | ARRAY_EXPR@[23; 26) | 22 | ARRAY_EXPR@23..26 |
23 | L_BRACK@[23; 24) "[" | 23 | L_BRACK@23..24 "[" |
24 | LITERAL@[24; 25) | 24 | LITERAL@24..25 |
25 | INT_NUMBER@[24; 25) "1" | 25 | INT_NUMBER@24..25 "1" |
26 | R_BRACK@[25; 26) "]" | 26 | R_BRACK@25..26 "]" |
27 | SEMICOLON@[26; 27) ";" | 27 | SEMICOLON@26..27 ";" |
28 | WHITESPACE@[27; 32) "\n " | 28 | WHITESPACE@27..32 "\n " |
29 | EXPR_STMT@[32; 40) | 29 | EXPR_STMT@32..40 |
30 | ARRAY_EXPR@[32; 39) | 30 | ARRAY_EXPR@32..39 |
31 | L_BRACK@[32; 33) "[" | 31 | L_BRACK@32..33 "[" |
32 | LITERAL@[33; 34) | 32 | LITERAL@33..34 |
33 | INT_NUMBER@[33; 34) "1" | 33 | INT_NUMBER@33..34 "1" |
34 | COMMA@[34; 35) "," | 34 | COMMA@34..35 "," |
35 | WHITESPACE@[35; 36) " " | 35 | WHITESPACE@35..36 " " |
36 | LITERAL@[36; 37) | 36 | LITERAL@36..37 |
37 | INT_NUMBER@[36; 37) "2" | 37 | INT_NUMBER@36..37 "2" |
38 | COMMA@[37; 38) "," | 38 | COMMA@37..38 "," |
39 | R_BRACK@[38; 39) "]" | 39 | R_BRACK@38..39 "]" |
40 | SEMICOLON@[39; 40) ";" | 40 | SEMICOLON@39..40 ";" |
41 | WHITESPACE@[40; 45) "\n " | 41 | WHITESPACE@40..45 "\n " |
42 | EXPR_STMT@[45; 52) | 42 | EXPR_STMT@45..52 |
43 | ARRAY_EXPR@[45; 51) | 43 | ARRAY_EXPR@45..51 |
44 | L_BRACK@[45; 46) "[" | 44 | L_BRACK@45..46 "[" |
45 | LITERAL@[46; 47) | 45 | LITERAL@46..47 |
46 | INT_NUMBER@[46; 47) "1" | 46 | INT_NUMBER@46..47 "1" |
47 | SEMICOLON@[47; 48) ";" | 47 | SEMICOLON@47..48 ";" |
48 | WHITESPACE@[48; 49) " " | 48 | WHITESPACE@48..49 " " |
49 | LITERAL@[49; 50) | 49 | LITERAL@49..50 |
50 | INT_NUMBER@[49; 50) "2" | 50 | INT_NUMBER@49..50 "2" |
51 | R_BRACK@[50; 51) "]" | 51 | R_BRACK@50..51 "]" |
52 | SEMICOLON@[51; 52) ";" | 52 | SEMICOLON@51..52 ";" |
53 | WHITESPACE@[52; 53) "\n" | 53 | WHITESPACE@52..53 "\n" |
54 | R_CURLY@[53; 54) "}" | 54 | R_CURLY@53..54 "}" |
55 | WHITESPACE@[54; 55) "\n" | 55 | WHITESPACE@54..55 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast b/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast index d65c75c65..e3c4cfeb3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast | |||
@@ -1,41 +1,41 @@ | |||
1 | SOURCE_FILE@[0; 29) | 1 | SOURCE_FILE@0..29 |
2 | TYPE_ALIAS_DEF@[0; 28) | 2 | TYPE_ALIAS_DEF@0..28 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "F" | 6 | IDENT@5..6 "F" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | PATH_TYPE@[9; 27) | 10 | PATH_TYPE@9..27 |
11 | PATH@[9; 27) | 11 | PATH@9..27 |
12 | PATH_SEGMENT@[9; 27) | 12 | PATH_SEGMENT@9..27 |
13 | NAME_REF@[9; 12) | 13 | NAME_REF@9..12 |
14 | IDENT@[9; 12) "Box" | 14 | IDENT@9..12 "Box" |
15 | TYPE_ARG_LIST@[12; 27) | 15 | TYPE_ARG_LIST@12..27 |
16 | L_ANGLE@[12; 13) "<" | 16 | L_ANGLE@12..13 "<" |
17 | TYPE_ARG@[13; 26) | 17 | TYPE_ARG@13..26 |
18 | PATH_TYPE@[13; 26) | 18 | PATH_TYPE@13..26 |
19 | PATH@[13; 26) | 19 | PATH@13..26 |
20 | PATH_SEGMENT@[13; 26) | 20 | PATH_SEGMENT@13..26 |
21 | NAME_REF@[13; 15) | 21 | NAME_REF@13..15 |
22 | IDENT@[13; 15) "Fn" | 22 | IDENT@13..15 "Fn" |
23 | PARAM_LIST@[15; 20) | 23 | PARAM_LIST@15..20 |
24 | L_PAREN@[15; 16) "(" | 24 | L_PAREN@15..16 "(" |
25 | PARAM@[16; 19) | 25 | PARAM@16..19 |
26 | PATH_TYPE@[16; 19) | 26 | PATH_TYPE@16..19 |
27 | PATH@[16; 19) | 27 | PATH@16..19 |
28 | PATH_SEGMENT@[16; 19) | 28 | PATH_SEGMENT@16..19 |
29 | NAME_REF@[16; 19) | 29 | NAME_REF@16..19 |
30 | IDENT@[16; 19) "i32" | 30 | IDENT@16..19 "i32" |
31 | R_PAREN@[19; 20) ")" | 31 | R_PAREN@19..20 ")" |
32 | WHITESPACE@[20; 21) " " | 32 | WHITESPACE@20..21 " " |
33 | RET_TYPE@[21; 26) | 33 | RET_TYPE@21..26 |
34 | THIN_ARROW@[21; 23) "->" | 34 | THIN_ARROW@21..23 "->" |
35 | WHITESPACE@[23; 24) " " | 35 | WHITESPACE@23..24 " " |
36 | TUPLE_TYPE@[24; 26) | 36 | TUPLE_TYPE@24..26 |
37 | L_PAREN@[24; 25) "(" | 37 | L_PAREN@24..25 "(" |
38 | R_PAREN@[25; 26) ")" | 38 | R_PAREN@25..26 ")" |
39 | R_ANGLE@[26; 27) ">" | 39 | R_ANGLE@26..27 ">" |
40 | SEMICOLON@[27; 28) ";" | 40 | SEMICOLON@27..28 ";" |
41 | WHITESPACE@[28; 29) "\n" | 41 | WHITESPACE@28..29 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast index 5635cba9b..8b2323cf2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 52) | 1 | SOURCE_FILE@0..52 |
2 | FN_DEF@[0; 51) | 2 | FN_DEF@0..51 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 51) | 11 | BLOCK_EXPR@9..51 |
12 | BLOCK@[9; 51) | 12 | BLOCK@9..51 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 18) | 15 | EXPR_STMT@15..18 |
16 | BLOCK_EXPR@[15; 17) | 16 | BLOCK_EXPR@15..17 |
17 | BLOCK@[15; 17) | 17 | BLOCK@15..17 |
18 | L_CURLY@[15; 16) "{" | 18 | L_CURLY@15..16 "{" |
19 | R_CURLY@[16; 17) "}" | 19 | R_CURLY@16..17 "}" |
20 | SEMICOLON@[17; 18) ";" | 20 | SEMICOLON@17..18 ";" |
21 | WHITESPACE@[18; 23) "\n " | 21 | WHITESPACE@18..23 "\n " |
22 | EXPR_STMT@[23; 33) | 22 | EXPR_STMT@23..33 |
23 | BLOCK_EXPR@[23; 32) | 23 | BLOCK_EXPR@23..32 |
24 | UNSAFE_KW@[23; 29) "unsafe" | 24 | UNSAFE_KW@23..29 "unsafe" |
25 | WHITESPACE@[29; 30) " " | 25 | WHITESPACE@29..30 " " |
26 | BLOCK@[30; 32) | 26 | BLOCK@30..32 |
27 | L_CURLY@[30; 31) "{" | 27 | L_CURLY@30..31 "{" |
28 | R_CURLY@[31; 32) "}" | 28 | R_CURLY@31..32 "}" |
29 | SEMICOLON@[32; 33) ";" | 29 | SEMICOLON@32..33 ";" |
30 | WHITESPACE@[33; 38) "\n " | 30 | WHITESPACE@33..38 "\n " |
31 | EXPR_STMT@[38; 49) | 31 | EXPR_STMT@38..49 |
32 | BLOCK_EXPR@[38; 48) | 32 | BLOCK_EXPR@38..48 |
33 | LABEL@[38; 45) | 33 | LABEL@38..45 |
34 | LIFETIME@[38; 44) "\'label" | 34 | LIFETIME@38..44 "\'label" |
35 | COLON@[44; 45) ":" | 35 | COLON@44..45 ":" |
36 | WHITESPACE@[45; 46) " " | 36 | WHITESPACE@45..46 " " |
37 | BLOCK@[46; 48) | 37 | BLOCK@46..48 |
38 | L_CURLY@[46; 47) "{" | 38 | L_CURLY@46..47 "{" |
39 | R_CURLY@[47; 48) "}" | 39 | R_CURLY@47..48 "}" |
40 | SEMICOLON@[48; 49) ";" | 40 | SEMICOLON@48..49 ";" |
41 | WHITESPACE@[49; 50) "\n" | 41 | WHITESPACE@49..50 "\n" |
42 | R_CURLY@[50; 51) "}" | 42 | R_CURLY@50..51 "}" |
43 | WHITESPACE@[51; 52) "\n" | 43 | WHITESPACE@51..52 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast index 157dfcdb8..73c314e07 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast | |||
@@ -1,140 +1,140 @@ | |||
1 | SOURCE_FILE@[0; 134) | 1 | SOURCE_FILE@0..134 |
2 | FN_DEF@[0; 133) | 2 | FN_DEF@0..133 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 133) | 11 | BLOCK_EXPR@9..133 |
12 | BLOCK@[9; 133) | 12 | BLOCK@9..133 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 21) | 15 | EXPR_STMT@15..21 |
16 | LAMBDA_EXPR@[15; 20) | 16 | LAMBDA_EXPR@15..20 |
17 | PARAM_LIST@[15; 17) | 17 | PARAM_LIST@15..17 |
18 | PIPE@[15; 16) "|" | 18 | PIPE@15..16 "|" |
19 | PIPE@[16; 17) "|" | 19 | PIPE@16..17 "|" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | TUPLE_EXPR@[18; 20) | 21 | TUPLE_EXPR@18..20 |
22 | L_PAREN@[18; 19) "(" | 22 | L_PAREN@18..19 "(" |
23 | R_PAREN@[19; 20) ")" | 23 | R_PAREN@19..20 ")" |
24 | SEMICOLON@[20; 21) ";" | 24 | SEMICOLON@20..21 ";" |
25 | WHITESPACE@[21; 26) "\n " | 25 | WHITESPACE@21..26 "\n " |
26 | EXPR_STMT@[26; 43) | 26 | EXPR_STMT@26..43 |
27 | LAMBDA_EXPR@[26; 42) | 27 | LAMBDA_EXPR@26..42 |
28 | PARAM_LIST@[26; 28) | 28 | PARAM_LIST@26..28 |
29 | PIPE@[26; 27) "|" | 29 | PIPE@26..27 "|" |
30 | PIPE@[27; 28) "|" | 30 | PIPE@27..28 "|" |
31 | WHITESPACE@[28; 29) " " | 31 | WHITESPACE@28..29 " " |
32 | RET_TYPE@[29; 35) | 32 | RET_TYPE@29..35 |
33 | THIN_ARROW@[29; 31) "->" | 33 | THIN_ARROW@29..31 "->" |
34 | WHITESPACE@[31; 32) " " | 34 | WHITESPACE@31..32 " " |
35 | PATH_TYPE@[32; 35) | 35 | PATH_TYPE@32..35 |
36 | PATH@[32; 35) | 36 | PATH@32..35 |
37 | PATH_SEGMENT@[32; 35) | 37 | PATH_SEGMENT@32..35 |
38 | NAME_REF@[32; 35) | 38 | NAME_REF@32..35 |
39 | IDENT@[32; 35) "i32" | 39 | IDENT@32..35 "i32" |
40 | WHITESPACE@[35; 36) " " | 40 | WHITESPACE@35..36 " " |
41 | BLOCK_EXPR@[36; 42) | 41 | BLOCK_EXPR@36..42 |
42 | BLOCK@[36; 42) | 42 | BLOCK@36..42 |
43 | L_CURLY@[36; 37) "{" | 43 | L_CURLY@36..37 "{" |
44 | WHITESPACE@[37; 38) " " | 44 | WHITESPACE@37..38 " " |
45 | LITERAL@[38; 40) | 45 | LITERAL@38..40 |
46 | INT_NUMBER@[38; 40) "92" | 46 | INT_NUMBER@38..40 "92" |
47 | WHITESPACE@[40; 41) " " | 47 | WHITESPACE@40..41 " " |
48 | R_CURLY@[41; 42) "}" | 48 | R_CURLY@41..42 "}" |
49 | SEMICOLON@[42; 43) ";" | 49 | SEMICOLON@42..43 ";" |
50 | WHITESPACE@[43; 48) "\n " | 50 | WHITESPACE@43..48 "\n " |
51 | EXPR_STMT@[48; 54) | 51 | EXPR_STMT@48..54 |
52 | LAMBDA_EXPR@[48; 53) | 52 | LAMBDA_EXPR@48..53 |
53 | PARAM_LIST@[48; 51) | 53 | PARAM_LIST@48..51 |
54 | PIPE@[48; 49) "|" | 54 | PIPE@48..49 "|" |
55 | PARAM@[49; 50) | 55 | PARAM@49..50 |
56 | BIND_PAT@[49; 50) | 56 | BIND_PAT@49..50 |
57 | NAME@[49; 50) | 57 | NAME@49..50 |
58 | IDENT@[49; 50) "x" | 58 | IDENT@49..50 "x" |
59 | PIPE@[50; 51) "|" | 59 | PIPE@50..51 "|" |
60 | WHITESPACE@[51; 52) " " | 60 | WHITESPACE@51..52 " " |
61 | PATH_EXPR@[52; 53) | 61 | PATH_EXPR@52..53 |
62 | PATH@[52; 53) | 62 | PATH@52..53 |
63 | PATH_SEGMENT@[52; 53) | 63 | PATH_SEGMENT@52..53 |
64 | NAME_REF@[52; 53) | 64 | NAME_REF@52..53 |
65 | IDENT@[52; 53) "x" | 65 | IDENT@52..53 "x" |
66 | SEMICOLON@[53; 54) ";" | 66 | SEMICOLON@53..54 ";" |
67 | WHITESPACE@[54; 59) "\n " | 67 | WHITESPACE@54..59 "\n " |
68 | EXPR_STMT@[59; 76) | 68 | EXPR_STMT@59..76 |
69 | LAMBDA_EXPR@[59; 75) | 69 | LAMBDA_EXPR@59..75 |
70 | MOVE_KW@[59; 63) "move" | 70 | MOVE_KW@59..63 "move" |
71 | WHITESPACE@[63; 64) " " | 71 | WHITESPACE@63..64 " " |
72 | PARAM_LIST@[64; 73) | 72 | PARAM_LIST@64..73 |
73 | PIPE@[64; 65) "|" | 73 | PIPE@64..65 "|" |
74 | PARAM@[65; 71) | 74 | PARAM@65..71 |
75 | BIND_PAT@[65; 66) | 75 | BIND_PAT@65..66 |
76 | NAME@[65; 66) | 76 | NAME@65..66 |
77 | IDENT@[65; 66) "x" | 77 | IDENT@65..66 "x" |
78 | COLON@[66; 67) ":" | 78 | COLON@66..67 ":" |
79 | WHITESPACE@[67; 68) " " | 79 | WHITESPACE@67..68 " " |
80 | PATH_TYPE@[68; 71) | 80 | PATH_TYPE@68..71 |
81 | PATH@[68; 71) | 81 | PATH@68..71 |
82 | PATH_SEGMENT@[68; 71) | 82 | PATH_SEGMENT@68..71 |
83 | NAME_REF@[68; 71) | 83 | NAME_REF@68..71 |
84 | IDENT@[68; 71) "i32" | 84 | IDENT@68..71 "i32" |
85 | COMMA@[71; 72) "," | 85 | COMMA@71..72 "," |
86 | PIPE@[72; 73) "|" | 86 | PIPE@72..73 "|" |
87 | WHITESPACE@[73; 74) " " | 87 | WHITESPACE@73..74 " " |
88 | PATH_EXPR@[74; 75) | 88 | PATH_EXPR@74..75 |
89 | PATH@[74; 75) | 89 | PATH@74..75 |
90 | PATH_SEGMENT@[74; 75) | 90 | PATH_SEGMENT@74..75 |
91 | NAME_REF@[74; 75) | 91 | NAME_REF@74..75 |
92 | IDENT@[74; 75) "x" | 92 | IDENT@74..75 "x" |
93 | SEMICOLON@[75; 76) ";" | 93 | SEMICOLON@75..76 ";" |
94 | WHITESPACE@[76; 81) "\n " | 94 | WHITESPACE@76..81 "\n " |
95 | EXPR_STMT@[81; 93) | 95 | EXPR_STMT@81..93 |
96 | LAMBDA_EXPR@[81; 92) | 96 | LAMBDA_EXPR@81..92 |
97 | ASYNC_KW@[81; 86) "async" | 97 | ASYNC_KW@81..86 "async" |
98 | WHITESPACE@[86; 87) " " | 98 | WHITESPACE@86..87 " " |
99 | PARAM_LIST@[87; 89) | 99 | PARAM_LIST@87..89 |
100 | PIPE@[87; 88) "|" | 100 | PIPE@87..88 "|" |
101 | PIPE@[88; 89) "|" | 101 | PIPE@88..89 "|" |
102 | WHITESPACE@[89; 90) " " | 102 | WHITESPACE@89..90 " " |
103 | BLOCK_EXPR@[90; 92) | 103 | BLOCK_EXPR@90..92 |
104 | BLOCK@[90; 92) | 104 | BLOCK@90..92 |
105 | L_CURLY@[90; 91) "{" | 105 | L_CURLY@90..91 "{" |
106 | R_CURLY@[91; 92) "}" | 106 | R_CURLY@91..92 "}" |
107 | SEMICOLON@[92; 93) ";" | 107 | SEMICOLON@92..93 ";" |
108 | WHITESPACE@[93; 98) "\n " | 108 | WHITESPACE@93..98 "\n " |
109 | EXPR_STMT@[98; 109) | 109 | EXPR_STMT@98..109 |
110 | LAMBDA_EXPR@[98; 108) | 110 | LAMBDA_EXPR@98..108 |
111 | MOVE_KW@[98; 102) "move" | 111 | MOVE_KW@98..102 "move" |
112 | WHITESPACE@[102; 103) " " | 112 | WHITESPACE@102..103 " " |
113 | PARAM_LIST@[103; 105) | 113 | PARAM_LIST@103..105 |
114 | PIPE@[103; 104) "|" | 114 | PIPE@103..104 "|" |
115 | PIPE@[104; 105) "|" | 115 | PIPE@104..105 "|" |
116 | WHITESPACE@[105; 106) " " | 116 | WHITESPACE@105..106 " " |
117 | BLOCK_EXPR@[106; 108) | 117 | BLOCK_EXPR@106..108 |
118 | BLOCK@[106; 108) | 118 | BLOCK@106..108 |
119 | L_CURLY@[106; 107) "{" | 119 | L_CURLY@106..107 "{" |
120 | R_CURLY@[107; 108) "}" | 120 | R_CURLY@107..108 "}" |
121 | SEMICOLON@[108; 109) ";" | 121 | SEMICOLON@108..109 ";" |
122 | WHITESPACE@[109; 114) "\n " | 122 | WHITESPACE@109..114 "\n " |
123 | EXPR_STMT@[114; 131) | 123 | EXPR_STMT@114..131 |
124 | LAMBDA_EXPR@[114; 130) | 124 | LAMBDA_EXPR@114..130 |
125 | ASYNC_KW@[114; 119) "async" | 125 | ASYNC_KW@114..119 "async" |
126 | WHITESPACE@[119; 120) " " | 126 | WHITESPACE@119..120 " " |
127 | MOVE_KW@[120; 124) "move" | 127 | MOVE_KW@120..124 "move" |
128 | WHITESPACE@[124; 125) " " | 128 | WHITESPACE@124..125 " " |
129 | PARAM_LIST@[125; 127) | 129 | PARAM_LIST@125..127 |
130 | PIPE@[125; 126) "|" | 130 | PIPE@125..126 "|" |
131 | PIPE@[126; 127) "|" | 131 | PIPE@126..127 "|" |
132 | WHITESPACE@[127; 128) " " | 132 | WHITESPACE@127..128 " " |
133 | BLOCK_EXPR@[128; 130) | 133 | BLOCK_EXPR@128..130 |
134 | BLOCK@[128; 130) | 134 | BLOCK@128..130 |
135 | L_CURLY@[128; 129) "{" | 135 | L_CURLY@128..129 "{" |
136 | R_CURLY@[129; 130) "}" | 136 | R_CURLY@129..130 "}" |
137 | SEMICOLON@[130; 131) ";" | 137 | SEMICOLON@130..131 ";" |
138 | WHITESPACE@[131; 132) "\n" | 138 | WHITESPACE@131..132 "\n" |
139 | R_CURLY@[132; 133) "}" | 139 | R_CURLY@132..133 "}" |
140 | WHITESPACE@[133; 134) "\n" | 140 | WHITESPACE@133..134 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast index cc813038c..5392b1a74 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast | |||
@@ -1,63 +1,63 @@ | |||
1 | SOURCE_FILE@[0; 49) | 1 | SOURCE_FILE@0..49 |
2 | FN_DEF@[0; 48) | 2 | FN_DEF@0..48 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 48) | 11 | BLOCK_EXPR@9..48 |
12 | BLOCK@[9; 48) | 12 | BLOCK@9..48 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 23) | 15 | EXPR_STMT@15..23 |
16 | METHOD_CALL_EXPR@[15; 22) | 16 | METHOD_CALL_EXPR@15..22 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "x" | 21 | IDENT@15..16 "x" |
22 | DOT@[16; 17) "." | 22 | DOT@16..17 "." |
23 | NAME_REF@[17; 20) | 23 | NAME_REF@17..20 |
24 | IDENT@[17; 20) "foo" | 24 | IDENT@17..20 "foo" |
25 | ARG_LIST@[20; 22) | 25 | ARG_LIST@20..22 |
26 | L_PAREN@[20; 21) "(" | 26 | L_PAREN@20..21 "(" |
27 | R_PAREN@[21; 22) ")" | 27 | R_PAREN@21..22 ")" |
28 | SEMICOLON@[22; 23) ";" | 28 | SEMICOLON@22..23 ";" |
29 | WHITESPACE@[23; 28) "\n " | 29 | WHITESPACE@23..28 "\n " |
30 | EXPR_STMT@[28; 46) | 30 | EXPR_STMT@28..46 |
31 | METHOD_CALL_EXPR@[28; 45) | 31 | METHOD_CALL_EXPR@28..45 |
32 | PATH_EXPR@[28; 29) | 32 | PATH_EXPR@28..29 |
33 | PATH@[28; 29) | 33 | PATH@28..29 |
34 | PATH_SEGMENT@[28; 29) | 34 | PATH_SEGMENT@28..29 |
35 | NAME_REF@[28; 29) | 35 | NAME_REF@28..29 |
36 | IDENT@[28; 29) "y" | 36 | IDENT@28..29 "y" |
37 | DOT@[29; 30) "." | 37 | DOT@29..30 "." |
38 | NAME_REF@[30; 33) | 38 | NAME_REF@30..33 |
39 | IDENT@[30; 33) "bar" | 39 | IDENT@30..33 "bar" |
40 | TYPE_ARG_LIST@[33; 38) | 40 | TYPE_ARG_LIST@33..38 |
41 | COLON2@[33; 35) "::" | 41 | COLON2@33..35 "::" |
42 | L_ANGLE@[35; 36) "<" | 42 | L_ANGLE@35..36 "<" |
43 | TYPE_ARG@[36; 37) | 43 | TYPE_ARG@36..37 |
44 | PATH_TYPE@[36; 37) | 44 | PATH_TYPE@36..37 |
45 | PATH@[36; 37) | 45 | PATH@36..37 |
46 | PATH_SEGMENT@[36; 37) | 46 | PATH_SEGMENT@36..37 |
47 | NAME_REF@[36; 37) | 47 | NAME_REF@36..37 |
48 | IDENT@[36; 37) "T" | 48 | IDENT@36..37 "T" |
49 | R_ANGLE@[37; 38) ">" | 49 | R_ANGLE@37..38 ">" |
50 | ARG_LIST@[38; 45) | 50 | ARG_LIST@38..45 |
51 | L_PAREN@[38; 39) "(" | 51 | L_PAREN@38..39 "(" |
52 | LITERAL@[39; 40) | 52 | LITERAL@39..40 |
53 | INT_NUMBER@[39; 40) "1" | 53 | INT_NUMBER@39..40 "1" |
54 | COMMA@[40; 41) "," | 54 | COMMA@40..41 "," |
55 | WHITESPACE@[41; 42) " " | 55 | WHITESPACE@41..42 " " |
56 | LITERAL@[42; 43) | 56 | LITERAL@42..43 |
57 | INT_NUMBER@[42; 43) "2" | 57 | INT_NUMBER@42..43 "2" |
58 | COMMA@[43; 44) "," | 58 | COMMA@43..44 "," |
59 | R_PAREN@[44; 45) ")" | 59 | R_PAREN@44..45 ")" |
60 | SEMICOLON@[45; 46) ";" | 60 | SEMICOLON@45..46 ";" |
61 | WHITESPACE@[46; 47) "\n" | 61 | WHITESPACE@46..47 "\n" |
62 | R_CURLY@[47; 48) "}" | 62 | R_CURLY@47..48 "}" |
63 | WHITESPACE@[48; 49) "\n" | 63 | WHITESPACE@48..49 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast index 27c3f398e..54f18adac 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast | |||
@@ -1,39 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | FN_DEF@[0; 39) | 2 | FN_DEF@0..39 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 39) | 11 | BLOCK_EXPR@9..39 |
12 | BLOCK@[9; 39) | 12 | BLOCK@9..39 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 18) | 15 | EXPR_STMT@15..18 |
16 | TUPLE_EXPR@[15; 17) | 16 | TUPLE_EXPR@15..17 |
17 | L_PAREN@[15; 16) "(" | 17 | L_PAREN@15..16 "(" |
18 | R_PAREN@[16; 17) ")" | 18 | R_PAREN@16..17 ")" |
19 | SEMICOLON@[17; 18) ";" | 19 | SEMICOLON@17..18 ";" |
20 | WHITESPACE@[18; 23) "\n " | 20 | WHITESPACE@18..23 "\n " |
21 | EXPR_STMT@[23; 27) | 21 | EXPR_STMT@23..27 |
22 | PAREN_EXPR@[23; 26) | 22 | PAREN_EXPR@23..26 |
23 | L_PAREN@[23; 24) "(" | 23 | L_PAREN@23..24 "(" |
24 | LITERAL@[24; 25) | 24 | LITERAL@24..25 |
25 | INT_NUMBER@[24; 25) "1" | 25 | INT_NUMBER@24..25 "1" |
26 | R_PAREN@[25; 26) ")" | 26 | R_PAREN@25..26 ")" |
27 | SEMICOLON@[26; 27) ";" | 27 | SEMICOLON@26..27 ";" |
28 | WHITESPACE@[27; 32) "\n " | 28 | WHITESPACE@27..32 "\n " |
29 | EXPR_STMT@[32; 37) | 29 | EXPR_STMT@32..37 |
30 | TUPLE_EXPR@[32; 36) | 30 | TUPLE_EXPR@32..36 |
31 | L_PAREN@[32; 33) "(" | 31 | L_PAREN@32..33 "(" |
32 | LITERAL@[33; 34) | 32 | LITERAL@33..34 |
33 | INT_NUMBER@[33; 34) "1" | 33 | INT_NUMBER@33..34 "1" |
34 | COMMA@[34; 35) "," | 34 | COMMA@34..35 "," |
35 | R_PAREN@[35; 36) ")" | 35 | R_PAREN@35..36 ")" |
36 | SEMICOLON@[36; 37) ";" | 36 | SEMICOLON@36..37 ";" |
37 | WHITESPACE@[37; 38) "\n" | 37 | WHITESPACE@37..38 "\n" |
38 | R_CURLY@[38; 39) "}" | 38 | R_CURLY@38..39 "}" |
39 | WHITESPACE@[39; 40) "\n" | 39 | WHITESPACE@39..40 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast index 3376a90cb..6c9e45684 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast | |||
@@ -1,68 +1,68 @@ | |||
1 | SOURCE_FILE@[0; 74) | 1 | SOURCE_FILE@0..74 |
2 | FN_DEF@[0; 73) | 2 | FN_DEF@0..73 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 73) | 11 | BLOCK_EXPR@9..73 |
12 | BLOCK@[9; 73) | 12 | BLOCK@9..73 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 26) | 15 | EXPR_STMT@15..26 |
16 | LOOP_EXPR@[15; 26) | 16 | LOOP_EXPR@15..26 |
17 | LABEL@[15; 18) | 17 | LABEL@15..18 |
18 | LIFETIME@[15; 17) "\'a" | 18 | LIFETIME@15..17 "\'a" |
19 | COLON@[17; 18) ":" | 19 | COLON@17..18 ":" |
20 | WHITESPACE@[18; 19) " " | 20 | WHITESPACE@18..19 " " |
21 | LOOP_KW@[19; 23) "loop" | 21 | LOOP_KW@19..23 "loop" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | BLOCK_EXPR@[24; 26) | 23 | BLOCK_EXPR@24..26 |
24 | BLOCK@[24; 26) | 24 | BLOCK@24..26 |
25 | L_CURLY@[24; 25) "{" | 25 | L_CURLY@24..25 "{" |
26 | R_CURLY@[25; 26) "}" | 26 | R_CURLY@25..26 "}" |
27 | WHITESPACE@[26; 31) "\n " | 27 | WHITESPACE@26..31 "\n " |
28 | EXPR_STMT@[31; 48) | 28 | EXPR_STMT@31..48 |
29 | WHILE_EXPR@[31; 48) | 29 | WHILE_EXPR@31..48 |
30 | LABEL@[31; 34) | 30 | LABEL@31..34 |
31 | LIFETIME@[31; 33) "\'b" | 31 | LIFETIME@31..33 "\'b" |
32 | COLON@[33; 34) ":" | 32 | COLON@33..34 ":" |
33 | WHITESPACE@[34; 35) " " | 33 | WHITESPACE@34..35 " " |
34 | WHILE_KW@[35; 40) "while" | 34 | WHILE_KW@35..40 "while" |
35 | WHITESPACE@[40; 41) " " | 35 | WHITESPACE@40..41 " " |
36 | CONDITION@[41; 45) | 36 | CONDITION@41..45 |
37 | LITERAL@[41; 45) | 37 | LITERAL@41..45 |
38 | TRUE_KW@[41; 45) "true" | 38 | TRUE_KW@41..45 "true" |
39 | WHITESPACE@[45; 46) " " | 39 | WHITESPACE@45..46 " " |
40 | BLOCK_EXPR@[46; 48) | 40 | BLOCK_EXPR@46..48 |
41 | BLOCK@[46; 48) | 41 | BLOCK@46..48 |
42 | L_CURLY@[46; 47) "{" | 42 | L_CURLY@46..47 "{" |
43 | R_CURLY@[47; 48) "}" | 43 | R_CURLY@47..48 "}" |
44 | WHITESPACE@[48; 53) "\n " | 44 | WHITESPACE@48..53 "\n " |
45 | FOR_EXPR@[53; 71) | 45 | FOR_EXPR@53..71 |
46 | LABEL@[53; 56) | 46 | LABEL@53..56 |
47 | LIFETIME@[53; 55) "\'c" | 47 | LIFETIME@53..55 "\'c" |
48 | COLON@[55; 56) ":" | 48 | COLON@55..56 ":" |
49 | WHITESPACE@[56; 57) " " | 49 | WHITESPACE@56..57 " " |
50 | FOR_KW@[57; 60) "for" | 50 | FOR_KW@57..60 "for" |
51 | WHITESPACE@[60; 61) " " | 51 | WHITESPACE@60..61 " " |
52 | BIND_PAT@[61; 62) | 52 | BIND_PAT@61..62 |
53 | NAME@[61; 62) | 53 | NAME@61..62 |
54 | IDENT@[61; 62) "x" | 54 | IDENT@61..62 "x" |
55 | WHITESPACE@[62; 63) " " | 55 | WHITESPACE@62..63 " " |
56 | IN_KW@[63; 65) "in" | 56 | IN_KW@63..65 "in" |
57 | WHITESPACE@[65; 66) " " | 57 | WHITESPACE@65..66 " " |
58 | TUPLE_EXPR@[66; 68) | 58 | TUPLE_EXPR@66..68 |
59 | L_PAREN@[66; 67) "(" | 59 | L_PAREN@66..67 "(" |
60 | R_PAREN@[67; 68) ")" | 60 | R_PAREN@67..68 ")" |
61 | WHITESPACE@[68; 69) " " | 61 | WHITESPACE@68..69 " " |
62 | BLOCK_EXPR@[69; 71) | 62 | BLOCK_EXPR@69..71 |
63 | BLOCK@[69; 71) | 63 | BLOCK@69..71 |
64 | L_CURLY@[69; 70) "{" | 64 | L_CURLY@69..70 "{" |
65 | R_CURLY@[70; 71) "}" | 65 | R_CURLY@70..71 "}" |
66 | WHITESPACE@[71; 72) "\n" | 66 | WHITESPACE@71..72 "\n" |
67 | R_CURLY@[72; 73) "}" | 67 | R_CURLY@72..73 "}" |
68 | WHITESPACE@[73; 74) "\n" | 68 | WHITESPACE@73..74 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast index d4f5737d5..015a7a7d2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast | |||
@@ -1,38 +1,38 @@ | |||
1 | SOURCE_FILE@[0; 154) | 1 | SOURCE_FILE@0..154 |
2 | USE_ITEM@[0; 17) | 2 | USE_ITEM@0..17 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 16) | 5 | USE_TREE@4..16 |
6 | PATH@[4; 16) | 6 | PATH@4..16 |
7 | PATH_SEGMENT@[4; 16) | 7 | PATH_SEGMENT@4..16 |
8 | COLON2@[4; 6) "::" | 8 | COLON2@4..6 "::" |
9 | NAME_REF@[6; 16) | 9 | NAME_REF@6..16 |
10 | IDENT@[6; 16) "crate_name" | 10 | IDENT@6..16 "crate_name" |
11 | SEMICOLON@[16; 17) ";" | 11 | SEMICOLON@16..17 ";" |
12 | WHITESPACE@[17; 18) " " | 12 | WHITESPACE@17..18 " " |
13 | COMMENT@[18; 45) "// Rust 2018 - All fl ..." | 13 | COMMENT@18..45 "// Rust 2018 - All fl ..." |
14 | WHITESPACE@[45; 46) "\n" | 14 | WHITESPACE@45..46 "\n" |
15 | USE_ITEM@[46; 61) | 15 | USE_ITEM@46..61 |
16 | USE_KW@[46; 49) "use" | 16 | USE_KW@46..49 "use" |
17 | WHITESPACE@[49; 50) " " | 17 | WHITESPACE@49..50 " " |
18 | USE_TREE@[50; 60) | 18 | USE_TREE@50..60 |
19 | PATH@[50; 60) | 19 | PATH@50..60 |
20 | PATH_SEGMENT@[50; 60) | 20 | PATH_SEGMENT@50..60 |
21 | NAME_REF@[50; 60) | 21 | NAME_REF@50..60 |
22 | IDENT@[50; 60) "crate_name" | 22 | IDENT@50..60 "crate_name" |
23 | SEMICOLON@[60; 61) ";" | 23 | SEMICOLON@60..61 ";" |
24 | WHITESPACE@[61; 62) " " | 24 | WHITESPACE@61..62 " " |
25 | COMMENT@[62; 91) "// Rust 2018 - Anchor ..." | 25 | COMMENT@62..91 "// Rust 2018 - Anchor ..." |
26 | WHITESPACE@[91; 92) "\n" | 26 | WHITESPACE@91..92 "\n" |
27 | USE_ITEM@[92; 124) | 27 | USE_ITEM@92..124 |
28 | USE_KW@[92; 95) "use" | 28 | USE_KW@92..95 "use" |
29 | WHITESPACE@[95; 96) " " | 29 | WHITESPACE@95..96 " " |
30 | USE_TREE@[96; 123) | 30 | USE_TREE@96..123 |
31 | PATH@[96; 123) | 31 | PATH@96..123 |
32 | PATH_SEGMENT@[96; 123) | 32 | PATH_SEGMENT@96..123 |
33 | NAME_REF@[96; 123) | 33 | NAME_REF@96..123 |
34 | IDENT@[96; 123) "item_in_scope_or_crat ..." | 34 | IDENT@96..123 "item_in_scope_or_crat ..." |
35 | SEMICOLON@[123; 124) ";" | 35 | SEMICOLON@123..124 ";" |
36 | WHITESPACE@[124; 125) " " | 36 | WHITESPACE@124..125 " " |
37 | COMMENT@[125; 153) "// Rust 2018 - Unifor ..." | 37 | COMMENT@125..153 "// Rust 2018 - Unifor ..." |
38 | WHITESPACE@[153; 154) "\n" | 38 | WHITESPACE@153..154 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast index 88e72d057..a1c5475e7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast | |||
@@ -1,90 +1,90 @@ | |||
1 | SOURCE_FILE@[0; 94) | 1 | SOURCE_FILE@0..94 |
2 | FN_DEF@[0; 93) | 2 | FN_DEF@0..93 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 93) | 11 | BLOCK_EXPR@10..93 |
12 | BLOCK@[10; 93) | 12 | BLOCK@10..93 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 36) | 15 | LET_STMT@16..36 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | TUPLE_PAT@[20; 30) | 18 | TUPLE_PAT@20..30 |
19 | L_PAREN@[20; 21) "(" | 19 | L_PAREN@20..21 "(" |
20 | BIND_PAT@[21; 22) | 20 | BIND_PAT@21..22 |
21 | NAME@[21; 22) | 21 | NAME@21..22 |
22 | IDENT@[21; 22) "a" | 22 | IDENT@21..22 "a" |
23 | COMMA@[22; 23) "," | 23 | COMMA@22..23 "," |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | BIND_PAT@[24; 25) | 25 | BIND_PAT@24..25 |
26 | NAME@[24; 25) | 26 | NAME@24..25 |
27 | IDENT@[24; 25) "b" | 27 | IDENT@24..25 "b" |
28 | COMMA@[25; 26) "," | 28 | COMMA@25..26 "," |
29 | WHITESPACE@[26; 27) " " | 29 | WHITESPACE@26..27 " " |
30 | DOT_DOT_PAT@[27; 29) | 30 | DOT_DOT_PAT@27..29 |
31 | DOT2@[27; 29) ".." | 31 | DOT2@27..29 ".." |
32 | R_PAREN@[29; 30) ")" | 32 | R_PAREN@29..30 ")" |
33 | WHITESPACE@[30; 31) " " | 33 | WHITESPACE@30..31 " " |
34 | EQ@[31; 32) "=" | 34 | EQ@31..32 "=" |
35 | WHITESPACE@[32; 33) " " | 35 | WHITESPACE@32..33 " " |
36 | TUPLE_EXPR@[33; 35) | 36 | TUPLE_EXPR@33..35 |
37 | L_PAREN@[33; 34) "(" | 37 | L_PAREN@33..34 "(" |
38 | R_PAREN@[34; 35) ")" | 38 | R_PAREN@34..35 ")" |
39 | SEMICOLON@[35; 36) ";" | 39 | SEMICOLON@35..36 ";" |
40 | WHITESPACE@[36; 41) "\n " | 40 | WHITESPACE@36..41 "\n " |
41 | LET_STMT@[41; 55) | 41 | LET_STMT@41..55 |
42 | LET_KW@[41; 44) "let" | 42 | LET_KW@41..44 "let" |
43 | WHITESPACE@[44; 45) " " | 43 | WHITESPACE@44..45 " " |
44 | TUPLE_PAT@[45; 49) | 44 | TUPLE_PAT@45..49 |
45 | L_PAREN@[45; 46) "(" | 45 | L_PAREN@45..46 "(" |
46 | BIND_PAT@[46; 47) | 46 | BIND_PAT@46..47 |
47 | NAME@[46; 47) | 47 | NAME@46..47 |
48 | IDENT@[46; 47) "a" | 48 | IDENT@46..47 "a" |
49 | COMMA@[47; 48) "," | 49 | COMMA@47..48 "," |
50 | R_PAREN@[48; 49) ")" | 50 | R_PAREN@48..49 ")" |
51 | WHITESPACE@[49; 50) " " | 51 | WHITESPACE@49..50 " " |
52 | EQ@[50; 51) "=" | 52 | EQ@50..51 "=" |
53 | WHITESPACE@[51; 52) " " | 53 | WHITESPACE@51..52 " " |
54 | TUPLE_EXPR@[52; 54) | 54 | TUPLE_EXPR@52..54 |
55 | L_PAREN@[52; 53) "(" | 55 | L_PAREN@52..53 "(" |
56 | R_PAREN@[53; 54) ")" | 56 | R_PAREN@53..54 ")" |
57 | SEMICOLON@[54; 55) ";" | 57 | SEMICOLON@54..55 ";" |
58 | WHITESPACE@[55; 60) "\n " | 58 | WHITESPACE@55..60 "\n " |
59 | LET_STMT@[60; 74) | 59 | LET_STMT@60..74 |
60 | LET_KW@[60; 63) "let" | 60 | LET_KW@60..63 "let" |
61 | WHITESPACE@[63; 64) " " | 61 | WHITESPACE@63..64 " " |
62 | TUPLE_PAT@[64; 68) | 62 | TUPLE_PAT@64..68 |
63 | L_PAREN@[64; 65) "(" | 63 | L_PAREN@64..65 "(" |
64 | DOT_DOT_PAT@[65; 67) | 64 | DOT_DOT_PAT@65..67 |
65 | DOT2@[65; 67) ".." | 65 | DOT2@65..67 ".." |
66 | R_PAREN@[67; 68) ")" | 66 | R_PAREN@67..68 ")" |
67 | WHITESPACE@[68; 69) " " | 67 | WHITESPACE@68..69 " " |
68 | EQ@[69; 70) "=" | 68 | EQ@69..70 "=" |
69 | WHITESPACE@[70; 71) " " | 69 | WHITESPACE@70..71 " " |
70 | TUPLE_EXPR@[71; 73) | 70 | TUPLE_EXPR@71..73 |
71 | L_PAREN@[71; 72) "(" | 71 | L_PAREN@71..72 "(" |
72 | R_PAREN@[72; 73) ")" | 72 | R_PAREN@72..73 ")" |
73 | SEMICOLON@[73; 74) ";" | 73 | SEMICOLON@73..74 ";" |
74 | WHITESPACE@[74; 79) "\n " | 74 | WHITESPACE@74..79 "\n " |
75 | LET_STMT@[79; 91) | 75 | LET_STMT@79..91 |
76 | LET_KW@[79; 82) "let" | 76 | LET_KW@79..82 "let" |
77 | WHITESPACE@[82; 83) " " | 77 | WHITESPACE@82..83 " " |
78 | TUPLE_PAT@[83; 85) | 78 | TUPLE_PAT@83..85 |
79 | L_PAREN@[83; 84) "(" | 79 | L_PAREN@83..84 "(" |
80 | R_PAREN@[84; 85) ")" | 80 | R_PAREN@84..85 ")" |
81 | WHITESPACE@[85; 86) " " | 81 | WHITESPACE@85..86 " " |
82 | EQ@[86; 87) "=" | 82 | EQ@86..87 "=" |
83 | WHITESPACE@[87; 88) " " | 83 | WHITESPACE@87..88 " " |
84 | TUPLE_EXPR@[88; 90) | 84 | TUPLE_EXPR@88..90 |
85 | L_PAREN@[88; 89) "(" | 85 | L_PAREN@88..89 "(" |
86 | R_PAREN@[89; 90) ")" | 86 | R_PAREN@89..90 ")" |
87 | SEMICOLON@[90; 91) ";" | 87 | SEMICOLON@90..91 ";" |
88 | WHITESPACE@[91; 92) "\n" | 88 | WHITESPACE@91..92 "\n" |
89 | R_CURLY@[92; 93) "}" | 89 | R_CURLY@92..93 "}" |
90 | WHITESPACE@[93; 94) "\n" | 90 | WHITESPACE@93..94 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast index 5e8f625dc..42a770a83 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast | |||
@@ -1,128 +1,128 @@ | |||
1 | SOURCE_FILE@[0; 146) | 1 | SOURCE_FILE@0..146 |
2 | FN_DEF@[0; 145) | 2 | FN_DEF@0..145 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 145) | 11 | BLOCK_EXPR@10..145 |
12 | BLOCK@[10; 145) | 12 | BLOCK@10..145 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 27) | 15 | LET_STMT@16..27 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | BIND_PAT@[20; 21) | 18 | BIND_PAT@20..21 |
19 | NAME@[20; 21) | 19 | NAME@20..21 |
20 | IDENT@[20; 21) "a" | 20 | IDENT@20..21 "a" |
21 | WHITESPACE@[21; 22) " " | 21 | WHITESPACE@21..22 " " |
22 | EQ@[22; 23) "=" | 22 | EQ@22..23 "=" |
23 | WHITESPACE@[23; 24) " " | 23 | WHITESPACE@23..24 " " |
24 | TUPLE_EXPR@[24; 26) | 24 | TUPLE_EXPR@24..26 |
25 | L_PAREN@[24; 25) "(" | 25 | L_PAREN@24..25 "(" |
26 | R_PAREN@[25; 26) ")" | 26 | R_PAREN@25..26 ")" |
27 | SEMICOLON@[26; 27) ";" | 27 | SEMICOLON@26..27 ";" |
28 | WHITESPACE@[27; 32) "\n " | 28 | WHITESPACE@27..32 "\n " |
29 | LET_STMT@[32; 47) | 29 | LET_STMT@32..47 |
30 | LET_KW@[32; 35) "let" | 30 | LET_KW@32..35 "let" |
31 | WHITESPACE@[35; 36) " " | 31 | WHITESPACE@35..36 " " |
32 | BIND_PAT@[36; 41) | 32 | BIND_PAT@36..41 |
33 | MUT_KW@[36; 39) "mut" | 33 | MUT_KW@36..39 "mut" |
34 | WHITESPACE@[39; 40) " " | 34 | WHITESPACE@39..40 " " |
35 | NAME@[40; 41) | 35 | NAME@40..41 |
36 | IDENT@[40; 41) "b" | 36 | IDENT@40..41 "b" |
37 | WHITESPACE@[41; 42) " " | 37 | WHITESPACE@41..42 " " |
38 | EQ@[42; 43) "=" | 38 | EQ@42..43 "=" |
39 | WHITESPACE@[43; 44) " " | 39 | WHITESPACE@43..44 " " |
40 | TUPLE_EXPR@[44; 46) | 40 | TUPLE_EXPR@44..46 |
41 | L_PAREN@[44; 45) "(" | 41 | L_PAREN@44..45 "(" |
42 | R_PAREN@[45; 46) ")" | 42 | R_PAREN@45..46 ")" |
43 | SEMICOLON@[46; 47) ";" | 43 | SEMICOLON@46..47 ";" |
44 | WHITESPACE@[47; 52) "\n " | 44 | WHITESPACE@47..52 "\n " |
45 | LET_STMT@[52; 67) | 45 | LET_STMT@52..67 |
46 | LET_KW@[52; 55) "let" | 46 | LET_KW@52..55 "let" |
47 | WHITESPACE@[55; 56) " " | 47 | WHITESPACE@55..56 " " |
48 | BIND_PAT@[56; 61) | 48 | BIND_PAT@56..61 |
49 | REF_KW@[56; 59) "ref" | 49 | REF_KW@56..59 "ref" |
50 | WHITESPACE@[59; 60) " " | 50 | WHITESPACE@59..60 " " |
51 | NAME@[60; 61) | 51 | NAME@60..61 |
52 | IDENT@[60; 61) "c" | 52 | IDENT@60..61 "c" |
53 | WHITESPACE@[61; 62) " " | 53 | WHITESPACE@61..62 " " |
54 | EQ@[62; 63) "=" | 54 | EQ@62..63 "=" |
55 | WHITESPACE@[63; 64) " " | 55 | WHITESPACE@63..64 " " |
56 | TUPLE_EXPR@[64; 66) | 56 | TUPLE_EXPR@64..66 |
57 | L_PAREN@[64; 65) "(" | 57 | L_PAREN@64..65 "(" |
58 | R_PAREN@[65; 66) ")" | 58 | R_PAREN@65..66 ")" |
59 | SEMICOLON@[66; 67) ";" | 59 | SEMICOLON@66..67 ";" |
60 | WHITESPACE@[67; 72) "\n " | 60 | WHITESPACE@67..72 "\n " |
61 | LET_STMT@[72; 91) | 61 | LET_STMT@72..91 |
62 | LET_KW@[72; 75) "let" | 62 | LET_KW@72..75 "let" |
63 | WHITESPACE@[75; 76) " " | 63 | WHITESPACE@75..76 " " |
64 | BIND_PAT@[76; 85) | 64 | BIND_PAT@76..85 |
65 | REF_KW@[76; 79) "ref" | 65 | REF_KW@76..79 "ref" |
66 | WHITESPACE@[79; 80) " " | 66 | WHITESPACE@79..80 " " |
67 | MUT_KW@[80; 83) "mut" | 67 | MUT_KW@80..83 "mut" |
68 | WHITESPACE@[83; 84) " " | 68 | WHITESPACE@83..84 " " |
69 | NAME@[84; 85) | 69 | NAME@84..85 |
70 | IDENT@[84; 85) "d" | 70 | IDENT@84..85 "d" |
71 | WHITESPACE@[85; 86) " " | 71 | WHITESPACE@85..86 " " |
72 | EQ@[86; 87) "=" | 72 | EQ@86..87 "=" |
73 | WHITESPACE@[87; 88) " " | 73 | WHITESPACE@87..88 " " |
74 | TUPLE_EXPR@[88; 90) | 74 | TUPLE_EXPR@88..90 |
75 | L_PAREN@[88; 89) "(" | 75 | L_PAREN@88..89 "(" |
76 | R_PAREN@[89; 90) ")" | 76 | R_PAREN@89..90 ")" |
77 | SEMICOLON@[90; 91) ";" | 77 | SEMICOLON@90..91 ";" |
78 | WHITESPACE@[91; 96) "\n " | 78 | WHITESPACE@91..96 "\n " |
79 | LET_STMT@[96; 111) | 79 | LET_STMT@96..111 |
80 | LET_KW@[96; 99) "let" | 80 | LET_KW@96..99 "let" |
81 | WHITESPACE@[99; 100) " " | 81 | WHITESPACE@99..100 " " |
82 | BIND_PAT@[100; 105) | 82 | BIND_PAT@100..105 |
83 | NAME@[100; 101) | 83 | NAME@100..101 |
84 | IDENT@[100; 101) "e" | 84 | IDENT@100..101 "e" |
85 | WHITESPACE@[101; 102) " " | 85 | WHITESPACE@101..102 " " |
86 | AT@[102; 103) "@" | 86 | AT@102..103 "@" |
87 | WHITESPACE@[103; 104) " " | 87 | WHITESPACE@103..104 " " |
88 | PLACEHOLDER_PAT@[104; 105) | 88 | PLACEHOLDER_PAT@104..105 |
89 | UNDERSCORE@[104; 105) "_" | 89 | UNDERSCORE@104..105 "_" |
90 | WHITESPACE@[105; 106) " " | 90 | WHITESPACE@105..106 " " |
91 | EQ@[106; 107) "=" | 91 | EQ@106..107 "=" |
92 | WHITESPACE@[107; 108) " " | 92 | WHITESPACE@107..108 " " |
93 | TUPLE_EXPR@[108; 110) | 93 | TUPLE_EXPR@108..110 |
94 | L_PAREN@[108; 109) "(" | 94 | L_PAREN@108..109 "(" |
95 | R_PAREN@[109; 110) ")" | 95 | R_PAREN@109..110 ")" |
96 | SEMICOLON@[110; 111) ";" | 96 | SEMICOLON@110..111 ";" |
97 | WHITESPACE@[111; 116) "\n " | 97 | WHITESPACE@111..116 "\n " |
98 | LET_STMT@[116; 143) | 98 | LET_STMT@116..143 |
99 | LET_KW@[116; 119) "let" | 99 | LET_KW@116..119 "let" |
100 | WHITESPACE@[119; 120) " " | 100 | WHITESPACE@119..120 " " |
101 | BIND_PAT@[120; 137) | 101 | BIND_PAT@120..137 |
102 | REF_KW@[120; 123) "ref" | 102 | REF_KW@120..123 "ref" |
103 | WHITESPACE@[123; 124) " " | 103 | WHITESPACE@123..124 " " |
104 | MUT_KW@[124; 127) "mut" | 104 | MUT_KW@124..127 "mut" |
105 | WHITESPACE@[127; 128) " " | 105 | WHITESPACE@127..128 " " |
106 | NAME@[128; 129) | 106 | NAME@128..129 |
107 | IDENT@[128; 129) "f" | 107 | IDENT@128..129 "f" |
108 | WHITESPACE@[129; 130) " " | 108 | WHITESPACE@129..130 " " |
109 | AT@[130; 131) "@" | 109 | AT@130..131 "@" |
110 | WHITESPACE@[131; 132) " " | 110 | WHITESPACE@131..132 " " |
111 | BIND_PAT@[132; 137) | 111 | BIND_PAT@132..137 |
112 | NAME@[132; 133) | 112 | NAME@132..133 |
113 | IDENT@[132; 133) "g" | 113 | IDENT@132..133 "g" |
114 | WHITESPACE@[133; 134) " " | 114 | WHITESPACE@133..134 " " |
115 | AT@[134; 135) "@" | 115 | AT@134..135 "@" |
116 | WHITESPACE@[135; 136) " " | 116 | WHITESPACE@135..136 " " |
117 | PLACEHOLDER_PAT@[136; 137) | 117 | PLACEHOLDER_PAT@136..137 |
118 | UNDERSCORE@[136; 137) "_" | 118 | UNDERSCORE@136..137 "_" |
119 | WHITESPACE@[137; 138) " " | 119 | WHITESPACE@137..138 " " |
120 | EQ@[138; 139) "=" | 120 | EQ@138..139 "=" |
121 | WHITESPACE@[139; 140) " " | 121 | WHITESPACE@139..140 " " |
122 | TUPLE_EXPR@[140; 142) | 122 | TUPLE_EXPR@140..142 |
123 | L_PAREN@[140; 141) "(" | 123 | L_PAREN@140..141 "(" |
124 | R_PAREN@[141; 142) ")" | 124 | R_PAREN@141..142 ")" |
125 | SEMICOLON@[142; 143) ";" | 125 | SEMICOLON@142..143 ";" |
126 | WHITESPACE@[143; 144) "\n" | 126 | WHITESPACE@143..144 "\n" |
127 | R_CURLY@[144; 145) "}" | 127 | R_CURLY@144..145 "}" |
128 | WHITESPACE@[145; 146) "\n" | 128 | WHITESPACE@145..146 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast index f2f649410..5414c90b8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast | |||
@@ -1,57 +1,57 @@ | |||
1 | SOURCE_FILE@[0; 50) | 1 | SOURCE_FILE@0..50 |
2 | FN_DEF@[0; 49) | 2 | FN_DEF@0..49 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | BLOCK_EXPR@[8; 49) | 10 | BLOCK_EXPR@8..49 |
11 | BLOCK@[8; 49) | 11 | BLOCK@8..49 |
12 | L_CURLY@[8; 9) "{" | 12 | L_CURLY@8..9 "{" |
13 | WHITESPACE@[9; 14) "\n " | 13 | WHITESPACE@9..14 "\n " |
14 | SEMICOLON@[14; 15) ";" | 14 | SEMICOLON@14..15 ";" |
15 | SEMICOLON@[15; 16) ";" | 15 | SEMICOLON@15..16 ";" |
16 | SEMICOLON@[16; 17) ";" | 16 | SEMICOLON@16..17 ";" |
17 | EXPR_STMT@[17; 29) | 17 | EXPR_STMT@17..29 |
18 | CALL_EXPR@[17; 28) | 18 | CALL_EXPR@17..28 |
19 | PATH_EXPR@[17; 26) | 19 | PATH_EXPR@17..26 |
20 | PATH@[17; 26) | 20 | PATH@17..26 |
21 | PATH_SEGMENT@[17; 26) | 21 | PATH_SEGMENT@17..26 |
22 | NAME_REF@[17; 26) | 22 | NAME_REF@17..26 |
23 | IDENT@[17; 26) "some_expr" | 23 | IDENT@17..26 "some_expr" |
24 | ARG_LIST@[26; 28) | 24 | ARG_LIST@26..28 |
25 | L_PAREN@[26; 27) "(" | 25 | L_PAREN@26..27 "(" |
26 | R_PAREN@[27; 28) ")" | 26 | R_PAREN@27..28 ")" |
27 | SEMICOLON@[28; 29) ";" | 27 | SEMICOLON@28..29 ";" |
28 | SEMICOLON@[29; 30) ";" | 28 | SEMICOLON@29..30 ";" |
29 | SEMICOLON@[30; 31) ";" | 29 | SEMICOLON@30..31 ";" |
30 | SEMICOLON@[31; 32) ";" | 30 | SEMICOLON@31..32 ";" |
31 | EXPR_STMT@[32; 38) | 31 | EXPR_STMT@32..38 |
32 | BLOCK_EXPR@[32; 37) | 32 | BLOCK_EXPR@32..37 |
33 | BLOCK@[32; 37) | 33 | BLOCK@32..37 |
34 | L_CURLY@[32; 33) "{" | 34 | L_CURLY@32..33 "{" |
35 | SEMICOLON@[33; 34) ";" | 35 | SEMICOLON@33..34 ";" |
36 | SEMICOLON@[34; 35) ";" | 36 | SEMICOLON@34..35 ";" |
37 | SEMICOLON@[35; 36) ";" | 37 | SEMICOLON@35..36 ";" |
38 | R_CURLY@[36; 37) "}" | 38 | R_CURLY@36..37 "}" |
39 | SEMICOLON@[37; 38) ";" | 39 | SEMICOLON@37..38 ";" |
40 | SEMICOLON@[38; 39) ";" | 40 | SEMICOLON@38..39 ";" |
41 | SEMICOLON@[39; 40) ";" | 41 | SEMICOLON@39..40 ";" |
42 | SEMICOLON@[40; 41) ";" | 42 | SEMICOLON@40..41 ";" |
43 | CALL_EXPR@[41; 47) | 43 | CALL_EXPR@41..47 |
44 | PATH_EXPR@[41; 43) | 44 | PATH_EXPR@41..43 |
45 | PATH@[41; 43) | 45 | PATH@41..43 |
46 | PATH_SEGMENT@[41; 43) | 46 | PATH_SEGMENT@41..43 |
47 | NAME_REF@[41; 43) | 47 | NAME_REF@41..43 |
48 | IDENT@[41; 43) "Ok" | 48 | IDENT@41..43 "Ok" |
49 | ARG_LIST@[43; 47) | 49 | ARG_LIST@43..47 |
50 | L_PAREN@[43; 44) "(" | 50 | L_PAREN@43..44 "(" |
51 | TUPLE_EXPR@[44; 46) | 51 | TUPLE_EXPR@44..46 |
52 | L_PAREN@[44; 45) "(" | 52 | L_PAREN@44..45 "(" |
53 | R_PAREN@[45; 46) ")" | 53 | R_PAREN@45..46 ")" |
54 | R_PAREN@[46; 47) ")" | 54 | R_PAREN@46..47 ")" |
55 | WHITESPACE@[47; 48) "\n" | 55 | WHITESPACE@47..48 "\n" |
56 | R_CURLY@[48; 49) "}" | 56 | R_CURLY@48..49 "}" |
57 | WHITESPACE@[49; 50) "\n" | 57 | WHITESPACE@49..50 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast index 457c82e74..01d717d6b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast | |||
@@ -1,64 +1,64 @@ | |||
1 | SOURCE_FILE@[0; 53) | 1 | SOURCE_FILE@0..53 |
2 | STRUCT_DEF@[0; 33) | 2 | STRUCT_DEF@0..33 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 11) | 5 | NAME@7..11 |
6 | IDENT@[7; 11) "Test" | 6 | IDENT@7..11 "Test" |
7 | TYPE_PARAM_LIST@[11; 14) | 7 | TYPE_PARAM_LIST@11..14 |
8 | L_ANGLE@[11; 12) "<" | 8 | L_ANGLE@11..12 "<" |
9 | TYPE_PARAM@[12; 13) | 9 | TYPE_PARAM@12..13 |
10 | NAME@[12; 13) | 10 | NAME@12..13 |
11 | IDENT@[12; 13) "T" | 11 | IDENT@12..13 "T" |
12 | R_ANGLE@[13; 14) ">" | 12 | R_ANGLE@13..14 ">" |
13 | TUPLE_FIELD_DEF_LIST@[14; 17) | 13 | TUPLE_FIELD_DEF_LIST@14..17 |
14 | L_PAREN@[14; 15) "(" | 14 | L_PAREN@14..15 "(" |
15 | TUPLE_FIELD_DEF@[15; 16) | 15 | TUPLE_FIELD_DEF@15..16 |
16 | PATH_TYPE@[15; 16) | 16 | PATH_TYPE@15..16 |
17 | PATH@[15; 16) | 17 | PATH@15..16 |
18 | PATH_SEGMENT@[15; 16) | 18 | PATH_SEGMENT@15..16 |
19 | NAME_REF@[15; 16) | 19 | NAME_REF@15..16 |
20 | IDENT@[15; 16) "T" | 20 | IDENT@15..16 "T" |
21 | R_PAREN@[16; 17) ")" | 21 | R_PAREN@16..17 ")" |
22 | WHITESPACE@[17; 18) " " | 22 | WHITESPACE@17..18 " " |
23 | WHERE_CLAUSE@[18; 32) | 23 | WHERE_CLAUSE@18..32 |
24 | WHERE_KW@[18; 23) "where" | 24 | WHERE_KW@18..23 "where" |
25 | WHITESPACE@[23; 24) " " | 25 | WHITESPACE@23..24 " " |
26 | WHERE_PRED@[24; 32) | 26 | WHERE_PRED@24..32 |
27 | PATH_TYPE@[24; 25) | 27 | PATH_TYPE@24..25 |
28 | PATH@[24; 25) | 28 | PATH@24..25 |
29 | PATH_SEGMENT@[24; 25) | 29 | PATH_SEGMENT@24..25 |
30 | NAME_REF@[24; 25) | 30 | NAME_REF@24..25 |
31 | IDENT@[24; 25) "T" | 31 | IDENT@24..25 "T" |
32 | COLON@[25; 26) ":" | 32 | COLON@25..26 ":" |
33 | WHITESPACE@[26; 27) " " | 33 | WHITESPACE@26..27 " " |
34 | TYPE_BOUND_LIST@[27; 32) | 34 | TYPE_BOUND_LIST@27..32 |
35 | TYPE_BOUND@[27; 32) | 35 | TYPE_BOUND@27..32 |
36 | PATH_TYPE@[27; 32) | 36 | PATH_TYPE@27..32 |
37 | PATH@[27; 32) | 37 | PATH@27..32 |
38 | PATH_SEGMENT@[27; 32) | 38 | PATH_SEGMENT@27..32 |
39 | NAME_REF@[27; 32) | 39 | NAME_REF@27..32 |
40 | IDENT@[27; 32) "Clone" | 40 | IDENT@27..32 "Clone" |
41 | SEMICOLON@[32; 33) ";" | 41 | SEMICOLON@32..33 ";" |
42 | WHITESPACE@[33; 34) "\n" | 42 | WHITESPACE@33..34 "\n" |
43 | STRUCT_DEF@[34; 52) | 43 | STRUCT_DEF@34..52 |
44 | STRUCT_KW@[34; 40) "struct" | 44 | STRUCT_KW@34..40 "struct" |
45 | WHITESPACE@[40; 41) " " | 45 | WHITESPACE@40..41 " " |
46 | NAME@[41; 45) | 46 | NAME@41..45 |
47 | IDENT@[41; 45) "Test" | 47 | IDENT@41..45 "Test" |
48 | TYPE_PARAM_LIST@[45; 48) | 48 | TYPE_PARAM_LIST@45..48 |
49 | L_ANGLE@[45; 46) "<" | 49 | L_ANGLE@45..46 "<" |
50 | TYPE_PARAM@[46; 47) | 50 | TYPE_PARAM@46..47 |
51 | NAME@[46; 47) | 51 | NAME@46..47 |
52 | IDENT@[46; 47) "T" | 52 | IDENT@46..47 "T" |
53 | R_ANGLE@[47; 48) ">" | 53 | R_ANGLE@47..48 ">" |
54 | TUPLE_FIELD_DEF_LIST@[48; 51) | 54 | TUPLE_FIELD_DEF_LIST@48..51 |
55 | L_PAREN@[48; 49) "(" | 55 | L_PAREN@48..49 "(" |
56 | TUPLE_FIELD_DEF@[49; 50) | 56 | TUPLE_FIELD_DEF@49..50 |
57 | PATH_TYPE@[49; 50) | 57 | PATH_TYPE@49..50 |
58 | PATH@[49; 50) | 58 | PATH@49..50 |
59 | PATH_SEGMENT@[49; 50) | 59 | PATH_SEGMENT@49..50 |
60 | NAME_REF@[49; 50) | 60 | NAME_REF@49..50 |
61 | IDENT@[49; 50) "T" | 61 | IDENT@49..50 "T" |
62 | R_PAREN@[50; 51) ")" | 62 | R_PAREN@50..51 ")" |
63 | SEMICOLON@[51; 52) ";" | 63 | SEMICOLON@51..52 ";" |
64 | WHITESPACE@[52; 53) "\n" | 64 | WHITESPACE@52..53 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast index 0b1552a9d..3c0ef9005 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast | |||
@@ -1,41 +1,41 @@ | |||
1 | SOURCE_FILE@[0; 60) | 1 | SOURCE_FILE@0..60 |
2 | STRUCT_DEF@[0; 59) | 2 | STRUCT_DEF@0..59 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | TUPLE_FIELD_DEF_LIST@[9; 58) | 8 | TUPLE_FIELD_DEF_LIST@9..58 |
9 | L_PAREN@[9; 10) "(" | 9 | L_PAREN@9..10 "(" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | TUPLE_FIELD_DEF@[15; 55) | 11 | TUPLE_FIELD_DEF@15..55 |
12 | ATTR@[15; 43) | 12 | ATTR@15..43 |
13 | POUND@[15; 16) "#" | 13 | POUND@15..16 "#" |
14 | L_BRACK@[16; 17) "[" | 14 | L_BRACK@16..17 "[" |
15 | PATH@[17; 22) | 15 | PATH@17..22 |
16 | PATH_SEGMENT@[17; 22) | 16 | PATH_SEGMENT@17..22 |
17 | NAME_REF@[17; 22) | 17 | NAME_REF@17..22 |
18 | IDENT@[17; 22) "serde" | 18 | IDENT@17..22 "serde" |
19 | TOKEN_TREE@[22; 42) | 19 | TOKEN_TREE@22..42 |
20 | L_PAREN@[22; 23) "(" | 20 | L_PAREN@22..23 "(" |
21 | IDENT@[23; 27) "with" | 21 | IDENT@23..27 "with" |
22 | WHITESPACE@[27; 28) " " | 22 | WHITESPACE@27..28 " " |
23 | EQ@[28; 29) "=" | 23 | EQ@28..29 "=" |
24 | WHITESPACE@[29; 30) " " | 24 | WHITESPACE@29..30 " " |
25 | STRING@[30; 41) "\"url_serde\"" | 25 | STRING@30..41 "\"url_serde\"" |
26 | R_PAREN@[41; 42) ")" | 26 | R_PAREN@41..42 ")" |
27 | R_BRACK@[42; 43) "]" | 27 | R_BRACK@42..43 "]" |
28 | WHITESPACE@[43; 48) "\n " | 28 | WHITESPACE@43..48 "\n " |
29 | VISIBILITY@[48; 51) | 29 | VISIBILITY@48..51 |
30 | PUB_KW@[48; 51) "pub" | 30 | PUB_KW@48..51 "pub" |
31 | WHITESPACE@[51; 52) " " | 31 | WHITESPACE@51..52 " " |
32 | PATH_TYPE@[52; 55) | 32 | PATH_TYPE@52..55 |
33 | PATH@[52; 55) | 33 | PATH@52..55 |
34 | PATH_SEGMENT@[52; 55) | 34 | PATH_SEGMENT@52..55 |
35 | NAME_REF@[52; 55) | 35 | NAME_REF@52..55 |
36 | IDENT@[52; 55) "Uri" | 36 | IDENT@52..55 "Uri" |
37 | COMMA@[55; 56) "," | 37 | COMMA@55..56 "," |
38 | WHITESPACE@[56; 57) "\n" | 38 | WHITESPACE@56..57 "\n" |
39 | R_PAREN@[57; 58) ")" | 39 | R_PAREN@57..58 ")" |
40 | SEMICOLON@[58; 59) ";" | 40 | SEMICOLON@58..59 ";" |
41 | WHITESPACE@[59; 60) "\n" | 41 | WHITESPACE@59..60 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast index 4f9e80e2e..ddfcf974e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 41) | 1 | SOURCE_FILE@0..41 |
2 | TYPE_ALIAS_DEF@[0; 16) | 2 | TYPE_ALIAS_DEF@0..16 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "A" | 6 | IDENT@5..6 "A" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | MACRO_CALL@[9; 15) | 10 | MACRO_CALL@9..15 |
11 | PATH@[9; 12) | 11 | PATH@9..12 |
12 | PATH_SEGMENT@[9; 12) | 12 | PATH_SEGMENT@9..12 |
13 | NAME_REF@[9; 12) | 13 | NAME_REF@9..12 |
14 | IDENT@[9; 12) "foo" | 14 | IDENT@9..12 "foo" |
15 | BANG@[12; 13) "!" | 15 | BANG@12..13 "!" |
16 | TOKEN_TREE@[13; 15) | 16 | TOKEN_TREE@13..15 |
17 | L_PAREN@[13; 14) "(" | 17 | L_PAREN@13..14 "(" |
18 | R_PAREN@[14; 15) ")" | 18 | R_PAREN@14..15 ")" |
19 | SEMICOLON@[15; 16) ";" | 19 | SEMICOLON@15..16 ";" |
20 | WHITESPACE@[16; 17) "\n" | 20 | WHITESPACE@16..17 "\n" |
21 | TYPE_ALIAS_DEF@[17; 40) | 21 | TYPE_ALIAS_DEF@17..40 |
22 | TYPE_KW@[17; 21) "type" | 22 | TYPE_KW@17..21 "type" |
23 | WHITESPACE@[21; 22) " " | 23 | WHITESPACE@21..22 " " |
24 | NAME@[22; 23) | 24 | NAME@22..23 |
25 | IDENT@[22; 23) "B" | 25 | IDENT@22..23 "B" |
26 | WHITESPACE@[23; 24) " " | 26 | WHITESPACE@23..24 " " |
27 | EQ@[24; 25) "=" | 27 | EQ@24..25 "=" |
28 | WHITESPACE@[25; 26) " " | 28 | WHITESPACE@25..26 " " |
29 | MACRO_CALL@[26; 39) | 29 | MACRO_CALL@26..39 |
30 | PATH@[26; 36) | 30 | PATH@26..36 |
31 | PATH@[26; 31) | 31 | PATH@26..31 |
32 | PATH_SEGMENT@[26; 31) | 32 | PATH_SEGMENT@26..31 |
33 | CRATE_KW@[26; 31) "crate" | 33 | CRATE_KW@26..31 "crate" |
34 | COLON2@[31; 33) "::" | 34 | COLON2@31..33 "::" |
35 | PATH_SEGMENT@[33; 36) | 35 | PATH_SEGMENT@33..36 |
36 | NAME_REF@[33; 36) | 36 | NAME_REF@33..36 |
37 | IDENT@[33; 36) "foo" | 37 | IDENT@33..36 "foo" |
38 | BANG@[36; 37) "!" | 38 | BANG@36..37 "!" |
39 | TOKEN_TREE@[37; 39) | 39 | TOKEN_TREE@37..39 |
40 | L_PAREN@[37; 38) "(" | 40 | L_PAREN@37..38 "(" |
41 | R_PAREN@[38; 39) ")" | 41 | R_PAREN@38..39 ")" |
42 | SEMICOLON@[39; 40) ";" | 42 | SEMICOLON@39..40 ";" |
43 | WHITESPACE@[40; 41) "\n" | 43 | WHITESPACE@40..41 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast index f9a4bc81b..a65a5c85f 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast | |||
@@ -1,40 +1,40 @@ | |||
1 | SOURCE_FILE@[0; 94) | 1 | SOURCE_FILE@0..94 |
2 | ENUM_DEF@[0; 8) | 2 | ENUM_DEF@0..8 |
3 | ENUM_KW@[0; 4) "enum" | 3 | ENUM_KW@0..4 "enum" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "F" | 6 | IDENT@5..6 "F" |
7 | ENUM_VARIANT_LIST@[6; 8) | 7 | ENUM_VARIANT_LIST@6..8 |
8 | L_CURLY@[6; 7) "{" | 8 | L_CURLY@6..7 "{" |
9 | R_CURLY@[7; 8) "}" | 9 | R_CURLY@7..8 "}" |
10 | WHITESPACE@[8; 9) "\n" | 10 | WHITESPACE@8..9 "\n" |
11 | IMPL_DEF@[9; 93) | 11 | IMPL_DEF@9..93 |
12 | IMPL_KW@[9; 13) "impl" | 12 | IMPL_KW@9..13 "impl" |
13 | WHITESPACE@[13; 14) " " | 13 | WHITESPACE@13..14 " " |
14 | PATH_TYPE@[14; 15) | 14 | PATH_TYPE@14..15 |
15 | PATH@[14; 15) | 15 | PATH@14..15 |
16 | PATH_SEGMENT@[14; 15) | 16 | PATH_SEGMENT@14..15 |
17 | NAME_REF@[14; 15) | 17 | NAME_REF@14..15 |
18 | IDENT@[14; 15) "F" | 18 | IDENT@14..15 "F" |
19 | WHITESPACE@[15; 16) " " | 19 | WHITESPACE@15..16 " " |
20 | ITEM_LIST@[16; 93) | 20 | ITEM_LIST@16..93 |
21 | L_CURLY@[16; 17) "{" | 21 | L_CURLY@16..17 "{" |
22 | WHITESPACE@[17; 23) "\n " | 22 | WHITESPACE@17..23 "\n " |
23 | COMMENT@[23; 48) "//! This is a doc com ..." | 23 | COMMENT@23..48 "//! This is a doc com ..." |
24 | WHITESPACE@[48; 54) "\n " | 24 | WHITESPACE@48..54 "\n " |
25 | ATTR@[54; 91) | 25 | ATTR@54..91 |
26 | POUND@[54; 55) "#" | 26 | POUND@54..55 "#" |
27 | BANG@[55; 56) "!" | 27 | BANG@55..56 "!" |
28 | L_BRACK@[56; 57) "[" | 28 | L_BRACK@56..57 "[" |
29 | PATH@[57; 60) | 29 | PATH@57..60 |
30 | PATH_SEGMENT@[57; 60) | 30 | PATH_SEGMENT@57..60 |
31 | NAME_REF@[57; 60) | 31 | NAME_REF@57..60 |
32 | IDENT@[57; 60) "doc" | 32 | IDENT@57..60 "doc" |
33 | TOKEN_TREE@[60; 90) | 33 | TOKEN_TREE@60..90 |
34 | L_PAREN@[60; 61) "(" | 34 | L_PAREN@60..61 "(" |
35 | STRING@[61; 89) "\"This is also a doc c ..." | 35 | STRING@61..89 "\"This is also a doc c ..." |
36 | R_PAREN@[89; 90) ")" | 36 | R_PAREN@89..90 ")" |
37 | R_BRACK@[90; 91) "]" | 37 | R_BRACK@90..91 "]" |
38 | WHITESPACE@[91; 92) "\n" | 38 | WHITESPACE@91..92 "\n" |
39 | R_CURLY@[92; 93) "}" | 39 | R_CURLY@92..93 "}" |
40 | WHITESPACE@[93; 94) "\n" | 40 | WHITESPACE@93..94 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast index 852e4e489..8e080fb60 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast | |||
@@ -1,48 +1,48 @@ | |||
1 | SOURCE_FILE@[0; 58) | 1 | SOURCE_FILE@0..58 |
2 | FN_DEF@[0; 57) | 2 | FN_DEF@0..57 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 57) | 11 | BLOCK_EXPR@9..57 |
12 | BLOCK@[9; 57) | 12 | BLOCK@9..57 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 55) | 15 | MATCH_EXPR@15..55 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 55) | 22 | MATCH_ARM_LIST@24..55 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | MATCH_ARM@[34; 48) | 25 | MATCH_ARM@34..48 |
26 | PLACEHOLDER_PAT@[34; 35) | 26 | PLACEHOLDER_PAT@34..35 |
27 | UNDERSCORE@[34; 35) "_" | 27 | UNDERSCORE@34..35 "_" |
28 | WHITESPACE@[35; 36) " " | 28 | WHITESPACE@35..36 " " |
29 | MATCH_GUARD@[36; 42) | 29 | MATCH_GUARD@36..42 |
30 | IF_KW@[36; 38) "if" | 30 | IF_KW@36..38 "if" |
31 | WHITESPACE@[38; 39) " " | 31 | WHITESPACE@38..39 " " |
32 | PATH_EXPR@[39; 42) | 32 | PATH_EXPR@39..42 |
33 | PATH@[39; 42) | 33 | PATH@39..42 |
34 | PATH_SEGMENT@[39; 42) | 34 | PATH_SEGMENT@39..42 |
35 | NAME_REF@[39; 42) | 35 | NAME_REF@39..42 |
36 | IDENT@[39; 42) "foo" | 36 | IDENT@39..42 "foo" |
37 | WHITESPACE@[42; 43) " " | 37 | WHITESPACE@42..43 " " |
38 | FAT_ARROW@[43; 45) "=>" | 38 | FAT_ARROW@43..45 "=>" |
39 | WHITESPACE@[45; 46) " " | 39 | WHITESPACE@45..46 " " |
40 | TUPLE_EXPR@[46; 48) | 40 | TUPLE_EXPR@46..48 |
41 | L_PAREN@[46; 47) "(" | 41 | L_PAREN@46..47 "(" |
42 | R_PAREN@[47; 48) ")" | 42 | R_PAREN@47..48 ")" |
43 | COMMA@[48; 49) "," | 43 | COMMA@48..49 "," |
44 | WHITESPACE@[49; 54) "\n " | 44 | WHITESPACE@49..54 "\n " |
45 | R_CURLY@[54; 55) "}" | 45 | R_CURLY@54..55 "}" |
46 | WHITESPACE@[55; 56) "\n" | 46 | WHITESPACE@55..56 "\n" |
47 | R_CURLY@[56; 57) "}" | 47 | R_CURLY@56..57 "}" |
48 | WHITESPACE@[57; 58) "\n" | 48 | WHITESPACE@57..58 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast index 7eec92e1b..728164f8e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast | |||
@@ -1,81 +1,81 @@ | |||
1 | SOURCE_FILE@[0; 139) | 1 | SOURCE_FILE@0..139 |
2 | FN_DEF@[0; 138) | 2 | FN_DEF@0..138 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 138) | 11 | BLOCK_EXPR@9..138 |
12 | BLOCK@[9; 138) | 12 | BLOCK@9..138 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 136) | 15 | MATCH_EXPR@15..136 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 136) | 22 | MATCH_ARM_LIST@24..136 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | ATTR@[34; 60) | 25 | ATTR@34..60 |
26 | POUND@[34; 35) "#" | 26 | POUND@34..35 "#" |
27 | BANG@[35; 36) "!" | 27 | BANG@35..36 "!" |
28 | L_BRACK@[36; 37) "[" | 28 | L_BRACK@36..37 "[" |
29 | PATH@[37; 40) | 29 | PATH@37..40 |
30 | PATH_SEGMENT@[37; 40) | 30 | PATH_SEGMENT@37..40 |
31 | NAME_REF@[37; 40) | 31 | NAME_REF@37..40 |
32 | IDENT@[37; 40) "doc" | 32 | IDENT@37..40 "doc" |
33 | TOKEN_TREE@[40; 59) | 33 | TOKEN_TREE@40..59 |
34 | L_PAREN@[40; 41) "(" | 34 | L_PAREN@40..41 "(" |
35 | STRING@[41; 58) "\"Inner attribute\"" | 35 | STRING@41..58 "\"Inner attribute\"" |
36 | R_PAREN@[58; 59) ")" | 36 | R_PAREN@58..59 ")" |
37 | R_BRACK@[59; 60) "]" | 37 | R_BRACK@59..60 "]" |
38 | WHITESPACE@[60; 69) "\n " | 38 | WHITESPACE@60..69 "\n " |
39 | ATTR@[69; 86) | 39 | ATTR@69..86 |
40 | POUND@[69; 70) "#" | 40 | POUND@69..70 "#" |
41 | BANG@[70; 71) "!" | 41 | BANG@70..71 "!" |
42 | L_BRACK@[71; 72) "[" | 42 | L_BRACK@71..72 "[" |
43 | PATH@[72; 75) | 43 | PATH@72..75 |
44 | PATH_SEGMENT@[72; 75) | 44 | PATH_SEGMENT@72..75 |
45 | NAME_REF@[72; 75) | 45 | NAME_REF@72..75 |
46 | IDENT@[72; 75) "doc" | 46 | IDENT@72..75 "doc" |
47 | TOKEN_TREE@[75; 85) | 47 | TOKEN_TREE@75..85 |
48 | L_PAREN@[75; 76) "(" | 48 | L_PAREN@75..76 "(" |
49 | STRING@[76; 84) "\"Can be\"" | 49 | STRING@76..84 "\"Can be\"" |
50 | R_PAREN@[84; 85) ")" | 50 | R_PAREN@84..85 ")" |
51 | R_BRACK@[85; 86) "]" | 51 | R_BRACK@85..86 "]" |
52 | WHITESPACE@[86; 95) "\n " | 52 | WHITESPACE@86..95 "\n " |
53 | ATTR@[95; 113) | 53 | ATTR@95..113 |
54 | POUND@[95; 96) "#" | 54 | POUND@95..96 "#" |
55 | BANG@[96; 97) "!" | 55 | BANG@96..97 "!" |
56 | L_BRACK@[97; 98) "[" | 56 | L_BRACK@97..98 "[" |
57 | PATH@[98; 101) | 57 | PATH@98..101 |
58 | PATH_SEGMENT@[98; 101) | 58 | PATH_SEGMENT@98..101 |
59 | NAME_REF@[98; 101) | 59 | NAME_REF@98..101 |
60 | IDENT@[98; 101) "doc" | 60 | IDENT@98..101 "doc" |
61 | TOKEN_TREE@[101; 112) | 61 | TOKEN_TREE@101..112 |
62 | L_PAREN@[101; 102) "(" | 62 | L_PAREN@101..102 "(" |
63 | STRING@[102; 111) "\"Stacked\"" | 63 | STRING@102..111 "\"Stacked\"" |
64 | R_PAREN@[111; 112) ")" | 64 | R_PAREN@111..112 ")" |
65 | R_BRACK@[112; 113) "]" | 65 | R_BRACK@112..113 "]" |
66 | WHITESPACE@[113; 122) "\n " | 66 | WHITESPACE@113..122 "\n " |
67 | MATCH_ARM@[122; 129) | 67 | MATCH_ARM@122..129 |
68 | PLACEHOLDER_PAT@[122; 123) | 68 | PLACEHOLDER_PAT@122..123 |
69 | UNDERSCORE@[122; 123) "_" | 69 | UNDERSCORE@122..123 "_" |
70 | WHITESPACE@[123; 124) " " | 70 | WHITESPACE@123..124 " " |
71 | FAT_ARROW@[124; 126) "=>" | 71 | FAT_ARROW@124..126 "=>" |
72 | WHITESPACE@[126; 127) " " | 72 | WHITESPACE@126..127 " " |
73 | TUPLE_EXPR@[127; 129) | 73 | TUPLE_EXPR@127..129 |
74 | L_PAREN@[127; 128) "(" | 74 | L_PAREN@127..128 "(" |
75 | R_PAREN@[128; 129) ")" | 75 | R_PAREN@128..129 ")" |
76 | COMMA@[129; 130) "," | 76 | COMMA@129..130 "," |
77 | WHITESPACE@[130; 135) "\n " | 77 | WHITESPACE@130..135 "\n " |
78 | R_CURLY@[135; 136) "}" | 78 | R_CURLY@135..136 "}" |
79 | WHITESPACE@[136; 137) "\n" | 79 | WHITESPACE@136..137 "\n" |
80 | R_CURLY@[137; 138) "}" | 80 | R_CURLY@137..138 "}" |
81 | WHITESPACE@[138; 139) "\n" | 81 | WHITESPACE@138..139 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast index ff380b448..6123885e3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast | |||
@@ -1,146 +1,146 @@ | |||
1 | SOURCE_FILE@[0; 259) | 1 | SOURCE_FILE@0..259 |
2 | FN_DEF@[0; 258) | 2 | FN_DEF@0..258 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 258) | 11 | BLOCK_EXPR@9..258 |
12 | BLOCK@[9; 258) | 12 | BLOCK@9..258 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | MATCH_EXPR@[15; 256) | 15 | MATCH_EXPR@15..256 |
16 | MATCH_KW@[15; 20) "match" | 16 | MATCH_KW@15..20 "match" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TUPLE_EXPR@[21; 23) | 18 | TUPLE_EXPR@21..23 |
19 | L_PAREN@[21; 22) "(" | 19 | L_PAREN@21..22 "(" |
20 | R_PAREN@[22; 23) ")" | 20 | R_PAREN@22..23 ")" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | MATCH_ARM_LIST@[24; 256) | 22 | MATCH_ARM_LIST@24..256 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | WHITESPACE@[25; 34) "\n " | 24 | WHITESPACE@25..34 "\n " |
25 | MATCH_ARM@[34; 74) | 25 | MATCH_ARM@34..74 |
26 | ATTR@[34; 58) | 26 | ATTR@34..58 |
27 | POUND@[34; 35) "#" | 27 | POUND@34..35 "#" |
28 | L_BRACK@[35; 36) "[" | 28 | L_BRACK@35..36 "[" |
29 | PATH@[36; 39) | 29 | PATH@36..39 |
30 | PATH_SEGMENT@[36; 39) | 30 | PATH_SEGMENT@36..39 |
31 | NAME_REF@[36; 39) | 31 | NAME_REF@36..39 |
32 | IDENT@[36; 39) "cfg" | 32 | IDENT@36..39 "cfg" |
33 | TOKEN_TREE@[39; 57) | 33 | TOKEN_TREE@39..57 |
34 | L_PAREN@[39; 40) "(" | 34 | L_PAREN@39..40 "(" |
35 | IDENT@[40; 47) "feature" | 35 | IDENT@40..47 "feature" |
36 | WHITESPACE@[47; 48) " " | 36 | WHITESPACE@47..48 " " |
37 | EQ@[48; 49) "=" | 37 | EQ@48..49 "=" |
38 | WHITESPACE@[49; 50) " " | 38 | WHITESPACE@49..50 " " |
39 | STRING@[50; 56) "\"some\"" | 39 | STRING@50..56 "\"some\"" |
40 | R_PAREN@[56; 57) ")" | 40 | R_PAREN@56..57 ")" |
41 | R_BRACK@[57; 58) "]" | 41 | R_BRACK@57..58 "]" |
42 | WHITESPACE@[58; 67) "\n " | 42 | WHITESPACE@58..67 "\n " |
43 | PLACEHOLDER_PAT@[67; 68) | 43 | PLACEHOLDER_PAT@67..68 |
44 | UNDERSCORE@[67; 68) "_" | 44 | UNDERSCORE@67..68 "_" |
45 | WHITESPACE@[68; 69) " " | 45 | WHITESPACE@68..69 " " |
46 | FAT_ARROW@[69; 71) "=>" | 46 | FAT_ARROW@69..71 "=>" |
47 | WHITESPACE@[71; 72) " " | 47 | WHITESPACE@71..72 " " |
48 | TUPLE_EXPR@[72; 74) | 48 | TUPLE_EXPR@72..74 |
49 | L_PAREN@[72; 73) "(" | 49 | L_PAREN@72..73 "(" |
50 | R_PAREN@[73; 74) ")" | 50 | R_PAREN@73..74 ")" |
51 | COMMA@[74; 75) "," | 51 | COMMA@74..75 "," |
52 | WHITESPACE@[75; 84) "\n " | 52 | WHITESPACE@75..84 "\n " |
53 | MATCH_ARM@[84; 125) | 53 | MATCH_ARM@84..125 |
54 | ATTR@[84; 109) | 54 | ATTR@84..109 |
55 | POUND@[84; 85) "#" | 55 | POUND@84..85 "#" |
56 | L_BRACK@[85; 86) "[" | 56 | L_BRACK@85..86 "[" |
57 | PATH@[86; 89) | 57 | PATH@86..89 |
58 | PATH_SEGMENT@[86; 89) | 58 | PATH_SEGMENT@86..89 |
59 | NAME_REF@[86; 89) | 59 | NAME_REF@86..89 |
60 | IDENT@[86; 89) "cfg" | 60 | IDENT@86..89 "cfg" |
61 | TOKEN_TREE@[89; 108) | 61 | TOKEN_TREE@89..108 |
62 | L_PAREN@[89; 90) "(" | 62 | L_PAREN@89..90 "(" |
63 | IDENT@[90; 97) "feature" | 63 | IDENT@90..97 "feature" |
64 | WHITESPACE@[97; 98) " " | 64 | WHITESPACE@97..98 " " |
65 | EQ@[98; 99) "=" | 65 | EQ@98..99 "=" |
66 | WHITESPACE@[99; 100) " " | 66 | WHITESPACE@99..100 " " |
67 | STRING@[100; 107) "\"other\"" | 67 | STRING@100..107 "\"other\"" |
68 | R_PAREN@[107; 108) ")" | 68 | R_PAREN@107..108 ")" |
69 | R_BRACK@[108; 109) "]" | 69 | R_BRACK@108..109 "]" |
70 | WHITESPACE@[109; 118) "\n " | 70 | WHITESPACE@109..118 "\n " |
71 | PLACEHOLDER_PAT@[118; 119) | 71 | PLACEHOLDER_PAT@118..119 |
72 | UNDERSCORE@[118; 119) "_" | 72 | UNDERSCORE@118..119 "_" |
73 | WHITESPACE@[119; 120) " " | 73 | WHITESPACE@119..120 " " |
74 | FAT_ARROW@[120; 122) "=>" | 74 | FAT_ARROW@120..122 "=>" |
75 | WHITESPACE@[122; 123) " " | 75 | WHITESPACE@122..123 " " |
76 | TUPLE_EXPR@[123; 125) | 76 | TUPLE_EXPR@123..125 |
77 | L_PAREN@[123; 124) "(" | 77 | L_PAREN@123..124 "(" |
78 | R_PAREN@[124; 125) ")" | 78 | R_PAREN@124..125 ")" |
79 | COMMA@[125; 126) "," | 79 | COMMA@125..126 "," |
80 | WHITESPACE@[126; 135) "\n " | 80 | WHITESPACE@126..135 "\n " |
81 | MATCH_ARM@[135; 249) | 81 | MATCH_ARM@135..249 |
82 | ATTR@[135; 159) | 82 | ATTR@135..159 |
83 | POUND@[135; 136) "#" | 83 | POUND@135..136 "#" |
84 | L_BRACK@[136; 137) "[" | 84 | L_BRACK@136..137 "[" |
85 | PATH@[137; 140) | 85 | PATH@137..140 |
86 | PATH_SEGMENT@[137; 140) | 86 | PATH_SEGMENT@137..140 |
87 | NAME_REF@[137; 140) | 87 | NAME_REF@137..140 |
88 | IDENT@[137; 140) "cfg" | 88 | IDENT@137..140 "cfg" |
89 | TOKEN_TREE@[140; 158) | 89 | TOKEN_TREE@140..158 |
90 | L_PAREN@[140; 141) "(" | 90 | L_PAREN@140..141 "(" |
91 | IDENT@[141; 148) "feature" | 91 | IDENT@141..148 "feature" |
92 | WHITESPACE@[148; 149) " " | 92 | WHITESPACE@148..149 " " |
93 | EQ@[149; 150) "=" | 93 | EQ@149..150 "=" |
94 | WHITESPACE@[150; 151) " " | 94 | WHITESPACE@150..151 " " |
95 | STRING@[151; 157) "\"many\"" | 95 | STRING@151..157 "\"many\"" |
96 | R_PAREN@[157; 158) ")" | 96 | R_PAREN@157..158 ")" |
97 | R_BRACK@[158; 159) "]" | 97 | R_BRACK@158..159 "]" |
98 | WHITESPACE@[159; 168) "\n " | 98 | WHITESPACE@159..168 "\n " |
99 | ATTR@[168; 198) | 99 | ATTR@168..198 |
100 | POUND@[168; 169) "#" | 100 | POUND@168..169 "#" |
101 | L_BRACK@[169; 170) "[" | 101 | L_BRACK@169..170 "[" |
102 | PATH@[170; 173) | 102 | PATH@170..173 |
103 | PATH_SEGMENT@[170; 173) | 103 | PATH_SEGMENT@170..173 |
104 | NAME_REF@[170; 173) | 104 | NAME_REF@170..173 |
105 | IDENT@[170; 173) "cfg" | 105 | IDENT@170..173 "cfg" |
106 | TOKEN_TREE@[173; 197) | 106 | TOKEN_TREE@173..197 |
107 | L_PAREN@[173; 174) "(" | 107 | L_PAREN@173..174 "(" |
108 | IDENT@[174; 181) "feature" | 108 | IDENT@174..181 "feature" |
109 | WHITESPACE@[181; 182) " " | 109 | WHITESPACE@181..182 " " |
110 | EQ@[182; 183) "=" | 110 | EQ@182..183 "=" |
111 | WHITESPACE@[183; 184) " " | 111 | WHITESPACE@183..184 " " |
112 | STRING@[184; 196) "\"attributes\"" | 112 | STRING@184..196 "\"attributes\"" |
113 | R_PAREN@[196; 197) ")" | 113 | R_PAREN@196..197 ")" |
114 | R_BRACK@[197; 198) "]" | 114 | R_BRACK@197..198 "]" |
115 | WHITESPACE@[198; 207) "\n " | 115 | WHITESPACE@198..207 "\n " |
116 | ATTR@[207; 233) | 116 | ATTR@207..233 |
117 | POUND@[207; 208) "#" | 117 | POUND@207..208 "#" |
118 | L_BRACK@[208; 209) "[" | 118 | L_BRACK@208..209 "[" |
119 | PATH@[209; 212) | 119 | PATH@209..212 |
120 | PATH_SEGMENT@[209; 212) | 120 | PATH_SEGMENT@209..212 |
121 | NAME_REF@[209; 212) | 121 | NAME_REF@209..212 |
122 | IDENT@[209; 212) "cfg" | 122 | IDENT@209..212 "cfg" |
123 | TOKEN_TREE@[212; 232) | 123 | TOKEN_TREE@212..232 |
124 | L_PAREN@[212; 213) "(" | 124 | L_PAREN@212..213 "(" |
125 | IDENT@[213; 220) "feature" | 125 | IDENT@213..220 "feature" |
126 | WHITESPACE@[220; 221) " " | 126 | WHITESPACE@220..221 " " |
127 | EQ@[221; 222) "=" | 127 | EQ@221..222 "=" |
128 | WHITESPACE@[222; 223) " " | 128 | WHITESPACE@222..223 " " |
129 | STRING@[223; 231) "\"before\"" | 129 | STRING@223..231 "\"before\"" |
130 | R_PAREN@[231; 232) ")" | 130 | R_PAREN@231..232 ")" |
131 | R_BRACK@[232; 233) "]" | 131 | R_BRACK@232..233 "]" |
132 | WHITESPACE@[233; 242) "\n " | 132 | WHITESPACE@233..242 "\n " |
133 | PLACEHOLDER_PAT@[242; 243) | 133 | PLACEHOLDER_PAT@242..243 |
134 | UNDERSCORE@[242; 243) "_" | 134 | UNDERSCORE@242..243 "_" |
135 | WHITESPACE@[243; 244) " " | 135 | WHITESPACE@243..244 " " |
136 | FAT_ARROW@[244; 246) "=>" | 136 | FAT_ARROW@244..246 "=>" |
137 | WHITESPACE@[246; 247) " " | 137 | WHITESPACE@246..247 " " |
138 | TUPLE_EXPR@[247; 249) | 138 | TUPLE_EXPR@247..249 |
139 | L_PAREN@[247; 248) "(" | 139 | L_PAREN@247..248 "(" |
140 | R_PAREN@[248; 249) ")" | 140 | R_PAREN@248..249 ")" |
141 | COMMA@[249; 250) "," | 141 | COMMA@249..250 "," |
142 | WHITESPACE@[250; 255) "\n " | 142 | WHITESPACE@250..255 "\n " |
143 | R_CURLY@[255; 256) "}" | 143 | R_CURLY@255..256 "}" |
144 | WHITESPACE@[256; 257) "\n" | 144 | WHITESPACE@256..257 "\n" |
145 | R_CURLY@[257; 258) "}" | 145 | R_CURLY@257..258 "}" |
146 | WHITESPACE@[258; 259) "\n" | 146 | WHITESPACE@258..259 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast index a73ff9c90..67b9c10d5 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast | |||
@@ -1,66 +1,66 @@ | |||
1 | SOURCE_FILE@[0; 64) | 1 | SOURCE_FILE@0..64 |
2 | FN_DEF@[0; 63) | 2 | FN_DEF@0..63 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | TYPE_PARAM_LIST@[6; 49) | 7 | TYPE_PARAM_LIST@6..49 |
8 | L_ANGLE@[6; 7) "<" | 8 | L_ANGLE@6..7 "<" |
9 | LIFETIME_PARAM@[7; 29) | 9 | LIFETIME_PARAM@7..29 |
10 | ATTR@[7; 26) | 10 | ATTR@7..26 |
11 | POUND@[7; 8) "#" | 11 | POUND@7..8 "#" |
12 | L_BRACK@[8; 9) "[" | 12 | L_BRACK@8..9 "[" |
13 | PATH@[9; 15) | 13 | PATH@9..15 |
14 | PATH_SEGMENT@[9; 15) | 14 | PATH_SEGMENT@9..15 |
15 | NAME_REF@[9; 15) | 15 | NAME_REF@9..15 |
16 | IDENT@[9; 15) "derive" | 16 | IDENT@9..15 "derive" |
17 | TOKEN_TREE@[15; 25) | 17 | TOKEN_TREE@15..25 |
18 | L_PAREN@[15; 16) "(" | 18 | L_PAREN@15..16 "(" |
19 | IDENT@[16; 24) "Lifetime" | 19 | IDENT@16..24 "Lifetime" |
20 | R_PAREN@[24; 25) ")" | 20 | R_PAREN@24..25 ")" |
21 | R_BRACK@[25; 26) "]" | 21 | R_BRACK@25..26 "]" |
22 | WHITESPACE@[26; 27) " " | 22 | WHITESPACE@26..27 " " |
23 | LIFETIME@[27; 29) "\'a" | 23 | LIFETIME@27..29 "\'a" |
24 | COMMA@[29; 30) "," | 24 | COMMA@29..30 "," |
25 | WHITESPACE@[30; 31) " " | 25 | WHITESPACE@30..31 " " |
26 | TYPE_PARAM@[31; 48) | 26 | TYPE_PARAM@31..48 |
27 | ATTR@[31; 46) | 27 | ATTR@31..46 |
28 | POUND@[31; 32) "#" | 28 | POUND@31..32 "#" |
29 | L_BRACK@[32; 33) "[" | 29 | L_BRACK@32..33 "[" |
30 | PATH@[33; 39) | 30 | PATH@33..39 |
31 | PATH_SEGMENT@[33; 39) | 31 | PATH_SEGMENT@33..39 |
32 | NAME_REF@[33; 39) | 32 | NAME_REF@33..39 |
33 | IDENT@[33; 39) "derive" | 33 | IDENT@33..39 "derive" |
34 | TOKEN_TREE@[39; 45) | 34 | TOKEN_TREE@39..45 |
35 | L_PAREN@[39; 40) "(" | 35 | L_PAREN@39..40 "(" |
36 | IDENT@[40; 44) "Type" | 36 | IDENT@40..44 "Type" |
37 | R_PAREN@[44; 45) ")" | 37 | R_PAREN@44..45 ")" |
38 | R_BRACK@[45; 46) "]" | 38 | R_BRACK@45..46 "]" |
39 | WHITESPACE@[46; 47) " " | 39 | WHITESPACE@46..47 " " |
40 | NAME@[47; 48) | 40 | NAME@47..48 |
41 | IDENT@[47; 48) "T" | 41 | IDENT@47..48 "T" |
42 | R_ANGLE@[48; 49) ">" | 42 | R_ANGLE@48..49 ">" |
43 | PARAM_LIST@[49; 59) | 43 | PARAM_LIST@49..59 |
44 | L_PAREN@[49; 50) "(" | 44 | L_PAREN@49..50 "(" |
45 | PARAM@[50; 58) | 45 | PARAM@50..58 |
46 | PLACEHOLDER_PAT@[50; 51) | 46 | PLACEHOLDER_PAT@50..51 |
47 | UNDERSCORE@[50; 51) "_" | 47 | UNDERSCORE@50..51 "_" |
48 | COLON@[51; 52) ":" | 48 | COLON@51..52 ":" |
49 | WHITESPACE@[52; 53) " " | 49 | WHITESPACE@52..53 " " |
50 | REFERENCE_TYPE@[53; 58) | 50 | REFERENCE_TYPE@53..58 |
51 | AMP@[53; 54) "&" | 51 | AMP@53..54 "&" |
52 | LIFETIME@[54; 56) "\'a" | 52 | LIFETIME@54..56 "\'a" |
53 | WHITESPACE@[56; 57) " " | 53 | WHITESPACE@56..57 " " |
54 | PATH_TYPE@[57; 58) | 54 | PATH_TYPE@57..58 |
55 | PATH@[57; 58) | 55 | PATH@57..58 |
56 | PATH_SEGMENT@[57; 58) | 56 | PATH_SEGMENT@57..58 |
57 | NAME_REF@[57; 58) | 57 | NAME_REF@57..58 |
58 | IDENT@[57; 58) "T" | 58 | IDENT@57..58 "T" |
59 | R_PAREN@[58; 59) ")" | 59 | R_PAREN@58..59 ")" |
60 | WHITESPACE@[59; 60) " " | 60 | WHITESPACE@59..60 " " |
61 | BLOCK_EXPR@[60; 63) | 61 | BLOCK_EXPR@60..63 |
62 | BLOCK@[60; 63) | 62 | BLOCK@60..63 |
63 | L_CURLY@[60; 61) "{" | 63 | L_CURLY@60..61 "{" |
64 | WHITESPACE@[61; 62) "\n" | 64 | WHITESPACE@61..62 "\n" |
65 | R_CURLY@[62; 63) "}" | 65 | R_CURLY@62..63 "}" |
66 | WHITESPACE@[63; 64) "\n" | 66 | WHITESPACE@63..64 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast index af8067b12..b3a33c14d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast | |||
@@ -1,50 +1,50 @@ | |||
1 | SOURCE_FILE@[0; 57) | 1 | SOURCE_FILE@0..57 |
2 | EXTERN_BLOCK@[0; 56) | 2 | EXTERN_BLOCK@0..56 |
3 | ABI@[0; 10) | 3 | ABI@0..10 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | STRING@[7; 10) "\"C\"" | 6 | STRING@7..10 "\"C\"" |
7 | WHITESPACE@[10; 11) " " | 7 | WHITESPACE@10..11 " " |
8 | EXTERN_ITEM_LIST@[11; 56) | 8 | EXTERN_ITEM_LIST@11..56 |
9 | L_CURLY@[11; 12) "{" | 9 | L_CURLY@11..12 "{" |
10 | WHITESPACE@[12; 13) " " | 10 | WHITESPACE@12..13 " " |
11 | FN_DEF@[13; 54) | 11 | FN_DEF@13..54 |
12 | FN_KW@[13; 15) "fn" | 12 | FN_KW@13..15 "fn" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | NAME@[16; 22) | 14 | NAME@16..22 |
15 | IDENT@[16; 22) "printf" | 15 | IDENT@16..22 "printf" |
16 | PARAM_LIST@[22; 46) | 16 | PARAM_LIST@22..46 |
17 | L_PAREN@[22; 23) "(" | 17 | L_PAREN@22..23 "(" |
18 | PARAM@[23; 40) | 18 | PARAM@23..40 |
19 | BIND_PAT@[23; 29) | 19 | BIND_PAT@23..29 |
20 | NAME@[23; 29) | 20 | NAME@23..29 |
21 | IDENT@[23; 29) "format" | 21 | IDENT@23..29 "format" |
22 | COLON@[29; 30) ":" | 22 | COLON@29..30 ":" |
23 | WHITESPACE@[30; 31) " " | 23 | WHITESPACE@30..31 " " |
24 | POINTER_TYPE@[31; 40) | 24 | POINTER_TYPE@31..40 |
25 | STAR@[31; 32) "*" | 25 | STAR@31..32 "*" |
26 | CONST_KW@[32; 37) "const" | 26 | CONST_KW@32..37 "const" |
27 | WHITESPACE@[37; 38) " " | 27 | WHITESPACE@37..38 " " |
28 | PATH_TYPE@[38; 40) | 28 | PATH_TYPE@38..40 |
29 | PATH@[38; 40) | 29 | PATH@38..40 |
30 | PATH_SEGMENT@[38; 40) | 30 | PATH_SEGMENT@38..40 |
31 | NAME_REF@[38; 40) | 31 | NAME_REF@38..40 |
32 | IDENT@[38; 40) "i8" | 32 | IDENT@38..40 "i8" |
33 | COMMA@[40; 41) "," | 33 | COMMA@40..41 "," |
34 | WHITESPACE@[41; 42) " " | 34 | WHITESPACE@41..42 " " |
35 | PARAM@[42; 45) | 35 | PARAM@42..45 |
36 | DOT3@[42; 45) "..." | 36 | DOT3@42..45 "..." |
37 | R_PAREN@[45; 46) ")" | 37 | R_PAREN@45..46 ")" |
38 | WHITESPACE@[46; 47) " " | 38 | WHITESPACE@46..47 " " |
39 | RET_TYPE@[47; 53) | 39 | RET_TYPE@47..53 |
40 | THIN_ARROW@[47; 49) "->" | 40 | THIN_ARROW@47..49 "->" |
41 | WHITESPACE@[49; 50) " " | 41 | WHITESPACE@49..50 " " |
42 | PATH_TYPE@[50; 53) | 42 | PATH_TYPE@50..53 |
43 | PATH@[50; 53) | 43 | PATH@50..53 |
44 | PATH_SEGMENT@[50; 53) | 44 | PATH_SEGMENT@50..53 |
45 | NAME_REF@[50; 53) | 45 | NAME_REF@50..53 |
46 | IDENT@[50; 53) "i32" | 46 | IDENT@50..53 "i32" |
47 | SEMICOLON@[53; 54) ";" | 47 | SEMICOLON@53..54 ";" |
48 | WHITESPACE@[54; 55) " " | 48 | WHITESPACE@54..55 " " |
49 | R_CURLY@[55; 56) "}" | 49 | R_CURLY@55..56 "}" |
50 | WHITESPACE@[56; 57) "\n" | 50 | WHITESPACE@56..57 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast index 9c4bd7f11..baf22a8d7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 18) | 1 | SOURCE_FILE@0..18 |
2 | FN_DEF@[0; 17) | 2 | FN_DEF@0..17 |
3 | ASYNC_KW@[0; 5) "async" | 3 | ASYNC_KW@0..5 "async" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | FN_KW@[6; 8) "fn" | 5 | FN_KW@6..8 "fn" |
6 | WHITESPACE@[8; 9) " " | 6 | WHITESPACE@8..9 " " |
7 | NAME@[9; 12) | 7 | NAME@9..12 |
8 | IDENT@[9; 12) "foo" | 8 | IDENT@9..12 "foo" |
9 | PARAM_LIST@[12; 14) | 9 | PARAM_LIST@12..14 |
10 | L_PAREN@[12; 13) "(" | 10 | L_PAREN@12..13 "(" |
11 | R_PAREN@[13; 14) ")" | 11 | R_PAREN@13..14 ")" |
12 | WHITESPACE@[14; 15) " " | 12 | WHITESPACE@14..15 " " |
13 | BLOCK_EXPR@[15; 17) | 13 | BLOCK_EXPR@15..17 |
14 | BLOCK@[15; 17) | 14 | BLOCK@15..17 |
15 | L_CURLY@[15; 16) "{" | 15 | L_CURLY@15..16 "{" |
16 | R_CURLY@[16; 17) "}" | 16 | R_CURLY@16..17 "}" |
17 | WHITESPACE@[17; 18) "\n" | 17 | WHITESPACE@17..18 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast index f1f4de976..16f5b90b6 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast | |||
@@ -1,32 +1,32 @@ | |||
1 | SOURCE_FILE@[0; 27) | 1 | SOURCE_FILE@0..27 |
2 | FN_DEF@[0; 26) | 2 | FN_DEF@0..26 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 26) | 11 | BLOCK_EXPR@9..26 |
12 | BLOCK@[9; 26) | 12 | BLOCK@9..26 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | EXPR_STMT@[11; 24) | 15 | EXPR_STMT@11..24 |
16 | CALL_EXPR@[11; 23) | 16 | CALL_EXPR@11..23 |
17 | PATH_EXPR@[11; 21) | 17 | PATH_EXPR@11..21 |
18 | PATH@[11; 21) | 18 | PATH@11..21 |
19 | PATH@[11; 16) | 19 | PATH@11..16 |
20 | PATH_SEGMENT@[11; 16) | 20 | PATH_SEGMENT@11..16 |
21 | CRATE_KW@[11; 16) "crate" | 21 | CRATE_KW@11..16 "crate" |
22 | COLON2@[16; 18) "::" | 22 | COLON2@16..18 "::" |
23 | PATH_SEGMENT@[18; 21) | 23 | PATH_SEGMENT@18..21 |
24 | NAME_REF@[18; 21) | 24 | NAME_REF@18..21 |
25 | IDENT@[18; 21) "foo" | 25 | IDENT@18..21 "foo" |
26 | ARG_LIST@[21; 23) | 26 | ARG_LIST@21..23 |
27 | L_PAREN@[21; 22) "(" | 27 | L_PAREN@21..22 "(" |
28 | R_PAREN@[22; 23) ")" | 28 | R_PAREN@22..23 ")" |
29 | SEMICOLON@[23; 24) ";" | 29 | SEMICOLON@23..24 ";" |
30 | WHITESPACE@[24; 25) " " | 30 | WHITESPACE@24..25 " " |
31 | R_CURLY@[25; 26) "}" | 31 | R_CURLY@25..26 "}" |
32 | WHITESPACE@[26; 27) "\n" | 32 | WHITESPACE@26..27 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast index a36c3df0e..07ed14773 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast | |||
@@ -1,48 +1,48 @@ | |||
1 | SOURCE_FILE@[0; 46) | 1 | SOURCE_FILE@0..46 |
2 | FN_DEF@[0; 45) | 2 | FN_DEF@0..45 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 45) | 11 | BLOCK_EXPR@10..45 |
12 | BLOCK@[10; 45) | 12 | BLOCK@10..45 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | RECORD_LIT@[16; 43) | 15 | RECORD_LIT@16..43 |
16 | PATH@[16; 17) | 16 | PATH@16..17 |
17 | PATH_SEGMENT@[16; 17) | 17 | PATH_SEGMENT@16..17 |
18 | NAME_REF@[16; 17) | 18 | NAME_REF@16..17 |
19 | IDENT@[16; 17) "S" | 19 | IDENT@16..17 "S" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | RECORD_FIELD_LIST@[18; 43) | 21 | RECORD_FIELD_LIST@18..43 |
22 | L_CURLY@[18; 19) "{" | 22 | L_CURLY@18..19 "{" |
23 | WHITESPACE@[19; 20) " " | 23 | WHITESPACE@19..20 " " |
24 | RECORD_FIELD@[20; 41) | 24 | RECORD_FIELD@20..41 |
25 | ATTR@[20; 32) | 25 | ATTR@20..32 |
26 | POUND@[20; 21) "#" | 26 | POUND@20..21 "#" |
27 | L_BRACK@[21; 22) "[" | 27 | L_BRACK@21..22 "[" |
28 | PATH@[22; 25) | 28 | PATH@22..25 |
29 | PATH_SEGMENT@[22; 25) | 29 | PATH_SEGMENT@22..25 |
30 | NAME_REF@[22; 25) | 30 | NAME_REF@22..25 |
31 | IDENT@[22; 25) "cfg" | 31 | IDENT@22..25 "cfg" |
32 | TOKEN_TREE@[25; 31) | 32 | TOKEN_TREE@25..31 |
33 | L_PAREN@[25; 26) "(" | 33 | L_PAREN@25..26 "(" |
34 | IDENT@[26; 30) "test" | 34 | IDENT@26..30 "test" |
35 | R_PAREN@[30; 31) ")" | 35 | R_PAREN@30..31 ")" |
36 | R_BRACK@[31; 32) "]" | 36 | R_BRACK@31..32 "]" |
37 | WHITESPACE@[32; 33) " " | 37 | WHITESPACE@32..33 " " |
38 | NAME_REF@[33; 38) | 38 | NAME_REF@33..38 |
39 | IDENT@[33; 38) "field" | 39 | IDENT@33..38 "field" |
40 | COLON@[38; 39) ":" | 40 | COLON@38..39 ":" |
41 | WHITESPACE@[39; 40) " " | 41 | WHITESPACE@39..40 " " |
42 | LITERAL@[40; 41) | 42 | LITERAL@40..41 |
43 | INT_NUMBER@[40; 41) "1" | 43 | INT_NUMBER@40..41 "1" |
44 | WHITESPACE@[41; 42) " " | 44 | WHITESPACE@41..42 " " |
45 | R_CURLY@[42; 43) "}" | 45 | R_CURLY@42..43 "}" |
46 | WHITESPACE@[43; 44) "\n" | 46 | WHITESPACE@43..44 "\n" |
47 | R_CURLY@[44; 45) "}" | 47 | R_CURLY@44..45 "}" |
48 | WHITESPACE@[45; 46) "\n" | 48 | WHITESPACE@45..46 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast index 3b462871a..8307d4c15 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast | |||
@@ -1,99 +1,99 @@ | |||
1 | SOURCE_FILE@[0; 82) | 1 | SOURCE_FILE@0..82 |
2 | FN_DEF@[0; 81) | 2 | FN_DEF@0..81 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 81) | 11 | BLOCK_EXPR@9..81 |
12 | BLOCK@[9; 81) | 12 | BLOCK@9..81 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 26) | 15 | EXPR_STMT@15..26 |
16 | ATTR@[15; 19) | 16 | ATTR@15..19 |
17 | POUND@[15; 16) "#" | 17 | POUND@15..16 "#" |
18 | L_BRACK@[16; 17) "[" | 18 | L_BRACK@16..17 "[" |
19 | PATH@[17; 18) | 19 | PATH@17..18 |
20 | PATH_SEGMENT@[17; 18) | 20 | PATH_SEGMENT@17..18 |
21 | NAME_REF@[17; 18) | 21 | NAME_REF@17..18 |
22 | IDENT@[17; 18) "A" | 22 | IDENT@17..18 "A" |
23 | R_BRACK@[18; 19) "]" | 23 | R_BRACK@18..19 "]" |
24 | WHITESPACE@[19; 20) " " | 24 | WHITESPACE@19..20 " " |
25 | CALL_EXPR@[20; 25) | 25 | CALL_EXPR@20..25 |
26 | PATH_EXPR@[20; 23) | 26 | PATH_EXPR@20..23 |
27 | PATH@[20; 23) | 27 | PATH@20..23 |
28 | PATH_SEGMENT@[20; 23) | 28 | PATH_SEGMENT@20..23 |
29 | NAME_REF@[20; 23) | 29 | NAME_REF@20..23 |
30 | IDENT@[20; 23) "foo" | 30 | IDENT@20..23 "foo" |
31 | ARG_LIST@[23; 25) | 31 | ARG_LIST@23..25 |
32 | L_PAREN@[23; 24) "(" | 32 | L_PAREN@23..24 "(" |
33 | R_PAREN@[24; 25) ")" | 33 | R_PAREN@24..25 ")" |
34 | SEMICOLON@[25; 26) ";" | 34 | SEMICOLON@25..26 ";" |
35 | WHITESPACE@[26; 31) "\n " | 35 | WHITESPACE@26..31 "\n " |
36 | EXPR_STMT@[31; 42) | 36 | EXPR_STMT@31..42 |
37 | ATTR@[31; 35) | 37 | ATTR@31..35 |
38 | POUND@[31; 32) "#" | 38 | POUND@31..32 "#" |
39 | L_BRACK@[32; 33) "[" | 39 | L_BRACK@32..33 "[" |
40 | PATH@[33; 34) | 40 | PATH@33..34 |
41 | PATH_SEGMENT@[33; 34) | 41 | PATH_SEGMENT@33..34 |
42 | NAME_REF@[33; 34) | 42 | NAME_REF@33..34 |
43 | IDENT@[33; 34) "B" | 43 | IDENT@33..34 "B" |
44 | R_BRACK@[34; 35) "]" | 44 | R_BRACK@34..35 "]" |
45 | WHITESPACE@[35; 36) " " | 45 | WHITESPACE@35..36 " " |
46 | MACRO_CALL@[36; 42) | 46 | MACRO_CALL@36..42 |
47 | PATH@[36; 39) | 47 | PATH@36..39 |
48 | PATH_SEGMENT@[36; 39) | 48 | PATH_SEGMENT@36..39 |
49 | NAME_REF@[36; 39) | 49 | NAME_REF@36..39 |
50 | IDENT@[36; 39) "bar" | 50 | IDENT@36..39 "bar" |
51 | BANG@[39; 40) "!" | 51 | BANG@39..40 "!" |
52 | TOKEN_TREE@[40; 42) | 52 | TOKEN_TREE@40..42 |
53 | L_CURLY@[40; 41) "{" | 53 | L_CURLY@40..41 "{" |
54 | R_CURLY@[41; 42) "}" | 54 | R_CURLY@41..42 "}" |
55 | WHITESPACE@[42; 47) "\n " | 55 | WHITESPACE@42..47 "\n " |
56 | EXPR_STMT@[47; 59) | 56 | EXPR_STMT@47..59 |
57 | ATTR@[47; 51) | 57 | ATTR@47..51 |
58 | POUND@[47; 48) "#" | 58 | POUND@47..48 "#" |
59 | L_BRACK@[48; 49) "[" | 59 | L_BRACK@48..49 "[" |
60 | PATH@[49; 50) | 60 | PATH@49..50 |
61 | PATH_SEGMENT@[49; 50) | 61 | PATH_SEGMENT@49..50 |
62 | NAME_REF@[49; 50) | 62 | NAME_REF@49..50 |
63 | IDENT@[49; 50) "C" | 63 | IDENT@49..50 "C" |
64 | R_BRACK@[50; 51) "]" | 64 | R_BRACK@50..51 "]" |
65 | WHITESPACE@[51; 52) " " | 65 | WHITESPACE@51..52 " " |
66 | ATTR@[52; 56) | 66 | ATTR@52..56 |
67 | POUND@[52; 53) "#" | 67 | POUND@52..53 "#" |
68 | L_BRACK@[53; 54) "[" | 68 | L_BRACK@53..54 "[" |
69 | PATH@[54; 55) | 69 | PATH@54..55 |
70 | PATH_SEGMENT@[54; 55) | 70 | PATH_SEGMENT@54..55 |
71 | NAME_REF@[54; 55) | 71 | NAME_REF@54..55 |
72 | IDENT@[54; 55) "D" | 72 | IDENT@54..55 "D" |
73 | R_BRACK@[55; 56) "]" | 73 | R_BRACK@55..56 "]" |
74 | WHITESPACE@[56; 57) " " | 74 | WHITESPACE@56..57 " " |
75 | BLOCK_EXPR@[57; 59) | 75 | BLOCK_EXPR@57..59 |
76 | BLOCK@[57; 59) | 76 | BLOCK@57..59 |
77 | L_CURLY@[57; 58) "{" | 77 | L_CURLY@57..58 "{" |
78 | R_CURLY@[58; 59) "}" | 78 | R_CURLY@58..59 "}" |
79 | WHITESPACE@[59; 64) "\n " | 79 | WHITESPACE@59..64 "\n " |
80 | EXPR_STMT@[64; 79) | 80 | EXPR_STMT@64..79 |
81 | ATTR@[64; 68) | 81 | ATTR@64..68 |
82 | POUND@[64; 65) "#" | 82 | POUND@64..65 "#" |
83 | L_BRACK@[65; 66) "[" | 83 | L_BRACK@65..66 "[" |
84 | PATH@[66; 67) | 84 | PATH@66..67 |
85 | PATH_SEGMENT@[66; 67) | 85 | PATH_SEGMENT@66..67 |
86 | NAME_REF@[66; 67) | 86 | NAME_REF@66..67 |
87 | IDENT@[66; 67) "D" | 87 | IDENT@66..67 "D" |
88 | R_BRACK@[67; 68) "]" | 88 | R_BRACK@67..68 "]" |
89 | WHITESPACE@[68; 69) " " | 89 | WHITESPACE@68..69 " " |
90 | RETURN_EXPR@[69; 78) | 90 | RETURN_EXPR@69..78 |
91 | RETURN_KW@[69; 75) "return" | 91 | RETURN_KW@69..75 "return" |
92 | WHITESPACE@[75; 76) " " | 92 | WHITESPACE@75..76 " " |
93 | TUPLE_EXPR@[76; 78) | 93 | TUPLE_EXPR@76..78 |
94 | L_PAREN@[76; 77) "(" | 94 | L_PAREN@76..77 "(" |
95 | R_PAREN@[77; 78) ")" | 95 | R_PAREN@77..78 ")" |
96 | SEMICOLON@[78; 79) ";" | 96 | SEMICOLON@78..79 ";" |
97 | WHITESPACE@[79; 80) "\n" | 97 | WHITESPACE@79..80 "\n" |
98 | R_CURLY@[80; 81) "}" | 98 | R_CURLY@80..81 "}" |
99 | WHITESPACE@[81; 82) "\n" | 99 | WHITESPACE@81..82 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast index 9bc6be62d..19c47ea25 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 47) | 1 | SOURCE_FILE@0..47 |
2 | FN_DEF@[0; 46) | 2 | FN_DEF@0..46 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 46) | 11 | BLOCK_EXPR@9..46 |
12 | BLOCK@[9; 46) | 12 | BLOCK@9..46 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 31) | 15 | EXPR_STMT@15..31 |
16 | BLOCK_EXPR@[15; 31) | 16 | BLOCK_EXPR@15..31 |
17 | BLOCK@[15; 31) | 17 | BLOCK@15..31 |
18 | L_CURLY@[15; 16) "{" | 18 | L_CURLY@15..16 "{" |
19 | WHITESPACE@[16; 17) " " | 19 | WHITESPACE@16..17 " " |
20 | TRY_EXPR@[17; 29) | 20 | TRY_EXPR@17..29 |
21 | ATTR@[17; 21) | 21 | ATTR@17..21 |
22 | POUND@[17; 18) "#" | 22 | POUND@17..18 "#" |
23 | L_BRACK@[18; 19) "[" | 23 | L_BRACK@18..19 "[" |
24 | PATH@[19; 20) | 24 | PATH@19..20 |
25 | PATH_SEGMENT@[19; 20) | 25 | PATH_SEGMENT@19..20 |
26 | NAME_REF@[19; 20) | 26 | NAME_REF@19..20 |
27 | IDENT@[19; 20) "A" | 27 | IDENT@19..20 "A" |
28 | R_BRACK@[20; 21) "]" | 28 | R_BRACK@20..21 "]" |
29 | WHITESPACE@[21; 22) " " | 29 | WHITESPACE@21..22 " " |
30 | MACRO_CALL@[22; 28) | 30 | MACRO_CALL@22..28 |
31 | PATH@[22; 25) | 31 | PATH@22..25 |
32 | PATH_SEGMENT@[22; 25) | 32 | PATH_SEGMENT@22..25 |
33 | NAME_REF@[22; 25) | 33 | NAME_REF@22..25 |
34 | IDENT@[22; 25) "bar" | 34 | IDENT@22..25 "bar" |
35 | BANG@[25; 26) "!" | 35 | BANG@25..26 "!" |
36 | TOKEN_TREE@[26; 28) | 36 | TOKEN_TREE@26..28 |
37 | L_PAREN@[26; 27) "(" | 37 | L_PAREN@26..27 "(" |
38 | R_PAREN@[27; 28) ")" | 38 | R_PAREN@27..28 ")" |
39 | QUESTION@[28; 29) "?" | 39 | QUESTION@28..29 "?" |
40 | WHITESPACE@[29; 30) " " | 40 | WHITESPACE@29..30 " " |
41 | R_CURLY@[30; 31) "}" | 41 | R_CURLY@30..31 "}" |
42 | WHITESPACE@[31; 36) "\n " | 42 | WHITESPACE@31..36 "\n " |
43 | REF_EXPR@[36; 44) | 43 | REF_EXPR@36..44 |
44 | ATTR@[36; 40) | 44 | ATTR@36..40 |
45 | POUND@[36; 37) "#" | 45 | POUND@36..37 "#" |
46 | L_BRACK@[37; 38) "[" | 46 | L_BRACK@37..38 "[" |
47 | PATH@[38; 39) | 47 | PATH@38..39 |
48 | PATH_SEGMENT@[38; 39) | 48 | PATH_SEGMENT@38..39 |
49 | NAME_REF@[38; 39) | 49 | NAME_REF@38..39 |
50 | IDENT@[38; 39) "B" | 50 | IDENT@38..39 "B" |
51 | R_BRACK@[39; 40) "]" | 51 | R_BRACK@39..40 "]" |
52 | WHITESPACE@[40; 41) " " | 52 | WHITESPACE@40..41 " " |
53 | AMP@[41; 42) "&" | 53 | AMP@41..42 "&" |
54 | TUPLE_EXPR@[42; 44) | 54 | TUPLE_EXPR@42..44 |
55 | L_PAREN@[42; 43) "(" | 55 | L_PAREN@42..43 "(" |
56 | R_PAREN@[43; 44) ")" | 56 | R_PAREN@43..44 ")" |
57 | WHITESPACE@[44; 45) "\n" | 57 | WHITESPACE@44..45 "\n" |
58 | R_CURLY@[45; 46) "}" | 58 | R_CURLY@45..46 "}" |
59 | WHITESPACE@[46; 47) "\n" | 59 | WHITESPACE@46..47 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast index 8a972cdb2..5630b20af 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 50) | 1 | SOURCE_FILE@0..50 |
2 | FN_DEF@[0; 24) | 2 | FN_DEF@0..24 |
3 | ASYNC_KW@[0; 5) "async" | 3 | ASYNC_KW@0..5 "async" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | UNSAFE_KW@[6; 12) "unsafe" | 5 | UNSAFE_KW@6..12 "unsafe" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | FN_KW@[13; 15) "fn" | 7 | FN_KW@13..15 "fn" |
8 | WHITESPACE@[15; 16) " " | 8 | WHITESPACE@15..16 " " |
9 | NAME@[16; 19) | 9 | NAME@16..19 |
10 | IDENT@[16; 19) "foo" | 10 | IDENT@16..19 "foo" |
11 | PARAM_LIST@[19; 21) | 11 | PARAM_LIST@19..21 |
12 | L_PAREN@[19; 20) "(" | 12 | L_PAREN@19..20 "(" |
13 | R_PAREN@[20; 21) ")" | 13 | R_PAREN@20..21 ")" |
14 | WHITESPACE@[21; 22) " " | 14 | WHITESPACE@21..22 " " |
15 | BLOCK_EXPR@[22; 24) | 15 | BLOCK_EXPR@22..24 |
16 | BLOCK@[22; 24) | 16 | BLOCK@22..24 |
17 | L_CURLY@[22; 23) "{" | 17 | L_CURLY@22..23 "{" |
18 | R_CURLY@[23; 24) "}" | 18 | R_CURLY@23..24 "}" |
19 | WHITESPACE@[24; 25) "\n" | 19 | WHITESPACE@24..25 "\n" |
20 | FN_DEF@[25; 49) | 20 | FN_DEF@25..49 |
21 | CONST_KW@[25; 30) "const" | 21 | CONST_KW@25..30 "const" |
22 | WHITESPACE@[30; 31) " " | 22 | WHITESPACE@30..31 " " |
23 | UNSAFE_KW@[31; 37) "unsafe" | 23 | UNSAFE_KW@31..37 "unsafe" |
24 | WHITESPACE@[37; 38) " " | 24 | WHITESPACE@37..38 " " |
25 | FN_KW@[38; 40) "fn" | 25 | FN_KW@38..40 "fn" |
26 | WHITESPACE@[40; 41) " " | 26 | WHITESPACE@40..41 " " |
27 | NAME@[41; 44) | 27 | NAME@41..44 |
28 | IDENT@[41; 44) "bar" | 28 | IDENT@41..44 "bar" |
29 | PARAM_LIST@[44; 46) | 29 | PARAM_LIST@44..46 |
30 | L_PAREN@[44; 45) "(" | 30 | L_PAREN@44..45 "(" |
31 | R_PAREN@[45; 46) ")" | 31 | R_PAREN@45..46 ")" |
32 | WHITESPACE@[46; 47) " " | 32 | WHITESPACE@46..47 " " |
33 | BLOCK_EXPR@[47; 49) | 33 | BLOCK_EXPR@47..49 |
34 | BLOCK@[47; 49) | 34 | BLOCK@47..49 |
35 | L_CURLY@[47; 48) "{" | 35 | L_CURLY@47..48 "{" |
36 | R_CURLY@[48; 49) "}" | 36 | R_CURLY@48..49 "}" |
37 | WHITESPACE@[49; 50) "\n" | 37 | WHITESPACE@49..50 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast index 31481d2f9..4946ee050 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 33) | 1 | SOURCE_FILE@0..33 |
2 | FN_DEF@[0; 32) | 2 | FN_DEF@0..32 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 32) | 11 | BLOCK_EXPR@10..32 |
12 | BLOCK@[10; 32) | 12 | BLOCK@10..32 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 30) | 15 | LET_STMT@16..30 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | MACRO_PAT@[20; 25) | 18 | MACRO_PAT@20..25 |
19 | MACRO_CALL@[20; 25) | 19 | MACRO_CALL@20..25 |
20 | PATH@[20; 21) | 20 | PATH@20..21 |
21 | PATH_SEGMENT@[20; 21) | 21 | PATH_SEGMENT@20..21 |
22 | NAME_REF@[20; 21) | 22 | NAME_REF@20..21 |
23 | IDENT@[20; 21) "m" | 23 | IDENT@20..21 "m" |
24 | BANG@[21; 22) "!" | 24 | BANG@21..22 "!" |
25 | TOKEN_TREE@[22; 25) | 25 | TOKEN_TREE@22..25 |
26 | L_PAREN@[22; 23) "(" | 26 | L_PAREN@22..23 "(" |
27 | IDENT@[23; 24) "x" | 27 | IDENT@23..24 "x" |
28 | R_PAREN@[24; 25) ")" | 28 | R_PAREN@24..25 ")" |
29 | WHITESPACE@[25; 26) " " | 29 | WHITESPACE@25..26 " " |
30 | EQ@[26; 27) "=" | 30 | EQ@26..27 "=" |
31 | WHITESPACE@[27; 28) " " | 31 | WHITESPACE@27..28 " " |
32 | LITERAL@[28; 29) | 32 | LITERAL@28..29 |
33 | INT_NUMBER@[28; 29) "0" | 33 | INT_NUMBER@28..29 "0" |
34 | SEMICOLON@[29; 30) ";" | 34 | SEMICOLON@29..30 ";" |
35 | WHITESPACE@[30; 31) "\n" | 35 | WHITESPACE@30..31 "\n" |
36 | R_CURLY@[31; 32) "}" | 36 | R_CURLY@31..32 "}" |
37 | WHITESPACE@[32; 33) "\n" | 37 | WHITESPACE@32..33 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast index 1f2690c00..18fdd9dc9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast | |||
@@ -1,129 +1,129 @@ | |||
1 | SOURCE_FILE@[0; 135) | 1 | SOURCE_FILE@0..135 |
2 | FN_DEF@[0; 134) | 2 | FN_DEF@0..134 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 134) | 11 | BLOCK_EXPR@9..134 |
12 | BLOCK@[9; 134) | 12 | BLOCK@9..134 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 21) | 15 | LET_STMT@15..21 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | BIND_PAT@[19; 20) | 18 | BIND_PAT@19..20 |
19 | NAME@[19; 20) | 19 | NAME@19..20 |
20 | IDENT@[19; 20) "a" | 20 | IDENT@19..20 "a" |
21 | SEMICOLON@[20; 21) ";" | 21 | SEMICOLON@20..21 ";" |
22 | WHITESPACE@[21; 26) "\n " | 22 | WHITESPACE@21..26 "\n " |
23 | LET_STMT@[26; 37) | 23 | LET_STMT@26..37 |
24 | LET_KW@[26; 29) "let" | 24 | LET_KW@26..29 "let" |
25 | WHITESPACE@[29; 30) " " | 25 | WHITESPACE@29..30 " " |
26 | BIND_PAT@[30; 31) | 26 | BIND_PAT@30..31 |
27 | NAME@[30; 31) | 27 | NAME@30..31 |
28 | IDENT@[30; 31) "b" | 28 | IDENT@30..31 "b" |
29 | COLON@[31; 32) ":" | 29 | COLON@31..32 ":" |
30 | WHITESPACE@[32; 33) " " | 30 | WHITESPACE@32..33 " " |
31 | PATH_TYPE@[33; 36) | 31 | PATH_TYPE@33..36 |
32 | PATH@[33; 36) | 32 | PATH@33..36 |
33 | PATH_SEGMENT@[33; 36) | 33 | PATH_SEGMENT@33..36 |
34 | NAME_REF@[33; 36) | 34 | NAME_REF@33..36 |
35 | IDENT@[33; 36) "i32" | 35 | IDENT@33..36 "i32" |
36 | SEMICOLON@[36; 37) ";" | 36 | SEMICOLON@36..37 ";" |
37 | WHITESPACE@[37; 42) "\n " | 37 | WHITESPACE@37..42 "\n " |
38 | LET_STMT@[42; 53) | 38 | LET_STMT@42..53 |
39 | LET_KW@[42; 45) "let" | 39 | LET_KW@42..45 "let" |
40 | WHITESPACE@[45; 46) " " | 40 | WHITESPACE@45..46 " " |
41 | BIND_PAT@[46; 47) | 41 | BIND_PAT@46..47 |
42 | NAME@[46; 47) | 42 | NAME@46..47 |
43 | IDENT@[46; 47) "c" | 43 | IDENT@46..47 "c" |
44 | WHITESPACE@[47; 48) " " | 44 | WHITESPACE@47..48 " " |
45 | EQ@[48; 49) "=" | 45 | EQ@48..49 "=" |
46 | WHITESPACE@[49; 50) " " | 46 | WHITESPACE@49..50 " " |
47 | LITERAL@[50; 52) | 47 | LITERAL@50..52 |
48 | INT_NUMBER@[50; 52) "92" | 48 | INT_NUMBER@50..52 "92" |
49 | SEMICOLON@[52; 53) ";" | 49 | SEMICOLON@52..53 ";" |
50 | WHITESPACE@[53; 58) "\n " | 50 | WHITESPACE@53..58 "\n " |
51 | LET_STMT@[58; 74) | 51 | LET_STMT@58..74 |
52 | LET_KW@[58; 61) "let" | 52 | LET_KW@58..61 "let" |
53 | WHITESPACE@[61; 62) " " | 53 | WHITESPACE@61..62 " " |
54 | BIND_PAT@[62; 63) | 54 | BIND_PAT@62..63 |
55 | NAME@[62; 63) | 55 | NAME@62..63 |
56 | IDENT@[62; 63) "d" | 56 | IDENT@62..63 "d" |
57 | COLON@[63; 64) ":" | 57 | COLON@63..64 ":" |
58 | WHITESPACE@[64; 65) " " | 58 | WHITESPACE@64..65 " " |
59 | PATH_TYPE@[65; 68) | 59 | PATH_TYPE@65..68 |
60 | PATH@[65; 68) | 60 | PATH@65..68 |
61 | PATH_SEGMENT@[65; 68) | 61 | PATH_SEGMENT@65..68 |
62 | NAME_REF@[65; 68) | 62 | NAME_REF@65..68 |
63 | IDENT@[65; 68) "i32" | 63 | IDENT@65..68 "i32" |
64 | WHITESPACE@[68; 69) " " | 64 | WHITESPACE@68..69 " " |
65 | EQ@[69; 70) "=" | 65 | EQ@69..70 "=" |
66 | WHITESPACE@[70; 71) " " | 66 | WHITESPACE@70..71 " " |
67 | LITERAL@[71; 73) | 67 | LITERAL@71..73 |
68 | INT_NUMBER@[71; 73) "92" | 68 | INT_NUMBER@71..73 "92" |
69 | SEMICOLON@[73; 74) ";" | 69 | SEMICOLON@73..74 ";" |
70 | WHITESPACE@[74; 79) "\n " | 70 | WHITESPACE@74..79 "\n " |
71 | LET_STMT@[79; 88) | 71 | LET_STMT@79..88 |
72 | LET_KW@[79; 82) "let" | 72 | LET_KW@79..82 "let" |
73 | WHITESPACE@[82; 83) " " | 73 | WHITESPACE@82..83 " " |
74 | BIND_PAT@[83; 84) | 74 | BIND_PAT@83..84 |
75 | NAME@[83; 84) | 75 | NAME@83..84 |
76 | IDENT@[83; 84) "e" | 76 | IDENT@83..84 "e" |
77 | COLON@[84; 85) ":" | 77 | COLON@84..85 ":" |
78 | WHITESPACE@[85; 86) " " | 78 | WHITESPACE@85..86 " " |
79 | NEVER_TYPE@[86; 87) | 79 | NEVER_TYPE@86..87 |
80 | BANG@[86; 87) "!" | 80 | BANG@86..87 "!" |
81 | SEMICOLON@[87; 88) ";" | 81 | SEMICOLON@87..88 ";" |
82 | WHITESPACE@[88; 93) "\n " | 82 | WHITESPACE@88..93 "\n " |
83 | LET_STMT@[93; 107) | 83 | LET_STMT@93..107 |
84 | LET_KW@[93; 96) "let" | 84 | LET_KW@93..96 "let" |
85 | WHITESPACE@[96; 97) " " | 85 | WHITESPACE@96..97 " " |
86 | PLACEHOLDER_PAT@[97; 98) | 86 | PLACEHOLDER_PAT@97..98 |
87 | UNDERSCORE@[97; 98) "_" | 87 | UNDERSCORE@97..98 "_" |
88 | COLON@[98; 99) ":" | 88 | COLON@98..99 ":" |
89 | WHITESPACE@[99; 100) " " | 89 | WHITESPACE@99..100 " " |
90 | NEVER_TYPE@[100; 101) | 90 | NEVER_TYPE@100..101 |
91 | BANG@[100; 101) "!" | 91 | BANG@100..101 "!" |
92 | WHITESPACE@[101; 102) " " | 92 | WHITESPACE@101..102 " " |
93 | EQ@[102; 103) "=" | 93 | EQ@102..103 "=" |
94 | WHITESPACE@[103; 104) " " | 94 | WHITESPACE@103..104 " " |
95 | BLOCK_EXPR@[104; 106) | 95 | BLOCK_EXPR@104..106 |
96 | BLOCK@[104; 106) | 96 | BLOCK@104..106 |
97 | L_CURLY@[104; 105) "{" | 97 | L_CURLY@104..105 "{" |
98 | R_CURLY@[105; 106) "}" | 98 | R_CURLY@105..106 "}" |
99 | SEMICOLON@[106; 107) ";" | 99 | SEMICOLON@106..107 ";" |
100 | WHITESPACE@[107; 112) "\n " | 100 | WHITESPACE@107..112 "\n " |
101 | LET_STMT@[112; 132) | 101 | LET_STMT@112..132 |
102 | LET_KW@[112; 115) "let" | 102 | LET_KW@112..115 "let" |
103 | WHITESPACE@[115; 116) " " | 103 | WHITESPACE@115..116 " " |
104 | BIND_PAT@[116; 117) | 104 | BIND_PAT@116..117 |
105 | NAME@[116; 117) | 105 | NAME@116..117 |
106 | IDENT@[116; 117) "f" | 106 | IDENT@116..117 "f" |
107 | WHITESPACE@[117; 118) " " | 107 | WHITESPACE@117..118 " " |
108 | EQ@[118; 119) "=" | 108 | EQ@118..119 "=" |
109 | WHITESPACE@[119; 120) " " | 109 | WHITESPACE@119..120 " " |
110 | LAMBDA_EXPR@[120; 131) | 110 | LAMBDA_EXPR@120..131 |
111 | ATTR@[120; 127) | 111 | ATTR@120..127 |
112 | POUND@[120; 121) "#" | 112 | POUND@120..121 "#" |
113 | L_BRACK@[121; 122) "[" | 113 | L_BRACK@121..122 "[" |
114 | PATH@[122; 126) | 114 | PATH@122..126 |
115 | PATH_SEGMENT@[122; 126) | 115 | PATH_SEGMENT@122..126 |
116 | NAME_REF@[122; 126) | 116 | NAME_REF@122..126 |
117 | IDENT@[122; 126) "attr" | 117 | IDENT@122..126 "attr" |
118 | R_BRACK@[126; 127) "]" | 118 | R_BRACK@126..127 "]" |
119 | PARAM_LIST@[127; 129) | 119 | PARAM_LIST@127..129 |
120 | PIPE@[127; 128) "|" | 120 | PIPE@127..128 "|" |
121 | PIPE@[128; 129) "|" | 121 | PIPE@128..129 "|" |
122 | BLOCK_EXPR@[129; 131) | 122 | BLOCK_EXPR@129..131 |
123 | BLOCK@[129; 131) | 123 | BLOCK@129..131 |
124 | L_CURLY@[129; 130) "{" | 124 | L_CURLY@129..130 "{" |
125 | R_CURLY@[130; 131) "}" | 125 | R_CURLY@130..131 "}" |
126 | SEMICOLON@[131; 132) ";" | 126 | SEMICOLON@131..132 ";" |
127 | WHITESPACE@[132; 133) "\n" | 127 | WHITESPACE@132..133 "\n" |
128 | R_CURLY@[133; 134) "}" | 128 | R_CURLY@133..134 "}" |
129 | WHITESPACE@[134; 135) "\n" | 129 | WHITESPACE@134..135 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast index b96991035..01fffd7b0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast | |||
@@ -1,33 +1,33 @@ | |||
1 | SOURCE_FILE@[0; 33) | 1 | SOURCE_FILE@0..33 |
2 | FN_DEF@[0; 32) | 2 | FN_DEF@0..32 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 32) | 11 | BLOCK_EXPR@9..32 |
12 | BLOCK@[9; 32) | 12 | BLOCK@9..32 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 30) | 15 | LET_STMT@15..30 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | TRY_EXPR@[23; 29) | 23 | TRY_EXPR@23..29 |
24 | TRY_KW@[23; 26) "try" | 24 | TRY_KW@23..26 "try" |
25 | WHITESPACE@[26; 27) " " | 25 | WHITESPACE@26..27 " " |
26 | BLOCK_EXPR@[27; 29) | 26 | BLOCK_EXPR@27..29 |
27 | BLOCK@[27; 29) | 27 | BLOCK@27..29 |
28 | L_CURLY@[27; 28) "{" | 28 | L_CURLY@27..28 "{" |
29 | R_CURLY@[28; 29) "}" | 29 | R_CURLY@28..29 "}" |
30 | SEMICOLON@[29; 30) ";" | 30 | SEMICOLON@29..30 ";" |
31 | WHITESPACE@[30; 31) "\n" | 31 | WHITESPACE@30..31 "\n" |
32 | R_CURLY@[31; 32) "}" | 32 | R_CURLY@31..32 "}" |
33 | WHITESPACE@[32; 33) "\n" | 33 | WHITESPACE@32..33 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast index ed3d8fb0b..4a1c2b3a4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast | |||
@@ -1,31 +1,31 @@ | |||
1 | SOURCE_FILE@[0; 37) | 1 | SOURCE_FILE@0..37 |
2 | TYPE_ALIAS_DEF@[0; 36) | 2 | TYPE_ALIAS_DEF@0..36 |
3 | EXISTENTIAL_KW@[0; 11) "existential" | 3 | EXISTENTIAL_KW@0..11 "existential" |
4 | WHITESPACE@[11; 12) " " | 4 | WHITESPACE@11..12 " " |
5 | TYPE_KW@[12; 16) "type" | 5 | TYPE_KW@12..16 "type" |
6 | WHITESPACE@[16; 17) " " | 6 | WHITESPACE@16..17 " " |
7 | NAME@[17; 20) | 7 | NAME@17..20 |
8 | IDENT@[17; 20) "Foo" | 8 | IDENT@17..20 "Foo" |
9 | COLON@[20; 21) ":" | 9 | COLON@20..21 ":" |
10 | WHITESPACE@[21; 22) " " | 10 | WHITESPACE@21..22 " " |
11 | TYPE_BOUND_LIST@[22; 35) | 11 | TYPE_BOUND_LIST@22..35 |
12 | TYPE_BOUND@[22; 35) | 12 | TYPE_BOUND@22..35 |
13 | PATH_TYPE@[22; 35) | 13 | PATH_TYPE@22..35 |
14 | PATH@[22; 35) | 14 | PATH@22..35 |
15 | PATH_SEGMENT@[22; 35) | 15 | PATH_SEGMENT@22..35 |
16 | NAME_REF@[22; 24) | 16 | NAME_REF@22..24 |
17 | IDENT@[22; 24) "Fn" | 17 | IDENT@22..24 "Fn" |
18 | PARAM_LIST@[24; 26) | 18 | PARAM_LIST@24..26 |
19 | L_PAREN@[24; 25) "(" | 19 | L_PAREN@24..25 "(" |
20 | R_PAREN@[25; 26) ")" | 20 | R_PAREN@25..26 ")" |
21 | WHITESPACE@[26; 27) " " | 21 | WHITESPACE@26..27 " " |
22 | RET_TYPE@[27; 35) | 22 | RET_TYPE@27..35 |
23 | THIN_ARROW@[27; 29) "->" | 23 | THIN_ARROW@27..29 "->" |
24 | WHITESPACE@[29; 30) " " | 24 | WHITESPACE@29..30 " " |
25 | PATH_TYPE@[30; 35) | 25 | PATH_TYPE@30..35 |
26 | PATH@[30; 35) | 26 | PATH@30..35 |
27 | PATH_SEGMENT@[30; 35) | 27 | PATH_SEGMENT@30..35 |
28 | NAME_REF@[30; 35) | 28 | NAME_REF@30..35 |
29 | IDENT@[30; 35) "usize" | 29 | IDENT@30..35 "usize" |
30 | SEMICOLON@[35; 36) ";" | 30 | SEMICOLON@35..36 ";" |
31 | WHITESPACE@[36; 37) "\n" | 31 | WHITESPACE@36..37 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast index c392a7d84..498b3121e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast | |||
@@ -1,90 +1,90 @@ | |||
1 | SOURCE_FILE@[0; 106) | 1 | SOURCE_FILE@0..106 |
2 | FN_DEF@[0; 105) | 2 | FN_DEF@0..105 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 105) | 11 | BLOCK_EXPR@9..105 |
12 | BLOCK@[9; 105) | 12 | BLOCK@9..105 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 32) | 15 | LET_STMT@15..32 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | BIND_PAT@[19; 20) | 18 | BIND_PAT@19..20 |
19 | NAME@[19; 20) | 19 | NAME@19..20 |
20 | IDENT@[19; 20) "x" | 20 | IDENT@19..20 "x" |
21 | WHITESPACE@[20; 21) " " | 21 | WHITESPACE@20..21 " " |
22 | EQ@[21; 22) "=" | 22 | EQ@21..22 "=" |
23 | WHITESPACE@[22; 23) " " | 23 | WHITESPACE@22..23 " " |
24 | BOX_EXPR@[23; 31) | 24 | BOX_EXPR@23..31 |
25 | BOX_KW@[23; 26) "box" | 25 | BOX_KW@23..26 "box" |
26 | WHITESPACE@[26; 27) " " | 26 | WHITESPACE@26..27 " " |
27 | LITERAL@[27; 31) | 27 | LITERAL@27..31 |
28 | INT_NUMBER@[27; 31) "1i32" | 28 | INT_NUMBER@27..31 "1i32" |
29 | SEMICOLON@[31; 32) ";" | 29 | SEMICOLON@31..32 ";" |
30 | WHITESPACE@[32; 37) "\n " | 30 | WHITESPACE@32..37 "\n " |
31 | LET_STMT@[37; 66) | 31 | LET_STMT@37..66 |
32 | LET_KW@[37; 40) "let" | 32 | LET_KW@37..40 "let" |
33 | WHITESPACE@[40; 41) " " | 33 | WHITESPACE@40..41 " " |
34 | BIND_PAT@[41; 42) | 34 | BIND_PAT@41..42 |
35 | NAME@[41; 42) | 35 | NAME@41..42 |
36 | IDENT@[41; 42) "y" | 36 | IDENT@41..42 "y" |
37 | WHITESPACE@[42; 43) " " | 37 | WHITESPACE@42..43 " " |
38 | EQ@[43; 44) "=" | 38 | EQ@43..44 "=" |
39 | WHITESPACE@[44; 45) " " | 39 | WHITESPACE@44..45 " " |
40 | TUPLE_EXPR@[45; 65) | 40 | TUPLE_EXPR@45..65 |
41 | L_PAREN@[45; 46) "(" | 41 | L_PAREN@45..46 "(" |
42 | BOX_EXPR@[46; 54) | 42 | BOX_EXPR@46..54 |
43 | BOX_KW@[46; 49) "box" | 43 | BOX_KW@46..49 "box" |
44 | WHITESPACE@[49; 50) " " | 44 | WHITESPACE@49..50 " " |
45 | LITERAL@[50; 54) | 45 | LITERAL@50..54 |
46 | INT_NUMBER@[50; 54) "1i32" | 46 | INT_NUMBER@50..54 "1i32" |
47 | COMMA@[54; 55) "," | 47 | COMMA@54..55 "," |
48 | WHITESPACE@[55; 56) " " | 48 | WHITESPACE@55..56 " " |
49 | BOX_EXPR@[56; 64) | 49 | BOX_EXPR@56..64 |
50 | BOX_KW@[56; 59) "box" | 50 | BOX_KW@56..59 "box" |
51 | WHITESPACE@[59; 60) " " | 51 | WHITESPACE@59..60 " " |
52 | LITERAL@[60; 64) | 52 | LITERAL@60..64 |
53 | INT_NUMBER@[60; 64) "2i32" | 53 | INT_NUMBER@60..64 "2i32" |
54 | R_PAREN@[64; 65) ")" | 54 | R_PAREN@64..65 ")" |
55 | SEMICOLON@[65; 66) ";" | 55 | SEMICOLON@65..66 ";" |
56 | WHITESPACE@[66; 71) "\n " | 56 | WHITESPACE@66..71 "\n " |
57 | LET_STMT@[71; 103) | 57 | LET_STMT@71..103 |
58 | LET_KW@[71; 74) "let" | 58 | LET_KW@71..74 "let" |
59 | WHITESPACE@[74; 75) " " | 59 | WHITESPACE@74..75 " " |
60 | BIND_PAT@[75; 76) | 60 | BIND_PAT@75..76 |
61 | NAME@[75; 76) | 61 | NAME@75..76 |
62 | IDENT@[75; 76) "z" | 62 | IDENT@75..76 "z" |
63 | WHITESPACE@[76; 77) " " | 63 | WHITESPACE@76..77 " " |
64 | EQ@[77; 78) "=" | 64 | EQ@77..78 "=" |
65 | WHITESPACE@[78; 79) " " | 65 | WHITESPACE@78..79 " " |
66 | CALL_EXPR@[79; 102) | 66 | CALL_EXPR@79..102 |
67 | PATH_EXPR@[79; 82) | 67 | PATH_EXPR@79..82 |
68 | PATH@[79; 82) | 68 | PATH@79..82 |
69 | PATH_SEGMENT@[79; 82) | 69 | PATH_SEGMENT@79..82 |
70 | NAME_REF@[79; 82) | 70 | NAME_REF@79..82 |
71 | IDENT@[79; 82) "Foo" | 71 | IDENT@79..82 "Foo" |
72 | ARG_LIST@[82; 102) | 72 | ARG_LIST@82..102 |
73 | L_PAREN@[82; 83) "(" | 73 | L_PAREN@82..83 "(" |
74 | BOX_EXPR@[83; 91) | 74 | BOX_EXPR@83..91 |
75 | BOX_KW@[83; 86) "box" | 75 | BOX_KW@83..86 "box" |
76 | WHITESPACE@[86; 87) " " | 76 | WHITESPACE@86..87 " " |
77 | LITERAL@[87; 91) | 77 | LITERAL@87..91 |
78 | INT_NUMBER@[87; 91) "1i32" | 78 | INT_NUMBER@87..91 "1i32" |
79 | COMMA@[91; 92) "," | 79 | COMMA@91..92 "," |
80 | WHITESPACE@[92; 93) " " | 80 | WHITESPACE@92..93 " " |
81 | BOX_EXPR@[93; 101) | 81 | BOX_EXPR@93..101 |
82 | BOX_KW@[93; 96) "box" | 82 | BOX_KW@93..96 "box" |
83 | WHITESPACE@[96; 97) " " | 83 | WHITESPACE@96..97 " " |
84 | LITERAL@[97; 101) | 84 | LITERAL@97..101 |
85 | INT_NUMBER@[97; 101) "2i32" | 85 | INT_NUMBER@97..101 "2i32" |
86 | R_PAREN@[101; 102) ")" | 86 | R_PAREN@101..102 ")" |
87 | SEMICOLON@[102; 103) ";" | 87 | SEMICOLON@102..103 ";" |
88 | WHITESPACE@[103; 104) "\n" | 88 | WHITESPACE@103..104 "\n" |
89 | R_CURLY@[104; 105) "}" | 89 | R_CURLY@104..105 "}" |
90 | WHITESPACE@[105; 106) "\n" | 90 | WHITESPACE@105..106 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast index cff03fcf3..db58a928e 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast | |||
@@ -1,56 +1,56 @@ | |||
1 | SOURCE_FILE@[0; 69) | 1 | SOURCE_FILE@0..69 |
2 | IMPL_DEF@[0; 68) | 2 | IMPL_DEF@0..68 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "T" | 9 | IDENT@5..6 "T" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | FOR_KW@[7; 10) "for" | 11 | FOR_KW@7..10 "for" |
12 | WHITESPACE@[10; 11) " " | 12 | WHITESPACE@10..11 " " |
13 | PATH_TYPE@[11; 14) | 13 | PATH_TYPE@11..14 |
14 | PATH@[11; 14) | 14 | PATH@11..14 |
15 | PATH_SEGMENT@[11; 14) | 15 | PATH_SEGMENT@11..14 |
16 | NAME_REF@[11; 14) | 16 | NAME_REF@11..14 |
17 | IDENT@[11; 14) "Foo" | 17 | IDENT@11..14 "Foo" |
18 | WHITESPACE@[14; 15) " " | 18 | WHITESPACE@14..15 " " |
19 | ITEM_LIST@[15; 68) | 19 | ITEM_LIST@15..68 |
20 | L_CURLY@[15; 16) "{" | 20 | L_CURLY@15..16 "{" |
21 | WHITESPACE@[16; 21) "\n " | 21 | WHITESPACE@16..21 "\n " |
22 | TYPE_ALIAS_DEF@[21; 42) | 22 | TYPE_ALIAS_DEF@21..42 |
23 | DEFAULT_KW@[21; 28) "default" | 23 | DEFAULT_KW@21..28 "default" |
24 | WHITESPACE@[28; 29) " " | 24 | WHITESPACE@28..29 " " |
25 | TYPE_KW@[29; 33) "type" | 25 | TYPE_KW@29..33 "type" |
26 | WHITESPACE@[33; 34) " " | 26 | WHITESPACE@33..34 " " |
27 | NAME@[34; 35) | 27 | NAME@34..35 |
28 | IDENT@[34; 35) "T" | 28 | IDENT@34..35 "T" |
29 | WHITESPACE@[35; 36) " " | 29 | WHITESPACE@35..36 " " |
30 | EQ@[36; 37) "=" | 30 | EQ@36..37 "=" |
31 | WHITESPACE@[37; 38) " " | 31 | WHITESPACE@37..38 " " |
32 | PATH_TYPE@[38; 41) | 32 | PATH_TYPE@38..41 |
33 | PATH@[38; 41) | 33 | PATH@38..41 |
34 | PATH_SEGMENT@[38; 41) | 34 | PATH_SEGMENT@38..41 |
35 | NAME_REF@[38; 41) | 35 | NAME_REF@38..41 |
36 | IDENT@[38; 41) "Bar" | 36 | IDENT@38..41 "Bar" |
37 | SEMICOLON@[41; 42) ";" | 37 | SEMICOLON@41..42 ";" |
38 | WHITESPACE@[42; 47) "\n " | 38 | WHITESPACE@42..47 "\n " |
39 | FN_DEF@[47; 66) | 39 | FN_DEF@47..66 |
40 | DEFAULT_KW@[47; 54) "default" | 40 | DEFAULT_KW@47..54 "default" |
41 | WHITESPACE@[54; 55) " " | 41 | WHITESPACE@54..55 " " |
42 | FN_KW@[55; 57) "fn" | 42 | FN_KW@55..57 "fn" |
43 | WHITESPACE@[57; 58) " " | 43 | WHITESPACE@57..58 " " |
44 | NAME@[58; 61) | 44 | NAME@58..61 |
45 | IDENT@[58; 61) "foo" | 45 | IDENT@58..61 "foo" |
46 | PARAM_LIST@[61; 63) | 46 | PARAM_LIST@61..63 |
47 | L_PAREN@[61; 62) "(" | 47 | L_PAREN@61..62 "(" |
48 | R_PAREN@[62; 63) ")" | 48 | R_PAREN@62..63 ")" |
49 | WHITESPACE@[63; 64) " " | 49 | WHITESPACE@63..64 " " |
50 | BLOCK_EXPR@[64; 66) | 50 | BLOCK_EXPR@64..66 |
51 | BLOCK@[64; 66) | 51 | BLOCK@64..66 |
52 | L_CURLY@[64; 65) "{" | 52 | L_CURLY@64..65 "{" |
53 | R_CURLY@[65; 66) "}" | 53 | R_CURLY@65..66 "}" |
54 | WHITESPACE@[66; 67) "\n" | 54 | WHITESPACE@66..67 "\n" |
55 | R_CURLY@[67; 68) "}" | 55 | R_CURLY@67..68 "}" |
56 | WHITESPACE@[68; 69) "\n" | 56 | WHITESPACE@68..69 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast index f66f32370..4ca554ef8 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast | |||
@@ -1,64 +1,64 @@ | |||
1 | SOURCE_FILE@[0; 111) | 1 | SOURCE_FILE@0..111 |
2 | FN_DEF@[0; 110) | 2 | FN_DEF@0..110 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 18) | 5 | NAME@3..18 |
6 | IDENT@[3; 18) "simple_function" | 6 | IDENT@3..18 "simple_function" |
7 | PARAM_LIST@[18; 20) | 7 | PARAM_LIST@18..20 |
8 | L_PAREN@[18; 19) "(" | 8 | L_PAREN@18..19 "(" |
9 | R_PAREN@[19; 20) ")" | 9 | R_PAREN@19..20 ")" |
10 | WHITESPACE@[20; 21) " " | 10 | WHITESPACE@20..21 " " |
11 | BLOCK_EXPR@[21; 110) | 11 | BLOCK_EXPR@21..110 |
12 | BLOCK@[21; 110) | 12 | BLOCK@21..110 |
13 | L_CURLY@[21; 22) "{" | 13 | L_CURLY@21..22 "{" |
14 | WHITESPACE@[22; 27) "\n " | 14 | WHITESPACE@22..27 "\n " |
15 | ENUM_DEF@[27; 75) | 15 | ENUM_DEF@27..75 |
16 | ENUM_KW@[27; 31) "enum" | 16 | ENUM_KW@27..31 "enum" |
17 | WHITESPACE@[31; 32) " " | 17 | WHITESPACE@31..32 " " |
18 | NAME@[32; 41) | 18 | NAME@32..41 |
19 | IDENT@[32; 41) "LocalEnum" | 19 | IDENT@32..41 "LocalEnum" |
20 | WHITESPACE@[41; 42) " " | 20 | WHITESPACE@41..42 " " |
21 | ENUM_VARIANT_LIST@[42; 75) | 21 | ENUM_VARIANT_LIST@42..75 |
22 | L_CURLY@[42; 43) "{" | 22 | L_CURLY@42..43 "{" |
23 | WHITESPACE@[43; 52) "\n " | 23 | WHITESPACE@43..52 "\n " |
24 | ENUM_VARIANT@[52; 55) | 24 | ENUM_VARIANT@52..55 |
25 | NAME@[52; 55) | 25 | NAME@52..55 |
26 | IDENT@[52; 55) "One" | 26 | IDENT@52..55 "One" |
27 | COMMA@[55; 56) "," | 27 | COMMA@55..56 "," |
28 | WHITESPACE@[56; 65) "\n " | 28 | WHITESPACE@56..65 "\n " |
29 | ENUM_VARIANT@[65; 68) | 29 | ENUM_VARIANT@65..68 |
30 | NAME@[65; 68) | 30 | NAME@65..68 |
31 | IDENT@[65; 68) "Two" | 31 | IDENT@65..68 "Two" |
32 | COMMA@[68; 69) "," | 32 | COMMA@68..69 "," |
33 | WHITESPACE@[69; 74) "\n " | 33 | WHITESPACE@69..74 "\n " |
34 | R_CURLY@[74; 75) "}" | 34 | R_CURLY@74..75 "}" |
35 | SEMICOLON@[75; 76) ";" | 35 | SEMICOLON@75..76 ";" |
36 | WHITESPACE@[76; 81) "\n " | 36 | WHITESPACE@76..81 "\n " |
37 | FN_DEF@[81; 90) | 37 | FN_DEF@81..90 |
38 | FN_KW@[81; 83) "fn" | 38 | FN_KW@81..83 "fn" |
39 | WHITESPACE@[83; 84) " " | 39 | WHITESPACE@83..84 " " |
40 | NAME@[84; 85) | 40 | NAME@84..85 |
41 | IDENT@[84; 85) "f" | 41 | IDENT@84..85 "f" |
42 | PARAM_LIST@[85; 87) | 42 | PARAM_LIST@85..87 |
43 | L_PAREN@[85; 86) "(" | 43 | L_PAREN@85..86 "(" |
44 | R_PAREN@[86; 87) ")" | 44 | R_PAREN@86..87 ")" |
45 | WHITESPACE@[87; 88) " " | 45 | WHITESPACE@87..88 " " |
46 | BLOCK_EXPR@[88; 90) | 46 | BLOCK_EXPR@88..90 |
47 | BLOCK@[88; 90) | 47 | BLOCK@88..90 |
48 | L_CURLY@[88; 89) "{" | 48 | L_CURLY@88..89 "{" |
49 | R_CURLY@[89; 90) "}" | 49 | R_CURLY@89..90 "}" |
50 | SEMICOLON@[90; 91) ";" | 50 | SEMICOLON@90..91 ";" |
51 | WHITESPACE@[91; 96) "\n " | 51 | WHITESPACE@91..96 "\n " |
52 | STRUCT_DEF@[96; 107) | 52 | STRUCT_DEF@96..107 |
53 | STRUCT_KW@[96; 102) "struct" | 53 | STRUCT_KW@96..102 "struct" |
54 | WHITESPACE@[102; 103) " " | 54 | WHITESPACE@102..103 " " |
55 | NAME@[103; 104) | 55 | NAME@103..104 |
56 | IDENT@[103; 104) "S" | 56 | IDENT@103..104 "S" |
57 | WHITESPACE@[104; 105) " " | 57 | WHITESPACE@104..105 " " |
58 | RECORD_FIELD_DEF_LIST@[105; 107) | 58 | RECORD_FIELD_DEF_LIST@105..107 |
59 | L_CURLY@[105; 106) "{" | 59 | L_CURLY@105..106 "{" |
60 | R_CURLY@[106; 107) "}" | 60 | R_CURLY@106..107 "}" |
61 | SEMICOLON@[107; 108) ";" | 61 | SEMICOLON@107..108 ";" |
62 | WHITESPACE@[108; 109) "\n" | 62 | WHITESPACE@108..109 "\n" |
63 | R_CURLY@[109; 110) "}" | 63 | R_CURLY@109..110 "}" |
64 | WHITESPACE@[110; 111) "\n" | 64 | WHITESPACE@110..111 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast index 4946e6325..7fa3b9f32 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast | |||
@@ -1,70 +1,70 @@ | |||
1 | SOURCE_FILE@[0; 67) | 1 | SOURCE_FILE@0..67 |
2 | FN_DEF@[0; 66) | 2 | FN_DEF@0..66 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 66) | 11 | BLOCK_EXPR@9..66 |
12 | BLOCK@[9; 66) | 12 | BLOCK@9..66 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 23) | 15 | EXPR_STMT@15..23 |
16 | AWAIT_EXPR@[15; 22) | 16 | AWAIT_EXPR@15..22 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "x" | 21 | IDENT@15..16 "x" |
22 | DOT@[16; 17) "." | 22 | DOT@16..17 "." |
23 | AWAIT_KW@[17; 22) "await" | 23 | AWAIT_KW@17..22 "await" |
24 | SEMICOLON@[22; 23) ";" | 24 | SEMICOLON@22..23 ";" |
25 | WHITESPACE@[23; 28) "\n " | 25 | WHITESPACE@23..28 "\n " |
26 | EXPR_STMT@[28; 38) | 26 | EXPR_STMT@28..38 |
27 | AWAIT_EXPR@[28; 37) | 27 | AWAIT_EXPR@28..37 |
28 | FIELD_EXPR@[28; 31) | 28 | FIELD_EXPR@28..31 |
29 | PATH_EXPR@[28; 29) | 29 | PATH_EXPR@28..29 |
30 | PATH@[28; 29) | 30 | PATH@28..29 |
31 | PATH_SEGMENT@[28; 29) | 31 | PATH_SEGMENT@28..29 |
32 | NAME_REF@[28; 29) | 32 | NAME_REF@28..29 |
33 | IDENT@[28; 29) "x" | 33 | IDENT@28..29 "x" |
34 | DOT@[29; 30) "." | 34 | DOT@29..30 "." |
35 | NAME_REF@[30; 31) | 35 | NAME_REF@30..31 |
36 | INT_NUMBER@[30; 31) "0" | 36 | INT_NUMBER@30..31 "0" |
37 | DOT@[31; 32) "." | 37 | DOT@31..32 "." |
38 | AWAIT_KW@[32; 37) "await" | 38 | AWAIT_KW@32..37 "await" |
39 | SEMICOLON@[37; 38) ";" | 39 | SEMICOLON@37..38 ";" |
40 | WHITESPACE@[38; 43) "\n " | 40 | WHITESPACE@38..43 "\n " |
41 | EXPR_STMT@[43; 64) | 41 | EXPR_STMT@43..64 |
42 | METHOD_CALL_EXPR@[43; 63) | 42 | METHOD_CALL_EXPR@43..63 |
43 | TRY_EXPR@[43; 55) | 43 | TRY_EXPR@43..55 |
44 | AWAIT_EXPR@[43; 54) | 44 | AWAIT_EXPR@43..54 |
45 | CALL_EXPR@[43; 48) | 45 | CALL_EXPR@43..48 |
46 | FIELD_EXPR@[43; 46) | 46 | FIELD_EXPR@43..46 |
47 | PATH_EXPR@[43; 44) | 47 | PATH_EXPR@43..44 |
48 | PATH@[43; 44) | 48 | PATH@43..44 |
49 | PATH_SEGMENT@[43; 44) | 49 | PATH_SEGMENT@43..44 |
50 | NAME_REF@[43; 44) | 50 | NAME_REF@43..44 |
51 | IDENT@[43; 44) "x" | 51 | IDENT@43..44 "x" |
52 | DOT@[44; 45) "." | 52 | DOT@44..45 "." |
53 | NAME_REF@[45; 46) | 53 | NAME_REF@45..46 |
54 | INT_NUMBER@[45; 46) "0" | 54 | INT_NUMBER@45..46 "0" |
55 | ARG_LIST@[46; 48) | 55 | ARG_LIST@46..48 |
56 | L_PAREN@[46; 47) "(" | 56 | L_PAREN@46..47 "(" |
57 | R_PAREN@[47; 48) ")" | 57 | R_PAREN@47..48 ")" |
58 | DOT@[48; 49) "." | 58 | DOT@48..49 "." |
59 | AWAIT_KW@[49; 54) "await" | 59 | AWAIT_KW@49..54 "await" |
60 | QUESTION@[54; 55) "?" | 60 | QUESTION@54..55 "?" |
61 | DOT@[55; 56) "." | 61 | DOT@55..56 "." |
62 | NAME_REF@[56; 61) | 62 | NAME_REF@56..61 |
63 | IDENT@[56; 61) "hello" | 63 | IDENT@56..61 "hello" |
64 | ARG_LIST@[61; 63) | 64 | ARG_LIST@61..63 |
65 | L_PAREN@[61; 62) "(" | 65 | L_PAREN@61..62 "(" |
66 | R_PAREN@[62; 63) ")" | 66 | R_PAREN@62..63 ")" |
67 | SEMICOLON@[63; 64) ";" | 67 | SEMICOLON@63..64 ";" |
68 | WHITESPACE@[64; 65) "\n" | 68 | WHITESPACE@64..65 "\n" |
69 | R_CURLY@[65; 66) "}" | 69 | R_CURLY@65..66 "}" |
70 | WHITESPACE@[66; 67) "\n" | 70 | WHITESPACE@66..67 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast index d18096b47..a32484f2c 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast | |||
@@ -1,56 +1,56 @@ | |||
1 | SOURCE_FILE@[0; 59) | 1 | SOURCE_FILE@0..59 |
2 | FN_DEF@[0; 58) | 2 | FN_DEF@0..58 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 12) | 5 | NAME@3..12 |
6 | IDENT@[3; 12) "print_all" | 6 | IDENT@3..12 "print_all" |
7 | TYPE_PARAM_LIST@[12; 40) | 7 | TYPE_PARAM_LIST@12..40 |
8 | L_ANGLE@[12; 13) "<" | 8 | L_ANGLE@12..13 "<" |
9 | TYPE_PARAM@[13; 39) | 9 | TYPE_PARAM@13..39 |
10 | NAME@[13; 14) | 10 | NAME@13..14 |
11 | IDENT@[13; 14) "T" | 11 | IDENT@13..14 "T" |
12 | COLON@[14; 15) ":" | 12 | COLON@14..15 ":" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | TYPE_BOUND_LIST@[16; 39) | 14 | TYPE_BOUND_LIST@16..39 |
15 | TYPE_BOUND@[16; 39) | 15 | TYPE_BOUND@16..39 |
16 | PATH_TYPE@[16; 39) | 16 | PATH_TYPE@16..39 |
17 | PATH@[16; 39) | 17 | PATH@16..39 |
18 | PATH_SEGMENT@[16; 39) | 18 | PATH_SEGMENT@16..39 |
19 | NAME_REF@[16; 24) | 19 | NAME_REF@16..24 |
20 | IDENT@[16; 24) "Iterator" | 20 | IDENT@16..24 "Iterator" |
21 | TYPE_ARG_LIST@[24; 39) | 21 | TYPE_ARG_LIST@24..39 |
22 | L_ANGLE@[24; 25) "<" | 22 | L_ANGLE@24..25 "<" |
23 | ASSOC_TYPE_ARG@[25; 38) | 23 | ASSOC_TYPE_ARG@25..38 |
24 | NAME_REF@[25; 29) | 24 | NAME_REF@25..29 |
25 | IDENT@[25; 29) "Item" | 25 | IDENT@25..29 "Item" |
26 | COLON@[29; 30) ":" | 26 | COLON@29..30 ":" |
27 | WHITESPACE@[30; 31) " " | 27 | WHITESPACE@30..31 " " |
28 | TYPE_BOUND_LIST@[31; 38) | 28 | TYPE_BOUND_LIST@31..38 |
29 | TYPE_BOUND@[31; 38) | 29 | TYPE_BOUND@31..38 |
30 | PATH_TYPE@[31; 38) | 30 | PATH_TYPE@31..38 |
31 | PATH@[31; 38) | 31 | PATH@31..38 |
32 | PATH_SEGMENT@[31; 38) | 32 | PATH_SEGMENT@31..38 |
33 | NAME_REF@[31; 38) | 33 | NAME_REF@31..38 |
34 | IDENT@[31; 38) "Display" | 34 | IDENT@31..38 "Display" |
35 | R_ANGLE@[38; 39) ">" | 35 | R_ANGLE@38..39 ">" |
36 | R_ANGLE@[39; 40) ">" | 36 | R_ANGLE@39..40 ">" |
37 | PARAM_LIST@[40; 55) | 37 | PARAM_LIST@40..55 |
38 | L_PAREN@[40; 41) "(" | 38 | L_PAREN@40..41 "(" |
39 | PARAM@[41; 54) | 39 | PARAM@41..54 |
40 | BIND_PAT@[41; 51) | 40 | BIND_PAT@41..51 |
41 | NAME@[41; 51) | 41 | NAME@41..51 |
42 | IDENT@[41; 51) "printables" | 42 | IDENT@41..51 "printables" |
43 | COLON@[51; 52) ":" | 43 | COLON@51..52 ":" |
44 | WHITESPACE@[52; 53) " " | 44 | WHITESPACE@52..53 " " |
45 | PATH_TYPE@[53; 54) | 45 | PATH_TYPE@53..54 |
46 | PATH@[53; 54) | 46 | PATH@53..54 |
47 | PATH_SEGMENT@[53; 54) | 47 | PATH_SEGMENT@53..54 |
48 | NAME_REF@[53; 54) | 48 | NAME_REF@53..54 |
49 | IDENT@[53; 54) "T" | 49 | IDENT@53..54 "T" |
50 | R_PAREN@[54; 55) ")" | 50 | R_PAREN@54..55 ")" |
51 | WHITESPACE@[55; 56) " " | 51 | WHITESPACE@55..56 " " |
52 | BLOCK_EXPR@[56; 58) | 52 | BLOCK_EXPR@56..58 |
53 | BLOCK@[56; 58) | 53 | BLOCK@56..58 |
54 | L_CURLY@[56; 57) "{" | 54 | L_CURLY@56..57 "{" |
55 | R_CURLY@[57; 58) "}" | 55 | R_CURLY@57..58 "}" |
56 | WHITESPACE@[58; 59) "\n" | 56 | WHITESPACE@58..59 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast index ca1d69f64..9017236cc 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast | |||
@@ -1,66 +1,66 @@ | |||
1 | SOURCE_FILE@[0; 52) | 1 | SOURCE_FILE@0..52 |
2 | FN_DEF@[0; 51) | 2 | FN_DEF@0..51 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 51) | 11 | BLOCK_EXPR@9..51 |
12 | BLOCK@[9; 51) | 12 | BLOCK@9..51 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 14) "\n " | 14 | WHITESPACE@10..14 "\n " |
15 | LET_STMT@[14; 34) | 15 | LET_STMT@14..34 |
16 | LET_KW@[14; 17) "let" | 16 | LET_KW@14..17 "let" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | BIND_PAT@[18; 23) | 18 | BIND_PAT@18..23 |
19 | MUT_KW@[18; 21) "mut" | 19 | MUT_KW@18..21 "mut" |
20 | WHITESPACE@[21; 22) " " | 20 | WHITESPACE@21..22 " " |
21 | NAME@[22; 23) | 21 | NAME@22..23 |
22 | IDENT@[22; 23) "p" | 22 | IDENT@22..23 "p" |
23 | WHITESPACE@[23; 24) " " | 23 | WHITESPACE@23..24 " " |
24 | EQ@[24; 25) "=" | 24 | EQ@24..25 "=" |
25 | WHITESPACE@[25; 26) " " | 25 | WHITESPACE@25..26 " " |
26 | RECORD_LIT@[26; 33) | 26 | RECORD_LIT@26..33 |
27 | PATH@[26; 27) | 27 | PATH@26..27 |
28 | PATH_SEGMENT@[26; 27) | 28 | PATH_SEGMENT@26..27 |
29 | NAME_REF@[26; 27) | 29 | NAME_REF@26..27 |
30 | IDENT@[26; 27) "F" | 30 | IDENT@26..27 "F" |
31 | RECORD_FIELD_LIST@[27; 33) | 31 | RECORD_FIELD_LIST@27..33 |
32 | L_CURLY@[27; 28) "{" | 32 | L_CURLY@27..28 "{" |
33 | RECORD_FIELD@[28; 32) | 33 | RECORD_FIELD@28..32 |
34 | NAME_REF@[28; 29) | 34 | NAME_REF@28..29 |
35 | IDENT@[28; 29) "x" | 35 | IDENT@28..29 "x" |
36 | COLON@[29; 30) ":" | 36 | COLON@29..30 ":" |
37 | WHITESPACE@[30; 31) " " | 37 | WHITESPACE@30..31 " " |
38 | LITERAL@[31; 32) | 38 | LITERAL@31..32 |
39 | INT_NUMBER@[31; 32) "5" | 39 | INT_NUMBER@31..32 "5" |
40 | R_CURLY@[32; 33) "}" | 40 | R_CURLY@32..33 "}" |
41 | SEMICOLON@[33; 34) ";" | 41 | SEMICOLON@33..34 ";" |
42 | WHITESPACE@[34; 38) "\n " | 42 | WHITESPACE@34..38 "\n " |
43 | EXPR_STMT@[38; 49) | 43 | EXPR_STMT@38..49 |
44 | BIN_EXPR@[38; 48) | 44 | BIN_EXPR@38..48 |
45 | FIELD_EXPR@[38; 43) | 45 | FIELD_EXPR@38..43 |
46 | BLOCK_EXPR@[38; 41) | 46 | BLOCK_EXPR@38..41 |
47 | BLOCK@[38; 41) | 47 | BLOCK@38..41 |
48 | L_CURLY@[38; 39) "{" | 48 | L_CURLY@38..39 "{" |
49 | PATH_EXPR@[39; 40) | 49 | PATH_EXPR@39..40 |
50 | PATH@[39; 40) | 50 | PATH@39..40 |
51 | PATH_SEGMENT@[39; 40) | 51 | PATH_SEGMENT@39..40 |
52 | NAME_REF@[39; 40) | 52 | NAME_REF@39..40 |
53 | IDENT@[39; 40) "p" | 53 | IDENT@39..40 "p" |
54 | R_CURLY@[40; 41) "}" | 54 | R_CURLY@40..41 "}" |
55 | DOT@[41; 42) "." | 55 | DOT@41..42 "." |
56 | NAME_REF@[42; 43) | 56 | NAME_REF@42..43 |
57 | IDENT@[42; 43) "x" | 57 | IDENT@42..43 "x" |
58 | WHITESPACE@[43; 44) " " | 58 | WHITESPACE@43..44 " " |
59 | EQ@[44; 45) "=" | 59 | EQ@44..45 "=" |
60 | WHITESPACE@[45; 46) " " | 60 | WHITESPACE@45..46 " " |
61 | LITERAL@[46; 48) | 61 | LITERAL@46..48 |
62 | INT_NUMBER@[46; 48) "10" | 62 | INT_NUMBER@46..48 "10" |
63 | SEMICOLON@[48; 49) ";" | 63 | SEMICOLON@48..49 ";" |
64 | WHITESPACE@[49; 50) "\n" | 64 | WHITESPACE@49..50 "\n" |
65 | R_CURLY@[50; 51) "}" | 65 | R_CURLY@50..51 "}" |
66 | WHITESPACE@[51; 52) "\n" | 66 | WHITESPACE@51..52 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast index e627b9746..2cb5b52f4 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast | |||
@@ -1,26 +1,26 @@ | |||
1 | SOURCE_FILE@[0; 26) | 1 | SOURCE_FILE@0..26 |
2 | FN_DEF@[0; 25) | 2 | FN_DEF@0..25 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "f" | 6 | IDENT@3..4 "f" |
7 | PARAM_LIST@[4; 22) | 7 | PARAM_LIST@4..22 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | ATTR@[5; 16) | 9 | ATTR@5..16 |
10 | POUND@[5; 6) "#" | 10 | POUND@5..6 "#" |
11 | L_BRACK@[6; 7) "[" | 11 | L_BRACK@6..7 "[" |
12 | PATH@[7; 15) | 12 | PATH@7..15 |
13 | PATH_SEGMENT@[7; 15) | 13 | PATH_SEGMENT@7..15 |
14 | NAME_REF@[7; 15) | 14 | NAME_REF@7..15 |
15 | IDENT@[7; 15) "must_use" | 15 | IDENT@7..15 "must_use" |
16 | R_BRACK@[15; 16) "]" | 16 | R_BRACK@15..16 "]" |
17 | WHITESPACE@[16; 17) " " | 17 | WHITESPACE@16..17 " " |
18 | SELF_PARAM@[17; 21) | 18 | SELF_PARAM@17..21 |
19 | SELF_KW@[17; 21) "self" | 19 | SELF_KW@17..21 "self" |
20 | R_PAREN@[21; 22) ")" | 20 | R_PAREN@21..22 ")" |
21 | WHITESPACE@[22; 23) " " | 21 | WHITESPACE@22..23 " " |
22 | BLOCK_EXPR@[23; 25) | 22 | BLOCK_EXPR@23..25 |
23 | BLOCK@[23; 25) | 23 | BLOCK@23..25 |
24 | L_CURLY@[23; 24) "{" | 24 | L_CURLY@23..24 "{" |
25 | R_CURLY@[24; 25) "}" | 25 | R_CURLY@24..25 "}" |
26 | WHITESPACE@[25; 26) "\n" | 26 | WHITESPACE@25..26 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast index cf202c94b..ac3f4de26 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast | |||
@@ -1,35 +1,35 @@ | |||
1 | SOURCE_FILE@[0; 28) | 1 | SOURCE_FILE@0..28 |
2 | FN_DEF@[0; 27) | 2 | FN_DEF@0..27 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "f" | 6 | IDENT@3..4 "f" |
7 | PARAM_LIST@[4; 24) | 7 | PARAM_LIST@4..24 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | ATTR@[5; 13) | 9 | ATTR@5..13 |
10 | POUND@[5; 6) "#" | 10 | POUND@5..6 "#" |
11 | L_BRACK@[6; 7) "[" | 11 | L_BRACK@6..7 "[" |
12 | PATH@[7; 12) | 12 | PATH@7..12 |
13 | PATH_SEGMENT@[7; 12) | 13 | PATH_SEGMENT@7..12 |
14 | NAME_REF@[7; 12) | 14 | NAME_REF@7..12 |
15 | IDENT@[7; 12) "attr1" | 15 | IDENT@7..12 "attr1" |
16 | R_BRACK@[12; 13) "]" | 16 | R_BRACK@12..13 "]" |
17 | WHITESPACE@[13; 14) " " | 17 | WHITESPACE@13..14 " " |
18 | PARAM@[14; 23) | 18 | PARAM@14..23 |
19 | BIND_PAT@[14; 17) | 19 | BIND_PAT@14..17 |
20 | NAME@[14; 17) | 20 | NAME@14..17 |
21 | IDENT@[14; 17) "pat" | 21 | IDENT@14..17 "pat" |
22 | COLON@[17; 18) ":" | 22 | COLON@17..18 ":" |
23 | WHITESPACE@[18; 19) " " | 23 | WHITESPACE@18..19 " " |
24 | PATH_TYPE@[19; 23) | 24 | PATH_TYPE@19..23 |
25 | PATH@[19; 23) | 25 | PATH@19..23 |
26 | PATH_SEGMENT@[19; 23) | 26 | PATH_SEGMENT@19..23 |
27 | NAME_REF@[19; 23) | 27 | NAME_REF@19..23 |
28 | IDENT@[19; 23) "Type" | 28 | IDENT@19..23 "Type" |
29 | R_PAREN@[23; 24) ")" | 29 | R_PAREN@23..24 ")" |
30 | WHITESPACE@[24; 25) " " | 30 | WHITESPACE@24..25 " " |
31 | BLOCK_EXPR@[25; 27) | 31 | BLOCK_EXPR@25..27 |
32 | BLOCK@[25; 27) | 32 | BLOCK@25..27 |
33 | L_CURLY@[25; 26) "{" | 33 | L_CURLY@25..26 "{" |
34 | R_CURLY@[26; 27) "}" | 34 | R_CURLY@26..27 "}" |
35 | WHITESPACE@[27; 28) "\n" | 35 | WHITESPACE@27..28 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast index 6d01140d2..8d4919cbd 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast | |||
@@ -1,42 +1,42 @@ | |||
1 | SOURCE_FILE@[0; 51) | 1 | SOURCE_FILE@0..51 |
2 | FN_DEF@[0; 50) | 2 | FN_DEF@0..50 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 50) | 11 | BLOCK_EXPR@9..50 |
12 | BLOCK@[9; 50) | 12 | BLOCK@9..50 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 14) "\n " | 14 | WHITESPACE@10..14 "\n " |
15 | FOR_EXPR@[14; 48) | 15 | FOR_EXPR@14..48 |
16 | FOR_KW@[14; 17) "for" | 16 | FOR_KW@14..17 "for" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | BIND_PAT@[18; 19) | 18 | BIND_PAT@18..19 |
19 | NAME@[18; 19) | 19 | NAME@18..19 |
20 | IDENT@[18; 19) "x" | 20 | IDENT@18..19 "x" |
21 | WHITESPACE@[19; 20) " " | 21 | WHITESPACE@19..20 " " |
22 | IN_KW@[20; 22) "in" | 22 | IN_KW@20..22 "in" |
23 | WHITESPACE@[22; 23) " " | 23 | WHITESPACE@22..23 " " |
24 | RANGE_EXPR@[23; 27) | 24 | RANGE_EXPR@23..27 |
25 | LITERAL@[23; 24) | 25 | LITERAL@23..24 |
26 | INT_NUMBER@[23; 24) "0" | 26 | INT_NUMBER@23..24 "0" |
27 | WHITESPACE@[24; 25) " " | 27 | WHITESPACE@24..25 " " |
28 | DOT2@[25; 27) ".." | 28 | DOT2@25..27 ".." |
29 | WHITESPACE@[27; 28) " " | 29 | WHITESPACE@27..28 " " |
30 | BLOCK_EXPR@[28; 48) | 30 | BLOCK_EXPR@28..48 |
31 | BLOCK@[28; 48) | 31 | BLOCK@28..48 |
32 | L_CURLY@[28; 29) "{" | 32 | L_CURLY@28..29 "{" |
33 | WHITESPACE@[29; 37) "\n " | 33 | WHITESPACE@29..37 "\n " |
34 | EXPR_STMT@[37; 43) | 34 | EXPR_STMT@37..43 |
35 | BREAK_EXPR@[37; 42) | 35 | BREAK_EXPR@37..42 |
36 | BREAK_KW@[37; 42) "break" | 36 | BREAK_KW@37..42 "break" |
37 | SEMICOLON@[42; 43) ";" | 37 | SEMICOLON@42..43 ";" |
38 | WHITESPACE@[43; 47) "\n " | 38 | WHITESPACE@43..47 "\n " |
39 | R_CURLY@[47; 48) "}" | 39 | R_CURLY@47..48 "}" |
40 | WHITESPACE@[48; 49) "\n" | 40 | WHITESPACE@48..49 "\n" |
41 | R_CURLY@[49; 50) "}" | 41 | R_CURLY@49..50 "}" |
42 | WHITESPACE@[50; 51) "\n" | 42 | WHITESPACE@50..51 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast index 1d245f8f3..2c933fa76 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast | |||
@@ -1,111 +1,111 @@ | |||
1 | SOURCE_FILE@[0; 118) | 1 | SOURCE_FILE@0..118 |
2 | FN_DEF@[0; 117) | 2 | FN_DEF@0..117 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 117) | 11 | BLOCK_EXPR@10..117 |
12 | BLOCK@[10; 117) | 12 | BLOCK@10..117 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 31) | 15 | LET_STMT@16..31 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | BOX_PAT@[20; 25) | 18 | BOX_PAT@20..25 |
19 | BOX_KW@[20; 23) "box" | 19 | BOX_KW@20..23 "box" |
20 | WHITESPACE@[23; 24) " " | 20 | WHITESPACE@23..24 " " |
21 | BIND_PAT@[24; 25) | 21 | BIND_PAT@24..25 |
22 | NAME@[24; 25) | 22 | NAME@24..25 |
23 | IDENT@[24; 25) "i" | 23 | IDENT@24..25 "i" |
24 | WHITESPACE@[25; 26) " " | 24 | WHITESPACE@25..26 " " |
25 | EQ@[26; 27) "=" | 25 | EQ@26..27 "=" |
26 | WHITESPACE@[27; 28) " " | 26 | WHITESPACE@27..28 " " |
27 | TUPLE_EXPR@[28; 30) | 27 | TUPLE_EXPR@28..30 |
28 | L_PAREN@[28; 29) "(" | 28 | L_PAREN@28..29 "(" |
29 | R_PAREN@[29; 30) ")" | 29 | R_PAREN@29..30 ")" |
30 | SEMICOLON@[30; 31) ";" | 30 | SEMICOLON@30..31 ";" |
31 | WHITESPACE@[31; 36) "\n " | 31 | WHITESPACE@31..36 "\n " |
32 | LET_STMT@[36; 87) | 32 | LET_STMT@36..87 |
33 | LET_KW@[36; 39) "let" | 33 | LET_KW@36..39 "let" |
34 | WHITESPACE@[39; 40) " " | 34 | WHITESPACE@39..40 " " |
35 | BOX_PAT@[40; 81) | 35 | BOX_PAT@40..81 |
36 | BOX_KW@[40; 43) "box" | 36 | BOX_KW@40..43 "box" |
37 | WHITESPACE@[43; 44) " " | 37 | WHITESPACE@43..44 " " |
38 | RECORD_PAT@[44; 81) | 38 | RECORD_PAT@44..81 |
39 | PATH@[44; 49) | 39 | PATH@44..49 |
40 | PATH_SEGMENT@[44; 49) | 40 | PATH_SEGMENT@44..49 |
41 | NAME_REF@[44; 49) | 41 | NAME_REF@44..49 |
42 | IDENT@[44; 49) "Outer" | 42 | IDENT@44..49 "Outer" |
43 | WHITESPACE@[49; 50) " " | 43 | WHITESPACE@49..50 " " |
44 | RECORD_FIELD_PAT_LIST@[50; 81) | 44 | RECORD_FIELD_PAT_LIST@50..81 |
45 | L_CURLY@[50; 51) "{" | 45 | L_CURLY@50..51 "{" |
46 | WHITESPACE@[51; 52) " " | 46 | WHITESPACE@51..52 " " |
47 | RECORD_FIELD_PAT@[52; 57) | 47 | RECORD_FIELD_PAT@52..57 |
48 | BOX_PAT@[52; 57) | 48 | BOX_PAT@52..57 |
49 | BOX_KW@[52; 55) "box" | 49 | BOX_KW@52..55 "box" |
50 | WHITESPACE@[55; 56) " " | 50 | WHITESPACE@55..56 " " |
51 | BIND_PAT@[56; 57) | 51 | BIND_PAT@56..57 |
52 | NAME@[56; 57) | 52 | NAME@56..57 |
53 | IDENT@[56; 57) "i" | 53 | IDENT@56..57 "i" |
54 | COMMA@[57; 58) "," | 54 | COMMA@57..58 "," |
55 | WHITESPACE@[58; 59) " " | 55 | WHITESPACE@58..59 " " |
56 | RECORD_FIELD_PAT@[59; 79) | 56 | RECORD_FIELD_PAT@59..79 |
57 | NAME_REF@[59; 60) | 57 | NAME_REF@59..60 |
58 | IDENT@[59; 60) "j" | 58 | IDENT@59..60 "j" |
59 | COLON@[60; 61) ":" | 59 | COLON@60..61 ":" |
60 | WHITESPACE@[61; 62) " " | 60 | WHITESPACE@61..62 " " |
61 | BOX_PAT@[62; 79) | 61 | BOX_PAT@62..79 |
62 | BOX_KW@[62; 65) "box" | 62 | BOX_KW@62..65 "box" |
63 | WHITESPACE@[65; 66) " " | 63 | WHITESPACE@65..66 " " |
64 | TUPLE_STRUCT_PAT@[66; 79) | 64 | TUPLE_STRUCT_PAT@66..79 |
65 | PATH@[66; 71) | 65 | PATH@66..71 |
66 | PATH_SEGMENT@[66; 71) | 66 | PATH_SEGMENT@66..71 |
67 | NAME_REF@[66; 71) | 67 | NAME_REF@66..71 |
68 | IDENT@[66; 71) "Inner" | 68 | IDENT@66..71 "Inner" |
69 | L_PAREN@[71; 72) "(" | 69 | L_PAREN@71..72 "(" |
70 | BOX_PAT@[72; 78) | 70 | BOX_PAT@72..78 |
71 | BOX_KW@[72; 75) "box" | 71 | BOX_KW@72..75 "box" |
72 | WHITESPACE@[75; 76) " " | 72 | WHITESPACE@75..76 " " |
73 | REF_PAT@[76; 78) | 73 | REF_PAT@76..78 |
74 | AMP@[76; 77) "&" | 74 | AMP@76..77 "&" |
75 | BIND_PAT@[77; 78) | 75 | BIND_PAT@77..78 |
76 | NAME@[77; 78) | 76 | NAME@77..78 |
77 | IDENT@[77; 78) "x" | 77 | IDENT@77..78 "x" |
78 | R_PAREN@[78; 79) ")" | 78 | R_PAREN@78..79 ")" |
79 | WHITESPACE@[79; 80) " " | 79 | WHITESPACE@79..80 " " |
80 | R_CURLY@[80; 81) "}" | 80 | R_CURLY@80..81 "}" |
81 | WHITESPACE@[81; 82) " " | 81 | WHITESPACE@81..82 " " |
82 | EQ@[82; 83) "=" | 82 | EQ@82..83 "=" |
83 | WHITESPACE@[83; 84) " " | 83 | WHITESPACE@83..84 " " |
84 | TUPLE_EXPR@[84; 86) | 84 | TUPLE_EXPR@84..86 |
85 | L_PAREN@[84; 85) "(" | 85 | L_PAREN@84..85 "(" |
86 | R_PAREN@[85; 86) ")" | 86 | R_PAREN@85..86 ")" |
87 | SEMICOLON@[86; 87) ";" | 87 | SEMICOLON@86..87 ";" |
88 | WHITESPACE@[87; 92) "\n " | 88 | WHITESPACE@87..92 "\n " |
89 | LET_STMT@[92; 115) | 89 | LET_STMT@92..115 |
90 | LET_KW@[92; 95) "let" | 90 | LET_KW@92..95 "let" |
91 | WHITESPACE@[95; 96) " " | 91 | WHITESPACE@95..96 " " |
92 | BOX_PAT@[96; 109) | 92 | BOX_PAT@96..109 |
93 | BOX_KW@[96; 99) "box" | 93 | BOX_KW@96..99 "box" |
94 | WHITESPACE@[99; 100) " " | 94 | WHITESPACE@99..100 " " |
95 | BIND_PAT@[100; 109) | 95 | BIND_PAT@100..109 |
96 | REF_KW@[100; 103) "ref" | 96 | REF_KW@100..103 "ref" |
97 | WHITESPACE@[103; 104) " " | 97 | WHITESPACE@103..104 " " |
98 | MUT_KW@[104; 107) "mut" | 98 | MUT_KW@104..107 "mut" |
99 | WHITESPACE@[107; 108) " " | 99 | WHITESPACE@107..108 " " |
100 | NAME@[108; 109) | 100 | NAME@108..109 |
101 | IDENT@[108; 109) "i" | 101 | IDENT@108..109 "i" |
102 | WHITESPACE@[109; 110) " " | 102 | WHITESPACE@109..110 " " |
103 | EQ@[110; 111) "=" | 103 | EQ@110..111 "=" |
104 | WHITESPACE@[111; 112) " " | 104 | WHITESPACE@111..112 " " |
105 | TUPLE_EXPR@[112; 114) | 105 | TUPLE_EXPR@112..114 |
106 | L_PAREN@[112; 113) "(" | 106 | L_PAREN@112..113 "(" |
107 | R_PAREN@[113; 114) ")" | 107 | R_PAREN@113..114 ")" |
108 | SEMICOLON@[114; 115) ";" | 108 | SEMICOLON@114..115 ";" |
109 | WHITESPACE@[115; 116) "\n" | 109 | WHITESPACE@115..116 "\n" |
110 | R_CURLY@[116; 117) "}" | 110 | R_CURLY@116..117 "}" |
111 | WHITESPACE@[117; 118) "\n" | 111 | WHITESPACE@117..118 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast index 60186a992..e0b50d8be 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast | |||
@@ -1,456 +1,456 @@ | |||
1 | SOURCE_FILE@[0; 555) | 1 | SOURCE_FILE@0..555 |
2 | FN_DEF@[0; 554) | 2 | FN_DEF@0..554 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 554) | 11 | BLOCK_EXPR@10..554 |
12 | BLOCK@[10; 554) | 12 | BLOCK@10..554 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 28) | 15 | LET_STMT@16..28 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | DOT_DOT_PAT@[20; 22) | 18 | DOT_DOT_PAT@20..22 |
19 | DOT2@[20; 22) ".." | 19 | DOT2@20..22 ".." |
20 | WHITESPACE@[22; 23) " " | 20 | WHITESPACE@22..23 " " |
21 | EQ@[23; 24) "=" | 21 | EQ@23..24 "=" |
22 | WHITESPACE@[24; 25) " " | 22 | WHITESPACE@24..25 " " |
23 | TUPLE_EXPR@[25; 27) | 23 | TUPLE_EXPR@25..27 |
24 | L_PAREN@[25; 26) "(" | 24 | L_PAREN@25..26 "(" |
25 | R_PAREN@[26; 27) ")" | 25 | R_PAREN@26..27 ")" |
26 | SEMICOLON@[27; 28) ";" | 26 | SEMICOLON@27..28 ";" |
27 | WHITESPACE@[28; 33) "\n " | 27 | WHITESPACE@28..33 "\n " |
28 | COMMENT@[33; 35) "//" | 28 | COMMENT@33..35 "//" |
29 | WHITESPACE@[35; 40) "\n " | 29 | WHITESPACE@35..40 "\n " |
30 | COMMENT@[40; 49) "// Tuples" | 30 | COMMENT@40..49 "// Tuples" |
31 | WHITESPACE@[49; 54) "\n " | 31 | WHITESPACE@49..54 "\n " |
32 | COMMENT@[54; 56) "//" | 32 | COMMENT@54..56 "//" |
33 | WHITESPACE@[56; 61) "\n " | 33 | WHITESPACE@56..61 "\n " |
34 | LET_STMT@[61; 78) | 34 | LET_STMT@61..78 |
35 | LET_KW@[61; 64) "let" | 35 | LET_KW@61..64 "let" |
36 | WHITESPACE@[64; 65) " " | 36 | WHITESPACE@64..65 " " |
37 | TUPLE_PAT@[65; 72) | 37 | TUPLE_PAT@65..72 |
38 | L_PAREN@[65; 66) "(" | 38 | L_PAREN@65..66 "(" |
39 | BIND_PAT@[66; 67) | 39 | BIND_PAT@66..67 |
40 | NAME@[66; 67) | 40 | NAME@66..67 |
41 | IDENT@[66; 67) "a" | 41 | IDENT@66..67 "a" |
42 | COMMA@[67; 68) "," | 42 | COMMA@67..68 "," |
43 | WHITESPACE@[68; 69) " " | 43 | WHITESPACE@68..69 " " |
44 | DOT_DOT_PAT@[69; 71) | 44 | DOT_DOT_PAT@69..71 |
45 | DOT2@[69; 71) ".." | 45 | DOT2@69..71 ".." |
46 | R_PAREN@[71; 72) ")" | 46 | R_PAREN@71..72 ")" |
47 | WHITESPACE@[72; 73) " " | 47 | WHITESPACE@72..73 " " |
48 | EQ@[73; 74) "=" | 48 | EQ@73..74 "=" |
49 | WHITESPACE@[74; 75) " " | 49 | WHITESPACE@74..75 " " |
50 | TUPLE_EXPR@[75; 77) | 50 | TUPLE_EXPR@75..77 |
51 | L_PAREN@[75; 76) "(" | 51 | L_PAREN@75..76 "(" |
52 | R_PAREN@[76; 77) ")" | 52 | R_PAREN@76..77 ")" |
53 | SEMICOLON@[77; 78) ";" | 53 | SEMICOLON@77..78 ";" |
54 | WHITESPACE@[78; 83) "\n " | 54 | WHITESPACE@78..83 "\n " |
55 | LET_STMT@[83; 101) | 55 | LET_STMT@83..101 |
56 | LET_KW@[83; 86) "let" | 56 | LET_KW@83..86 "let" |
57 | WHITESPACE@[86; 87) " " | 57 | WHITESPACE@86..87 " " |
58 | TUPLE_PAT@[87; 95) | 58 | TUPLE_PAT@87..95 |
59 | L_PAREN@[87; 88) "(" | 59 | L_PAREN@87..88 "(" |
60 | BIND_PAT@[88; 89) | 60 | BIND_PAT@88..89 |
61 | NAME@[88; 89) | 61 | NAME@88..89 |
62 | IDENT@[88; 89) "a" | 62 | IDENT@88..89 "a" |
63 | COMMA@[89; 90) "," | 63 | COMMA@89..90 "," |
64 | WHITESPACE@[90; 91) " " | 64 | WHITESPACE@90..91 " " |
65 | DOT_DOT_PAT@[91; 93) | 65 | DOT_DOT_PAT@91..93 |
66 | DOT2@[91; 93) ".." | 66 | DOT2@91..93 ".." |
67 | COMMA@[93; 94) "," | 67 | COMMA@93..94 "," |
68 | R_PAREN@[94; 95) ")" | 68 | R_PAREN@94..95 ")" |
69 | WHITESPACE@[95; 96) " " | 69 | WHITESPACE@95..96 " " |
70 | EQ@[96; 97) "=" | 70 | EQ@96..97 "=" |
71 | WHITESPACE@[97; 98) " " | 71 | WHITESPACE@97..98 " " |
72 | TUPLE_EXPR@[98; 100) | 72 | TUPLE_EXPR@98..100 |
73 | L_PAREN@[98; 99) "(" | 73 | L_PAREN@98..99 "(" |
74 | R_PAREN@[99; 100) ")" | 74 | R_PAREN@99..100 ")" |
75 | SEMICOLON@[100; 101) ";" | 75 | SEMICOLON@100..101 ";" |
76 | WHITESPACE@[101; 106) "\n " | 76 | WHITESPACE@101..106 "\n " |
77 | LET_STMT@[106; 128) | 77 | LET_STMT@106..128 |
78 | LET_KW@[106; 109) "let" | 78 | LET_KW@106..109 "let" |
79 | WHITESPACE@[109; 110) " " | 79 | WHITESPACE@109..110 " " |
80 | TUPLE_STRUCT_PAT@[110; 122) | 80 | TUPLE_STRUCT_PAT@110..122 |
81 | PATH@[110; 115) | 81 | PATH@110..115 |
82 | PATH_SEGMENT@[110; 115) | 82 | PATH_SEGMENT@110..115 |
83 | NAME_REF@[110; 115) | 83 | NAME_REF@110..115 |
84 | IDENT@[110; 115) "Tuple" | 84 | IDENT@110..115 "Tuple" |
85 | L_PAREN@[115; 116) "(" | 85 | L_PAREN@115..116 "(" |
86 | BIND_PAT@[116; 117) | 86 | BIND_PAT@116..117 |
87 | NAME@[116; 117) | 87 | NAME@116..117 |
88 | IDENT@[116; 117) "a" | 88 | IDENT@116..117 "a" |
89 | COMMA@[117; 118) "," | 89 | COMMA@117..118 "," |
90 | WHITESPACE@[118; 119) " " | 90 | WHITESPACE@118..119 " " |
91 | DOT_DOT_PAT@[119; 121) | 91 | DOT_DOT_PAT@119..121 |
92 | DOT2@[119; 121) ".." | 92 | DOT2@119..121 ".." |
93 | R_PAREN@[121; 122) ")" | 93 | R_PAREN@121..122 ")" |
94 | WHITESPACE@[122; 123) " " | 94 | WHITESPACE@122..123 " " |
95 | EQ@[123; 124) "=" | 95 | EQ@123..124 "=" |
96 | WHITESPACE@[124; 125) " " | 96 | WHITESPACE@124..125 " " |
97 | TUPLE_EXPR@[125; 127) | 97 | TUPLE_EXPR@125..127 |
98 | L_PAREN@[125; 126) "(" | 98 | L_PAREN@125..126 "(" |
99 | R_PAREN@[126; 127) ")" | 99 | R_PAREN@126..127 ")" |
100 | SEMICOLON@[127; 128) ";" | 100 | SEMICOLON@127..128 ";" |
101 | WHITESPACE@[128; 133) "\n " | 101 | WHITESPACE@128..133 "\n " |
102 | LET_STMT@[133; 156) | 102 | LET_STMT@133..156 |
103 | LET_KW@[133; 136) "let" | 103 | LET_KW@133..136 "let" |
104 | WHITESPACE@[136; 137) " " | 104 | WHITESPACE@136..137 " " |
105 | TUPLE_STRUCT_PAT@[137; 150) | 105 | TUPLE_STRUCT_PAT@137..150 |
106 | PATH@[137; 142) | 106 | PATH@137..142 |
107 | PATH_SEGMENT@[137; 142) | 107 | PATH_SEGMENT@137..142 |
108 | NAME_REF@[137; 142) | 108 | NAME_REF@137..142 |
109 | IDENT@[137; 142) "Tuple" | 109 | IDENT@137..142 "Tuple" |
110 | L_PAREN@[142; 143) "(" | 110 | L_PAREN@142..143 "(" |
111 | BIND_PAT@[143; 144) | 111 | BIND_PAT@143..144 |
112 | NAME@[143; 144) | 112 | NAME@143..144 |
113 | IDENT@[143; 144) "a" | 113 | IDENT@143..144 "a" |
114 | COMMA@[144; 145) "," | 114 | COMMA@144..145 "," |
115 | WHITESPACE@[145; 146) " " | 115 | WHITESPACE@145..146 " " |
116 | DOT_DOT_PAT@[146; 148) | 116 | DOT_DOT_PAT@146..148 |
117 | DOT2@[146; 148) ".." | 117 | DOT2@146..148 ".." |
118 | COMMA@[148; 149) "," | 118 | COMMA@148..149 "," |
119 | R_PAREN@[149; 150) ")" | 119 | R_PAREN@149..150 ")" |
120 | WHITESPACE@[150; 151) " " | 120 | WHITESPACE@150..151 " " |
121 | EQ@[151; 152) "=" | 121 | EQ@151..152 "=" |
122 | WHITESPACE@[152; 153) " " | 122 | WHITESPACE@152..153 " " |
123 | TUPLE_EXPR@[153; 155) | 123 | TUPLE_EXPR@153..155 |
124 | L_PAREN@[153; 154) "(" | 124 | L_PAREN@153..154 "(" |
125 | R_PAREN@[154; 155) ")" | 125 | R_PAREN@154..155 ")" |
126 | SEMICOLON@[155; 156) ";" | 126 | SEMICOLON@155..156 ";" |
127 | WHITESPACE@[156; 161) "\n " | 127 | WHITESPACE@156..161 "\n " |
128 | LET_STMT@[161; 179) | 128 | LET_STMT@161..179 |
129 | LET_KW@[161; 164) "let" | 129 | LET_KW@161..164 "let" |
130 | WHITESPACE@[164; 165) " " | 130 | WHITESPACE@164..165 " " |
131 | TUPLE_PAT@[165; 173) | 131 | TUPLE_PAT@165..173 |
132 | L_PAREN@[165; 166) "(" | 132 | L_PAREN@165..166 "(" |
133 | DOT_DOT_PAT@[166; 168) | 133 | DOT_DOT_PAT@166..168 |
134 | DOT2@[166; 168) ".." | 134 | DOT2@166..168 ".." |
135 | COMMA@[168; 169) "," | 135 | COMMA@168..169 "," |
136 | WHITESPACE@[169; 170) " " | 136 | WHITESPACE@169..170 " " |
137 | DOT_DOT_PAT@[170; 172) | 137 | DOT_DOT_PAT@170..172 |
138 | DOT2@[170; 172) ".." | 138 | DOT2@170..172 ".." |
139 | R_PAREN@[172; 173) ")" | 139 | R_PAREN@172..173 ")" |
140 | WHITESPACE@[173; 174) " " | 140 | WHITESPACE@173..174 " " |
141 | EQ@[174; 175) "=" | 141 | EQ@174..175 "=" |
142 | WHITESPACE@[175; 176) " " | 142 | WHITESPACE@175..176 " " |
143 | TUPLE_EXPR@[176; 178) | 143 | TUPLE_EXPR@176..178 |
144 | L_PAREN@[176; 177) "(" | 144 | L_PAREN@176..177 "(" |
145 | R_PAREN@[177; 178) ")" | 145 | R_PAREN@177..178 ")" |
146 | SEMICOLON@[178; 179) ";" | 146 | SEMICOLON@178..179 ";" |
147 | WHITESPACE@[179; 184) "\n " | 147 | WHITESPACE@179..184 "\n " |
148 | LET_STMT@[184; 207) | 148 | LET_STMT@184..207 |
149 | LET_KW@[184; 187) "let" | 149 | LET_KW@184..187 "let" |
150 | WHITESPACE@[187; 188) " " | 150 | WHITESPACE@187..188 " " |
151 | TUPLE_STRUCT_PAT@[188; 201) | 151 | TUPLE_STRUCT_PAT@188..201 |
152 | PATH@[188; 193) | 152 | PATH@188..193 |
153 | PATH_SEGMENT@[188; 193) | 153 | PATH_SEGMENT@188..193 |
154 | NAME_REF@[188; 193) | 154 | NAME_REF@188..193 |
155 | IDENT@[188; 193) "Tuple" | 155 | IDENT@188..193 "Tuple" |
156 | L_PAREN@[193; 194) "(" | 156 | L_PAREN@193..194 "(" |
157 | DOT_DOT_PAT@[194; 196) | 157 | DOT_DOT_PAT@194..196 |
158 | DOT2@[194; 196) ".." | 158 | DOT2@194..196 ".." |
159 | COMMA@[196; 197) "," | 159 | COMMA@196..197 "," |
160 | WHITESPACE@[197; 198) " " | 160 | WHITESPACE@197..198 " " |
161 | DOT_DOT_PAT@[198; 200) | 161 | DOT_DOT_PAT@198..200 |
162 | DOT2@[198; 200) ".." | 162 | DOT2@198..200 ".." |
163 | R_PAREN@[200; 201) ")" | 163 | R_PAREN@200..201 ")" |
164 | WHITESPACE@[201; 202) " " | 164 | WHITESPACE@201..202 " " |
165 | EQ@[202; 203) "=" | 165 | EQ@202..203 "=" |
166 | WHITESPACE@[203; 204) " " | 166 | WHITESPACE@203..204 " " |
167 | TUPLE_EXPR@[204; 206) | 167 | TUPLE_EXPR@204..206 |
168 | L_PAREN@[204; 205) "(" | 168 | L_PAREN@204..205 "(" |
169 | R_PAREN@[205; 206) ")" | 169 | R_PAREN@205..206 ")" |
170 | SEMICOLON@[206; 207) ";" | 170 | SEMICOLON@206..207 ";" |
171 | WHITESPACE@[207; 212) "\n " | 171 | WHITESPACE@207..212 "\n " |
172 | LET_STMT@[212; 233) | 172 | LET_STMT@212..233 |
173 | LET_KW@[212; 215) "let" | 173 | LET_KW@212..215 "let" |
174 | WHITESPACE@[215; 216) " " | 174 | WHITESPACE@215..216 " " |
175 | TUPLE_PAT@[216; 227) | 175 | TUPLE_PAT@216..227 |
176 | L_PAREN@[216; 217) "(" | 176 | L_PAREN@216..217 "(" |
177 | DOT_DOT_PAT@[217; 219) | 177 | DOT_DOT_PAT@217..219 |
178 | DOT2@[217; 219) ".." | 178 | DOT2@217..219 ".." |
179 | COMMA@[219; 220) "," | 179 | COMMA@219..220 "," |
180 | WHITESPACE@[220; 221) " " | 180 | WHITESPACE@220..221 " " |
181 | BIND_PAT@[221; 222) | 181 | BIND_PAT@221..222 |
182 | NAME@[221; 222) | 182 | NAME@221..222 |
183 | IDENT@[221; 222) "a" | 183 | IDENT@221..222 "a" |
184 | COMMA@[222; 223) "," | 184 | COMMA@222..223 "," |
185 | WHITESPACE@[223; 224) " " | 185 | WHITESPACE@223..224 " " |
186 | DOT_DOT_PAT@[224; 226) | 186 | DOT_DOT_PAT@224..226 |
187 | DOT2@[224; 226) ".." | 187 | DOT2@224..226 ".." |
188 | R_PAREN@[226; 227) ")" | 188 | R_PAREN@226..227 ")" |
189 | WHITESPACE@[227; 228) " " | 189 | WHITESPACE@227..228 " " |
190 | EQ@[228; 229) "=" | 190 | EQ@228..229 "=" |
191 | WHITESPACE@[229; 230) " " | 191 | WHITESPACE@229..230 " " |
192 | TUPLE_EXPR@[230; 232) | 192 | TUPLE_EXPR@230..232 |
193 | L_PAREN@[230; 231) "(" | 193 | L_PAREN@230..231 "(" |
194 | R_PAREN@[231; 232) ")" | 194 | R_PAREN@231..232 ")" |
195 | SEMICOLON@[232; 233) ";" | 195 | SEMICOLON@232..233 ";" |
196 | WHITESPACE@[233; 238) "\n " | 196 | WHITESPACE@233..238 "\n " |
197 | LET_STMT@[238; 264) | 197 | LET_STMT@238..264 |
198 | LET_KW@[238; 241) "let" | 198 | LET_KW@238..241 "let" |
199 | WHITESPACE@[241; 242) " " | 199 | WHITESPACE@241..242 " " |
200 | TUPLE_STRUCT_PAT@[242; 258) | 200 | TUPLE_STRUCT_PAT@242..258 |
201 | PATH@[242; 247) | 201 | PATH@242..247 |
202 | PATH_SEGMENT@[242; 247) | 202 | PATH_SEGMENT@242..247 |
203 | NAME_REF@[242; 247) | 203 | NAME_REF@242..247 |
204 | IDENT@[242; 247) "Tuple" | 204 | IDENT@242..247 "Tuple" |
205 | L_PAREN@[247; 248) "(" | 205 | L_PAREN@247..248 "(" |
206 | DOT_DOT_PAT@[248; 250) | 206 | DOT_DOT_PAT@248..250 |
207 | DOT2@[248; 250) ".." | 207 | DOT2@248..250 ".." |
208 | COMMA@[250; 251) "," | 208 | COMMA@250..251 "," |
209 | WHITESPACE@[251; 252) " " | 209 | WHITESPACE@251..252 " " |
210 | BIND_PAT@[252; 253) | 210 | BIND_PAT@252..253 |
211 | NAME@[252; 253) | 211 | NAME@252..253 |
212 | IDENT@[252; 253) "a" | 212 | IDENT@252..253 "a" |
213 | COMMA@[253; 254) "," | 213 | COMMA@253..254 "," |
214 | WHITESPACE@[254; 255) " " | 214 | WHITESPACE@254..255 " " |
215 | DOT_DOT_PAT@[255; 257) | 215 | DOT_DOT_PAT@255..257 |
216 | DOT2@[255; 257) ".." | 216 | DOT2@255..257 ".." |
217 | R_PAREN@[257; 258) ")" | 217 | R_PAREN@257..258 ")" |
218 | WHITESPACE@[258; 259) " " | 218 | WHITESPACE@258..259 " " |
219 | EQ@[259; 260) "=" | 219 | EQ@259..260 "=" |
220 | WHITESPACE@[260; 261) " " | 220 | WHITESPACE@260..261 " " |
221 | TUPLE_EXPR@[261; 263) | 221 | TUPLE_EXPR@261..263 |
222 | L_PAREN@[261; 262) "(" | 222 | L_PAREN@261..262 "(" |
223 | R_PAREN@[262; 263) ")" | 223 | R_PAREN@262..263 ")" |
224 | SEMICOLON@[263; 264) ";" | 224 | SEMICOLON@263..264 ";" |
225 | WHITESPACE@[264; 269) "\n " | 225 | WHITESPACE@264..269 "\n " |
226 | COMMENT@[269; 271) "//" | 226 | COMMENT@269..271 "//" |
227 | WHITESPACE@[271; 276) "\n " | 227 | WHITESPACE@271..276 "\n " |
228 | COMMENT@[276; 285) "// Slices" | 228 | COMMENT@276..285 "// Slices" |
229 | WHITESPACE@[285; 290) "\n " | 229 | WHITESPACE@285..290 "\n " |
230 | COMMENT@[290; 292) "//" | 230 | COMMENT@290..292 "//" |
231 | WHITESPACE@[292; 297) "\n " | 231 | WHITESPACE@292..297 "\n " |
232 | LET_STMT@[297; 311) | 232 | LET_STMT@297..311 |
233 | LET_KW@[297; 300) "let" | 233 | LET_KW@297..300 "let" |
234 | WHITESPACE@[300; 301) " " | 234 | WHITESPACE@300..301 " " |
235 | SLICE_PAT@[301; 305) | 235 | SLICE_PAT@301..305 |
236 | L_BRACK@[301; 302) "[" | 236 | L_BRACK@301..302 "[" |
237 | DOT_DOT_PAT@[302; 304) | 237 | DOT_DOT_PAT@302..304 |
238 | DOT2@[302; 304) ".." | 238 | DOT2@302..304 ".." |
239 | R_BRACK@[304; 305) "]" | 239 | R_BRACK@304..305 "]" |
240 | WHITESPACE@[305; 306) " " | 240 | WHITESPACE@305..306 " " |
241 | EQ@[306; 307) "=" | 241 | EQ@306..307 "=" |
242 | WHITESPACE@[307; 308) " " | 242 | WHITESPACE@307..308 " " |
243 | TUPLE_EXPR@[308; 310) | 243 | TUPLE_EXPR@308..310 |
244 | L_PAREN@[308; 309) "(" | 244 | L_PAREN@308..309 "(" |
245 | R_PAREN@[309; 310) ")" | 245 | R_PAREN@309..310 ")" |
246 | SEMICOLON@[310; 311) ";" | 246 | SEMICOLON@310..311 ";" |
247 | WHITESPACE@[311; 316) "\n " | 247 | WHITESPACE@311..316 "\n " |
248 | LET_STMT@[316; 336) | 248 | LET_STMT@316..336 |
249 | LET_KW@[316; 319) "let" | 249 | LET_KW@316..319 "let" |
250 | WHITESPACE@[319; 320) " " | 250 | WHITESPACE@319..320 " " |
251 | SLICE_PAT@[320; 330) | 251 | SLICE_PAT@320..330 |
252 | L_BRACK@[320; 321) "[" | 252 | L_BRACK@320..321 "[" |
253 | BIND_PAT@[321; 325) | 253 | BIND_PAT@321..325 |
254 | NAME@[321; 325) | 254 | NAME@321..325 |
255 | IDENT@[321; 325) "head" | 255 | IDENT@321..325 "head" |
256 | COMMA@[325; 326) "," | 256 | COMMA@325..326 "," |
257 | WHITESPACE@[326; 327) " " | 257 | WHITESPACE@326..327 " " |
258 | DOT_DOT_PAT@[327; 329) | 258 | DOT_DOT_PAT@327..329 |
259 | DOT2@[327; 329) ".." | 259 | DOT2@327..329 ".." |
260 | R_BRACK@[329; 330) "]" | 260 | R_BRACK@329..330 "]" |
261 | WHITESPACE@[330; 331) " " | 261 | WHITESPACE@330..331 " " |
262 | EQ@[331; 332) "=" | 262 | EQ@331..332 "=" |
263 | WHITESPACE@[332; 333) " " | 263 | WHITESPACE@332..333 " " |
264 | TUPLE_EXPR@[333; 335) | 264 | TUPLE_EXPR@333..335 |
265 | L_PAREN@[333; 334) "(" | 265 | L_PAREN@333..334 "(" |
266 | R_PAREN@[334; 335) ")" | 266 | R_PAREN@334..335 ")" |
267 | SEMICOLON@[335; 336) ";" | 267 | SEMICOLON@335..336 ";" |
268 | WHITESPACE@[336; 341) "\n " | 268 | WHITESPACE@336..341 "\n " |
269 | LET_STMT@[341; 368) | 269 | LET_STMT@341..368 |
270 | LET_KW@[341; 344) "let" | 270 | LET_KW@341..344 "let" |
271 | WHITESPACE@[344; 345) " " | 271 | WHITESPACE@344..345 " " |
272 | SLICE_PAT@[345; 362) | 272 | SLICE_PAT@345..362 |
273 | L_BRACK@[345; 346) "[" | 273 | L_BRACK@345..346 "[" |
274 | BIND_PAT@[346; 350) | 274 | BIND_PAT@346..350 |
275 | NAME@[346; 350) | 275 | NAME@346..350 |
276 | IDENT@[346; 350) "head" | 276 | IDENT@346..350 "head" |
277 | COMMA@[350; 351) "," | 277 | COMMA@350..351 "," |
278 | WHITESPACE@[351; 352) " " | 278 | WHITESPACE@351..352 " " |
279 | BIND_PAT@[352; 361) | 279 | BIND_PAT@352..361 |
280 | NAME@[352; 356) | 280 | NAME@352..356 |
281 | IDENT@[352; 356) "tail" | 281 | IDENT@352..356 "tail" |
282 | WHITESPACE@[356; 357) " " | 282 | WHITESPACE@356..357 " " |
283 | AT@[357; 358) "@" | 283 | AT@357..358 "@" |
284 | WHITESPACE@[358; 359) " " | 284 | WHITESPACE@358..359 " " |
285 | DOT_DOT_PAT@[359; 361) | 285 | DOT_DOT_PAT@359..361 |
286 | DOT2@[359; 361) ".." | 286 | DOT2@359..361 ".." |
287 | R_BRACK@[361; 362) "]" | 287 | R_BRACK@361..362 "]" |
288 | WHITESPACE@[362; 363) " " | 288 | WHITESPACE@362..363 " " |
289 | EQ@[363; 364) "=" | 289 | EQ@363..364 "=" |
290 | WHITESPACE@[364; 365) " " | 290 | WHITESPACE@364..365 " " |
291 | TUPLE_EXPR@[365; 367) | 291 | TUPLE_EXPR@365..367 |
292 | L_PAREN@[365; 366) "(" | 292 | L_PAREN@365..366 "(" |
293 | R_PAREN@[366; 367) ")" | 293 | R_PAREN@366..367 ")" |
294 | SEMICOLON@[367; 368) ";" | 294 | SEMICOLON@367..368 ";" |
295 | WHITESPACE@[368; 373) "\n " | 295 | WHITESPACE@368..373 "\n " |
296 | LET_STMT@[373; 399) | 296 | LET_STMT@373..399 |
297 | LET_KW@[373; 376) "let" | 297 | LET_KW@373..376 "let" |
298 | WHITESPACE@[376; 377) " " | 298 | WHITESPACE@376..377 " " |
299 | SLICE_PAT@[377; 393) | 299 | SLICE_PAT@377..393 |
300 | L_BRACK@[377; 378) "[" | 300 | L_BRACK@377..378 "[" |
301 | BIND_PAT@[378; 382) | 301 | BIND_PAT@378..382 |
302 | NAME@[378; 382) | 302 | NAME@378..382 |
303 | IDENT@[378; 382) "head" | 303 | IDENT@378..382 "head" |
304 | COMMA@[382; 383) "," | 304 | COMMA@382..383 "," |
305 | WHITESPACE@[383; 384) " " | 305 | WHITESPACE@383..384 " " |
306 | DOT_DOT_PAT@[384; 386) | 306 | DOT_DOT_PAT@384..386 |
307 | DOT2@[384; 386) ".." | 307 | DOT2@384..386 ".." |
308 | COMMA@[386; 387) "," | 308 | COMMA@386..387 "," |
309 | WHITESPACE@[387; 388) " " | 309 | WHITESPACE@387..388 " " |
310 | BIND_PAT@[388; 392) | 310 | BIND_PAT@388..392 |
311 | NAME@[388; 392) | 311 | NAME@388..392 |
312 | IDENT@[388; 392) "cons" | 312 | IDENT@388..392 "cons" |
313 | R_BRACK@[392; 393) "]" | 313 | R_BRACK@392..393 "]" |
314 | WHITESPACE@[393; 394) " " | 314 | WHITESPACE@393..394 " " |
315 | EQ@[394; 395) "=" | 315 | EQ@394..395 "=" |
316 | WHITESPACE@[395; 396) " " | 316 | WHITESPACE@395..396 " " |
317 | TUPLE_EXPR@[396; 398) | 317 | TUPLE_EXPR@396..398 |
318 | L_PAREN@[396; 397) "(" | 318 | L_PAREN@396..397 "(" |
319 | R_PAREN@[397; 398) ")" | 319 | R_PAREN@397..398 ")" |
320 | SEMICOLON@[398; 399) ";" | 320 | SEMICOLON@398..399 ";" |
321 | WHITESPACE@[399; 404) "\n " | 321 | WHITESPACE@399..404 "\n " |
322 | LET_STMT@[404; 436) | 322 | LET_STMT@404..436 |
323 | LET_KW@[404; 407) "let" | 323 | LET_KW@404..407 "let" |
324 | WHITESPACE@[407; 408) " " | 324 | WHITESPACE@407..408 " " |
325 | SLICE_PAT@[408; 430) | 325 | SLICE_PAT@408..430 |
326 | L_BRACK@[408; 409) "[" | 326 | L_BRACK@408..409 "[" |
327 | BIND_PAT@[409; 413) | 327 | BIND_PAT@409..413 |
328 | NAME@[409; 413) | 328 | NAME@409..413 |
329 | IDENT@[409; 413) "head" | 329 | IDENT@409..413 "head" |
330 | COMMA@[413; 414) "," | 330 | COMMA@413..414 "," |
331 | WHITESPACE@[414; 415) " " | 331 | WHITESPACE@414..415 " " |
332 | BIND_PAT@[415; 423) | 332 | BIND_PAT@415..423 |
333 | NAME@[415; 418) | 333 | NAME@415..418 |
334 | IDENT@[415; 418) "mid" | 334 | IDENT@415..418 "mid" |
335 | WHITESPACE@[418; 419) " " | 335 | WHITESPACE@418..419 " " |
336 | AT@[419; 420) "@" | 336 | AT@419..420 "@" |
337 | WHITESPACE@[420; 421) " " | 337 | WHITESPACE@420..421 " " |
338 | DOT_DOT_PAT@[421; 423) | 338 | DOT_DOT_PAT@421..423 |
339 | DOT2@[421; 423) ".." | 339 | DOT2@421..423 ".." |
340 | COMMA@[423; 424) "," | 340 | COMMA@423..424 "," |
341 | WHITESPACE@[424; 425) " " | 341 | WHITESPACE@424..425 " " |
342 | BIND_PAT@[425; 429) | 342 | BIND_PAT@425..429 |
343 | NAME@[425; 429) | 343 | NAME@425..429 |
344 | IDENT@[425; 429) "cons" | 344 | IDENT@425..429 "cons" |
345 | R_BRACK@[429; 430) "]" | 345 | R_BRACK@429..430 "]" |
346 | WHITESPACE@[430; 431) " " | 346 | WHITESPACE@430..431 " " |
347 | EQ@[431; 432) "=" | 347 | EQ@431..432 "=" |
348 | WHITESPACE@[432; 433) " " | 348 | WHITESPACE@432..433 " " |
349 | TUPLE_EXPR@[433; 435) | 349 | TUPLE_EXPR@433..435 |
350 | L_PAREN@[433; 434) "(" | 350 | L_PAREN@433..434 "(" |
351 | R_PAREN@[434; 435) ")" | 351 | R_PAREN@434..435 ")" |
352 | SEMICOLON@[435; 436) ";" | 352 | SEMICOLON@435..436 ";" |
353 | WHITESPACE@[436; 441) "\n " | 353 | WHITESPACE@436..441 "\n " |
354 | LET_STMT@[441; 471) | 354 | LET_STMT@441..471 |
355 | LET_KW@[441; 444) "let" | 355 | LET_KW@441..444 "let" |
356 | WHITESPACE@[444; 445) " " | 356 | WHITESPACE@444..445 " " |
357 | SLICE_PAT@[445; 465) | 357 | SLICE_PAT@445..465 |
358 | L_BRACK@[445; 446) "[" | 358 | L_BRACK@445..446 "[" |
359 | BIND_PAT@[446; 450) | 359 | BIND_PAT@446..450 |
360 | NAME@[446; 450) | 360 | NAME@446..450 |
361 | IDENT@[446; 450) "head" | 361 | IDENT@446..450 "head" |
362 | COMMA@[450; 451) "," | 362 | COMMA@450..451 "," |
363 | WHITESPACE@[451; 452) " " | 363 | WHITESPACE@451..452 " " |
364 | DOT_DOT_PAT@[452; 454) | 364 | DOT_DOT_PAT@452..454 |
365 | DOT2@[452; 454) ".." | 365 | DOT2@452..454 ".." |
366 | COMMA@[454; 455) "," | 366 | COMMA@454..455 "," |
367 | WHITESPACE@[455; 456) " " | 367 | WHITESPACE@455..456 " " |
368 | DOT_DOT_PAT@[456; 458) | 368 | DOT_DOT_PAT@456..458 |
369 | DOT2@[456; 458) ".." | 369 | DOT2@456..458 ".." |
370 | COMMA@[458; 459) "," | 370 | COMMA@458..459 "," |
371 | WHITESPACE@[459; 460) " " | 371 | WHITESPACE@459..460 " " |
372 | BIND_PAT@[460; 464) | 372 | BIND_PAT@460..464 |
373 | NAME@[460; 464) | 373 | NAME@460..464 |
374 | IDENT@[460; 464) "cons" | 374 | IDENT@460..464 "cons" |
375 | R_BRACK@[464; 465) "]" | 375 | R_BRACK@464..465 "]" |
376 | WHITESPACE@[465; 466) " " | 376 | WHITESPACE@465..466 " " |
377 | EQ@[466; 467) "=" | 377 | EQ@466..467 "=" |
378 | WHITESPACE@[467; 468) " " | 378 | WHITESPACE@467..468 " " |
379 | TUPLE_EXPR@[468; 470) | 379 | TUPLE_EXPR@468..470 |
380 | L_PAREN@[468; 469) "(" | 380 | L_PAREN@468..469 "(" |
381 | R_PAREN@[469; 470) ")" | 381 | R_PAREN@469..470 ")" |
382 | SEMICOLON@[470; 471) ";" | 382 | SEMICOLON@470..471 ";" |
383 | WHITESPACE@[471; 476) "\n " | 383 | WHITESPACE@471..476 "\n " |
384 | LET_STMT@[476; 512) | 384 | LET_STMT@476..512 |
385 | LET_KW@[476; 479) "let" | 385 | LET_KW@476..479 "let" |
386 | WHITESPACE@[479; 480) " " | 386 | WHITESPACE@479..480 " " |
387 | SLICE_PAT@[480; 506) | 387 | SLICE_PAT@480..506 |
388 | L_BRACK@[480; 481) "[" | 388 | L_BRACK@480..481 "[" |
389 | BIND_PAT@[481; 485) | 389 | BIND_PAT@481..485 |
390 | NAME@[481; 485) | 390 | NAME@481..485 |
391 | IDENT@[481; 485) "head" | 391 | IDENT@481..485 "head" |
392 | COMMA@[485; 486) "," | 392 | COMMA@485..486 "," |
393 | WHITESPACE@[486; 487) " " | 393 | WHITESPACE@486..487 " " |
394 | DOT_DOT_PAT@[487; 489) | 394 | DOT_DOT_PAT@487..489 |
395 | DOT2@[487; 489) ".." | 395 | DOT2@487..489 ".." |
396 | COMMA@[489; 490) "," | 396 | COMMA@489..490 "," |
397 | WHITESPACE@[490; 491) " " | 397 | WHITESPACE@490..491 " " |
398 | BIND_PAT@[491; 494) | 398 | BIND_PAT@491..494 |
399 | NAME@[491; 494) | 399 | NAME@491..494 |
400 | IDENT@[491; 494) "mid" | 400 | IDENT@491..494 "mid" |
401 | COMMA@[494; 495) "," | 401 | COMMA@494..495 "," |
402 | WHITESPACE@[495; 496) " " | 402 | WHITESPACE@495..496 " " |
403 | BIND_PAT@[496; 505) | 403 | BIND_PAT@496..505 |
404 | NAME@[496; 500) | 404 | NAME@496..500 |
405 | IDENT@[496; 500) "tail" | 405 | IDENT@496..500 "tail" |
406 | WHITESPACE@[500; 501) " " | 406 | WHITESPACE@500..501 " " |
407 | AT@[501; 502) "@" | 407 | AT@501..502 "@" |
408 | WHITESPACE@[502; 503) " " | 408 | WHITESPACE@502..503 " " |
409 | DOT_DOT_PAT@[503; 505) | 409 | DOT_DOT_PAT@503..505 |
410 | DOT2@[503; 505) ".." | 410 | DOT2@503..505 ".." |
411 | R_BRACK@[505; 506) "]" | 411 | R_BRACK@505..506 "]" |
412 | WHITESPACE@[506; 507) " " | 412 | WHITESPACE@506..507 " " |
413 | EQ@[507; 508) "=" | 413 | EQ@507..508 "=" |
414 | WHITESPACE@[508; 509) " " | 414 | WHITESPACE@508..509 " " |
415 | TUPLE_EXPR@[509; 511) | 415 | TUPLE_EXPR@509..511 |
416 | L_PAREN@[509; 510) "(" | 416 | L_PAREN@509..510 "(" |
417 | R_PAREN@[510; 511) ")" | 417 | R_PAREN@510..511 ")" |
418 | SEMICOLON@[511; 512) ";" | 418 | SEMICOLON@511..512 ";" |
419 | WHITESPACE@[512; 517) "\n " | 419 | WHITESPACE@512..517 "\n " |
420 | LET_STMT@[517; 552) | 420 | LET_STMT@517..552 |
421 | LET_KW@[517; 520) "let" | 421 | LET_KW@517..520 "let" |
422 | WHITESPACE@[520; 521) " " | 422 | WHITESPACE@520..521 " " |
423 | SLICE_PAT@[521; 546) | 423 | SLICE_PAT@521..546 |
424 | L_BRACK@[521; 522) "[" | 424 | L_BRACK@521..522 "[" |
425 | BIND_PAT@[522; 526) | 425 | BIND_PAT@522..526 |
426 | NAME@[522; 526) | 426 | NAME@522..526 |
427 | IDENT@[522; 526) "head" | 427 | IDENT@522..526 "head" |
428 | COMMA@[526; 527) "," | 428 | COMMA@526..527 "," |
429 | WHITESPACE@[527; 528) " " | 429 | WHITESPACE@527..528 " " |
430 | DOT_DOT_PAT@[528; 530) | 430 | DOT_DOT_PAT@528..530 |
431 | DOT2@[528; 530) ".." | 431 | DOT2@528..530 ".." |
432 | COMMA@[530; 531) "," | 432 | COMMA@530..531 "," |
433 | WHITESPACE@[531; 532) " " | 433 | WHITESPACE@531..532 " " |
434 | BIND_PAT@[532; 535) | 434 | BIND_PAT@532..535 |
435 | NAME@[532; 535) | 435 | NAME@532..535 |
436 | IDENT@[532; 535) "mid" | 436 | IDENT@532..535 "mid" |
437 | COMMA@[535; 536) "," | 437 | COMMA@535..536 "," |
438 | WHITESPACE@[536; 537) " " | 438 | WHITESPACE@536..537 " " |
439 | DOT_DOT_PAT@[537; 539) | 439 | DOT_DOT_PAT@537..539 |
440 | DOT2@[537; 539) ".." | 440 | DOT2@537..539 ".." |
441 | COMMA@[539; 540) "," | 441 | COMMA@539..540 "," |
442 | WHITESPACE@[540; 541) " " | 442 | WHITESPACE@540..541 " " |
443 | BIND_PAT@[541; 545) | 443 | BIND_PAT@541..545 |
444 | NAME@[541; 545) | 444 | NAME@541..545 |
445 | IDENT@[541; 545) "cons" | 445 | IDENT@541..545 "cons" |
446 | R_BRACK@[545; 546) "]" | 446 | R_BRACK@545..546 "]" |
447 | WHITESPACE@[546; 547) " " | 447 | WHITESPACE@546..547 " " |
448 | EQ@[547; 548) "=" | 448 | EQ@547..548 "=" |
449 | WHITESPACE@[548; 549) " " | 449 | WHITESPACE@548..549 " " |
450 | TUPLE_EXPR@[549; 551) | 450 | TUPLE_EXPR@549..551 |
451 | L_PAREN@[549; 550) "(" | 451 | L_PAREN@549..550 "(" |
452 | R_PAREN@[550; 551) ")" | 452 | R_PAREN@550..551 ")" |
453 | SEMICOLON@[551; 552) ";" | 453 | SEMICOLON@551..552 ";" |
454 | WHITESPACE@[552; 553) "\n" | 454 | WHITESPACE@552..553 "\n" |
455 | R_CURLY@[553; 554) "}" | 455 | R_CURLY@553..554 "}" |
456 | WHITESPACE@[554; 555) "\n" | 456 | WHITESPACE@554..555 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast index cac2ffdcf..10434b637 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast | |||
@@ -1,76 +1,76 @@ | |||
1 | SOURCE_FILE@[0; 63) | 1 | SOURCE_FILE@0..63 |
2 | FN_DEF@[0; 62) | 2 | FN_DEF@0..62 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 62) | 11 | BLOCK_EXPR@9..62 |
12 | BLOCK@[9; 62) | 12 | BLOCK@9..62 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 35) | 15 | LET_STMT@15..35 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | RECORD_PAT@[19; 29) | 18 | RECORD_PAT@19..29 |
19 | PATH@[19; 20) | 19 | PATH@19..20 |
20 | PATH_SEGMENT@[19; 20) | 20 | PATH_SEGMENT@19..20 |
21 | NAME_REF@[19; 20) | 21 | NAME_REF@19..20 |
22 | IDENT@[19; 20) "S" | 22 | IDENT@19..20 "S" |
23 | WHITESPACE@[20; 21) " " | 23 | WHITESPACE@20..21 " " |
24 | RECORD_FIELD_PAT_LIST@[21; 29) | 24 | RECORD_FIELD_PAT_LIST@21..29 |
25 | L_CURLY@[21; 22) "{" | 25 | L_CURLY@21..22 "{" |
26 | WHITESPACE@[22; 23) " " | 26 | WHITESPACE@22..23 " " |
27 | RECORD_FIELD_PAT@[23; 27) | 27 | RECORD_FIELD_PAT@23..27 |
28 | NAME_REF@[23; 24) | 28 | NAME_REF@23..24 |
29 | INT_NUMBER@[23; 24) "0" | 29 | INT_NUMBER@23..24 "0" |
30 | COLON@[24; 25) ":" | 30 | COLON@24..25 ":" |
31 | WHITESPACE@[25; 26) " " | 31 | WHITESPACE@25..26 " " |
32 | LITERAL_PAT@[26; 27) | 32 | LITERAL_PAT@26..27 |
33 | LITERAL@[26; 27) | 33 | LITERAL@26..27 |
34 | INT_NUMBER@[26; 27) "1" | 34 | INT_NUMBER@26..27 "1" |
35 | WHITESPACE@[27; 28) " " | 35 | WHITESPACE@27..28 " " |
36 | R_CURLY@[28; 29) "}" | 36 | R_CURLY@28..29 "}" |
37 | WHITESPACE@[29; 30) " " | 37 | WHITESPACE@29..30 " " |
38 | EQ@[30; 31) "=" | 38 | EQ@30..31 "=" |
39 | WHITESPACE@[31; 32) " " | 39 | WHITESPACE@31..32 " " |
40 | TUPLE_EXPR@[32; 34) | 40 | TUPLE_EXPR@32..34 |
41 | L_PAREN@[32; 33) "(" | 41 | L_PAREN@32..33 "(" |
42 | R_PAREN@[33; 34) ")" | 42 | R_PAREN@33..34 ")" |
43 | SEMICOLON@[34; 35) ";" | 43 | SEMICOLON@34..35 ";" |
44 | WHITESPACE@[35; 40) "\n " | 44 | WHITESPACE@35..40 "\n " |
45 | LET_STMT@[40; 60) | 45 | LET_STMT@40..60 |
46 | LET_KW@[40; 43) "let" | 46 | LET_KW@40..43 "let" |
47 | WHITESPACE@[43; 44) " " | 47 | WHITESPACE@43..44 " " |
48 | RECORD_PAT@[44; 54) | 48 | RECORD_PAT@44..54 |
49 | PATH@[44; 45) | 49 | PATH@44..45 |
50 | PATH_SEGMENT@[44; 45) | 50 | PATH_SEGMENT@44..45 |
51 | NAME_REF@[44; 45) | 51 | NAME_REF@44..45 |
52 | IDENT@[44; 45) "S" | 52 | IDENT@44..45 "S" |
53 | WHITESPACE@[45; 46) " " | 53 | WHITESPACE@45..46 " " |
54 | RECORD_FIELD_PAT_LIST@[46; 54) | 54 | RECORD_FIELD_PAT_LIST@46..54 |
55 | L_CURLY@[46; 47) "{" | 55 | L_CURLY@46..47 "{" |
56 | WHITESPACE@[47; 48) " " | 56 | WHITESPACE@47..48 " " |
57 | RECORD_FIELD_PAT@[48; 52) | 57 | RECORD_FIELD_PAT@48..52 |
58 | NAME_REF@[48; 49) | 58 | NAME_REF@48..49 |
59 | IDENT@[48; 49) "x" | 59 | IDENT@48..49 "x" |
60 | COLON@[49; 50) ":" | 60 | COLON@49..50 ":" |
61 | WHITESPACE@[50; 51) " " | 61 | WHITESPACE@50..51 " " |
62 | LITERAL_PAT@[51; 52) | 62 | LITERAL_PAT@51..52 |
63 | LITERAL@[51; 52) | 63 | LITERAL@51..52 |
64 | INT_NUMBER@[51; 52) "1" | 64 | INT_NUMBER@51..52 "1" |
65 | WHITESPACE@[52; 53) " " | 65 | WHITESPACE@52..53 " " |
66 | R_CURLY@[53; 54) "}" | 66 | R_CURLY@53..54 "}" |
67 | WHITESPACE@[54; 55) " " | 67 | WHITESPACE@54..55 " " |
68 | EQ@[55; 56) "=" | 68 | EQ@55..56 "=" |
69 | WHITESPACE@[56; 57) " " | 69 | WHITESPACE@56..57 " " |
70 | TUPLE_EXPR@[57; 59) | 70 | TUPLE_EXPR@57..59 |
71 | L_PAREN@[57; 58) "(" | 71 | L_PAREN@57..58 "(" |
72 | R_PAREN@[58; 59) ")" | 72 | R_PAREN@58..59 ")" |
73 | SEMICOLON@[59; 60) ";" | 73 | SEMICOLON@59..60 ";" |
74 | WHITESPACE@[60; 61) "\n" | 74 | WHITESPACE@60..61 "\n" |
75 | R_CURLY@[61; 62) "}" | 75 | R_CURLY@61..62 "}" |
76 | WHITESPACE@[62; 63) "\n" | 76 | WHITESPACE@62..63 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast index d2f6d8fde..66ad546b9 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 43) | 1 | SOURCE_FILE@0..43 |
2 | FN_DEF@[0; 42) | 2 | FN_DEF@0..42 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 42) | 11 | BLOCK_EXPR@9..42 |
12 | BLOCK@[9; 42) | 12 | BLOCK@9..42 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | LET_STMT@[15; 40) | 15 | LET_STMT@15..40 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | PLACEHOLDER_PAT@[19; 20) | 18 | PLACEHOLDER_PAT@19..20 |
19 | UNDERSCORE@[19; 20) "_" | 19 | UNDERSCORE@19..20 "_" |
20 | WHITESPACE@[20; 21) " " | 20 | WHITESPACE@20..21 " " |
21 | EQ@[21; 22) "=" | 21 | EQ@21..22 "=" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | CAST_EXPR@[23; 39) | 23 | CAST_EXPR@23..39 |
24 | REF_EXPR@[23; 25) | 24 | REF_EXPR@23..25 |
25 | AMP@[23; 24) "&" | 25 | AMP@23..24 "&" |
26 | LITERAL@[24; 25) | 26 | LITERAL@24..25 |
27 | INT_NUMBER@[24; 25) "1" | 27 | INT_NUMBER@24..25 "1" |
28 | WHITESPACE@[25; 26) " " | 28 | WHITESPACE@25..26 " " |
29 | AS_KW@[26; 28) "as" | 29 | AS_KW@26..28 "as" |
30 | WHITESPACE@[28; 29) " " | 30 | WHITESPACE@28..29 " " |
31 | POINTER_TYPE@[29; 39) | 31 | POINTER_TYPE@29..39 |
32 | STAR@[29; 30) "*" | 32 | STAR@29..30 "*" |
33 | CONST_KW@[30; 35) "const" | 33 | CONST_KW@30..35 "const" |
34 | WHITESPACE@[35; 36) " " | 34 | WHITESPACE@35..36 " " |
35 | PATH_TYPE@[36; 39) | 35 | PATH_TYPE@36..39 |
36 | PATH@[36; 39) | 36 | PATH@36..39 |
37 | PATH_SEGMENT@[36; 39) | 37 | PATH_SEGMENT@36..39 |
38 | NAME_REF@[36; 39) | 38 | NAME_REF@36..39 |
39 | IDENT@[36; 39) "i32" | 39 | IDENT@36..39 "i32" |
40 | SEMICOLON@[39; 40) ";" | 40 | SEMICOLON@39..40 ";" |
41 | WHITESPACE@[40; 41) "\n" | 41 | WHITESPACE@40..41 "\n" |
42 | R_CURLY@[41; 42) "}" | 42 | R_CURLY@41..42 "}" |
43 | WHITESPACE@[42; 43) "\n" | 43 | WHITESPACE@42..43 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast index 21161f7bf..4b9b8e0ab 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast | |||
@@ -1,23 +1,23 @@ | |||
1 | SOURCE_FILE@[0; 24) | 1 | SOURCE_FILE@0..24 |
2 | STRUCT_DEF@[0; 23) | 2 | STRUCT_DEF@0..23 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | TYPE_PARAM_LIST@[8; 22) | 7 | TYPE_PARAM_LIST@8..22 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | CONST_PARAM@[9; 21) | 9 | CONST_PARAM@9..21 |
10 | CONST_KW@[9; 14) "const" | 10 | CONST_KW@9..14 "const" |
11 | WHITESPACE@[14; 15) " " | 11 | WHITESPACE@14..15 " " |
12 | NAME@[15; 16) | 12 | NAME@15..16 |
13 | IDENT@[15; 16) "N" | 13 | IDENT@15..16 "N" |
14 | COLON@[16; 17) ":" | 14 | COLON@16..17 ":" |
15 | WHITESPACE@[17; 18) " " | 15 | WHITESPACE@17..18 " " |
16 | PATH_TYPE@[18; 21) | 16 | PATH_TYPE@18..21 |
17 | PATH@[18; 21) | 17 | PATH@18..21 |
18 | PATH_SEGMENT@[18; 21) | 18 | PATH_SEGMENT@18..21 |
19 | NAME_REF@[18; 21) | 19 | NAME_REF@18..21 |
20 | IDENT@[18; 21) "u32" | 20 | IDENT@18..21 "u32" |
21 | R_ANGLE@[21; 22) ">" | 21 | R_ANGLE@21..22 ">" |
22 | SEMICOLON@[22; 23) ";" | 22 | SEMICOLON@22..23 ";" |
23 | WHITESPACE@[23; 24) "\n" | 23 | WHITESPACE@23..24 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast index 3556099bd..6655aeab1 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast | |||
@@ -1,45 +1,45 @@ | |||
1 | SOURCE_FILE@[0; 50) | 1 | SOURCE_FILE@0..50 |
2 | MACRO_DEF@[0; 28) | 2 | MACRO_DEF@0..28 |
3 | MACRO_KW@[0; 5) "macro" | 3 | MACRO_KW@0..5 "macro" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "m" | 6 | IDENT@6..7 "m" |
7 | WHITESPACE@[7; 8) " " | 7 | WHITESPACE@7..8 " " |
8 | TOKEN_TREE@[8; 28) | 8 | TOKEN_TREE@8..28 |
9 | L_CURLY@[8; 9) "{" | 9 | L_CURLY@8..9 "{" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | TOKEN_TREE@[10; 20) | 11 | TOKEN_TREE@10..20 |
12 | L_PAREN@[10; 11) "(" | 12 | L_PAREN@10..11 "(" |
13 | DOLLAR@[11; 12) "$" | 13 | DOLLAR@11..12 "$" |
14 | IDENT@[12; 13) "i" | 14 | IDENT@12..13 "i" |
15 | COLON@[13; 14) ":" | 15 | COLON@13..14 ":" |
16 | IDENT@[14; 19) "ident" | 16 | IDENT@14..19 "ident" |
17 | R_PAREN@[19; 20) ")" | 17 | R_PAREN@19..20 ")" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | EQ@[21; 22) "=" | 19 | EQ@21..22 "=" |
20 | R_ANGLE@[22; 23) ">" | 20 | R_ANGLE@22..23 ">" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | TOKEN_TREE@[24; 26) | 22 | TOKEN_TREE@24..26 |
23 | L_CURLY@[24; 25) "{" | 23 | L_CURLY@24..25 "{" |
24 | R_CURLY@[25; 26) "}" | 24 | R_CURLY@25..26 "}" |
25 | WHITESPACE@[26; 27) " " | 25 | WHITESPACE@26..27 " " |
26 | R_CURLY@[27; 28) "}" | 26 | R_CURLY@27..28 "}" |
27 | WHITESPACE@[28; 29) "\n" | 27 | WHITESPACE@28..29 "\n" |
28 | MACRO_DEF@[29; 49) | 28 | MACRO_DEF@29..49 |
29 | MACRO_KW@[29; 34) "macro" | 29 | MACRO_KW@29..34 "macro" |
30 | WHITESPACE@[34; 35) " " | 30 | WHITESPACE@34..35 " " |
31 | NAME@[35; 36) | 31 | NAME@35..36 |
32 | IDENT@[35; 36) "m" | 32 | IDENT@35..36 "m" |
33 | TOKEN_TREE@[36; 49) | 33 | TOKEN_TREE@36..49 |
34 | TOKEN_TREE@[36; 46) | 34 | TOKEN_TREE@36..46 |
35 | L_PAREN@[36; 37) "(" | 35 | L_PAREN@36..37 "(" |
36 | DOLLAR@[37; 38) "$" | 36 | DOLLAR@37..38 "$" |
37 | IDENT@[38; 39) "i" | 37 | IDENT@38..39 "i" |
38 | COLON@[39; 40) ":" | 38 | COLON@39..40 ":" |
39 | IDENT@[40; 45) "ident" | 39 | IDENT@40..45 "ident" |
40 | R_PAREN@[45; 46) ")" | 40 | R_PAREN@45..46 ")" |
41 | WHITESPACE@[46; 47) " " | 41 | WHITESPACE@46..47 " " |
42 | TOKEN_TREE@[47; 49) | 42 | TOKEN_TREE@47..49 |
43 | L_CURLY@[47; 48) "{" | 43 | L_CURLY@47..48 "{" |
44 | R_CURLY@[48; 49) "}" | 44 | R_CURLY@48..49 "}" |
45 | WHITESPACE@[49; 50) "\n" | 45 | WHITESPACE@49..50 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast index cfd79d9c2..1c527f60b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 24) | 1 | SOURCE_FILE@0..24 |
2 | MACRO_DEF@[0; 23) | 2 | MACRO_DEF@0..23 |
3 | VISIBILITY@[0; 3) | 3 | VISIBILITY@0..3 |
4 | PUB_KW@[0; 3) "pub" | 4 | PUB_KW@0..3 "pub" |
5 | WHITESPACE@[3; 4) " " | 5 | WHITESPACE@3..4 " " |
6 | MACRO_KW@[4; 9) "macro" | 6 | MACRO_KW@4..9 "macro" |
7 | WHITESPACE@[9; 10) " " | 7 | WHITESPACE@9..10 " " |
8 | NAME@[10; 11) | 8 | NAME@10..11 |
9 | IDENT@[10; 11) "m" | 9 | IDENT@10..11 "m" |
10 | TOKEN_TREE@[11; 23) | 10 | TOKEN_TREE@11..23 |
11 | TOKEN_TREE@[11; 20) | 11 | TOKEN_TREE@11..20 |
12 | L_PAREN@[11; 12) "(" | 12 | L_PAREN@11..12 "(" |
13 | DOLLAR@[12; 13) "$" | 13 | DOLLAR@12..13 "$" |
14 | COLON@[13; 14) ":" | 14 | COLON@13..14 ":" |
15 | IDENT@[14; 19) "ident" | 15 | IDENT@14..19 "ident" |
16 | R_PAREN@[19; 20) ")" | 16 | R_PAREN@19..20 ")" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | TOKEN_TREE@[21; 23) | 18 | TOKEN_TREE@21..23 |
19 | L_CURLY@[21; 22) "{" | 19 | L_CURLY@21..22 "{" |
20 | R_CURLY@[22; 23) "}" | 20 | R_CURLY@22..23 "}" |
21 | WHITESPACE@[23; 24) "\n" | 21 | WHITESPACE@23..24 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast index 1f297e479..3c00a2647 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast | |||
@@ -1,47 +1,47 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | CONST_DEF@[0; 39) | 2 | CONST_DEF@0..39 |
3 | CONST_KW@[0; 5) "const" | 3 | CONST_KW@0..5 "const" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "A" | 6 | IDENT@6..7 "A" |
7 | COLON@[7; 8) ":" | 7 | COLON@7..8 ":" |
8 | WHITESPACE@[8; 9) " " | 8 | WHITESPACE@8..9 " " |
9 | REFERENCE_TYPE@[9; 15) | 9 | REFERENCE_TYPE@9..15 |
10 | AMP@[9; 10) "&" | 10 | AMP@9..10 "&" |
11 | SLICE_TYPE@[10; 15) | 11 | SLICE_TYPE@10..15 |
12 | L_BRACK@[10; 11) "[" | 12 | L_BRACK@10..11 "[" |
13 | PATH_TYPE@[11; 14) | 13 | PATH_TYPE@11..14 |
14 | PATH@[11; 14) | 14 | PATH@11..14 |
15 | PATH_SEGMENT@[11; 14) | 15 | PATH_SEGMENT@11..14 |
16 | NAME_REF@[11; 14) | 16 | NAME_REF@11..14 |
17 | IDENT@[11; 14) "i64" | 17 | IDENT@11..14 "i64" |
18 | R_BRACK@[14; 15) "]" | 18 | R_BRACK@14..15 "]" |
19 | WHITESPACE@[15; 16) " " | 19 | WHITESPACE@15..16 " " |
20 | EQ@[16; 17) "=" | 20 | EQ@16..17 "=" |
21 | WHITESPACE@[17; 18) " " | 21 | WHITESPACE@17..18 " " |
22 | REF_EXPR@[18; 38) | 22 | REF_EXPR@18..38 |
23 | AMP@[18; 19) "&" | 23 | AMP@18..19 "&" |
24 | ARRAY_EXPR@[19; 38) | 24 | ARRAY_EXPR@19..38 |
25 | L_BRACK@[19; 20) "[" | 25 | L_BRACK@19..20 "[" |
26 | LITERAL@[20; 21) | 26 | LITERAL@20..21 |
27 | INT_NUMBER@[20; 21) "1" | 27 | INT_NUMBER@20..21 "1" |
28 | COMMA@[21; 22) "," | 28 | COMMA@21..22 "," |
29 | WHITESPACE@[22; 23) " " | 29 | WHITESPACE@22..23 " " |
30 | LITERAL@[23; 37) | 30 | LITERAL@23..37 |
31 | ATTR@[23; 35) | 31 | ATTR@23..35 |
32 | POUND@[23; 24) "#" | 32 | POUND@23..24 "#" |
33 | L_BRACK@[24; 25) "[" | 33 | L_BRACK@24..25 "[" |
34 | PATH@[25; 28) | 34 | PATH@25..28 |
35 | PATH_SEGMENT@[25; 28) | 35 | PATH_SEGMENT@25..28 |
36 | NAME_REF@[25; 28) | 36 | NAME_REF@25..28 |
37 | IDENT@[25; 28) "cfg" | 37 | IDENT@25..28 "cfg" |
38 | TOKEN_TREE@[28; 34) | 38 | TOKEN_TREE@28..34 |
39 | L_PAREN@[28; 29) "(" | 39 | L_PAREN@28..29 "(" |
40 | IDENT@[29; 33) "test" | 40 | IDENT@29..33 "test" |
41 | R_PAREN@[33; 34) ")" | 41 | R_PAREN@33..34 ")" |
42 | R_BRACK@[34; 35) "]" | 42 | R_BRACK@34..35 "]" |
43 | WHITESPACE@[35; 36) " " | 43 | WHITESPACE@35..36 " " |
44 | INT_NUMBER@[36; 37) "2" | 44 | INT_NUMBER@36..37 "2" |
45 | R_BRACK@[37; 38) "]" | 45 | R_BRACK@37..38 "]" |
46 | SEMICOLON@[38; 39) ";" | 46 | SEMICOLON@38..39 ";" |
47 | WHITESPACE@[39; 40) "\n" | 47 | WHITESPACE@39..40 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast index 2d46eebb3..e70c3b710 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast | |||
@@ -1,38 +1,38 @@ | |||
1 | SOURCE_FILE@[0; 29) | 1 | SOURCE_FILE@0..29 |
2 | IMPL_DEF@[0; 28) | 2 | IMPL_DEF@0..28 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | TYPE_PARAM_LIST@[4; 18) | 4 | TYPE_PARAM_LIST@4..18 |
5 | L_ANGLE@[4; 5) "<" | 5 | L_ANGLE@4..5 "<" |
6 | CONST_PARAM@[5; 17) | 6 | CONST_PARAM@5..17 |
7 | CONST_KW@[5; 10) "const" | 7 | CONST_KW@5..10 "const" |
8 | WHITESPACE@[10; 11) " " | 8 | WHITESPACE@10..11 " " |
9 | NAME@[11; 12) | 9 | NAME@11..12 |
10 | IDENT@[11; 12) "N" | 10 | IDENT@11..12 "N" |
11 | COLON@[12; 13) ":" | 11 | COLON@12..13 ":" |
12 | WHITESPACE@[13; 14) " " | 12 | WHITESPACE@13..14 " " |
13 | PATH_TYPE@[14; 17) | 13 | PATH_TYPE@14..17 |
14 | PATH@[14; 17) | 14 | PATH@14..17 |
15 | PATH_SEGMENT@[14; 17) | 15 | PATH_SEGMENT@14..17 |
16 | NAME_REF@[14; 17) | 16 | NAME_REF@14..17 |
17 | IDENT@[14; 17) "u32" | 17 | IDENT@14..17 "u32" |
18 | R_ANGLE@[17; 18) ">" | 18 | R_ANGLE@17..18 ">" |
19 | WHITESPACE@[18; 19) " " | 19 | WHITESPACE@18..19 " " |
20 | PATH_TYPE@[19; 25) | 20 | PATH_TYPE@19..25 |
21 | PATH@[19; 25) | 21 | PATH@19..25 |
22 | PATH_SEGMENT@[19; 25) | 22 | PATH_SEGMENT@19..25 |
23 | NAME_REF@[19; 22) | 23 | NAME_REF@19..22 |
24 | IDENT@[19; 22) "Bar" | 24 | IDENT@19..22 "Bar" |
25 | TYPE_ARG_LIST@[22; 25) | 25 | TYPE_ARG_LIST@22..25 |
26 | L_ANGLE@[22; 23) "<" | 26 | L_ANGLE@22..23 "<" |
27 | TYPE_ARG@[23; 24) | 27 | TYPE_ARG@23..24 |
28 | PATH_TYPE@[23; 24) | 28 | PATH_TYPE@23..24 |
29 | PATH@[23; 24) | 29 | PATH@23..24 |
30 | PATH_SEGMENT@[23; 24) | 30 | PATH_SEGMENT@23..24 |
31 | NAME_REF@[23; 24) | 31 | NAME_REF@23..24 |
32 | IDENT@[23; 24) "N" | 32 | IDENT@23..24 "N" |
33 | R_ANGLE@[24; 25) ">" | 33 | R_ANGLE@24..25 ">" |
34 | WHITESPACE@[25; 26) " " | 34 | WHITESPACE@25..26 " " |
35 | ITEM_LIST@[26; 28) | 35 | ITEM_LIST@26..28 |
36 | L_CURLY@[26; 27) "{" | 36 | L_CURLY@26..27 "{" |
37 | R_CURLY@[27; 28) "}" | 37 | R_CURLY@27..28 "}" |
38 | WHITESPACE@[28; 29) "\n" | 38 | WHITESPACE@28..29 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast index 167c0fffa..48d73a4e7 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast | |||
@@ -1,128 +1,128 @@ | |||
1 | SOURCE_FILE@[0; 83) | 1 | SOURCE_FILE@0..83 |
2 | TRAIT_DEF@[0; 18) | 2 | TRAIT_DEF@0..18 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "Z" | 6 | IDENT@6..7 "Z" |
7 | TYPE_PARAM_LIST@[7; 10) | 7 | TYPE_PARAM_LIST@7..10 |
8 | L_ANGLE@[7; 8) "<" | 8 | L_ANGLE@7..8 "<" |
9 | TYPE_PARAM@[8; 9) | 9 | TYPE_PARAM@8..9 |
10 | NAME@[8; 9) | 10 | NAME@8..9 |
11 | IDENT@[8; 9) "U" | 11 | IDENT@8..9 "U" |
12 | R_ANGLE@[9; 10) ">" | 12 | R_ANGLE@9..10 ">" |
13 | WHITESPACE@[10; 11) " " | 13 | WHITESPACE@10..11 " " |
14 | EQ@[11; 12) "=" | 14 | EQ@11..12 "=" |
15 | WHITESPACE@[12; 13) " " | 15 | WHITESPACE@12..13 " " |
16 | TYPE_BOUND_LIST@[13; 17) | 16 | TYPE_BOUND_LIST@13..17 |
17 | TYPE_BOUND@[13; 17) | 17 | TYPE_BOUND@13..17 |
18 | PATH_TYPE@[13; 17) | 18 | PATH_TYPE@13..17 |
19 | PATH@[13; 17) | 19 | PATH@13..17 |
20 | PATH_SEGMENT@[13; 17) | 20 | PATH_SEGMENT@13..17 |
21 | NAME_REF@[13; 14) | 21 | NAME_REF@13..14 |
22 | IDENT@[13; 14) "T" | 22 | IDENT@13..14 "T" |
23 | TYPE_ARG_LIST@[14; 17) | 23 | TYPE_ARG_LIST@14..17 |
24 | L_ANGLE@[14; 15) "<" | 24 | L_ANGLE@14..15 "<" |
25 | TYPE_ARG@[15; 16) | 25 | TYPE_ARG@15..16 |
26 | PATH_TYPE@[15; 16) | 26 | PATH_TYPE@15..16 |
27 | PATH@[15; 16) | 27 | PATH@15..16 |
28 | PATH_SEGMENT@[15; 16) | 28 | PATH_SEGMENT@15..16 |
29 | NAME_REF@[15; 16) | 29 | NAME_REF@15..16 |
30 | IDENT@[15; 16) "U" | 30 | IDENT@15..16 "U" |
31 | R_ANGLE@[16; 17) ">" | 31 | R_ANGLE@16..17 ">" |
32 | SEMICOLON@[17; 18) ";" | 32 | SEMICOLON@17..18 ";" |
33 | WHITESPACE@[18; 19) "\n" | 33 | WHITESPACE@18..19 "\n" |
34 | TRAIT_DEF@[19; 51) | 34 | TRAIT_DEF@19..51 |
35 | TRAIT_KW@[19; 24) "trait" | 35 | TRAIT_KW@19..24 "trait" |
36 | WHITESPACE@[24; 25) " " | 36 | WHITESPACE@24..25 " " |
37 | NAME@[25; 26) | 37 | NAME@25..26 |
38 | IDENT@[25; 26) "Z" | 38 | IDENT@25..26 "Z" |
39 | TYPE_PARAM_LIST@[26; 29) | 39 | TYPE_PARAM_LIST@26..29 |
40 | L_ANGLE@[26; 27) "<" | 40 | L_ANGLE@26..27 "<" |
41 | TYPE_PARAM@[27; 28) | 41 | TYPE_PARAM@27..28 |
42 | NAME@[27; 28) | 42 | NAME@27..28 |
43 | IDENT@[27; 28) "U" | 43 | IDENT@27..28 "U" |
44 | R_ANGLE@[28; 29) ">" | 44 | R_ANGLE@28..29 ">" |
45 | WHITESPACE@[29; 30) " " | 45 | WHITESPACE@29..30 " " |
46 | EQ@[30; 31) "=" | 46 | EQ@30..31 "=" |
47 | WHITESPACE@[31; 32) " " | 47 | WHITESPACE@31..32 " " |
48 | TYPE_BOUND_LIST@[32; 36) | 48 | TYPE_BOUND_LIST@32..36 |
49 | TYPE_BOUND@[32; 36) | 49 | TYPE_BOUND@32..36 |
50 | PATH_TYPE@[32; 36) | 50 | PATH_TYPE@32..36 |
51 | PATH@[32; 36) | 51 | PATH@32..36 |
52 | PATH_SEGMENT@[32; 36) | 52 | PATH_SEGMENT@32..36 |
53 | NAME_REF@[32; 33) | 53 | NAME_REF@32..33 |
54 | IDENT@[32; 33) "T" | 54 | IDENT@32..33 "T" |
55 | TYPE_ARG_LIST@[33; 36) | 55 | TYPE_ARG_LIST@33..36 |
56 | L_ANGLE@[33; 34) "<" | 56 | L_ANGLE@33..34 "<" |
57 | TYPE_ARG@[34; 35) | 57 | TYPE_ARG@34..35 |
58 | PATH_TYPE@[34; 35) | 58 | PATH_TYPE@34..35 |
59 | PATH@[34; 35) | 59 | PATH@34..35 |
60 | PATH_SEGMENT@[34; 35) | 60 | PATH_SEGMENT@34..35 |
61 | NAME_REF@[34; 35) | 61 | NAME_REF@34..35 |
62 | IDENT@[34; 35) "U" | 62 | IDENT@34..35 "U" |
63 | R_ANGLE@[35; 36) ">" | 63 | R_ANGLE@35..36 ">" |
64 | WHITESPACE@[36; 37) " " | 64 | WHITESPACE@36..37 " " |
65 | WHERE_CLAUSE@[37; 50) | 65 | WHERE_CLAUSE@37..50 |
66 | WHERE_KW@[37; 42) "where" | 66 | WHERE_KW@37..42 "where" |
67 | WHITESPACE@[42; 43) " " | 67 | WHITESPACE@42..43 " " |
68 | WHERE_PRED@[43; 50) | 68 | WHERE_PRED@43..50 |
69 | PATH_TYPE@[43; 44) | 69 | PATH_TYPE@43..44 |
70 | PATH@[43; 44) | 70 | PATH@43..44 |
71 | PATH_SEGMENT@[43; 44) | 71 | PATH_SEGMENT@43..44 |
72 | NAME_REF@[43; 44) | 72 | NAME_REF@43..44 |
73 | IDENT@[43; 44) "U" | 73 | IDENT@43..44 "U" |
74 | COLON@[44; 45) ":" | 74 | COLON@44..45 ":" |
75 | WHITESPACE@[45; 46) " " | 75 | WHITESPACE@45..46 " " |
76 | TYPE_BOUND_LIST@[46; 50) | 76 | TYPE_BOUND_LIST@46..50 |
77 | TYPE_BOUND@[46; 50) | 77 | TYPE_BOUND@46..50 |
78 | PATH_TYPE@[46; 50) | 78 | PATH_TYPE@46..50 |
79 | PATH@[46; 50) | 79 | PATH@46..50 |
80 | PATH_SEGMENT@[46; 50) | 80 | PATH_SEGMENT@46..50 |
81 | NAME_REF@[46; 50) | 81 | NAME_REF@46..50 |
82 | IDENT@[46; 50) "Copy" | 82 | IDENT@46..50 "Copy" |
83 | SEMICOLON@[50; 51) ";" | 83 | SEMICOLON@50..51 ";" |
84 | WHITESPACE@[51; 52) "\n" | 84 | WHITESPACE@51..52 "\n" |
85 | TRAIT_DEF@[52; 82) | 85 | TRAIT_DEF@52..82 |
86 | TRAIT_KW@[52; 57) "trait" | 86 | TRAIT_KW@52..57 "trait" |
87 | WHITESPACE@[57; 58) " " | 87 | WHITESPACE@57..58 " " |
88 | NAME@[58; 59) | 88 | NAME@58..59 |
89 | IDENT@[58; 59) "Z" | 89 | IDENT@58..59 "Z" |
90 | TYPE_PARAM_LIST@[59; 62) | 90 | TYPE_PARAM_LIST@59..62 |
91 | L_ANGLE@[59; 60) "<" | 91 | L_ANGLE@59..60 "<" |
92 | TYPE_PARAM@[60; 61) | 92 | TYPE_PARAM@60..61 |
93 | NAME@[60; 61) | 93 | NAME@60..61 |
94 | IDENT@[60; 61) "U" | 94 | IDENT@60..61 "U" |
95 | R_ANGLE@[61; 62) ">" | 95 | R_ANGLE@61..62 ">" |
96 | WHITESPACE@[62; 63) " " | 96 | WHITESPACE@62..63 " " |
97 | EQ@[63; 64) "=" | 97 | EQ@63..64 "=" |
98 | WHITESPACE@[64; 65) " " | 98 | WHITESPACE@64..65 " " |
99 | TYPE_BOUND_LIST@[65; 65) | 99 | TYPE_BOUND_LIST@65..65 |
100 | WHERE_CLAUSE@[65; 81) | 100 | WHERE_CLAUSE@65..81 |
101 | WHERE_KW@[65; 70) "where" | 101 | WHERE_KW@65..70 "where" |
102 | WHITESPACE@[70; 71) " " | 102 | WHITESPACE@70..71 " " |
103 | WHERE_PRED@[71; 81) | 103 | WHERE_PRED@71..81 |
104 | PATH_TYPE@[71; 75) | 104 | PATH_TYPE@71..75 |
105 | PATH@[71; 75) | 105 | PATH@71..75 |
106 | PATH_SEGMENT@[71; 75) | 106 | PATH_SEGMENT@71..75 |
107 | NAME_REF@[71; 75) | 107 | NAME_REF@71..75 |
108 | IDENT@[71; 75) "Self" | 108 | IDENT@71..75 "Self" |
109 | COLON@[75; 76) ":" | 109 | COLON@75..76 ":" |
110 | WHITESPACE@[76; 77) " " | 110 | WHITESPACE@76..77 " " |
111 | TYPE_BOUND_LIST@[77; 81) | 111 | TYPE_BOUND_LIST@77..81 |
112 | TYPE_BOUND@[77; 81) | 112 | TYPE_BOUND@77..81 |
113 | PATH_TYPE@[77; 81) | 113 | PATH_TYPE@77..81 |
114 | PATH@[77; 81) | 114 | PATH@77..81 |
115 | PATH_SEGMENT@[77; 81) | 115 | PATH_SEGMENT@77..81 |
116 | NAME_REF@[77; 78) | 116 | NAME_REF@77..78 |
117 | IDENT@[77; 78) "T" | 117 | IDENT@77..78 "T" |
118 | TYPE_ARG_LIST@[78; 81) | 118 | TYPE_ARG_LIST@78..81 |
119 | L_ANGLE@[78; 79) "<" | 119 | L_ANGLE@78..79 "<" |
120 | TYPE_ARG@[79; 80) | 120 | TYPE_ARG@79..80 |
121 | PATH_TYPE@[79; 80) | 121 | PATH_TYPE@79..80 |
122 | PATH@[79; 80) | 122 | PATH@79..80 |
123 | PATH_SEGMENT@[79; 80) | 123 | PATH_SEGMENT@79..80 |
124 | NAME_REF@[79; 80) | 124 | NAME_REF@79..80 |
125 | IDENT@[79; 80) "U" | 125 | IDENT@79..80 "U" |
126 | R_ANGLE@[80; 81) ">" | 126 | R_ANGLE@80..81 ">" |
127 | SEMICOLON@[81; 82) ";" | 127 | SEMICOLON@81..82 ";" |
128 | WHITESPACE@[82; 83) "\n" | 128 | WHITESPACE@82..83 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast index 8092d7009..c2e290a62 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast | |||
@@ -1,37 +1,37 @@ | |||
1 | SOURCE_FILE@[0; 34) | 1 | SOURCE_FILE@0..34 |
2 | FN_DEF@[0; 33) | 2 | FN_DEF@0..33 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 33) | 11 | BLOCK_EXPR@10..33 |
12 | BLOCK@[10; 33) | 12 | BLOCK@10..33 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | CALL_EXPR@[16; 31) | 15 | CALL_EXPR@16..31 |
16 | PATH_EXPR@[16; 19) | 16 | PATH_EXPR@16..19 |
17 | PATH@[16; 19) | 17 | PATH@16..19 |
18 | PATH_SEGMENT@[16; 19) | 18 | PATH_SEGMENT@16..19 |
19 | NAME_REF@[16; 19) | 19 | NAME_REF@16..19 |
20 | IDENT@[16; 19) "foo" | 20 | IDENT@16..19 "foo" |
21 | ARG_LIST@[19; 31) | 21 | ARG_LIST@19..31 |
22 | L_PAREN@[19; 20) "(" | 22 | L_PAREN@19..20 "(" |
23 | LITERAL@[20; 30) | 23 | LITERAL@20..30 |
24 | ATTR@[20; 27) | 24 | ATTR@20..27 |
25 | POUND@[20; 21) "#" | 25 | POUND@20..21 "#" |
26 | L_BRACK@[21; 22) "[" | 26 | L_BRACK@21..22 "[" |
27 | PATH@[22; 26) | 27 | PATH@22..26 |
28 | PATH_SEGMENT@[22; 26) | 28 | PATH_SEGMENT@22..26 |
29 | NAME_REF@[22; 26) | 29 | NAME_REF@22..26 |
30 | IDENT@[22; 26) "attr" | 30 | IDENT@22..26 "attr" |
31 | R_BRACK@[26; 27) "]" | 31 | R_BRACK@26..27 "]" |
32 | WHITESPACE@[27; 28) " " | 32 | WHITESPACE@27..28 " " |
33 | INT_NUMBER@[28; 30) "92" | 33 | INT_NUMBER@28..30 "92" |
34 | R_PAREN@[30; 31) ")" | 34 | R_PAREN@30..31 ")" |
35 | WHITESPACE@[31; 32) "\n" | 35 | WHITESPACE@31..32 "\n" |
36 | R_CURLY@[32; 33) "}" | 36 | R_CURLY@32..33 "}" |
37 | WHITESPACE@[33; 34) "\n" | 37 | WHITESPACE@33..34 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast index ee1bd361d..861065362 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast | |||
@@ -1,58 +1,58 @@ | |||
1 | SOURCE_FILE@[0; 55) | 1 | SOURCE_FILE@0..55 |
2 | TYPE_ALIAS_DEF@[0; 24) | 2 | TYPE_ALIAS_DEF@0..24 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 8) | 5 | NAME@5..8 |
6 | IDENT@[5; 8) "Foo" | 6 | IDENT@5..8 "Foo" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | EQ@[9; 10) "=" | 8 | EQ@9..10 "=" |
9 | WHITESPACE@[10; 11) " " | 9 | WHITESPACE@10..11 " " |
10 | FN_POINTER_TYPE@[11; 23) | 10 | FN_POINTER_TYPE@11..23 |
11 | FN_KW@[11; 13) "fn" | 11 | FN_KW@11..13 "fn" |
12 | PARAM_LIST@[13; 23) | 12 | PARAM_LIST@13..23 |
13 | L_PAREN@[13; 14) "(" | 13 | L_PAREN@13..14 "(" |
14 | PARAM@[14; 22) | 14 | PARAM@14..22 |
15 | PATH_TYPE@[14; 22) | 15 | PATH_TYPE@14..22 |
16 | PATH@[14; 22) | 16 | PATH@14..22 |
17 | PATH@[14; 17) | 17 | PATH@14..17 |
18 | PATH_SEGMENT@[14; 17) | 18 | PATH_SEGMENT@14..17 |
19 | NAME_REF@[14; 17) | 19 | NAME_REF@14..17 |
20 | IDENT@[14; 17) "Bar" | 20 | IDENT@14..17 "Bar" |
21 | COLON2@[17; 19) "::" | 21 | COLON2@17..19 "::" |
22 | PATH_SEGMENT@[19; 22) | 22 | PATH_SEGMENT@19..22 |
23 | NAME_REF@[19; 22) | 23 | NAME_REF@19..22 |
24 | IDENT@[19; 22) "Baz" | 24 | IDENT@19..22 "Baz" |
25 | R_PAREN@[22; 23) ")" | 25 | R_PAREN@22..23 ")" |
26 | SEMICOLON@[23; 24) ";" | 26 | SEMICOLON@23..24 ";" |
27 | WHITESPACE@[24; 25) "\n" | 27 | WHITESPACE@24..25 "\n" |
28 | TYPE_ALIAS_DEF@[25; 54) | 28 | TYPE_ALIAS_DEF@25..54 |
29 | TYPE_KW@[25; 29) "type" | 29 | TYPE_KW@25..29 "type" |
30 | WHITESPACE@[29; 30) " " | 30 | WHITESPACE@29..30 " " |
31 | NAME@[30; 33) | 31 | NAME@30..33 |
32 | IDENT@[30; 33) "Qux" | 32 | IDENT@30..33 "Qux" |
33 | WHITESPACE@[33; 34) " " | 33 | WHITESPACE@33..34 " " |
34 | EQ@[34; 35) "=" | 34 | EQ@34..35 "=" |
35 | WHITESPACE@[35; 36) " " | 35 | WHITESPACE@35..36 " " |
36 | FN_POINTER_TYPE@[36; 53) | 36 | FN_POINTER_TYPE@36..53 |
37 | FN_KW@[36; 38) "fn" | 37 | FN_KW@36..38 "fn" |
38 | PARAM_LIST@[38; 53) | 38 | PARAM_LIST@38..53 |
39 | L_PAREN@[38; 39) "(" | 39 | L_PAREN@38..39 "(" |
40 | PARAM@[39; 52) | 40 | PARAM@39..52 |
41 | BIND_PAT@[39; 42) | 41 | BIND_PAT@39..42 |
42 | NAME@[39; 42) | 42 | NAME@39..42 |
43 | IDENT@[39; 42) "baz" | 43 | IDENT@39..42 "baz" |
44 | COLON@[42; 43) ":" | 44 | COLON@42..43 ":" |
45 | WHITESPACE@[43; 44) " " | 45 | WHITESPACE@43..44 " " |
46 | PATH_TYPE@[44; 52) | 46 | PATH_TYPE@44..52 |
47 | PATH@[44; 52) | 47 | PATH@44..52 |
48 | PATH@[44; 47) | 48 | PATH@44..47 |
49 | PATH_SEGMENT@[44; 47) | 49 | PATH_SEGMENT@44..47 |
50 | NAME_REF@[44; 47) | 50 | NAME_REF@44..47 |
51 | IDENT@[44; 47) "Bar" | 51 | IDENT@44..47 "Bar" |
52 | COLON2@[47; 49) "::" | 52 | COLON2@47..49 "::" |
53 | PATH_SEGMENT@[49; 52) | 53 | PATH_SEGMENT@49..52 |
54 | NAME_REF@[49; 52) | 54 | NAME_REF@49..52 |
55 | IDENT@[49; 52) "Baz" | 55 | IDENT@49..52 "Baz" |
56 | R_PAREN@[52; 53) ")" | 56 | R_PAREN@52..53 ")" |
57 | SEMICOLON@[53; 54) ";" | 57 | SEMICOLON@53..54 ";" |
58 | WHITESPACE@[54; 55) "\n" | 58 | WHITESPACE@54..55 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast index a5f8b6480..dad3dfe4d 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast | |||
@@ -1,70 +1,70 @@ | |||
1 | SOURCE_FILE@[0; 63) | 1 | SOURCE_FILE@0..63 |
2 | FN_DEF@[0; 62) | 2 | FN_DEF@0..62 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 62) | 11 | BLOCK_EXPR@10..62 |
12 | BLOCK@[10; 62) | 12 | BLOCK@10..62 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 15) "\n " | 14 | WHITESPACE@11..15 "\n " |
15 | LET_STMT@[15; 60) | 15 | LET_STMT@15..60 |
16 | LET_KW@[15; 18) "let" | 16 | LET_KW@15..18 "let" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | BIND_PAT@[19; 22) | 18 | BIND_PAT@19..22 |
19 | NAME@[19; 22) | 19 | NAME@19..22 |
20 | IDENT@[19; 22) "foo" | 20 | IDENT@19..22 "foo" |
21 | WHITESPACE@[22; 23) " " | 21 | WHITESPACE@22..23 " " |
22 | EQ@[23; 24) "=" | 22 | EQ@23..24 "=" |
23 | WHITESPACE@[24; 25) " " | 23 | WHITESPACE@24..25 " " |
24 | LAMBDA_EXPR@[25; 59) | 24 | LAMBDA_EXPR@25..59 |
25 | PARAM_LIST@[25; 56) | 25 | PARAM_LIST@25..56 |
26 | PIPE@[25; 26) "|" | 26 | PIPE@25..26 "|" |
27 | PARAM@[26; 29) | 27 | PARAM@26..29 |
28 | BIND_PAT@[26; 29) | 28 | BIND_PAT@26..29 |
29 | NAME@[26; 29) | 29 | NAME@26..29 |
30 | IDENT@[26; 29) "bar" | 30 | IDENT@26..29 "bar" |
31 | COMMA@[29; 30) "," | 31 | COMMA@29..30 "," |
32 | WHITESPACE@[30; 31) " " | 32 | WHITESPACE@30..31 " " |
33 | PARAM@[31; 39) | 33 | PARAM@31..39 |
34 | BIND_PAT@[31; 34) | 34 | BIND_PAT@31..34 |
35 | NAME@[31; 34) | 35 | NAME@31..34 |
36 | IDENT@[31; 34) "baz" | 36 | IDENT@31..34 "baz" |
37 | COLON@[34; 35) ":" | 37 | COLON@34..35 ":" |
38 | WHITESPACE@[35; 36) " " | 38 | WHITESPACE@35..36 " " |
39 | PATH_TYPE@[36; 39) | 39 | PATH_TYPE@36..39 |
40 | PATH@[36; 39) | 40 | PATH@36..39 |
41 | PATH_SEGMENT@[36; 39) | 41 | PATH_SEGMENT@36..39 |
42 | NAME_REF@[36; 39) | 42 | NAME_REF@36..39 |
43 | IDENT@[36; 39) "Baz" | 43 | IDENT@36..39 "Baz" |
44 | COMMA@[39; 40) "," | 44 | COMMA@39..40 "," |
45 | WHITESPACE@[40; 41) " " | 45 | WHITESPACE@40..41 " " |
46 | PARAM@[41; 55) | 46 | PARAM@41..55 |
47 | BIND_PAT@[41; 44) | 47 | BIND_PAT@41..44 |
48 | NAME@[41; 44) | 48 | NAME@41..44 |
49 | IDENT@[41; 44) "qux" | 49 | IDENT@41..44 "qux" |
50 | COLON@[44; 45) ":" | 50 | COLON@44..45 ":" |
51 | WHITESPACE@[45; 46) " " | 51 | WHITESPACE@45..46 " " |
52 | PATH_TYPE@[46; 55) | 52 | PATH_TYPE@46..55 |
53 | PATH@[46; 55) | 53 | PATH@46..55 |
54 | PATH@[46; 49) | 54 | PATH@46..49 |
55 | PATH_SEGMENT@[46; 49) | 55 | PATH_SEGMENT@46..49 |
56 | NAME_REF@[46; 49) | 56 | NAME_REF@46..49 |
57 | IDENT@[46; 49) "Qux" | 57 | IDENT@46..49 "Qux" |
58 | COLON2@[49; 51) "::" | 58 | COLON2@49..51 "::" |
59 | PATH_SEGMENT@[51; 55) | 59 | PATH_SEGMENT@51..55 |
60 | NAME_REF@[51; 55) | 60 | NAME_REF@51..55 |
61 | IDENT@[51; 55) "Quux" | 61 | IDENT@51..55 "Quux" |
62 | PIPE@[55; 56) "|" | 62 | PIPE@55..56 "|" |
63 | WHITESPACE@[56; 57) " " | 63 | WHITESPACE@56..57 " " |
64 | TUPLE_EXPR@[57; 59) | 64 | TUPLE_EXPR@57..59 |
65 | L_PAREN@[57; 58) "(" | 65 | L_PAREN@57..58 "(" |
66 | R_PAREN@[58; 59) ")" | 66 | R_PAREN@58..59 ")" |
67 | SEMICOLON@[59; 60) ";" | 67 | SEMICOLON@59..60 ";" |
68 | WHITESPACE@[60; 61) "\n" | 68 | WHITESPACE@60..61 "\n" |
69 | R_CURLY@[61; 62) "}" | 69 | R_CURLY@61..62 "}" |
70 | WHITESPACE@[62; 63) "\n" | 70 | WHITESPACE@62..63 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast index 103e254a6..3110bf5c0 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast | |||
@@ -1,44 +1,44 @@ | |||
1 | SOURCE_FILE@[0; 30) | 1 | SOURCE_FILE@0..30 |
2 | FN_DEF@[0; 29) | 2 | FN_DEF@0..29 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 26) | 7 | PARAM_LIST@6..26 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 25) | 9 | PARAM@7..25 |
10 | TUPLE_PAT@[7; 13) | 10 | TUPLE_PAT@7..13 |
11 | L_PAREN@[7; 8) "(" | 11 | L_PAREN@7..8 "(" |
12 | BIND_PAT@[8; 9) | 12 | BIND_PAT@8..9 |
13 | NAME@[8; 9) | 13 | NAME@8..9 |
14 | IDENT@[8; 9) "x" | 14 | IDENT@8..9 "x" |
15 | COMMA@[9; 10) "," | 15 | COMMA@9..10 "," |
16 | WHITESPACE@[10; 11) " " | 16 | WHITESPACE@10..11 " " |
17 | BIND_PAT@[11; 12) | 17 | BIND_PAT@11..12 |
18 | NAME@[11; 12) | 18 | NAME@11..12 |
19 | IDENT@[11; 12) "y" | 19 | IDENT@11..12 "y" |
20 | R_PAREN@[12; 13) ")" | 20 | R_PAREN@12..13 ")" |
21 | COLON@[13; 14) ":" | 21 | COLON@13..14 ":" |
22 | WHITESPACE@[14; 15) " " | 22 | WHITESPACE@14..15 " " |
23 | TUPLE_TYPE@[15; 25) | 23 | TUPLE_TYPE@15..25 |
24 | L_PAREN@[15; 16) "(" | 24 | L_PAREN@15..16 "(" |
25 | PATH_TYPE@[16; 19) | 25 | PATH_TYPE@16..19 |
26 | PATH@[16; 19) | 26 | PATH@16..19 |
27 | PATH_SEGMENT@[16; 19) | 27 | PATH_SEGMENT@16..19 |
28 | NAME_REF@[16; 19) | 28 | NAME_REF@16..19 |
29 | IDENT@[16; 19) "i32" | 29 | IDENT@16..19 "i32" |
30 | COMMA@[19; 20) "," | 30 | COMMA@19..20 "," |
31 | WHITESPACE@[20; 21) " " | 31 | WHITESPACE@20..21 " " |
32 | PATH_TYPE@[21; 24) | 32 | PATH_TYPE@21..24 |
33 | PATH@[21; 24) | 33 | PATH@21..24 |
34 | PATH_SEGMENT@[21; 24) | 34 | PATH_SEGMENT@21..24 |
35 | NAME_REF@[21; 24) | 35 | NAME_REF@21..24 |
36 | IDENT@[21; 24) "i32" | 36 | IDENT@21..24 "i32" |
37 | R_PAREN@[24; 25) ")" | 37 | R_PAREN@24..25 ")" |
38 | R_PAREN@[25; 26) ")" | 38 | R_PAREN@25..26 ")" |
39 | WHITESPACE@[26; 27) " " | 39 | WHITESPACE@26..27 " " |
40 | BLOCK_EXPR@[27; 29) | 40 | BLOCK_EXPR@27..29 |
41 | BLOCK@[27; 29) | 41 | BLOCK@27..29 |
42 | L_CURLY@[27; 28) "{" | 42 | L_CURLY@27..28 "{" |
43 | R_CURLY@[28; 29) "}" | 43 | R_CURLY@28..29 "}" |
44 | WHITESPACE@[29; 30) "\n" | 44 | WHITESPACE@29..30 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast index 3a196d3c0..3f3e6a9a2 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast | |||
@@ -1,112 +1,112 @@ | |||
1 | SOURCE_FILE@[0; 130) | 1 | SOURCE_FILE@0..130 |
2 | FN_DEF@[0; 129) | 2 | FN_DEF@0..129 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 129) | 11 | BLOCK_EXPR@10..129 |
12 | BLOCK@[10; 129) | 12 | BLOCK@10..129 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | MATCH_EXPR@[16; 127) | 15 | MATCH_EXPR@16..127 |
16 | MATCH_KW@[16; 21) "match" | 16 | MATCH_KW@16..21 "match" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | TUPLE_EXPR@[22; 24) | 18 | TUPLE_EXPR@22..24 |
19 | L_PAREN@[22; 23) "(" | 19 | L_PAREN@22..23 "(" |
20 | R_PAREN@[23; 24) ")" | 20 | R_PAREN@23..24 ")" |
21 | WHITESPACE@[24; 25) " " | 21 | WHITESPACE@24..25 " " |
22 | MATCH_ARM_LIST@[25; 127) | 22 | MATCH_ARM_LIST@25..127 |
23 | L_CURLY@[25; 26) "{" | 23 | L_CURLY@25..26 "{" |
24 | WHITESPACE@[26; 35) "\n " | 24 | WHITESPACE@26..35 "\n " |
25 | MATCH_ARM@[35; 48) | 25 | MATCH_ARM@35..48 |
26 | PAREN_PAT@[35; 42) | 26 | PAREN_PAT@35..42 |
27 | L_PAREN@[35; 36) "(" | 27 | L_PAREN@35..36 "(" |
28 | OR_PAT@[36; 41) | 28 | OR_PAT@36..41 |
29 | PLACEHOLDER_PAT@[36; 37) | 29 | PLACEHOLDER_PAT@36..37 |
30 | UNDERSCORE@[36; 37) "_" | 30 | UNDERSCORE@36..37 "_" |
31 | WHITESPACE@[37; 38) " " | 31 | WHITESPACE@37..38 " " |
32 | PIPE@[38; 39) "|" | 32 | PIPE@38..39 "|" |
33 | WHITESPACE@[39; 40) " " | 33 | WHITESPACE@39..40 " " |
34 | PLACEHOLDER_PAT@[40; 41) | 34 | PLACEHOLDER_PAT@40..41 |
35 | UNDERSCORE@[40; 41) "_" | 35 | UNDERSCORE@40..41 "_" |
36 | R_PAREN@[41; 42) ")" | 36 | R_PAREN@41..42 ")" |
37 | WHITESPACE@[42; 43) " " | 37 | WHITESPACE@42..43 " " |
38 | FAT_ARROW@[43; 45) "=>" | 38 | FAT_ARROW@43..45 "=>" |
39 | WHITESPACE@[45; 46) " " | 39 | WHITESPACE@45..46 " " |
40 | TUPLE_EXPR@[46; 48) | 40 | TUPLE_EXPR@46..48 |
41 | L_PAREN@[46; 47) "(" | 41 | L_PAREN@46..47 "(" |
42 | R_PAREN@[47; 48) ")" | 42 | R_PAREN@47..48 ")" |
43 | COMMA@[48; 49) "," | 43 | COMMA@48..49 "," |
44 | WHITESPACE@[49; 58) "\n " | 44 | WHITESPACE@49..58 "\n " |
45 | MATCH_ARM@[58; 72) | 45 | MATCH_ARM@58..72 |
46 | REF_PAT@[58; 66) | 46 | REF_PAT@58..66 |
47 | AMP@[58; 59) "&" | 47 | AMP@58..59 "&" |
48 | PAREN_PAT@[59; 66) | 48 | PAREN_PAT@59..66 |
49 | L_PAREN@[59; 60) "(" | 49 | L_PAREN@59..60 "(" |
50 | OR_PAT@[60; 65) | 50 | OR_PAT@60..65 |
51 | PLACEHOLDER_PAT@[60; 61) | 51 | PLACEHOLDER_PAT@60..61 |
52 | UNDERSCORE@[60; 61) "_" | 52 | UNDERSCORE@60..61 "_" |
53 | WHITESPACE@[61; 62) " " | 53 | WHITESPACE@61..62 " " |
54 | PIPE@[62; 63) "|" | 54 | PIPE@62..63 "|" |
55 | WHITESPACE@[63; 64) " " | 55 | WHITESPACE@63..64 " " |
56 | PLACEHOLDER_PAT@[64; 65) | 56 | PLACEHOLDER_PAT@64..65 |
57 | UNDERSCORE@[64; 65) "_" | 57 | UNDERSCORE@64..65 "_" |
58 | R_PAREN@[65; 66) ")" | 58 | R_PAREN@65..66 ")" |
59 | WHITESPACE@[66; 67) " " | 59 | WHITESPACE@66..67 " " |
60 | FAT_ARROW@[67; 69) "=>" | 60 | FAT_ARROW@67..69 "=>" |
61 | WHITESPACE@[69; 70) " " | 61 | WHITESPACE@69..70 " " |
62 | TUPLE_EXPR@[70; 72) | 62 | TUPLE_EXPR@70..72 |
63 | L_PAREN@[70; 71) "(" | 63 | L_PAREN@70..71 "(" |
64 | R_PAREN@[71; 72) ")" | 64 | R_PAREN@71..72 ")" |
65 | COMMA@[72; 73) "," | 65 | COMMA@72..73 "," |
66 | WHITESPACE@[73; 82) "\n " | 66 | WHITESPACE@73..82 "\n " |
67 | MATCH_ARM@[82; 96) | 67 | MATCH_ARM@82..96 |
68 | TUPLE_PAT@[82; 90) | 68 | TUPLE_PAT@82..90 |
69 | L_PAREN@[82; 83) "(" | 69 | L_PAREN@82..83 "(" |
70 | OR_PAT@[83; 88) | 70 | OR_PAT@83..88 |
71 | PLACEHOLDER_PAT@[83; 84) | 71 | PLACEHOLDER_PAT@83..84 |
72 | UNDERSCORE@[83; 84) "_" | 72 | UNDERSCORE@83..84 "_" |
73 | WHITESPACE@[84; 85) " " | 73 | WHITESPACE@84..85 " " |
74 | PIPE@[85; 86) "|" | 74 | PIPE@85..86 "|" |
75 | WHITESPACE@[86; 87) " " | 75 | WHITESPACE@86..87 " " |
76 | PLACEHOLDER_PAT@[87; 88) | 76 | PLACEHOLDER_PAT@87..88 |
77 | UNDERSCORE@[87; 88) "_" | 77 | UNDERSCORE@87..88 "_" |
78 | COMMA@[88; 89) "," | 78 | COMMA@88..89 "," |
79 | R_PAREN@[89; 90) ")" | 79 | R_PAREN@89..90 ")" |
80 | WHITESPACE@[90; 91) " " | 80 | WHITESPACE@90..91 " " |
81 | FAT_ARROW@[91; 93) "=>" | 81 | FAT_ARROW@91..93 "=>" |
82 | WHITESPACE@[93; 94) " " | 82 | WHITESPACE@93..94 " " |
83 | TUPLE_EXPR@[94; 96) | 83 | TUPLE_EXPR@94..96 |
84 | L_PAREN@[94; 95) "(" | 84 | L_PAREN@94..95 "(" |
85 | R_PAREN@[95; 96) ")" | 85 | R_PAREN@95..96 ")" |
86 | COMMA@[96; 97) "," | 86 | COMMA@96..97 "," |
87 | WHITESPACE@[97; 106) "\n " | 87 | WHITESPACE@97..106 "\n " |
88 | MATCH_ARM@[106; 120) | 88 | MATCH_ARM@106..120 |
89 | SLICE_PAT@[106; 114) | 89 | SLICE_PAT@106..114 |
90 | L_BRACK@[106; 107) "[" | 90 | L_BRACK@106..107 "[" |
91 | OR_PAT@[107; 112) | 91 | OR_PAT@107..112 |
92 | PLACEHOLDER_PAT@[107; 108) | 92 | PLACEHOLDER_PAT@107..108 |
93 | UNDERSCORE@[107; 108) "_" | 93 | UNDERSCORE@107..108 "_" |
94 | WHITESPACE@[108; 109) " " | 94 | WHITESPACE@108..109 " " |
95 | PIPE@[109; 110) "|" | 95 | PIPE@109..110 "|" |
96 | WHITESPACE@[110; 111) " " | 96 | WHITESPACE@110..111 " " |
97 | PLACEHOLDER_PAT@[111; 112) | 97 | PLACEHOLDER_PAT@111..112 |
98 | UNDERSCORE@[111; 112) "_" | 98 | UNDERSCORE@111..112 "_" |
99 | COMMA@[112; 113) "," | 99 | COMMA@112..113 "," |
100 | R_BRACK@[113; 114) "]" | 100 | R_BRACK@113..114 "]" |
101 | WHITESPACE@[114; 115) " " | 101 | WHITESPACE@114..115 " " |
102 | FAT_ARROW@[115; 117) "=>" | 102 | FAT_ARROW@115..117 "=>" |
103 | WHITESPACE@[117; 118) " " | 103 | WHITESPACE@117..118 " " |
104 | TUPLE_EXPR@[118; 120) | 104 | TUPLE_EXPR@118..120 |
105 | L_PAREN@[118; 119) "(" | 105 | L_PAREN@118..119 "(" |
106 | R_PAREN@[119; 120) ")" | 106 | R_PAREN@119..120 ")" |
107 | COMMA@[120; 121) "," | 107 | COMMA@120..121 "," |
108 | WHITESPACE@[121; 126) "\n " | 108 | WHITESPACE@121..126 "\n " |
109 | R_CURLY@[126; 127) "}" | 109 | R_CURLY@126..127 "}" |
110 | WHITESPACE@[127; 128) "\n" | 110 | WHITESPACE@127..128 "\n" |
111 | R_CURLY@[128; 129) "}" | 111 | R_CURLY@128..129 "}" |
112 | WHITESPACE@[129; 130) "\n" | 112 | WHITESPACE@129..130 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast index e0081a9f2..fad9df007 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast | |||
@@ -1,26 +1,26 @@ | |||
1 | SOURCE_FILE@[0; 23) | 1 | SOURCE_FILE@0..23 |
2 | TYPE_ALIAS_DEF@[0; 22) | 2 | TYPE_ALIAS_DEF@0..22 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 8) | 5 | NAME@5..8 |
6 | IDENT@[5; 8) "Foo" | 6 | IDENT@5..8 "Foo" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | EQ@[9; 10) "=" | 8 | EQ@9..10 "=" |
9 | WHITESPACE@[10; 11) " " | 9 | WHITESPACE@10..11 " " |
10 | FN_POINTER_TYPE@[11; 21) | 10 | FN_POINTER_TYPE@11..21 |
11 | FN_KW@[11; 13) "fn" | 11 | FN_KW@11..13 "fn" |
12 | PARAM_LIST@[13; 21) | 12 | PARAM_LIST@13..21 |
13 | L_PAREN@[13; 14) "(" | 13 | L_PAREN@13..14 "(" |
14 | PARAM@[14; 20) | 14 | PARAM@14..20 |
15 | PLACEHOLDER_PAT@[14; 15) | 15 | PLACEHOLDER_PAT@14..15 |
16 | UNDERSCORE@[14; 15) "_" | 16 | UNDERSCORE@14..15 "_" |
17 | COLON@[15; 16) ":" | 17 | COLON@15..16 ":" |
18 | WHITESPACE@[16; 17) " " | 18 | WHITESPACE@16..17 " " |
19 | PATH_TYPE@[17; 20) | 19 | PATH_TYPE@17..20 |
20 | PATH@[17; 20) | 20 | PATH@17..20 |
21 | PATH_SEGMENT@[17; 20) | 21 | PATH_SEGMENT@17..20 |
22 | NAME_REF@[17; 20) | 22 | NAME_REF@17..20 |
23 | IDENT@[17; 20) "bar" | 23 | IDENT@17..20 "bar" |
24 | R_PAREN@[20; 21) ")" | 24 | R_PAREN@20..21 ")" |
25 | SEMICOLON@[21; 22) ";" | 25 | SEMICOLON@21..22 ";" |
26 | WHITESPACE@[22; 23) "\n" | 26 | WHITESPACE@22..23 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast index a378dd80b..e8a0e9ddd 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast | |||
@@ -1,30 +1,30 @@ | |||
1 | SOURCE_FILE@[0; 23) | 1 | SOURCE_FILE@0..23 |
2 | ENUM_DEF@[0; 22) | 2 | ENUM_DEF@0..22 |
3 | ENUM_KW@[0; 4) "enum" | 3 | ENUM_KW@0..4 "enum" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "E" | 6 | IDENT@5..6 "E" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | ENUM_VARIANT_LIST@[7; 22) | 8 | ENUM_VARIANT_LIST@7..22 |
9 | L_CURLY@[7; 8) "{" | 9 | L_CURLY@7..8 "{" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | ENUM_VARIANT@[9; 20) | 11 | ENUM_VARIANT@9..20 |
12 | NAME@[9; 10) | 12 | NAME@9..10 |
13 | IDENT@[9; 10) "X" | 13 | IDENT@9..10 "X" |
14 | TUPLE_FIELD_DEF_LIST@[10; 15) | 14 | TUPLE_FIELD_DEF_LIST@10..15 |
15 | L_PAREN@[10; 11) "(" | 15 | L_PAREN@10..11 "(" |
16 | TUPLE_FIELD_DEF@[11; 14) | 16 | TUPLE_FIELD_DEF@11..14 |
17 | PATH_TYPE@[11; 14) | 17 | PATH_TYPE@11..14 |
18 | PATH@[11; 14) | 18 | PATH@11..14 |
19 | PATH_SEGMENT@[11; 14) | 19 | PATH_SEGMENT@11..14 |
20 | NAME_REF@[11; 14) | 20 | NAME_REF@11..14 |
21 | IDENT@[11; 14) "i32" | 21 | IDENT@11..14 "i32" |
22 | R_PAREN@[14; 15) ")" | 22 | R_PAREN@14..15 ")" |
23 | WHITESPACE@[15; 16) " " | 23 | WHITESPACE@15..16 " " |
24 | EQ@[16; 17) "=" | 24 | EQ@16..17 "=" |
25 | WHITESPACE@[17; 18) " " | 25 | WHITESPACE@17..18 " " |
26 | LITERAL@[18; 20) | 26 | LITERAL@18..20 |
27 | INT_NUMBER@[18; 20) "10" | 27 | INT_NUMBER@18..20 "10" |
28 | WHITESPACE@[20; 21) " " | 28 | WHITESPACE@20..21 " " |
29 | R_CURLY@[21; 22) "}" | 29 | R_CURLY@21..22 "}" |
30 | WHITESPACE@[22; 23) "\n" | 30 | WHITESPACE@22..23 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast index 548be2698..50db9e967 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast | |||
@@ -1,38 +1,38 @@ | |||
1 | SOURCE_FILE@[0; 28) | 1 | SOURCE_FILE@0..28 |
2 | FN_DEF@[0; 27) | 2 | FN_DEF@0..27 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 27) | 11 | BLOCK_EXPR@9..27 |
12 | BLOCK@[9; 27) | 12 | BLOCK@9..27 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 25) | 15 | EXPR_STMT@15..25 |
16 | BIN_EXPR@[15; 24) | 16 | BIN_EXPR@15..24 |
17 | PATH_EXPR@[15; 16) | 17 | PATH_EXPR@15..16 |
18 | PATH@[15; 16) | 18 | PATH@15..16 |
19 | PATH_SEGMENT@[15; 16) | 19 | PATH_SEGMENT@15..16 |
20 | NAME_REF@[15; 16) | 20 | NAME_REF@15..16 |
21 | IDENT@[15; 16) "v" | 21 | IDENT@15..16 "v" |
22 | WHITESPACE@[16; 17) " " | 22 | WHITESPACE@16..17 " " |
23 | EQ@[17; 18) "=" | 23 | EQ@17..18 "=" |
24 | WHITESPACE@[18; 19) " " | 24 | WHITESPACE@18..19 " " |
25 | BIN_EXPR@[19; 24) | 25 | BIN_EXPR@19..24 |
26 | BLOCK_EXPR@[19; 22) | 26 | BLOCK_EXPR@19..22 |
27 | BLOCK@[19; 22) | 27 | BLOCK@19..22 |
28 | L_CURLY@[19; 20) "{" | 28 | L_CURLY@19..20 "{" |
29 | LITERAL@[20; 21) | 29 | LITERAL@20..21 |
30 | INT_NUMBER@[20; 21) "1" | 30 | INT_NUMBER@20..21 "1" |
31 | R_CURLY@[21; 22) "}" | 31 | R_CURLY@21..22 "}" |
32 | AMP@[22; 23) "&" | 32 | AMP@22..23 "&" |
33 | LITERAL@[23; 24) | 33 | LITERAL@23..24 |
34 | INT_NUMBER@[23; 24) "2" | 34 | INT_NUMBER@23..24 "2" |
35 | SEMICOLON@[24; 25) ";" | 35 | SEMICOLON@24..25 ";" |
36 | WHITESPACE@[25; 26) "\n" | 36 | WHITESPACE@25..26 "\n" |
37 | R_CURLY@[26; 27) "}" | 37 | R_CURLY@26..27 "}" |
38 | WHITESPACE@[27; 28) "\n" | 38 | WHITESPACE@27..28 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast index a7a547fce..c05e05bf3 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast | |||
@@ -1,45 +1,45 @@ | |||
1 | SOURCE_FILE@[0; 34) | 1 | SOURCE_FILE@0..34 |
2 | FN_DEF@[0; 33) | 2 | FN_DEF@0..33 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 33) | 11 | BLOCK_EXPR@10..33 |
12 | BLOCK@[10; 33) | 12 | BLOCK@10..33 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 12) " " | 14 | WHITESPACE@11..12 " " |
15 | EXPR_STMT@[12; 31) | 15 | EXPR_STMT@12..31 |
16 | CALL_EXPR@[12; 30) | 16 | CALL_EXPR@12..30 |
17 | LAMBDA_EXPR@[12; 28) | 17 | LAMBDA_EXPR@12..28 |
18 | PARAM_LIST@[12; 14) | 18 | PARAM_LIST@12..14 |
19 | PIPE@[12; 13) "|" | 19 | PIPE@12..13 "|" |
20 | PIPE@[13; 14) "|" | 20 | PIPE@13..14 "|" |
21 | WHITESPACE@[14; 15) " " | 21 | WHITESPACE@14..15 " " |
22 | RET_TYPE@[15; 21) | 22 | RET_TYPE@15..21 |
23 | THIN_ARROW@[15; 17) "->" | 23 | THIN_ARROW@15..17 "->" |
24 | WHITESPACE@[17; 18) " " | 24 | WHITESPACE@17..18 " " |
25 | PATH_TYPE@[18; 21) | 25 | PATH_TYPE@18..21 |
26 | PATH@[18; 21) | 26 | PATH@18..21 |
27 | PATH_SEGMENT@[18; 21) | 27 | PATH_SEGMENT@18..21 |
28 | NAME_REF@[18; 21) | 28 | NAME_REF@18..21 |
29 | IDENT@[18; 21) "i32" | 29 | IDENT@18..21 "i32" |
30 | WHITESPACE@[21; 22) " " | 30 | WHITESPACE@21..22 " " |
31 | BLOCK_EXPR@[22; 28) | 31 | BLOCK_EXPR@22..28 |
32 | BLOCK@[22; 28) | 32 | BLOCK@22..28 |
33 | L_CURLY@[22; 23) "{" | 33 | L_CURLY@22..23 "{" |
34 | WHITESPACE@[23; 24) " " | 34 | WHITESPACE@23..24 " " |
35 | LITERAL@[24; 26) | 35 | LITERAL@24..26 |
36 | INT_NUMBER@[24; 26) "92" | 36 | INT_NUMBER@24..26 "92" |
37 | WHITESPACE@[26; 27) " " | 37 | WHITESPACE@26..27 " " |
38 | R_CURLY@[27; 28) "}" | 38 | R_CURLY@27..28 "}" |
39 | ARG_LIST@[28; 30) | 39 | ARG_LIST@28..30 |
40 | L_PAREN@[28; 29) "(" | 40 | L_PAREN@28..29 "(" |
41 | R_PAREN@[29; 30) ")" | 41 | R_PAREN@29..30 ")" |
42 | SEMICOLON@[30; 31) ";" | 42 | SEMICOLON@30..31 ";" |
43 | WHITESPACE@[31; 32) " " | 43 | WHITESPACE@31..32 " " |
44 | R_CURLY@[32; 33) "}" | 44 | R_CURLY@32..33 "}" |
45 | WHITESPACE@[33; 34) "\n" | 45 | WHITESPACE@33..34 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0000_empty.rast b/crates/ra_syntax/test_data/parser/ok/0000_empty.rast index 08f5a942f..6b234b0b2 100644 --- a/crates/ra_syntax/test_data/parser/ok/0000_empty.rast +++ b/crates/ra_syntax/test_data/parser/ok/0000_empty.rast | |||
@@ -1 +1 @@ | |||
SOURCE_FILE@[0; 0) | SOURCE_FILE@0..0 | ||
diff --git a/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast b/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast index fdc2d6768..705f7e001 100644 --- a/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0001_struct_item.rast | |||
@@ -1,39 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 32) | 1 | SOURCE_FILE@0..32 |
2 | STRUCT_DEF@[0; 31) | 2 | STRUCT_DEF@0..31 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | TYPE_PARAM_LIST@[8; 17) | 7 | TYPE_PARAM_LIST@8..17 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | TYPE_PARAM@[9; 16) | 9 | TYPE_PARAM@9..16 |
10 | NAME@[9; 10) | 10 | NAME@9..10 |
11 | IDENT@[9; 10) "T" | 11 | IDENT@9..10 "T" |
12 | COLON@[10; 11) ":" | 12 | COLON@10..11 ":" |
13 | WHITESPACE@[11; 12) " " | 13 | WHITESPACE@11..12 " " |
14 | TYPE_BOUND_LIST@[12; 16) | 14 | TYPE_BOUND_LIST@12..16 |
15 | TYPE_BOUND@[12; 16) | 15 | TYPE_BOUND@12..16 |
16 | PATH_TYPE@[12; 16) | 16 | PATH_TYPE@12..16 |
17 | PATH@[12; 16) | 17 | PATH@12..16 |
18 | PATH_SEGMENT@[12; 16) | 18 | PATH_SEGMENT@12..16 |
19 | NAME_REF@[12; 16) | 19 | NAME_REF@12..16 |
20 | IDENT@[12; 16) "Copy" | 20 | IDENT@12..16 "Copy" |
21 | R_ANGLE@[16; 17) ">" | 21 | R_ANGLE@16..17 ">" |
22 | WHITESPACE@[17; 18) " " | 22 | WHITESPACE@17..18 " " |
23 | RECORD_FIELD_DEF_LIST@[18; 31) | 23 | RECORD_FIELD_DEF_LIST@18..31 |
24 | L_CURLY@[18; 19) "{" | 24 | L_CURLY@18..19 "{" |
25 | WHITESPACE@[19; 24) "\n " | 25 | WHITESPACE@19..24 "\n " |
26 | RECORD_FIELD_DEF@[24; 28) | 26 | RECORD_FIELD_DEF@24..28 |
27 | NAME@[24; 25) | 27 | NAME@24..25 |
28 | IDENT@[24; 25) "f" | 28 | IDENT@24..25 "f" |
29 | COLON@[25; 26) ":" | 29 | COLON@25..26 ":" |
30 | WHITESPACE@[26; 27) " " | 30 | WHITESPACE@26..27 " " |
31 | PATH_TYPE@[27; 28) | 31 | PATH_TYPE@27..28 |
32 | PATH@[27; 28) | 32 | PATH@27..28 |
33 | PATH_SEGMENT@[27; 28) | 33 | PATH_SEGMENT@27..28 |
34 | NAME_REF@[27; 28) | 34 | NAME_REF@27..28 |
35 | IDENT@[27; 28) "T" | 35 | IDENT@27..28 "T" |
36 | COMMA@[28; 29) "," | 36 | COMMA@28..29 "," |
37 | WHITESPACE@[29; 30) "\n" | 37 | WHITESPACE@29..30 "\n" |
38 | R_CURLY@[30; 31) "}" | 38 | R_CURLY@30..31 "}" |
39 | WHITESPACE@[31; 32) "\n" | 39 | WHITESPACE@31..32 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0002_struct_item_field.rast b/crates/ra_syntax/test_data/parser/ok/0002_struct_item_field.rast index ef34702fd..a1d546491 100644 --- a/crates/ra_syntax/test_data/parser/ok/0002_struct_item_field.rast +++ b/crates/ra_syntax/test_data/parser/ok/0002_struct_item_field.rast | |||
@@ -1,22 +1,22 @@ | |||
1 | SOURCE_FILE@[0; 25) | 1 | SOURCE_FILE@0..25 |
2 | STRUCT_DEF@[0; 25) | 2 | STRUCT_DEF@0..25 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 25) | 8 | RECORD_FIELD_DEF_LIST@9..25 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 23) | 11 | RECORD_FIELD_DEF@15..23 |
12 | NAME@[15; 18) | 12 | NAME@15..18 |
13 | IDENT@[15; 18) "foo" | 13 | IDENT@15..18 "foo" |
14 | COLON@[18; 19) ":" | 14 | COLON@18..19 ":" |
15 | WHITESPACE@[19; 20) " " | 15 | WHITESPACE@19..20 " " |
16 | PATH_TYPE@[20; 23) | 16 | PATH_TYPE@20..23 |
17 | PATH@[20; 23) | 17 | PATH@20..23 |
18 | PATH_SEGMENT@[20; 23) | 18 | PATH_SEGMENT@20..23 |
19 | NAME_REF@[20; 23) | 19 | NAME_REF@20..23 |
20 | IDENT@[20; 23) "u32" | 20 | IDENT@20..23 "u32" |
21 | WHITESPACE@[23; 24) "\n" | 21 | WHITESPACE@23..24 "\n" |
22 | R_CURLY@[24; 25) "}" | 22 | R_CURLY@24..25 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0004_file_shebang.rast b/crates/ra_syntax/test_data/parser/ok/0004_file_shebang.rast index e3915c2df..67e21df13 100644 --- a/crates/ra_syntax/test_data/parser/ok/0004_file_shebang.rast +++ b/crates/ra_syntax/test_data/parser/ok/0004_file_shebang.rast | |||
@@ -1,2 +1,2 @@ | |||
1 | SOURCE_FILE@[0; 20) | 1 | SOURCE_FILE@0..20 |
2 | SHEBANG@[0; 20) "#!/use/bin/env rusti" | 2 | SHEBANG@0..20 "#!/use/bin/env rusti" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast index 955b789b5..993ba72b6 100644 --- a/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0005_fn_item.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 13) | 1 | SOURCE_FILE@0..13 |
2 | FN_DEF@[0; 12) | 2 | FN_DEF@0..12 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 12) | 11 | BLOCK_EXPR@9..12 |
12 | BLOCK@[9; 12) | 12 | BLOCK@9..12 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) "\n" | 14 | WHITESPACE@10..11 "\n" |
15 | R_CURLY@[11; 12) "}" | 15 | R_CURLY@11..12 "}" |
16 | WHITESPACE@[12; 13) "\n" | 16 | WHITESPACE@12..13 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.rast b/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.rast index 308b5680f..42587243a 100644 --- a/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.rast +++ b/crates/ra_syntax/test_data/parser/ok/0006_inner_attributes.rast | |||
@@ -1,184 +1,184 @@ | |||
1 | SOURCE_FILE@[0; 236) | 1 | SOURCE_FILE@0..236 |
2 | ATTR@[0; 8) | 2 | ATTR@0..8 |
3 | POUND@[0; 1) "#" | 3 | POUND@0..1 "#" |
4 | BANG@[1; 2) "!" | 4 | BANG@1..2 "!" |
5 | L_BRACK@[2; 3) "[" | 5 | L_BRACK@2..3 "[" |
6 | PATH@[3; 7) | 6 | PATH@3..7 |
7 | PATH_SEGMENT@[3; 7) | 7 | PATH_SEGMENT@3..7 |
8 | NAME_REF@[3; 7) | 8 | NAME_REF@3..7 |
9 | IDENT@[3; 7) "attr" | 9 | IDENT@3..7 "attr" |
10 | R_BRACK@[7; 8) "]" | 10 | R_BRACK@7..8 "]" |
11 | WHITESPACE@[8; 9) "\n" | 11 | WHITESPACE@8..9 "\n" |
12 | ATTR@[9; 23) | 12 | ATTR@9..23 |
13 | POUND@[9; 10) "#" | 13 | POUND@9..10 "#" |
14 | BANG@[10; 11) "!" | 14 | BANG@10..11 "!" |
15 | L_BRACK@[11; 12) "[" | 15 | L_BRACK@11..12 "[" |
16 | PATH@[12; 16) | 16 | PATH@12..16 |
17 | PATH_SEGMENT@[12; 16) | 17 | PATH_SEGMENT@12..16 |
18 | NAME_REF@[12; 16) | 18 | NAME_REF@12..16 |
19 | IDENT@[12; 16) "attr" | 19 | IDENT@12..16 "attr" |
20 | TOKEN_TREE@[16; 22) | 20 | TOKEN_TREE@16..22 |
21 | L_PAREN@[16; 17) "(" | 21 | L_PAREN@16..17 "(" |
22 | TRUE_KW@[17; 21) "true" | 22 | TRUE_KW@17..21 "true" |
23 | R_PAREN@[21; 22) ")" | 23 | R_PAREN@21..22 ")" |
24 | R_BRACK@[22; 23) "]" | 24 | R_BRACK@22..23 "]" |
25 | WHITESPACE@[23; 24) "\n" | 25 | WHITESPACE@23..24 "\n" |
26 | ATTR@[24; 39) | 26 | ATTR@24..39 |
27 | POUND@[24; 25) "#" | 27 | POUND@24..25 "#" |
28 | BANG@[25; 26) "!" | 28 | BANG@25..26 "!" |
29 | L_BRACK@[26; 27) "[" | 29 | L_BRACK@26..27 "[" |
30 | PATH@[27; 31) | 30 | PATH@27..31 |
31 | PATH_SEGMENT@[27; 31) | 31 | PATH_SEGMENT@27..31 |
32 | NAME_REF@[27; 31) | 32 | NAME_REF@27..31 |
33 | IDENT@[27; 31) "attr" | 33 | IDENT@27..31 "attr" |
34 | TOKEN_TREE@[31; 38) | 34 | TOKEN_TREE@31..38 |
35 | L_PAREN@[31; 32) "(" | 35 | L_PAREN@31..32 "(" |
36 | IDENT@[32; 37) "ident" | 36 | IDENT@32..37 "ident" |
37 | R_PAREN@[37; 38) ")" | 37 | R_PAREN@37..38 ")" |
38 | R_BRACK@[38; 39) "]" | 38 | R_BRACK@38..39 "]" |
39 | WHITESPACE@[39; 40) "\n" | 39 | WHITESPACE@39..40 "\n" |
40 | ATTR@[40; 116) | 40 | ATTR@40..116 |
41 | POUND@[40; 41) "#" | 41 | POUND@40..41 "#" |
42 | BANG@[41; 42) "!" | 42 | BANG@41..42 "!" |
43 | L_BRACK@[42; 43) "[" | 43 | L_BRACK@42..43 "[" |
44 | PATH@[43; 47) | 44 | PATH@43..47 |
45 | PATH_SEGMENT@[43; 47) | 45 | PATH_SEGMENT@43..47 |
46 | NAME_REF@[43; 47) | 46 | NAME_REF@43..47 |
47 | IDENT@[43; 47) "attr" | 47 | IDENT@43..47 "attr" |
48 | TOKEN_TREE@[47; 115) | 48 | TOKEN_TREE@47..115 |
49 | L_PAREN@[47; 48) "(" | 49 | L_PAREN@47..48 "(" |
50 | IDENT@[48; 53) "ident" | 50 | IDENT@48..53 "ident" |
51 | COMMA@[53; 54) "," | 51 | COMMA@53..54 "," |
52 | WHITESPACE@[54; 55) " " | 52 | WHITESPACE@54..55 " " |
53 | INT_NUMBER@[55; 58) "100" | 53 | INT_NUMBER@55..58 "100" |
54 | COMMA@[58; 59) "," | 54 | COMMA@58..59 "," |
55 | WHITESPACE@[59; 60) " " | 55 | WHITESPACE@59..60 " " |
56 | TRUE_KW@[60; 64) "true" | 56 | TRUE_KW@60..64 "true" |
57 | COMMA@[64; 65) "," | 57 | COMMA@64..65 "," |
58 | WHITESPACE@[65; 66) " " | 58 | WHITESPACE@65..66 " " |
59 | STRING@[66; 72) "\"true\"" | 59 | STRING@66..72 "\"true\"" |
60 | COMMA@[72; 73) "," | 60 | COMMA@72..73 "," |
61 | WHITESPACE@[73; 74) " " | 61 | WHITESPACE@73..74 " " |
62 | IDENT@[74; 79) "ident" | 62 | IDENT@74..79 "ident" |
63 | WHITESPACE@[79; 80) " " | 63 | WHITESPACE@79..80 " " |
64 | EQ@[80; 81) "=" | 64 | EQ@80..81 "=" |
65 | WHITESPACE@[81; 82) " " | 65 | WHITESPACE@81..82 " " |
66 | INT_NUMBER@[82; 85) "100" | 66 | INT_NUMBER@82..85 "100" |
67 | COMMA@[85; 86) "," | 67 | COMMA@85..86 "," |
68 | WHITESPACE@[86; 87) " " | 68 | WHITESPACE@86..87 " " |
69 | IDENT@[87; 92) "ident" | 69 | IDENT@87..92 "ident" |
70 | WHITESPACE@[92; 93) " " | 70 | WHITESPACE@92..93 " " |
71 | EQ@[93; 94) "=" | 71 | EQ@93..94 "=" |
72 | WHITESPACE@[94; 95) " " | 72 | WHITESPACE@94..95 " " |
73 | STRING@[95; 102) "\"hello\"" | 73 | STRING@95..102 "\"hello\"" |
74 | COMMA@[102; 103) "," | 74 | COMMA@102..103 "," |
75 | WHITESPACE@[103; 104) " " | 75 | WHITESPACE@103..104 " " |
76 | IDENT@[104; 109) "ident" | 76 | IDENT@104..109 "ident" |
77 | TOKEN_TREE@[109; 114) | 77 | TOKEN_TREE@109..114 |
78 | L_PAREN@[109; 110) "(" | 78 | L_PAREN@109..110 "(" |
79 | INT_NUMBER@[110; 113) "100" | 79 | INT_NUMBER@110..113 "100" |
80 | R_PAREN@[113; 114) ")" | 80 | R_PAREN@113..114 ")" |
81 | R_PAREN@[114; 115) ")" | 81 | R_PAREN@114..115 ")" |
82 | R_BRACK@[115; 116) "]" | 82 | R_BRACK@115..116 "]" |
83 | WHITESPACE@[116; 117) "\n" | 83 | WHITESPACE@116..117 "\n" |
84 | ATTR@[117; 130) | 84 | ATTR@117..130 |
85 | POUND@[117; 118) "#" | 85 | POUND@117..118 "#" |
86 | BANG@[118; 119) "!" | 86 | BANG@118..119 "!" |
87 | L_BRACK@[119; 120) "[" | 87 | L_BRACK@119..120 "[" |
88 | PATH@[120; 124) | 88 | PATH@120..124 |
89 | PATH_SEGMENT@[120; 124) | 89 | PATH_SEGMENT@120..124 |
90 | NAME_REF@[120; 124) | 90 | NAME_REF@120..124 |
91 | IDENT@[120; 124) "attr" | 91 | IDENT@120..124 "attr" |
92 | TOKEN_TREE@[124; 129) | 92 | TOKEN_TREE@124..129 |
93 | L_PAREN@[124; 125) "(" | 93 | L_PAREN@124..125 "(" |
94 | INT_NUMBER@[125; 128) "100" | 94 | INT_NUMBER@125..128 "100" |
95 | R_PAREN@[128; 129) ")" | 95 | R_PAREN@128..129 ")" |
96 | R_BRACK@[129; 130) "]" | 96 | R_BRACK@129..130 "]" |
97 | WHITESPACE@[130; 131) "\n" | 97 | WHITESPACE@130..131 "\n" |
98 | ATTR@[131; 155) | 98 | ATTR@131..155 |
99 | POUND@[131; 132) "#" | 99 | POUND@131..132 "#" |
100 | BANG@[132; 133) "!" | 100 | BANG@132..133 "!" |
101 | L_BRACK@[133; 134) "[" | 101 | L_BRACK@133..134 "[" |
102 | PATH@[134; 138) | 102 | PATH@134..138 |
103 | PATH_SEGMENT@[134; 138) | 103 | PATH_SEGMENT@134..138 |
104 | NAME_REF@[134; 138) | 104 | NAME_REF@134..138 |
105 | IDENT@[134; 138) "attr" | 105 | IDENT@134..138 "attr" |
106 | TOKEN_TREE@[138; 154) | 106 | TOKEN_TREE@138..154 |
107 | L_PAREN@[138; 139) "(" | 107 | L_PAREN@138..139 "(" |
108 | IDENT@[139; 146) "enabled" | 108 | IDENT@139..146 "enabled" |
109 | WHITESPACE@[146; 147) " " | 109 | WHITESPACE@146..147 " " |
110 | EQ@[147; 148) "=" | 110 | EQ@147..148 "=" |
111 | WHITESPACE@[148; 149) " " | 111 | WHITESPACE@148..149 " " |
112 | TRUE_KW@[149; 153) "true" | 112 | TRUE_KW@149..153 "true" |
113 | R_PAREN@[153; 154) ")" | 113 | R_PAREN@153..154 ")" |
114 | R_BRACK@[154; 155) "]" | 114 | R_BRACK@154..155 "]" |
115 | WHITESPACE@[155; 156) "\n" | 115 | WHITESPACE@155..156 "\n" |
116 | ATTR@[156; 173) | 116 | ATTR@156..173 |
117 | POUND@[156; 157) "#" | 117 | POUND@156..157 "#" |
118 | BANG@[157; 158) "!" | 118 | BANG@157..158 "!" |
119 | L_BRACK@[158; 159) "[" | 119 | L_BRACK@158..159 "[" |
120 | PATH@[159; 166) | 120 | PATH@159..166 |
121 | PATH_SEGMENT@[159; 166) | 121 | PATH_SEGMENT@159..166 |
122 | NAME_REF@[159; 166) | 122 | NAME_REF@159..166 |
123 | IDENT@[159; 166) "enabled" | 123 | IDENT@159..166 "enabled" |
124 | TOKEN_TREE@[166; 172) | 124 | TOKEN_TREE@166..172 |
125 | L_PAREN@[166; 167) "(" | 125 | L_PAREN@166..167 "(" |
126 | TRUE_KW@[167; 171) "true" | 126 | TRUE_KW@167..171 "true" |
127 | R_PAREN@[171; 172) ")" | 127 | R_PAREN@171..172 ")" |
128 | R_BRACK@[172; 173) "]" | 128 | R_BRACK@172..173 "]" |
129 | WHITESPACE@[173; 174) "\n" | 129 | WHITESPACE@173..174 "\n" |
130 | ATTR@[174; 191) | 130 | ATTR@174..191 |
131 | POUND@[174; 175) "#" | 131 | POUND@174..175 "#" |
132 | BANG@[175; 176) "!" | 132 | BANG@175..176 "!" |
133 | L_BRACK@[176; 177) "[" | 133 | L_BRACK@176..177 "[" |
134 | PATH@[177; 181) | 134 | PATH@177..181 |
135 | PATH_SEGMENT@[177; 181) | 135 | PATH_SEGMENT@177..181 |
136 | NAME_REF@[177; 181) | 136 | NAME_REF@177..181 |
137 | IDENT@[177; 181) "attr" | 137 | IDENT@177..181 "attr" |
138 | TOKEN_TREE@[181; 190) | 138 | TOKEN_TREE@181..190 |
139 | L_PAREN@[181; 182) "(" | 139 | L_PAREN@181..182 "(" |
140 | STRING@[182; 189) "\"hello\"" | 140 | STRING@182..189 "\"hello\"" |
141 | R_PAREN@[189; 190) ")" | 141 | R_PAREN@189..190 ")" |
142 | R_BRACK@[190; 191) "]" | 142 | R_BRACK@190..191 "]" |
143 | WHITESPACE@[191; 192) "\n" | 143 | WHITESPACE@191..192 "\n" |
144 | ATTR@[192; 214) | 144 | ATTR@192..214 |
145 | POUND@[192; 193) "#" | 145 | POUND@192..193 "#" |
146 | BANG@[193; 194) "!" | 146 | BANG@193..194 "!" |
147 | L_BRACK@[194; 195) "[" | 147 | L_BRACK@194..195 "[" |
148 | PATH@[195; 199) | 148 | PATH@195..199 |
149 | PATH_SEGMENT@[195; 199) | 149 | PATH_SEGMENT@195..199 |
150 | NAME_REF@[195; 199) | 150 | NAME_REF@195..199 |
151 | IDENT@[195; 199) "repr" | 151 | IDENT@195..199 "repr" |
152 | TOKEN_TREE@[199; 213) | 152 | TOKEN_TREE@199..213 |
153 | L_PAREN@[199; 200) "(" | 153 | L_PAREN@199..200 "(" |
154 | IDENT@[200; 201) "C" | 154 | IDENT@200..201 "C" |
155 | COMMA@[201; 202) "," | 155 | COMMA@201..202 "," |
156 | WHITESPACE@[202; 203) " " | 156 | WHITESPACE@202..203 " " |
157 | IDENT@[203; 208) "align" | 157 | IDENT@203..208 "align" |
158 | WHITESPACE@[208; 209) " " | 158 | WHITESPACE@208..209 " " |
159 | EQ@[209; 210) "=" | 159 | EQ@209..210 "=" |
160 | WHITESPACE@[210; 211) " " | 160 | WHITESPACE@210..211 " " |
161 | INT_NUMBER@[211; 212) "4" | 161 | INT_NUMBER@211..212 "4" |
162 | R_PAREN@[212; 213) ")" | 162 | R_PAREN@212..213 ")" |
163 | R_BRACK@[213; 214) "]" | 163 | R_BRACK@213..214 "]" |
164 | WHITESPACE@[214; 215) "\n" | 164 | WHITESPACE@214..215 "\n" |
165 | ATTR@[215; 236) | 165 | ATTR@215..236 |
166 | POUND@[215; 216) "#" | 166 | POUND@215..216 "#" |
167 | BANG@[216; 217) "!" | 167 | BANG@216..217 "!" |
168 | L_BRACK@[217; 218) "[" | 168 | L_BRACK@217..218 "[" |
169 | PATH@[218; 222) | 169 | PATH@218..222 |
170 | PATH_SEGMENT@[218; 222) | 170 | PATH_SEGMENT@218..222 |
171 | NAME_REF@[218; 222) | 171 | NAME_REF@218..222 |
172 | IDENT@[218; 222) "repr" | 172 | IDENT@218..222 "repr" |
173 | TOKEN_TREE@[222; 235) | 173 | TOKEN_TREE@222..235 |
174 | L_PAREN@[222; 223) "(" | 174 | L_PAREN@222..223 "(" |
175 | IDENT@[223; 224) "C" | 175 | IDENT@223..224 "C" |
176 | COMMA@[224; 225) "," | 176 | COMMA@224..225 "," |
177 | WHITESPACE@[225; 226) " " | 177 | WHITESPACE@225..226 " " |
178 | IDENT@[226; 231) "align" | 178 | IDENT@226..231 "align" |
179 | TOKEN_TREE@[231; 234) | 179 | TOKEN_TREE@231..234 |
180 | L_PAREN@[231; 232) "(" | 180 | L_PAREN@231..232 "(" |
181 | INT_NUMBER@[232; 233) "4" | 181 | INT_NUMBER@232..233 "4" |
182 | R_PAREN@[233; 234) ")" | 182 | R_PAREN@233..234 ")" |
183 | R_PAREN@[234; 235) ")" | 183 | R_PAREN@234..235 ")" |
184 | R_BRACK@[235; 236) "]" | 184 | R_BRACK@235..236 "]" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0007_extern_crate.rast b/crates/ra_syntax/test_data/parser/ok/0007_extern_crate.rast index 4856b4f81..b5bdf0aa9 100644 --- a/crates/ra_syntax/test_data/parser/ok/0007_extern_crate.rast +++ b/crates/ra_syntax/test_data/parser/ok/0007_extern_crate.rast | |||
@@ -1,40 +1,40 @@ | |||
1 | SOURCE_FILE@[0; 69) | 1 | SOURCE_FILE@0..69 |
2 | EXTERN_CRATE_ITEM@[0; 17) | 2 | EXTERN_CRATE_ITEM@0..17 |
3 | EXTERN_KW@[0; 6) "extern" | 3 | EXTERN_KW@0..6 "extern" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | CRATE_KW@[7; 12) "crate" | 5 | CRATE_KW@7..12 "crate" |
6 | WHITESPACE@[12; 13) " " | 6 | WHITESPACE@12..13 " " |
7 | NAME_REF@[13; 16) | 7 | NAME_REF@13..16 |
8 | IDENT@[13; 16) "foo" | 8 | IDENT@13..16 "foo" |
9 | SEMICOLON@[16; 17) ";" | 9 | SEMICOLON@16..17 ";" |
10 | WHITESPACE@[17; 18) "\n" | 10 | WHITESPACE@17..18 "\n" |
11 | EXTERN_CRATE_ITEM@[18; 42) | 11 | EXTERN_CRATE_ITEM@18..42 |
12 | EXTERN_KW@[18; 24) "extern" | 12 | EXTERN_KW@18..24 "extern" |
13 | WHITESPACE@[24; 25) " " | 13 | WHITESPACE@24..25 " " |
14 | CRATE_KW@[25; 30) "crate" | 14 | CRATE_KW@25..30 "crate" |
15 | WHITESPACE@[30; 31) " " | 15 | WHITESPACE@30..31 " " |
16 | NAME_REF@[31; 34) | 16 | NAME_REF@31..34 |
17 | IDENT@[31; 34) "foo" | 17 | IDENT@31..34 "foo" |
18 | WHITESPACE@[34; 35) " " | 18 | WHITESPACE@34..35 " " |
19 | ALIAS@[35; 41) | 19 | ALIAS@35..41 |
20 | AS_KW@[35; 37) "as" | 20 | AS_KW@35..37 "as" |
21 | WHITESPACE@[37; 38) " " | 21 | WHITESPACE@37..38 " " |
22 | NAME@[38; 41) | 22 | NAME@38..41 |
23 | IDENT@[38; 41) "bar" | 23 | IDENT@38..41 "bar" |
24 | SEMICOLON@[41; 42) ";" | 24 | SEMICOLON@41..42 ";" |
25 | WHITESPACE@[42; 43) "\n" | 25 | WHITESPACE@42..43 "\n" |
26 | EXTERN_CRATE_ITEM@[43; 68) | 26 | EXTERN_CRATE_ITEM@43..68 |
27 | EXTERN_KW@[43; 49) "extern" | 27 | EXTERN_KW@43..49 "extern" |
28 | WHITESPACE@[49; 50) " " | 28 | WHITESPACE@49..50 " " |
29 | CRATE_KW@[50; 55) "crate" | 29 | CRATE_KW@50..55 "crate" |
30 | WHITESPACE@[55; 56) " " | 30 | WHITESPACE@55..56 " " |
31 | SELF_KW@[56; 60) | 31 | SELF_KW@56..60 |
32 | SELF_KW@[56; 60) "self" | 32 | SELF_KW@56..60 "self" |
33 | WHITESPACE@[60; 61) " " | 33 | WHITESPACE@60..61 " " |
34 | ALIAS@[61; 67) | 34 | ALIAS@61..67 |
35 | AS_KW@[61; 63) "as" | 35 | AS_KW@61..63 "as" |
36 | WHITESPACE@[63; 64) " " | 36 | WHITESPACE@63..64 " " |
37 | NAME@[64; 67) | 37 | NAME@64..67 |
38 | IDENT@[64; 67) "baz" | 38 | IDENT@64..67 "baz" |
39 | SEMICOLON@[67; 68) ";" | 39 | SEMICOLON@67..68 ";" |
40 | WHITESPACE@[68; 69) "\n" | 40 | WHITESPACE@68..69 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast index 1c18edd4e..353bf2d2e 100644 --- a/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0008_mod_item.rast | |||
@@ -1,93 +1,93 @@ | |||
1 | SOURCE_FILE@[0; 118) | 1 | SOURCE_FILE@0..118 |
2 | MODULE@[0; 6) | 2 | MODULE@0..6 |
3 | MOD_KW@[0; 3) "mod" | 3 | MOD_KW@0..3 "mod" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | NAME@[4; 5) | 5 | NAME@4..5 |
6 | IDENT@[4; 5) "a" | 6 | IDENT@4..5 "a" |
7 | SEMICOLON@[5; 6) ";" | 7 | SEMICOLON@5..6 ";" |
8 | WHITESPACE@[6; 8) "\n\n" | 8 | WHITESPACE@6..8 "\n\n" |
9 | MODULE@[8; 17) | 9 | MODULE@8..17 |
10 | MOD_KW@[8; 11) "mod" | 10 | MOD_KW@8..11 "mod" |
11 | WHITESPACE@[11; 12) " " | 11 | WHITESPACE@11..12 " " |
12 | NAME@[12; 13) | 12 | NAME@12..13 |
13 | IDENT@[12; 13) "b" | 13 | IDENT@12..13 "b" |
14 | WHITESPACE@[13; 14) " " | 14 | WHITESPACE@13..14 " " |
15 | ITEM_LIST@[14; 17) | 15 | ITEM_LIST@14..17 |
16 | L_CURLY@[14; 15) "{" | 16 | L_CURLY@14..15 "{" |
17 | WHITESPACE@[15; 16) "\n" | 17 | WHITESPACE@15..16 "\n" |
18 | R_CURLY@[16; 17) "}" | 18 | R_CURLY@16..17 "}" |
19 | WHITESPACE@[17; 19) "\n\n" | 19 | WHITESPACE@17..19 "\n\n" |
20 | MODULE@[19; 65) | 20 | MODULE@19..65 |
21 | MOD_KW@[19; 22) "mod" | 21 | MOD_KW@19..22 "mod" |
22 | WHITESPACE@[22; 23) " " | 22 | WHITESPACE@22..23 " " |
23 | NAME@[23; 24) | 23 | NAME@23..24 |
24 | IDENT@[23; 24) "c" | 24 | IDENT@23..24 "c" |
25 | WHITESPACE@[24; 25) " " | 25 | WHITESPACE@24..25 " " |
26 | ITEM_LIST@[25; 65) | 26 | ITEM_LIST@25..65 |
27 | L_CURLY@[25; 26) "{" | 27 | L_CURLY@25..26 "{" |
28 | WHITESPACE@[26; 31) "\n " | 28 | WHITESPACE@26..31 "\n " |
29 | FN_DEF@[31; 47) | 29 | FN_DEF@31..47 |
30 | FN_KW@[31; 33) "fn" | 30 | FN_KW@31..33 "fn" |
31 | WHITESPACE@[33; 34) " " | 31 | WHITESPACE@33..34 " " |
32 | NAME@[34; 37) | 32 | NAME@34..37 |
33 | IDENT@[34; 37) "foo" | 33 | IDENT@34..37 "foo" |
34 | PARAM_LIST@[37; 39) | 34 | PARAM_LIST@37..39 |
35 | L_PAREN@[37; 38) "(" | 35 | L_PAREN@37..38 "(" |
36 | R_PAREN@[38; 39) ")" | 36 | R_PAREN@38..39 ")" |
37 | WHITESPACE@[39; 40) " " | 37 | WHITESPACE@39..40 " " |
38 | BLOCK_EXPR@[40; 47) | 38 | BLOCK_EXPR@40..47 |
39 | BLOCK@[40; 47) | 39 | BLOCK@40..47 |
40 | L_CURLY@[40; 41) "{" | 40 | L_CURLY@40..41 "{" |
41 | WHITESPACE@[41; 46) "\n " | 41 | WHITESPACE@41..46 "\n " |
42 | R_CURLY@[46; 47) "}" | 42 | R_CURLY@46..47 "}" |
43 | WHITESPACE@[47; 52) "\n " | 43 | WHITESPACE@47..52 "\n " |
44 | STRUCT_DEF@[52; 63) | 44 | STRUCT_DEF@52..63 |
45 | STRUCT_KW@[52; 58) "struct" | 45 | STRUCT_KW@52..58 "struct" |
46 | WHITESPACE@[58; 59) " " | 46 | WHITESPACE@58..59 " " |
47 | NAME@[59; 60) | 47 | NAME@59..60 |
48 | IDENT@[59; 60) "S" | 48 | IDENT@59..60 "S" |
49 | WHITESPACE@[60; 61) " " | 49 | WHITESPACE@60..61 " " |
50 | RECORD_FIELD_DEF_LIST@[61; 63) | 50 | RECORD_FIELD_DEF_LIST@61..63 |
51 | L_CURLY@[61; 62) "{" | 51 | L_CURLY@61..62 "{" |
52 | R_CURLY@[62; 63) "}" | 52 | R_CURLY@62..63 "}" |
53 | WHITESPACE@[63; 64) "\n" | 53 | WHITESPACE@63..64 "\n" |
54 | R_CURLY@[64; 65) "}" | 54 | R_CURLY@64..65 "}" |
55 | WHITESPACE@[65; 67) "\n\n" | 55 | WHITESPACE@65..67 "\n\n" |
56 | MODULE@[67; 118) | 56 | MODULE@67..118 |
57 | MOD_KW@[67; 70) "mod" | 57 | MOD_KW@67..70 "mod" |
58 | WHITESPACE@[70; 71) " " | 58 | WHITESPACE@70..71 " " |
59 | NAME@[71; 72) | 59 | NAME@71..72 |
60 | IDENT@[71; 72) "d" | 60 | IDENT@71..72 "d" |
61 | WHITESPACE@[72; 73) " " | 61 | WHITESPACE@72..73 " " |
62 | ITEM_LIST@[73; 118) | 62 | ITEM_LIST@73..118 |
63 | L_CURLY@[73; 74) "{" | 63 | L_CURLY@73..74 "{" |
64 | WHITESPACE@[74; 79) "\n " | 64 | WHITESPACE@74..79 "\n " |
65 | ATTR@[79; 87) | 65 | ATTR@79..87 |
66 | POUND@[79; 80) "#" | 66 | POUND@79..80 "#" |
67 | BANG@[80; 81) "!" | 67 | BANG@80..81 "!" |
68 | L_BRACK@[81; 82) "[" | 68 | L_BRACK@81..82 "[" |
69 | PATH@[82; 86) | 69 | PATH@82..86 |
70 | PATH_SEGMENT@[82; 86) | 70 | PATH_SEGMENT@82..86 |
71 | NAME_REF@[82; 86) | 71 | NAME_REF@82..86 |
72 | IDENT@[82; 86) "attr" | 72 | IDENT@82..86 "attr" |
73 | R_BRACK@[86; 87) "]" | 73 | R_BRACK@86..87 "]" |
74 | WHITESPACE@[87; 92) "\n " | 74 | WHITESPACE@87..92 "\n " |
75 | MODULE@[92; 98) | 75 | MODULE@92..98 |
76 | MOD_KW@[92; 95) "mod" | 76 | MOD_KW@92..95 "mod" |
77 | WHITESPACE@[95; 96) " " | 77 | WHITESPACE@95..96 " " |
78 | NAME@[96; 97) | 78 | NAME@96..97 |
79 | IDENT@[96; 97) "e" | 79 | IDENT@96..97 "e" |
80 | SEMICOLON@[97; 98) ";" | 80 | SEMICOLON@97..98 ";" |
81 | WHITESPACE@[98; 103) "\n " | 81 | WHITESPACE@98..103 "\n " |
82 | MODULE@[103; 116) | 82 | MODULE@103..116 |
83 | MOD_KW@[103; 106) "mod" | 83 | MOD_KW@103..106 "mod" |
84 | WHITESPACE@[106; 107) " " | 84 | WHITESPACE@106..107 " " |
85 | NAME@[107; 108) | 85 | NAME@107..108 |
86 | IDENT@[107; 108) "f" | 86 | IDENT@107..108 "f" |
87 | WHITESPACE@[108; 109) " " | 87 | WHITESPACE@108..109 " " |
88 | ITEM_LIST@[109; 116) | 88 | ITEM_LIST@109..116 |
89 | L_CURLY@[109; 110) "{" | 89 | L_CURLY@109..110 "{" |
90 | WHITESPACE@[110; 115) "\n " | 90 | WHITESPACE@110..115 "\n " |
91 | R_CURLY@[115; 116) "}" | 91 | R_CURLY@115..116 "}" |
92 | WHITESPACE@[116; 117) "\n" | 92 | WHITESPACE@116..117 "\n" |
93 | R_CURLY@[117; 118) "}" | 93 | R_CURLY@117..118 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0009_use_item.rast b/crates/ra_syntax/test_data/parser/ok/0009_use_item.rast index 62a8ae433..96b8a94fc 100644 --- a/crates/ra_syntax/test_data/parser/ok/0009_use_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0009_use_item.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 19) | 1 | SOURCE_FILE@0..19 |
2 | USE_ITEM@[0; 8) | 2 | USE_ITEM@0..8 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 7) | 5 | USE_TREE@4..7 |
6 | PATH@[4; 7) | 6 | PATH@4..7 |
7 | PATH_SEGMENT@[4; 7) | 7 | PATH_SEGMENT@4..7 |
8 | NAME_REF@[4; 7) | 8 | NAME_REF@4..7 |
9 | IDENT@[4; 7) "foo" | 9 | IDENT@4..7 "foo" |
10 | SEMICOLON@[7; 8) ";" | 10 | SEMICOLON@7..8 ";" |
11 | WHITESPACE@[8; 9) "\n" | 11 | WHITESPACE@8..9 "\n" |
12 | USE_ITEM@[9; 19) | 12 | USE_ITEM@9..19 |
13 | USE_KW@[9; 12) "use" | 13 | USE_KW@9..12 "use" |
14 | WHITESPACE@[12; 13) " " | 14 | WHITESPACE@12..13 " " |
15 | USE_TREE@[13; 18) | 15 | USE_TREE@13..18 |
16 | PATH@[13; 18) | 16 | PATH@13..18 |
17 | PATH_SEGMENT@[13; 18) | 17 | PATH_SEGMENT@13..18 |
18 | COLON2@[13; 15) "::" | 18 | COLON2@13..15 "::" |
19 | NAME_REF@[15; 18) | 19 | NAME_REF@15..18 |
20 | IDENT@[15; 18) "bar" | 20 | IDENT@15..18 "bar" |
21 | SEMICOLON@[18; 19) ";" | 21 | SEMICOLON@18..19 ";" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0010_use_path_segments.rast b/crates/ra_syntax/test_data/parser/ok/0010_use_path_segments.rast index f2689e1ed..07272dc3c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0010_use_path_segments.rast +++ b/crates/ra_syntax/test_data/parser/ok/0010_use_path_segments.rast | |||
@@ -1,42 +1,42 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | USE_ITEM@[0; 20) | 2 | USE_ITEM@0..20 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 19) | 5 | USE_TREE@4..19 |
6 | PATH@[4; 19) | 6 | PATH@4..19 |
7 | PATH@[4; 14) | 7 | PATH@4..14 |
8 | PATH@[4; 9) | 8 | PATH@4..9 |
9 | PATH_SEGMENT@[4; 9) | 9 | PATH_SEGMENT@4..9 |
10 | COLON2@[4; 6) "::" | 10 | COLON2@4..6 "::" |
11 | NAME_REF@[6; 9) | 11 | NAME_REF@6..9 |
12 | IDENT@[6; 9) "foo" | 12 | IDENT@6..9 "foo" |
13 | COLON2@[9; 11) "::" | 13 | COLON2@9..11 "::" |
14 | PATH_SEGMENT@[11; 14) | 14 | PATH_SEGMENT@11..14 |
15 | NAME_REF@[11; 14) | 15 | NAME_REF@11..14 |
16 | IDENT@[11; 14) "bar" | 16 | IDENT@11..14 "bar" |
17 | COLON2@[14; 16) "::" | 17 | COLON2@14..16 "::" |
18 | PATH_SEGMENT@[16; 19) | 18 | PATH_SEGMENT@16..19 |
19 | NAME_REF@[16; 19) | 19 | NAME_REF@16..19 |
20 | IDENT@[16; 19) "baz" | 20 | IDENT@16..19 "baz" |
21 | SEMICOLON@[19; 20) ";" | 21 | SEMICOLON@19..20 ";" |
22 | WHITESPACE@[20; 21) "\n" | 22 | WHITESPACE@20..21 "\n" |
23 | USE_ITEM@[21; 39) | 23 | USE_ITEM@21..39 |
24 | USE_KW@[21; 24) "use" | 24 | USE_KW@21..24 "use" |
25 | WHITESPACE@[24; 25) " " | 25 | WHITESPACE@24..25 " " |
26 | USE_TREE@[25; 38) | 26 | USE_TREE@25..38 |
27 | PATH@[25; 38) | 27 | PATH@25..38 |
28 | PATH@[25; 33) | 28 | PATH@25..33 |
29 | PATH@[25; 28) | 29 | PATH@25..28 |
30 | PATH_SEGMENT@[25; 28) | 30 | PATH_SEGMENT@25..28 |
31 | NAME_REF@[25; 28) | 31 | NAME_REF@25..28 |
32 | IDENT@[25; 28) "foo" | 32 | IDENT@25..28 "foo" |
33 | COLON2@[28; 30) "::" | 33 | COLON2@28..30 "::" |
34 | PATH_SEGMENT@[30; 33) | 34 | PATH_SEGMENT@30..33 |
35 | NAME_REF@[30; 33) | 35 | NAME_REF@30..33 |
36 | IDENT@[30; 33) "bar" | 36 | IDENT@30..33 "bar" |
37 | COLON2@[33; 35) "::" | 37 | COLON2@33..35 "::" |
38 | PATH_SEGMENT@[35; 38) | 38 | PATH_SEGMENT@35..38 |
39 | NAME_REF@[35; 38) | 39 | NAME_REF@35..38 |
40 | IDENT@[35; 38) "baz" | 40 | IDENT@35..38 "baz" |
41 | SEMICOLON@[38; 39) ";" | 41 | SEMICOLON@38..39 ";" |
42 | WHITESPACE@[39; 40) "\n" | 42 | WHITESPACE@39..40 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast index 4426d586a..3919cc78b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast +++ b/crates/ra_syntax/test_data/parser/ok/0011_outer_attribute.rast | |||
@@ -1,58 +1,58 @@ | |||
1 | SOURCE_FILE@[0; 60) | 1 | SOURCE_FILE@0..60 |
2 | FN_DEF@[0; 34) | 2 | FN_DEF@0..34 |
3 | ATTR@[0; 12) | 3 | ATTR@0..12 |
4 | POUND@[0; 1) "#" | 4 | POUND@0..1 "#" |
5 | L_BRACK@[1; 2) "[" | 5 | L_BRACK@1..2 "[" |
6 | PATH@[2; 5) | 6 | PATH@2..5 |
7 | PATH_SEGMENT@[2; 5) | 7 | PATH_SEGMENT@2..5 |
8 | NAME_REF@[2; 5) | 8 | NAME_REF@2..5 |
9 | IDENT@[2; 5) "cfg" | 9 | IDENT@2..5 "cfg" |
10 | TOKEN_TREE@[5; 11) | 10 | TOKEN_TREE@5..11 |
11 | L_PAREN@[5; 6) "(" | 11 | L_PAREN@5..6 "(" |
12 | IDENT@[6; 10) "test" | 12 | IDENT@6..10 "test" |
13 | R_PAREN@[10; 11) ")" | 13 | R_PAREN@10..11 ")" |
14 | R_BRACK@[11; 12) "]" | 14 | R_BRACK@11..12 "]" |
15 | WHITESPACE@[12; 13) "\n" | 15 | WHITESPACE@12..13 "\n" |
16 | ATTR@[13; 22) | 16 | ATTR@13..22 |
17 | POUND@[13; 14) "#" | 17 | POUND@13..14 "#" |
18 | L_BRACK@[14; 15) "[" | 18 | L_BRACK@14..15 "[" |
19 | PATH@[15; 21) | 19 | PATH@15..21 |
20 | PATH_SEGMENT@[15; 21) | 20 | PATH_SEGMENT@15..21 |
21 | NAME_REF@[15; 21) | 21 | NAME_REF@15..21 |
22 | IDENT@[15; 21) "ignore" | 22 | IDENT@15..21 "ignore" |
23 | R_BRACK@[21; 22) "]" | 23 | R_BRACK@21..22 "]" |
24 | WHITESPACE@[22; 23) "\n" | 24 | WHITESPACE@22..23 "\n" |
25 | FN_KW@[23; 25) "fn" | 25 | FN_KW@23..25 "fn" |
26 | WHITESPACE@[25; 26) " " | 26 | WHITESPACE@25..26 " " |
27 | NAME@[26; 29) | 27 | NAME@26..29 |
28 | IDENT@[26; 29) "foo" | 28 | IDENT@26..29 "foo" |
29 | PARAM_LIST@[29; 31) | 29 | PARAM_LIST@29..31 |
30 | L_PAREN@[29; 30) "(" | 30 | L_PAREN@29..30 "(" |
31 | R_PAREN@[30; 31) ")" | 31 | R_PAREN@30..31 ")" |
32 | WHITESPACE@[31; 32) " " | 32 | WHITESPACE@31..32 " " |
33 | BLOCK_EXPR@[32; 34) | 33 | BLOCK_EXPR@32..34 |
34 | BLOCK@[32; 34) | 34 | BLOCK@32..34 |
35 | L_CURLY@[32; 33) "{" | 35 | L_CURLY@32..33 "{" |
36 | R_CURLY@[33; 34) "}" | 36 | R_CURLY@33..34 "}" |
37 | WHITESPACE@[34; 36) "\n\n" | 37 | WHITESPACE@34..36 "\n\n" |
38 | MODULE@[36; 59) | 38 | MODULE@36..59 |
39 | ATTR@[36; 52) | 39 | ATTR@36..52 |
40 | POUND@[36; 37) "#" | 40 | POUND@36..37 "#" |
41 | L_BRACK@[37; 38) "[" | 41 | L_BRACK@37..38 "[" |
42 | PATH@[38; 42) | 42 | PATH@38..42 |
43 | PATH_SEGMENT@[38; 42) | 43 | PATH_SEGMENT@38..42 |
44 | NAME_REF@[38; 42) | 44 | NAME_REF@38..42 |
45 | IDENT@[38; 42) "path" | 45 | IDENT@38..42 "path" |
46 | WHITESPACE@[42; 43) " " | 46 | WHITESPACE@42..43 " " |
47 | EQ@[43; 44) "=" | 47 | EQ@43..44 "=" |
48 | WHITESPACE@[44; 45) " " | 48 | WHITESPACE@44..45 " " |
49 | LITERAL@[45; 51) | 49 | LITERAL@45..51 |
50 | STRING@[45; 51) "\"a.rs\"" | 50 | STRING@45..51 "\"a.rs\"" |
51 | R_BRACK@[51; 52) "]" | 51 | R_BRACK@51..52 "]" |
52 | WHITESPACE@[52; 53) "\n" | 52 | WHITESPACE@52..53 "\n" |
53 | MOD_KW@[53; 56) "mod" | 53 | MOD_KW@53..56 "mod" |
54 | WHITESPACE@[56; 57) " " | 54 | WHITESPACE@56..57 " " |
55 | NAME@[57; 58) | 55 | NAME@57..58 |
56 | IDENT@[57; 58) "b" | 56 | IDENT@57..58 "b" |
57 | SEMICOLON@[58; 59) ";" | 57 | SEMICOLON@58..59 ";" |
58 | WHITESPACE@[59; 60) "\n" | 58 | WHITESPACE@59..60 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast index c76cf9fe9..750a045ef 100644 --- a/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast +++ b/crates/ra_syntax/test_data/parser/ok/0012_visibility.rast | |||
@@ -1,107 +1,107 @@ | |||
1 | SOURCE_FILE@[0; 98) | 1 | SOURCE_FILE@0..98 |
2 | FN_DEF@[0; 9) | 2 | FN_DEF@0..9 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | BLOCK_EXPR@[7; 9) | 11 | BLOCK_EXPR@7..9 |
12 | BLOCK@[7; 9) | 12 | BLOCK@7..9 |
13 | L_CURLY@[7; 8) "{" | 13 | L_CURLY@7..8 "{" |
14 | R_CURLY@[8; 9) "}" | 14 | R_CURLY@8..9 "}" |
15 | WHITESPACE@[9; 10) "\n" | 15 | WHITESPACE@9..10 "\n" |
16 | FN_DEF@[10; 23) | 16 | FN_DEF@10..23 |
17 | VISIBILITY@[10; 13) | 17 | VISIBILITY@10..13 |
18 | PUB_KW@[10; 13) "pub" | 18 | PUB_KW@10..13 "pub" |
19 | WHITESPACE@[13; 14) " " | 19 | WHITESPACE@13..14 " " |
20 | FN_KW@[14; 16) "fn" | 20 | FN_KW@14..16 "fn" |
21 | WHITESPACE@[16; 17) " " | 21 | WHITESPACE@16..17 " " |
22 | NAME@[17; 18) | 22 | NAME@17..18 |
23 | IDENT@[17; 18) "b" | 23 | IDENT@17..18 "b" |
24 | PARAM_LIST@[18; 20) | 24 | PARAM_LIST@18..20 |
25 | L_PAREN@[18; 19) "(" | 25 | L_PAREN@18..19 "(" |
26 | R_PAREN@[19; 20) ")" | 26 | R_PAREN@19..20 ")" |
27 | WHITESPACE@[20; 21) " " | 27 | WHITESPACE@20..21 " " |
28 | BLOCK_EXPR@[21; 23) | 28 | BLOCK_EXPR@21..23 |
29 | BLOCK@[21; 23) | 29 | BLOCK@21..23 |
30 | L_CURLY@[21; 22) "{" | 30 | L_CURLY@21..22 "{" |
31 | R_CURLY@[22; 23) "}" | 31 | R_CURLY@22..23 "}" |
32 | WHITESPACE@[23; 24) "\n" | 32 | WHITESPACE@23..24 "\n" |
33 | FN_DEF@[24; 44) | 33 | FN_DEF@24..44 |
34 | VISIBILITY@[24; 34) | 34 | VISIBILITY@24..34 |
35 | PUB_KW@[24; 27) "pub" | 35 | PUB_KW@24..27 "pub" |
36 | L_PAREN@[27; 28) "(" | 36 | L_PAREN@27..28 "(" |
37 | CRATE_KW@[28; 33) "crate" | 37 | CRATE_KW@28..33 "crate" |
38 | R_PAREN@[33; 34) ")" | 38 | R_PAREN@33..34 ")" |
39 | WHITESPACE@[34; 35) " " | 39 | WHITESPACE@34..35 " " |
40 | FN_KW@[35; 37) "fn" | 40 | FN_KW@35..37 "fn" |
41 | WHITESPACE@[37; 38) " " | 41 | WHITESPACE@37..38 " " |
42 | NAME@[38; 39) | 42 | NAME@38..39 |
43 | IDENT@[38; 39) "c" | 43 | IDENT@38..39 "c" |
44 | PARAM_LIST@[39; 41) | 44 | PARAM_LIST@39..41 |
45 | L_PAREN@[39; 40) "(" | 45 | L_PAREN@39..40 "(" |
46 | R_PAREN@[40; 41) ")" | 46 | R_PAREN@40..41 ")" |
47 | WHITESPACE@[41; 42) " " | 47 | WHITESPACE@41..42 " " |
48 | BLOCK_EXPR@[42; 44) | 48 | BLOCK_EXPR@42..44 |
49 | BLOCK@[42; 44) | 49 | BLOCK@42..44 |
50 | L_CURLY@[42; 43) "{" | 50 | L_CURLY@42..43 "{" |
51 | R_CURLY@[43; 44) "}" | 51 | R_CURLY@43..44 "}" |
52 | WHITESPACE@[44; 45) "\n" | 52 | WHITESPACE@44..45 "\n" |
53 | FN_DEF@[45; 65) | 53 | FN_DEF@45..65 |
54 | VISIBILITY@[45; 55) | 54 | VISIBILITY@45..55 |
55 | PUB_KW@[45; 48) "pub" | 55 | PUB_KW@45..48 "pub" |
56 | L_PAREN@[48; 49) "(" | 56 | L_PAREN@48..49 "(" |
57 | SUPER_KW@[49; 54) "super" | 57 | SUPER_KW@49..54 "super" |
58 | R_PAREN@[54; 55) ")" | 58 | R_PAREN@54..55 ")" |
59 | WHITESPACE@[55; 56) " " | 59 | WHITESPACE@55..56 " " |
60 | FN_KW@[56; 58) "fn" | 60 | FN_KW@56..58 "fn" |
61 | WHITESPACE@[58; 59) " " | 61 | WHITESPACE@58..59 " " |
62 | NAME@[59; 60) | 62 | NAME@59..60 |
63 | IDENT@[59; 60) "d" | 63 | IDENT@59..60 "d" |
64 | PARAM_LIST@[60; 62) | 64 | PARAM_LIST@60..62 |
65 | L_PAREN@[60; 61) "(" | 65 | L_PAREN@60..61 "(" |
66 | R_PAREN@[61; 62) ")" | 66 | R_PAREN@61..62 ")" |
67 | WHITESPACE@[62; 63) " " | 67 | WHITESPACE@62..63 " " |
68 | BLOCK_EXPR@[63; 65) | 68 | BLOCK_EXPR@63..65 |
69 | BLOCK@[63; 65) | 69 | BLOCK@63..65 |
70 | L_CURLY@[63; 64) "{" | 70 | L_CURLY@63..64 "{" |
71 | R_CURLY@[64; 65) "}" | 71 | R_CURLY@64..65 "}" |
72 | WHITESPACE@[65; 66) "\n" | 72 | WHITESPACE@65..66 "\n" |
73 | FN_DEF@[66; 97) | 73 | FN_DEF@66..97 |
74 | VISIBILITY@[66; 87) | 74 | VISIBILITY@66..87 |
75 | PUB_KW@[66; 69) "pub" | 75 | PUB_KW@66..69 "pub" |
76 | L_PAREN@[69; 70) "(" | 76 | L_PAREN@69..70 "(" |
77 | IN_KW@[70; 72) "in" | 77 | IN_KW@70..72 "in" |
78 | WHITESPACE@[72; 73) " " | 78 | WHITESPACE@72..73 " " |
79 | PATH@[73; 86) | 79 | PATH@73..86 |
80 | PATH@[73; 81) | 80 | PATH@73..81 |
81 | PATH@[73; 76) | 81 | PATH@73..76 |
82 | PATH_SEGMENT@[73; 76) | 82 | PATH_SEGMENT@73..76 |
83 | NAME_REF@[73; 76) | 83 | NAME_REF@73..76 |
84 | IDENT@[73; 76) "foo" | 84 | IDENT@73..76 "foo" |
85 | COLON2@[76; 78) "::" | 85 | COLON2@76..78 "::" |
86 | PATH_SEGMENT@[78; 81) | 86 | PATH_SEGMENT@78..81 |
87 | NAME_REF@[78; 81) | 87 | NAME_REF@78..81 |
88 | IDENT@[78; 81) "bar" | 88 | IDENT@78..81 "bar" |
89 | COLON2@[81; 83) "::" | 89 | COLON2@81..83 "::" |
90 | PATH_SEGMENT@[83; 86) | 90 | PATH_SEGMENT@83..86 |
91 | NAME_REF@[83; 86) | 91 | NAME_REF@83..86 |
92 | IDENT@[83; 86) "baz" | 92 | IDENT@83..86 "baz" |
93 | R_PAREN@[86; 87) ")" | 93 | R_PAREN@86..87 ")" |
94 | WHITESPACE@[87; 88) " " | 94 | WHITESPACE@87..88 " " |
95 | FN_KW@[88; 90) "fn" | 95 | FN_KW@88..90 "fn" |
96 | WHITESPACE@[90; 91) " " | 96 | WHITESPACE@90..91 " " |
97 | NAME@[91; 92) | 97 | NAME@91..92 |
98 | IDENT@[91; 92) "e" | 98 | IDENT@91..92 "e" |
99 | PARAM_LIST@[92; 94) | 99 | PARAM_LIST@92..94 |
100 | L_PAREN@[92; 93) "(" | 100 | L_PAREN@92..93 "(" |
101 | R_PAREN@[93; 94) ")" | 101 | R_PAREN@93..94 ")" |
102 | WHITESPACE@[94; 95) " " | 102 | WHITESPACE@94..95 " " |
103 | BLOCK_EXPR@[95; 97) | 103 | BLOCK_EXPR@95..97 |
104 | BLOCK@[95; 97) | 104 | BLOCK@95..97 |
105 | L_CURLY@[95; 96) "{" | 105 | L_CURLY@95..96 "{" |
106 | R_CURLY@[96; 97) "}" | 106 | R_CURLY@96..97 "}" |
107 | WHITESPACE@[97; 98) "\n" | 107 | WHITESPACE@97..98 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast index 552cb3daf..a5a90df7b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast +++ b/crates/ra_syntax/test_data/parser/ok/0013_use_path_self_super.rast | |||
@@ -1,57 +1,57 @@ | |||
1 | SOURCE_FILE@[0; 65) | 1 | SOURCE_FILE@0..65 |
2 | USE_ITEM@[0; 14) | 2 | USE_ITEM@0..14 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 13) | 5 | USE_TREE@4..13 |
6 | PATH@[4; 13) | 6 | PATH@4..13 |
7 | PATH@[4; 8) | 7 | PATH@4..8 |
8 | PATH_SEGMENT@[4; 8) | 8 | PATH_SEGMENT@4..8 |
9 | SELF_KW@[4; 8) "self" | 9 | SELF_KW@4..8 "self" |
10 | COLON2@[8; 10) "::" | 10 | COLON2@8..10 "::" |
11 | PATH_SEGMENT@[10; 13) | 11 | PATH_SEGMENT@10..13 |
12 | NAME_REF@[10; 13) | 12 | NAME_REF@10..13 |
13 | IDENT@[10; 13) "foo" | 13 | IDENT@10..13 "foo" |
14 | SEMICOLON@[13; 14) ";" | 14 | SEMICOLON@13..14 ";" |
15 | WHITESPACE@[14; 15) "\n" | 15 | WHITESPACE@14..15 "\n" |
16 | USE_ITEM@[15; 37) | 16 | USE_ITEM@15..37 |
17 | USE_KW@[15; 18) "use" | 17 | USE_KW@15..18 "use" |
18 | WHITESPACE@[18; 19) " " | 18 | WHITESPACE@18..19 " " |
19 | USE_TREE@[19; 36) | 19 | USE_TREE@19..36 |
20 | PATH@[19; 36) | 20 | PATH@19..36 |
21 | PATH@[19; 31) | 21 | PATH@19..31 |
22 | PATH@[19; 24) | 22 | PATH@19..24 |
23 | PATH_SEGMENT@[19; 24) | 23 | PATH_SEGMENT@19..24 |
24 | SUPER_KW@[19; 24) "super" | 24 | SUPER_KW@19..24 "super" |
25 | COLON2@[24; 26) "::" | 25 | COLON2@24..26 "::" |
26 | PATH_SEGMENT@[26; 31) | 26 | PATH_SEGMENT@26..31 |
27 | SUPER_KW@[26; 31) "super" | 27 | SUPER_KW@26..31 "super" |
28 | COLON2@[31; 33) "::" | 28 | COLON2@31..33 "::" |
29 | PATH_SEGMENT@[33; 36) | 29 | PATH_SEGMENT@33..36 |
30 | NAME_REF@[33; 36) | 30 | NAME_REF@33..36 |
31 | IDENT@[33; 36) "bar" | 31 | IDENT@33..36 "bar" |
32 | SEMICOLON@[36; 37) ";" | 32 | SEMICOLON@36..37 ";" |
33 | WHITESPACE@[37; 38) "\n" | 33 | WHITESPACE@37..38 "\n" |
34 | USE_ITEM@[38; 64) | 34 | USE_ITEM@38..64 |
35 | USE_KW@[38; 41) "use" | 35 | USE_KW@38..41 "use" |
36 | WHITESPACE@[41; 42) " " | 36 | WHITESPACE@41..42 " " |
37 | USE_TREE@[42; 63) | 37 | USE_TREE@42..63 |
38 | PATH@[42; 63) | 38 | PATH@42..63 |
39 | PATH@[42; 58) | 39 | PATH@42..58 |
40 | PATH@[42; 51) | 40 | PATH@42..51 |
41 | PATH@[42; 48) | 41 | PATH@42..48 |
42 | PATH_SEGMENT@[42; 48) | 42 | PATH_SEGMENT@42..48 |
43 | COLON2@[42; 44) "::" | 43 | COLON2@42..44 "::" |
44 | SELF_KW@[44; 48) "self" | 44 | SELF_KW@44..48 "self" |
45 | COLON2@[48; 50) "::" | 45 | COLON2@48..50 "::" |
46 | PATH_SEGMENT@[50; 51) | 46 | PATH_SEGMENT@50..51 |
47 | NAME_REF@[50; 51) | 47 | NAME_REF@50..51 |
48 | IDENT@[50; 51) "a" | 48 | IDENT@50..51 "a" |
49 | COLON2@[51; 53) "::" | 49 | COLON2@51..53 "::" |
50 | PATH_SEGMENT@[53; 58) | 50 | PATH_SEGMENT@53..58 |
51 | SUPER_KW@[53; 58) "super" | 51 | SUPER_KW@53..58 "super" |
52 | COLON2@[58; 60) "::" | 52 | COLON2@58..60 "::" |
53 | PATH_SEGMENT@[60; 63) | 53 | PATH_SEGMENT@60..63 |
54 | NAME_REF@[60; 63) | 54 | NAME_REF@60..63 |
55 | IDENT@[60; 63) "bar" | 55 | IDENT@60..63 "bar" |
56 | SEMICOLON@[63; 64) ";" | 56 | SEMICOLON@63..64 ";" |
57 | WHITESPACE@[64; 65) "\n" | 57 | WHITESPACE@64..65 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0014_use_tree.rast b/crates/ra_syntax/test_data/parser/ok/0014_use_tree.rast index 49a68e881..3642c107b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0014_use_tree.rast +++ b/crates/ra_syntax/test_data/parser/ok/0014_use_tree.rast | |||
@@ -1,95 +1,95 @@ | |||
1 | SOURCE_FILE@[0; 81) | 1 | SOURCE_FILE@0..81 |
2 | USE_ITEM@[0; 6) | 2 | USE_ITEM@0..6 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 5) | 5 | USE_TREE@4..5 |
6 | STAR@[4; 5) "*" | 6 | STAR@4..5 "*" |
7 | SEMICOLON@[5; 6) ";" | 7 | SEMICOLON@5..6 ";" |
8 | WHITESPACE@[6; 7) "\n" | 8 | WHITESPACE@6..7 "\n" |
9 | USE_ITEM@[7; 15) | 9 | USE_ITEM@7..15 |
10 | USE_KW@[7; 10) "use" | 10 | USE_KW@7..10 "use" |
11 | WHITESPACE@[10; 11) " " | 11 | WHITESPACE@10..11 " " |
12 | USE_TREE@[11; 14) | 12 | USE_TREE@11..14 |
13 | COLON2@[11; 13) "::" | 13 | COLON2@11..13 "::" |
14 | STAR@[13; 14) "*" | 14 | STAR@13..14 "*" |
15 | SEMICOLON@[14; 15) ";" | 15 | SEMICOLON@14..15 ";" |
16 | WHITESPACE@[15; 16) "\n" | 16 | WHITESPACE@15..16 "\n" |
17 | USE_ITEM@[16; 25) | 17 | USE_ITEM@16..25 |
18 | USE_KW@[16; 19) "use" | 18 | USE_KW@16..19 "use" |
19 | WHITESPACE@[19; 20) " " | 19 | WHITESPACE@19..20 " " |
20 | USE_TREE@[20; 24) | 20 | USE_TREE@20..24 |
21 | COLON2@[20; 22) "::" | 21 | COLON2@20..22 "::" |
22 | USE_TREE_LIST@[22; 24) | 22 | USE_TREE_LIST@22..24 |
23 | L_CURLY@[22; 23) "{" | 23 | L_CURLY@22..23 "{" |
24 | R_CURLY@[23; 24) "}" | 24 | R_CURLY@23..24 "}" |
25 | SEMICOLON@[24; 25) ";" | 25 | SEMICOLON@24..25 ";" |
26 | WHITESPACE@[25; 26) "\n" | 26 | WHITESPACE@25..26 "\n" |
27 | USE_ITEM@[26; 33) | 27 | USE_ITEM@26..33 |
28 | USE_KW@[26; 29) "use" | 28 | USE_KW@26..29 "use" |
29 | WHITESPACE@[29; 30) " " | 29 | WHITESPACE@29..30 " " |
30 | USE_TREE@[30; 32) | 30 | USE_TREE@30..32 |
31 | USE_TREE_LIST@[30; 32) | 31 | USE_TREE_LIST@30..32 |
32 | L_CURLY@[30; 31) "{" | 32 | L_CURLY@30..31 "{" |
33 | R_CURLY@[31; 32) "}" | 33 | R_CURLY@31..32 "}" |
34 | SEMICOLON@[32; 33) ";" | 34 | SEMICOLON@32..33 ";" |
35 | WHITESPACE@[33; 34) "\n" | 35 | WHITESPACE@33..34 "\n" |
36 | USE_ITEM@[34; 45) | 36 | USE_ITEM@34..45 |
37 | USE_KW@[34; 37) "use" | 37 | USE_KW@34..37 "use" |
38 | WHITESPACE@[37; 38) " " | 38 | WHITESPACE@37..38 " " |
39 | USE_TREE@[38; 44) | 39 | USE_TREE@38..44 |
40 | PATH@[38; 41) | 40 | PATH@38..41 |
41 | PATH_SEGMENT@[38; 41) | 41 | PATH_SEGMENT@38..41 |
42 | NAME_REF@[38; 41) | 42 | NAME_REF@38..41 |
43 | IDENT@[38; 41) "foo" | 43 | IDENT@38..41 "foo" |
44 | COLON2@[41; 43) "::" | 44 | COLON2@41..43 "::" |
45 | STAR@[43; 44) "*" | 45 | STAR@43..44 "*" |
46 | SEMICOLON@[44; 45) ";" | 46 | SEMICOLON@44..45 ";" |
47 | WHITESPACE@[45; 46) "\n" | 47 | WHITESPACE@45..46 "\n" |
48 | USE_ITEM@[46; 58) | 48 | USE_ITEM@46..58 |
49 | USE_KW@[46; 49) "use" | 49 | USE_KW@46..49 "use" |
50 | WHITESPACE@[49; 50) " " | 50 | WHITESPACE@49..50 " " |
51 | USE_TREE@[50; 57) | 51 | USE_TREE@50..57 |
52 | PATH@[50; 53) | 52 | PATH@50..53 |
53 | PATH_SEGMENT@[50; 53) | 53 | PATH_SEGMENT@50..53 |
54 | NAME_REF@[50; 53) | 54 | NAME_REF@50..53 |
55 | IDENT@[50; 53) "foo" | 55 | IDENT@50..53 "foo" |
56 | COLON2@[53; 55) "::" | 56 | COLON2@53..55 "::" |
57 | USE_TREE_LIST@[55; 57) | 57 | USE_TREE_LIST@55..57 |
58 | L_CURLY@[55; 56) "{" | 58 | L_CURLY@55..56 "{" |
59 | R_CURLY@[56; 57) "}" | 59 | R_CURLY@56..57 "}" |
60 | SEMICOLON@[57; 58) ";" | 60 | SEMICOLON@57..58 ";" |
61 | WHITESPACE@[58; 59) "\n" | 61 | WHITESPACE@58..59 "\n" |
62 | USE_ITEM@[59; 80) | 62 | USE_ITEM@59..80 |
63 | USE_KW@[59; 62) "use" | 63 | USE_KW@59..62 "use" |
64 | WHITESPACE@[62; 63) " " | 64 | WHITESPACE@62..63 " " |
65 | USE_TREE@[63; 79) | 65 | USE_TREE@63..79 |
66 | PATH@[63; 68) | 66 | PATH@63..68 |
67 | PATH_SEGMENT@[63; 68) | 67 | PATH_SEGMENT@63..68 |
68 | COLON2@[63; 65) "::" | 68 | COLON2@63..65 "::" |
69 | NAME_REF@[65; 68) | 69 | NAME_REF@65..68 |
70 | IDENT@[65; 68) "foo" | 70 | IDENT@65..68 "foo" |
71 | COLON2@[68; 70) "::" | 71 | COLON2@68..70 "::" |
72 | USE_TREE_LIST@[70; 79) | 72 | USE_TREE_LIST@70..79 |
73 | L_CURLY@[70; 71) "{" | 73 | L_CURLY@70..71 "{" |
74 | USE_TREE@[71; 72) | 74 | USE_TREE@71..72 |
75 | PATH@[71; 72) | 75 | PATH@71..72 |
76 | PATH_SEGMENT@[71; 72) | 76 | PATH_SEGMENT@71..72 |
77 | NAME_REF@[71; 72) | 77 | NAME_REF@71..72 |
78 | IDENT@[71; 72) "a" | 78 | IDENT@71..72 "a" |
79 | COMMA@[72; 73) "," | 79 | COMMA@72..73 "," |
80 | WHITESPACE@[73; 74) " " | 80 | WHITESPACE@73..74 " " |
81 | USE_TREE@[74; 75) | 81 | USE_TREE@74..75 |
82 | PATH@[74; 75) | 82 | PATH@74..75 |
83 | PATH_SEGMENT@[74; 75) | 83 | PATH_SEGMENT@74..75 |
84 | NAME_REF@[74; 75) | 84 | NAME_REF@74..75 |
85 | IDENT@[74; 75) "b" | 85 | IDENT@74..75 "b" |
86 | COMMA@[75; 76) "," | 86 | COMMA@75..76 "," |
87 | WHITESPACE@[76; 77) " " | 87 | WHITESPACE@76..77 " " |
88 | USE_TREE@[77; 78) | 88 | USE_TREE@77..78 |
89 | PATH@[77; 78) | 89 | PATH@77..78 |
90 | PATH_SEGMENT@[77; 78) | 90 | PATH_SEGMENT@77..78 |
91 | NAME_REF@[77; 78) | 91 | NAME_REF@77..78 |
92 | IDENT@[77; 78) "c" | 92 | IDENT@77..78 "c" |
93 | R_CURLY@[78; 79) "}" | 93 | R_CURLY@78..79 "}" |
94 | SEMICOLON@[79; 80) ";" | 94 | SEMICOLON@79..80 ";" |
95 | WHITESPACE@[80; 81) "\n" | 95 | WHITESPACE@80..81 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0015_use_tree.rast b/crates/ra_syntax/test_data/parser/ok/0015_use_tree.rast index 719ac98ef..09e0050f0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0015_use_tree.rast +++ b/crates/ra_syntax/test_data/parser/ok/0015_use_tree.rast | |||
@@ -1,65 +1,65 @@ | |||
1 | SOURCE_FILE@[0; 55) | 1 | SOURCE_FILE@0..55 |
2 | USE_ITEM@[0; 15) | 2 | USE_ITEM@0..15 |
3 | USE_KW@[0; 3) "use" | 3 | USE_KW@0..3 "use" |
4 | WHITESPACE@[3; 4) " " | 4 | WHITESPACE@3..4 " " |
5 | USE_TREE@[4; 14) | 5 | USE_TREE@4..14 |
6 | PATH@[4; 7) | 6 | PATH@4..7 |
7 | PATH_SEGMENT@[4; 7) | 7 | PATH_SEGMENT@4..7 |
8 | NAME_REF@[4; 7) | 8 | NAME_REF@4..7 |
9 | IDENT@[4; 7) "foo" | 9 | IDENT@4..7 "foo" |
10 | WHITESPACE@[7; 8) " " | 10 | WHITESPACE@7..8 " " |
11 | ALIAS@[8; 14) | 11 | ALIAS@8..14 |
12 | AS_KW@[8; 10) "as" | 12 | AS_KW@8..10 "as" |
13 | WHITESPACE@[10; 11) " " | 13 | WHITESPACE@10..11 " " |
14 | NAME@[11; 14) | 14 | NAME@11..14 |
15 | IDENT@[11; 14) "bar" | 15 | IDENT@11..14 "bar" |
16 | SEMICOLON@[14; 15) ";" | 16 | SEMICOLON@14..15 ";" |
17 | WHITESPACE@[15; 16) "\n" | 17 | WHITESPACE@15..16 "\n" |
18 | USE_ITEM@[16; 54) | 18 | USE_ITEM@16..54 |
19 | USE_KW@[16; 19) "use" | 19 | USE_KW@16..19 "use" |
20 | WHITESPACE@[19; 20) " " | 20 | WHITESPACE@19..20 " " |
21 | USE_TREE@[20; 53) | 21 | USE_TREE@20..53 |
22 | PATH@[20; 23) | 22 | PATH@20..23 |
23 | PATH_SEGMENT@[20; 23) | 23 | PATH_SEGMENT@20..23 |
24 | NAME_REF@[20; 23) | 24 | NAME_REF@20..23 |
25 | IDENT@[20; 23) "foo" | 25 | IDENT@20..23 "foo" |
26 | COLON2@[23; 25) "::" | 26 | COLON2@23..25 "::" |
27 | USE_TREE_LIST@[25; 53) | 27 | USE_TREE_LIST@25..53 |
28 | L_CURLY@[25; 26) "{" | 28 | L_CURLY@25..26 "{" |
29 | USE_TREE@[26; 32) | 29 | USE_TREE@26..32 |
30 | PATH@[26; 27) | 30 | PATH@26..27 |
31 | PATH_SEGMENT@[26; 27) | 31 | PATH_SEGMENT@26..27 |
32 | NAME_REF@[26; 27) | 32 | NAME_REF@26..27 |
33 | IDENT@[26; 27) "a" | 33 | IDENT@26..27 "a" |
34 | WHITESPACE@[27; 28) " " | 34 | WHITESPACE@27..28 " " |
35 | ALIAS@[28; 32) | 35 | ALIAS@28..32 |
36 | AS_KW@[28; 30) "as" | 36 | AS_KW@28..30 "as" |
37 | WHITESPACE@[30; 31) " " | 37 | WHITESPACE@30..31 " " |
38 | NAME@[31; 32) | 38 | NAME@31..32 |
39 | IDENT@[31; 32) "b" | 39 | IDENT@31..32 "b" |
40 | COMMA@[32; 33) "," | 40 | COMMA@32..33 "," |
41 | WHITESPACE@[33; 34) " " | 41 | WHITESPACE@33..34 " " |
42 | USE_TREE@[34; 35) | 42 | USE_TREE@34..35 |
43 | STAR@[34; 35) "*" | 43 | STAR@34..35 "*" |
44 | COMMA@[35; 36) "," | 44 | COMMA@35..36 "," |
45 | WHITESPACE@[36; 37) " " | 45 | WHITESPACE@36..37 " " |
46 | USE_TREE@[37; 40) | 46 | USE_TREE@37..40 |
47 | COLON2@[37; 39) "::" | 47 | COLON2@37..39 "::" |
48 | STAR@[39; 40) "*" | 48 | STAR@39..40 "*" |
49 | COMMA@[40; 41) "," | 49 | COMMA@40..41 "," |
50 | WHITESPACE@[41; 42) " " | 50 | WHITESPACE@41..42 " " |
51 | USE_TREE@[42; 52) | 51 | USE_TREE@42..52 |
52 | PATH@[42; 47) | 52 | PATH@42..47 |
53 | PATH_SEGMENT@[42; 47) | 53 | PATH_SEGMENT@42..47 |
54 | COLON2@[42; 44) "::" | 54 | COLON2@42..44 "::" |
55 | NAME_REF@[44; 47) | 55 | NAME_REF@44..47 |
56 | IDENT@[44; 47) "foo" | 56 | IDENT@44..47 "foo" |
57 | WHITESPACE@[47; 48) " " | 57 | WHITESPACE@47..48 " " |
58 | ALIAS@[48; 52) | 58 | ALIAS@48..52 |
59 | AS_KW@[48; 50) "as" | 59 | AS_KW@48..50 "as" |
60 | WHITESPACE@[50; 51) " " | 60 | WHITESPACE@50..51 " " |
61 | NAME@[51; 52) | 61 | NAME@51..52 |
62 | IDENT@[51; 52) "x" | 62 | IDENT@51..52 "x" |
63 | R_CURLY@[52; 53) "}" | 63 | R_CURLY@52..53 "}" |
64 | SEMICOLON@[53; 54) ";" | 64 | SEMICOLON@53..54 ";" |
65 | WHITESPACE@[54; 55) "\n" | 65 | WHITESPACE@54..55 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0016_struct_flavors.rast b/crates/ra_syntax/test_data/parser/ok/0016_struct_flavors.rast index f4739451e..95656d19b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0016_struct_flavors.rast +++ b/crates/ra_syntax/test_data/parser/ok/0016_struct_flavors.rast | |||
@@ -1,93 +1,93 @@ | |||
1 | SOURCE_FILE@[0; 97) | 1 | SOURCE_FILE@0..97 |
2 | STRUCT_DEF@[0; 9) | 2 | STRUCT_DEF@0..9 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "A" | 6 | IDENT@7..8 "A" |
7 | SEMICOLON@[8; 9) ";" | 7 | SEMICOLON@8..9 ";" |
8 | WHITESPACE@[9; 10) "\n" | 8 | WHITESPACE@9..10 "\n" |
9 | STRUCT_DEF@[10; 21) | 9 | STRUCT_DEF@10..21 |
10 | STRUCT_KW@[10; 16) "struct" | 10 | STRUCT_KW@10..16 "struct" |
11 | WHITESPACE@[16; 17) " " | 11 | WHITESPACE@16..17 " " |
12 | NAME@[17; 18) | 12 | NAME@17..18 |
13 | IDENT@[17; 18) "B" | 13 | IDENT@17..18 "B" |
14 | WHITESPACE@[18; 19) " " | 14 | WHITESPACE@18..19 " " |
15 | RECORD_FIELD_DEF_LIST@[19; 21) | 15 | RECORD_FIELD_DEF_LIST@19..21 |
16 | L_CURLY@[19; 20) "{" | 16 | L_CURLY@19..20 "{" |
17 | R_CURLY@[20; 21) "}" | 17 | R_CURLY@20..21 "}" |
18 | WHITESPACE@[21; 22) "\n" | 18 | WHITESPACE@21..22 "\n" |
19 | STRUCT_DEF@[22; 33) | 19 | STRUCT_DEF@22..33 |
20 | STRUCT_KW@[22; 28) "struct" | 20 | STRUCT_KW@22..28 "struct" |
21 | WHITESPACE@[28; 29) " " | 21 | WHITESPACE@28..29 " " |
22 | NAME@[29; 30) | 22 | NAME@29..30 |
23 | IDENT@[29; 30) "C" | 23 | IDENT@29..30 "C" |
24 | TUPLE_FIELD_DEF_LIST@[30; 32) | 24 | TUPLE_FIELD_DEF_LIST@30..32 |
25 | L_PAREN@[30; 31) "(" | 25 | L_PAREN@30..31 "(" |
26 | R_PAREN@[31; 32) ")" | 26 | R_PAREN@31..32 ")" |
27 | SEMICOLON@[32; 33) ";" | 27 | SEMICOLON@32..33 ";" |
28 | WHITESPACE@[33; 35) "\n\n" | 28 | WHITESPACE@33..35 "\n\n" |
29 | STRUCT_DEF@[35; 74) | 29 | STRUCT_DEF@35..74 |
30 | STRUCT_KW@[35; 41) "struct" | 30 | STRUCT_KW@35..41 "struct" |
31 | WHITESPACE@[41; 42) " " | 31 | WHITESPACE@41..42 " " |
32 | NAME@[42; 43) | 32 | NAME@42..43 |
33 | IDENT@[42; 43) "D" | 33 | IDENT@42..43 "D" |
34 | WHITESPACE@[43; 44) " " | 34 | WHITESPACE@43..44 " " |
35 | RECORD_FIELD_DEF_LIST@[44; 74) | 35 | RECORD_FIELD_DEF_LIST@44..74 |
36 | L_CURLY@[44; 45) "{" | 36 | L_CURLY@44..45 "{" |
37 | WHITESPACE@[45; 50) "\n " | 37 | WHITESPACE@45..50 "\n " |
38 | RECORD_FIELD_DEF@[50; 56) | 38 | RECORD_FIELD_DEF@50..56 |
39 | NAME@[50; 51) | 39 | NAME@50..51 |
40 | IDENT@[50; 51) "a" | 40 | IDENT@50..51 "a" |
41 | COLON@[51; 52) ":" | 41 | COLON@51..52 ":" |
42 | WHITESPACE@[52; 53) " " | 42 | WHITESPACE@52..53 " " |
43 | PATH_TYPE@[53; 56) | 43 | PATH_TYPE@53..56 |
44 | PATH@[53; 56) | 44 | PATH@53..56 |
45 | PATH_SEGMENT@[53; 56) | 45 | PATH_SEGMENT@53..56 |
46 | NAME_REF@[53; 56) | 46 | NAME_REF@53..56 |
47 | IDENT@[53; 56) "u32" | 47 | IDENT@53..56 "u32" |
48 | COMMA@[56; 57) "," | 48 | COMMA@56..57 "," |
49 | WHITESPACE@[57; 62) "\n " | 49 | WHITESPACE@57..62 "\n " |
50 | RECORD_FIELD_DEF@[62; 72) | 50 | RECORD_FIELD_DEF@62..72 |
51 | VISIBILITY@[62; 65) | 51 | VISIBILITY@62..65 |
52 | PUB_KW@[62; 65) "pub" | 52 | PUB_KW@62..65 "pub" |
53 | WHITESPACE@[65; 66) " " | 53 | WHITESPACE@65..66 " " |
54 | NAME@[66; 67) | 54 | NAME@66..67 |
55 | IDENT@[66; 67) "b" | 55 | IDENT@66..67 "b" |
56 | COLON@[67; 68) ":" | 56 | COLON@67..68 ":" |
57 | WHITESPACE@[68; 69) " " | 57 | WHITESPACE@68..69 " " |
58 | PATH_TYPE@[69; 72) | 58 | PATH_TYPE@69..72 |
59 | PATH@[69; 72) | 59 | PATH@69..72 |
60 | PATH_SEGMENT@[69; 72) | 60 | PATH_SEGMENT@69..72 |
61 | NAME_REF@[69; 72) | 61 | NAME_REF@69..72 |
62 | IDENT@[69; 72) "u32" | 62 | IDENT@69..72 "u32" |
63 | WHITESPACE@[72; 73) "\n" | 63 | WHITESPACE@72..73 "\n" |
64 | R_CURLY@[73; 74) "}" | 64 | R_CURLY@73..74 "}" |
65 | WHITESPACE@[74; 76) "\n\n" | 65 | WHITESPACE@74..76 "\n\n" |
66 | STRUCT_DEF@[76; 96) | 66 | STRUCT_DEF@76..96 |
67 | STRUCT_KW@[76; 82) "struct" | 67 | STRUCT_KW@76..82 "struct" |
68 | WHITESPACE@[82; 83) " " | 68 | WHITESPACE@82..83 " " |
69 | NAME@[83; 84) | 69 | NAME@83..84 |
70 | IDENT@[83; 84) "E" | 70 | IDENT@83..84 "E" |
71 | TUPLE_FIELD_DEF_LIST@[84; 95) | 71 | TUPLE_FIELD_DEF_LIST@84..95 |
72 | L_PAREN@[84; 85) "(" | 72 | L_PAREN@84..85 "(" |
73 | TUPLE_FIELD_DEF@[85; 90) | 73 | TUPLE_FIELD_DEF@85..90 |
74 | VISIBILITY@[85; 88) | 74 | VISIBILITY@85..88 |
75 | PUB_KW@[85; 88) "pub" | 75 | PUB_KW@85..88 "pub" |
76 | WHITESPACE@[88; 89) " " | 76 | WHITESPACE@88..89 " " |
77 | PATH_TYPE@[89; 90) | 77 | PATH_TYPE@89..90 |
78 | PATH@[89; 90) | 78 | PATH@89..90 |
79 | PATH_SEGMENT@[89; 90) | 79 | PATH_SEGMENT@89..90 |
80 | NAME_REF@[89; 90) | 80 | NAME_REF@89..90 |
81 | IDENT@[89; 90) "x" | 81 | IDENT@89..90 "x" |
82 | COMMA@[90; 91) "," | 82 | COMMA@90..91 "," |
83 | WHITESPACE@[91; 92) " " | 83 | WHITESPACE@91..92 " " |
84 | TUPLE_FIELD_DEF@[92; 93) | 84 | TUPLE_FIELD_DEF@92..93 |
85 | PATH_TYPE@[92; 93) | 85 | PATH_TYPE@92..93 |
86 | PATH@[92; 93) | 86 | PATH@92..93 |
87 | PATH_SEGMENT@[92; 93) | 87 | PATH_SEGMENT@92..93 |
88 | NAME_REF@[92; 93) | 88 | NAME_REF@92..93 |
89 | IDENT@[92; 93) "y" | 89 | IDENT@92..93 "y" |
90 | COMMA@[93; 94) "," | 90 | COMMA@93..94 "," |
91 | R_PAREN@[94; 95) ")" | 91 | R_PAREN@94..95 ")" |
92 | SEMICOLON@[95; 96) ";" | 92 | SEMICOLON@95..96 ";" |
93 | WHITESPACE@[96; 97) "\n" | 93 | WHITESPACE@96..97 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast index 1d65b0d6e..b5747aacd 100644 --- a/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast +++ b/crates/ra_syntax/test_data/parser/ok/0017_attr_trailing_comma.rast | |||
@@ -1,29 +1,29 @@ | |||
1 | SOURCE_FILE@[0; 23) | 1 | SOURCE_FILE@0..23 |
2 | FN_DEF@[0; 22) | 2 | FN_DEF@0..22 |
3 | ATTR@[0; 10) | 3 | ATTR@0..10 |
4 | POUND@[0; 1) "#" | 4 | POUND@0..1 "#" |
5 | L_BRACK@[1; 2) "[" | 5 | L_BRACK@1..2 "[" |
6 | PATH@[2; 5) | 6 | PATH@2..5 |
7 | PATH_SEGMENT@[2; 5) | 7 | PATH_SEGMENT@2..5 |
8 | NAME_REF@[2; 5) | 8 | NAME_REF@2..5 |
9 | IDENT@[2; 5) "foo" | 9 | IDENT@2..5 "foo" |
10 | TOKEN_TREE@[5; 9) | 10 | TOKEN_TREE@5..9 |
11 | L_PAREN@[5; 6) "(" | 11 | L_PAREN@5..6 "(" |
12 | IDENT@[6; 7) "a" | 12 | IDENT@6..7 "a" |
13 | COMMA@[7; 8) "," | 13 | COMMA@7..8 "," |
14 | R_PAREN@[8; 9) ")" | 14 | R_PAREN@8..9 ")" |
15 | R_BRACK@[9; 10) "]" | 15 | R_BRACK@9..10 "]" |
16 | WHITESPACE@[10; 11) "\n" | 16 | WHITESPACE@10..11 "\n" |
17 | FN_KW@[11; 13) "fn" | 17 | FN_KW@11..13 "fn" |
18 | WHITESPACE@[13; 14) " " | 18 | WHITESPACE@13..14 " " |
19 | NAME@[14; 17) | 19 | NAME@14..17 |
20 | IDENT@[14; 17) "foo" | 20 | IDENT@14..17 "foo" |
21 | PARAM_LIST@[17; 19) | 21 | PARAM_LIST@17..19 |
22 | L_PAREN@[17; 18) "(" | 22 | L_PAREN@17..18 "(" |
23 | R_PAREN@[18; 19) ")" | 23 | R_PAREN@18..19 ")" |
24 | WHITESPACE@[19; 20) " " | 24 | WHITESPACE@19..20 " " |
25 | BLOCK_EXPR@[20; 22) | 25 | BLOCK_EXPR@20..22 |
26 | BLOCK@[20; 22) | 26 | BLOCK@20..22 |
27 | L_CURLY@[20; 21) "{" | 27 | L_CURLY@20..21 "{" |
28 | R_CURLY@[21; 22) "}" | 28 | R_CURLY@21..22 "}" |
29 | WHITESPACE@[22; 23) "\n" | 29 | WHITESPACE@22..23 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast b/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast index 5e859ef29..451634e3f 100644 --- a/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast +++ b/crates/ra_syntax/test_data/parser/ok/0018_struct_type_params.rast | |||
@@ -1,257 +1,257 @@ | |||
1 | SOURCE_FILE@[0; 290) | 1 | SOURCE_FILE@0..290 |
2 | STRUCT_DEF@[0; 13) | 2 | STRUCT_DEF@0..13 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 9) | 5 | NAME@7..9 |
6 | IDENT@[7; 9) "S1" | 6 | IDENT@7..9 "S1" |
7 | TYPE_PARAM_LIST@[9; 12) | 7 | TYPE_PARAM_LIST@9..12 |
8 | L_ANGLE@[9; 10) "<" | 8 | L_ANGLE@9..10 "<" |
9 | TYPE_PARAM@[10; 11) | 9 | TYPE_PARAM@10..11 |
10 | NAME@[10; 11) | 10 | NAME@10..11 |
11 | IDENT@[10; 11) "T" | 11 | IDENT@10..11 "T" |
12 | R_ANGLE@[11; 12) ">" | 12 | R_ANGLE@11..12 ">" |
13 | SEMICOLON@[12; 13) ";" | 13 | SEMICOLON@12..13 ";" |
14 | WHITESPACE@[13; 14) "\n" | 14 | WHITESPACE@13..14 "\n" |
15 | STRUCT_DEF@[14; 32) | 15 | STRUCT_DEF@14..32 |
16 | STRUCT_KW@[14; 20) "struct" | 16 | STRUCT_KW@14..20 "struct" |
17 | WHITESPACE@[20; 21) " " | 17 | WHITESPACE@20..21 " " |
18 | NAME@[21; 23) | 18 | NAME@21..23 |
19 | IDENT@[21; 23) "S2" | 19 | IDENT@21..23 "S2" |
20 | TYPE_PARAM_LIST@[23; 26) | 20 | TYPE_PARAM_LIST@23..26 |
21 | L_ANGLE@[23; 24) "<" | 21 | L_ANGLE@23..24 "<" |
22 | TYPE_PARAM@[24; 25) | 22 | TYPE_PARAM@24..25 |
23 | NAME@[24; 25) | 23 | NAME@24..25 |
24 | IDENT@[24; 25) "T" | 24 | IDENT@24..25 "T" |
25 | R_ANGLE@[25; 26) ">" | 25 | R_ANGLE@25..26 ">" |
26 | TUPLE_FIELD_DEF_LIST@[26; 31) | 26 | TUPLE_FIELD_DEF_LIST@26..31 |
27 | L_PAREN@[26; 27) "(" | 27 | L_PAREN@26..27 "(" |
28 | TUPLE_FIELD_DEF@[27; 30) | 28 | TUPLE_FIELD_DEF@27..30 |
29 | PATH_TYPE@[27; 30) | 29 | PATH_TYPE@27..30 |
30 | PATH@[27; 30) | 30 | PATH@27..30 |
31 | PATH_SEGMENT@[27; 30) | 31 | PATH_SEGMENT@27..30 |
32 | NAME_REF@[27; 30) | 32 | NAME_REF@27..30 |
33 | IDENT@[27; 30) "u32" | 33 | IDENT@27..30 "u32" |
34 | R_PAREN@[30; 31) ")" | 34 | R_PAREN@30..31 ")" |
35 | SEMICOLON@[31; 32) ";" | 35 | SEMICOLON@31..32 ";" |
36 | WHITESPACE@[32; 33) "\n" | 36 | WHITESPACE@32..33 "\n" |
37 | STRUCT_DEF@[33; 56) | 37 | STRUCT_DEF@33..56 |
38 | STRUCT_KW@[33; 39) "struct" | 38 | STRUCT_KW@33..39 "struct" |
39 | WHITESPACE@[39; 40) " " | 39 | WHITESPACE@39..40 " " |
40 | NAME@[40; 42) | 40 | NAME@40..42 |
41 | IDENT@[40; 42) "S3" | 41 | IDENT@40..42 "S3" |
42 | TYPE_PARAM_LIST@[42; 45) | 42 | TYPE_PARAM_LIST@42..45 |
43 | L_ANGLE@[42; 43) "<" | 43 | L_ANGLE@42..43 "<" |
44 | TYPE_PARAM@[43; 44) | 44 | TYPE_PARAM@43..44 |
45 | NAME@[43; 44) | 45 | NAME@43..44 |
46 | IDENT@[43; 44) "T" | 46 | IDENT@43..44 "T" |
47 | R_ANGLE@[44; 45) ">" | 47 | R_ANGLE@44..45 ">" |
48 | WHITESPACE@[45; 46) " " | 48 | WHITESPACE@45..46 " " |
49 | RECORD_FIELD_DEF_LIST@[46; 56) | 49 | RECORD_FIELD_DEF_LIST@46..56 |
50 | L_CURLY@[46; 47) "{" | 50 | L_CURLY@46..47 "{" |
51 | WHITESPACE@[47; 48) " " | 51 | WHITESPACE@47..48 " " |
52 | RECORD_FIELD_DEF@[48; 54) | 52 | RECORD_FIELD_DEF@48..54 |
53 | NAME@[48; 49) | 53 | NAME@48..49 |
54 | IDENT@[48; 49) "u" | 54 | IDENT@48..49 "u" |
55 | COLON@[49; 50) ":" | 55 | COLON@49..50 ":" |
56 | WHITESPACE@[50; 51) " " | 56 | WHITESPACE@50..51 " " |
57 | PATH_TYPE@[51; 54) | 57 | PATH_TYPE@51..54 |
58 | PATH@[51; 54) | 58 | PATH@51..54 |
59 | PATH_SEGMENT@[51; 54) | 59 | PATH_SEGMENT@51..54 |
60 | NAME_REF@[51; 54) | 60 | NAME_REF@51..54 |
61 | IDENT@[51; 54) "u32" | 61 | IDENT@51..54 "u32" |
62 | WHITESPACE@[54; 55) " " | 62 | WHITESPACE@54..55 " " |
63 | R_CURLY@[55; 56) "}" | 63 | R_CURLY@55..56 "}" |
64 | WHITESPACE@[56; 58) "\n\n" | 64 | WHITESPACE@56..58 "\n\n" |
65 | STRUCT_DEF@[58; 70) | 65 | STRUCT_DEF@58..70 |
66 | STRUCT_KW@[58; 64) "struct" | 66 | STRUCT_KW@58..64 "struct" |
67 | WHITESPACE@[64; 65) " " | 67 | WHITESPACE@64..65 " " |
68 | NAME@[65; 67) | 68 | NAME@65..67 |
69 | IDENT@[65; 67) "S4" | 69 | IDENT@65..67 "S4" |
70 | TYPE_PARAM_LIST@[67; 69) | 70 | TYPE_PARAM_LIST@67..69 |
71 | L_ANGLE@[67; 68) "<" | 71 | L_ANGLE@67..68 "<" |
72 | R_ANGLE@[68; 69) ">" | 72 | R_ANGLE@68..69 ">" |
73 | SEMICOLON@[69; 70) ";" | 73 | SEMICOLON@69..70 ";" |
74 | WHITESPACE@[70; 71) "\n" | 74 | WHITESPACE@70..71 "\n" |
75 | STRUCT_DEF@[71; 85) | 75 | STRUCT_DEF@71..85 |
76 | STRUCT_KW@[71; 77) "struct" | 76 | STRUCT_KW@71..77 "struct" |
77 | WHITESPACE@[77; 78) " " | 77 | WHITESPACE@77..78 " " |
78 | NAME@[78; 80) | 78 | NAME@78..80 |
79 | IDENT@[78; 80) "S5" | 79 | IDENT@78..80 "S5" |
80 | TYPE_PARAM_LIST@[80; 84) | 80 | TYPE_PARAM_LIST@80..84 |
81 | L_ANGLE@[80; 81) "<" | 81 | L_ANGLE@80..81 "<" |
82 | LIFETIME_PARAM@[81; 83) | 82 | LIFETIME_PARAM@81..83 |
83 | LIFETIME@[81; 83) "\'a" | 83 | LIFETIME@81..83 "\'a" |
84 | R_ANGLE@[83; 84) ">" | 84 | R_ANGLE@83..84 ">" |
85 | SEMICOLON@[84; 85) ";" | 85 | SEMICOLON@84..85 ";" |
86 | WHITESPACE@[85; 86) "\n" | 86 | WHITESPACE@85..86 "\n" |
87 | STRUCT_DEF@[86; 101) | 87 | STRUCT_DEF@86..101 |
88 | STRUCT_KW@[86; 92) "struct" | 88 | STRUCT_KW@86..92 "struct" |
89 | WHITESPACE@[92; 93) " " | 89 | WHITESPACE@92..93 " " |
90 | NAME@[93; 95) | 90 | NAME@93..95 |
91 | IDENT@[93; 95) "S6" | 91 | IDENT@93..95 "S6" |
92 | TYPE_PARAM_LIST@[95; 100) | 92 | TYPE_PARAM_LIST@95..100 |
93 | L_ANGLE@[95; 96) "<" | 93 | L_ANGLE@95..96 "<" |
94 | LIFETIME_PARAM@[96; 99) | 94 | LIFETIME_PARAM@96..99 |
95 | LIFETIME@[96; 98) "\'a" | 95 | LIFETIME@96..98 "\'a" |
96 | COLON@[98; 99) ":" | 96 | COLON@98..99 ":" |
97 | R_ANGLE@[99; 100) ">" | 97 | R_ANGLE@99..100 ">" |
98 | SEMICOLON@[100; 101) ";" | 98 | SEMICOLON@100..101 ";" |
99 | WHITESPACE@[101; 102) "\n" | 99 | WHITESPACE@101..102 "\n" |
100 | STRUCT_DEF@[102; 120) | 100 | STRUCT_DEF@102..120 |
101 | STRUCT_KW@[102; 108) "struct" | 101 | STRUCT_KW@102..108 "struct" |
102 | WHITESPACE@[108; 109) " " | 102 | WHITESPACE@108..109 " " |
103 | NAME@[109; 111) | 103 | NAME@109..111 |
104 | IDENT@[109; 111) "S7" | 104 | IDENT@109..111 "S7" |
105 | TYPE_PARAM_LIST@[111; 119) | 105 | TYPE_PARAM_LIST@111..119 |
106 | L_ANGLE@[111; 112) "<" | 106 | L_ANGLE@111..112 "<" |
107 | LIFETIME_PARAM@[112; 118) | 107 | LIFETIME_PARAM@112..118 |
108 | LIFETIME@[112; 114) "\'a" | 108 | LIFETIME@112..114 "\'a" |
109 | COLON@[114; 115) ":" | 109 | COLON@114..115 ":" |
110 | WHITESPACE@[115; 116) " " | 110 | WHITESPACE@115..116 " " |
111 | LIFETIME@[116; 118) "\'b" | 111 | LIFETIME@116..118 "\'b" |
112 | R_ANGLE@[118; 119) ">" | 112 | R_ANGLE@118..119 ">" |
113 | SEMICOLON@[119; 120) ";" | 113 | SEMICOLON@119..120 ";" |
114 | WHITESPACE@[120; 121) "\n" | 114 | WHITESPACE@120..121 "\n" |
115 | STRUCT_DEF@[121; 142) | 115 | STRUCT_DEF@121..142 |
116 | STRUCT_KW@[121; 127) "struct" | 116 | STRUCT_KW@121..127 "struct" |
117 | WHITESPACE@[127; 128) " " | 117 | WHITESPACE@127..128 " " |
118 | NAME@[128; 130) | 118 | NAME@128..130 |
119 | IDENT@[128; 130) "S8" | 119 | IDENT@128..130 "S8" |
120 | TYPE_PARAM_LIST@[130; 141) | 120 | TYPE_PARAM_LIST@130..141 |
121 | L_ANGLE@[130; 131) "<" | 121 | L_ANGLE@130..131 "<" |
122 | LIFETIME_PARAM@[131; 139) | 122 | LIFETIME_PARAM@131..139 |
123 | LIFETIME@[131; 133) "\'a" | 123 | LIFETIME@131..133 "\'a" |
124 | COLON@[133; 134) ":" | 124 | COLON@133..134 ":" |
125 | WHITESPACE@[134; 135) " " | 125 | WHITESPACE@134..135 " " |
126 | LIFETIME@[135; 137) "\'b" | 126 | LIFETIME@135..137 "\'b" |
127 | WHITESPACE@[137; 138) " " | 127 | WHITESPACE@137..138 " " |
128 | PLUS@[138; 139) "+" | 128 | PLUS@138..139 "+" |
129 | WHITESPACE@[139; 140) " " | 129 | WHITESPACE@139..140 " " |
130 | R_ANGLE@[140; 141) ">" | 130 | R_ANGLE@140..141 ">" |
131 | SEMICOLON@[141; 142) ";" | 131 | SEMICOLON@141..142 ";" |
132 | WHITESPACE@[142; 143) "\n" | 132 | WHITESPACE@142..143 "\n" |
133 | STRUCT_DEF@[143; 166) | 133 | STRUCT_DEF@143..166 |
134 | STRUCT_KW@[143; 149) "struct" | 134 | STRUCT_KW@143..149 "struct" |
135 | WHITESPACE@[149; 150) " " | 135 | WHITESPACE@149..150 " " |
136 | NAME@[150; 152) | 136 | NAME@150..152 |
137 | IDENT@[150; 152) "S9" | 137 | IDENT@150..152 "S9" |
138 | TYPE_PARAM_LIST@[152; 165) | 138 | TYPE_PARAM_LIST@152..165 |
139 | L_ANGLE@[152; 153) "<" | 139 | L_ANGLE@152..153 "<" |
140 | LIFETIME_PARAM@[153; 164) | 140 | LIFETIME_PARAM@153..164 |
141 | LIFETIME@[153; 155) "\'a" | 141 | LIFETIME@153..155 "\'a" |
142 | COLON@[155; 156) ":" | 142 | COLON@155..156 ":" |
143 | WHITESPACE@[156; 157) " " | 143 | WHITESPACE@156..157 " " |
144 | LIFETIME@[157; 159) "\'b" | 144 | LIFETIME@157..159 "\'b" |
145 | WHITESPACE@[159; 160) " " | 145 | WHITESPACE@159..160 " " |
146 | PLUS@[160; 161) "+" | 146 | PLUS@160..161 "+" |
147 | WHITESPACE@[161; 162) " " | 147 | WHITESPACE@161..162 " " |
148 | LIFETIME@[162; 164) "\'c" | 148 | LIFETIME@162..164 "\'c" |
149 | R_ANGLE@[164; 165) ">" | 149 | R_ANGLE@164..165 ">" |
150 | SEMICOLON@[165; 166) ";" | 150 | SEMICOLON@165..166 ";" |
151 | WHITESPACE@[166; 167) "\n" | 151 | WHITESPACE@166..167 "\n" |
152 | STRUCT_DEF@[167; 183) | 152 | STRUCT_DEF@167..183 |
153 | STRUCT_KW@[167; 173) "struct" | 153 | STRUCT_KW@167..173 "struct" |
154 | WHITESPACE@[173; 174) " " | 154 | WHITESPACE@173..174 " " |
155 | NAME@[174; 177) | 155 | NAME@174..177 |
156 | IDENT@[174; 177) "S10" | 156 | IDENT@174..177 "S10" |
157 | TYPE_PARAM_LIST@[177; 182) | 157 | TYPE_PARAM_LIST@177..182 |
158 | L_ANGLE@[177; 178) "<" | 158 | L_ANGLE@177..178 "<" |
159 | LIFETIME_PARAM@[178; 180) | 159 | LIFETIME_PARAM@178..180 |
160 | LIFETIME@[178; 180) "\'a" | 160 | LIFETIME@178..180 "\'a" |
161 | COMMA@[180; 181) "," | 161 | COMMA@180..181 "," |
162 | R_ANGLE@[181; 182) ">" | 162 | R_ANGLE@181..182 ">" |
163 | SEMICOLON@[182; 183) ";" | 163 | SEMICOLON@182..183 ";" |
164 | WHITESPACE@[183; 184) "\n" | 164 | WHITESPACE@183..184 "\n" |
165 | STRUCT_DEF@[184; 203) | 165 | STRUCT_DEF@184..203 |
166 | STRUCT_KW@[184; 190) "struct" | 166 | STRUCT_KW@184..190 "struct" |
167 | WHITESPACE@[190; 191) " " | 167 | WHITESPACE@190..191 " " |
168 | NAME@[191; 194) | 168 | NAME@191..194 |
169 | IDENT@[191; 194) "S11" | 169 | IDENT@191..194 "S11" |
170 | TYPE_PARAM_LIST@[194; 202) | 170 | TYPE_PARAM_LIST@194..202 |
171 | L_ANGLE@[194; 195) "<" | 171 | L_ANGLE@194..195 "<" |
172 | LIFETIME_PARAM@[195; 197) | 172 | LIFETIME_PARAM@195..197 |
173 | LIFETIME@[195; 197) "\'a" | 173 | LIFETIME@195..197 "\'a" |
174 | COMMA@[197; 198) "," | 174 | COMMA@197..198 "," |
175 | WHITESPACE@[198; 199) " " | 175 | WHITESPACE@198..199 " " |
176 | LIFETIME_PARAM@[199; 201) | 176 | LIFETIME_PARAM@199..201 |
177 | LIFETIME@[199; 201) "\'b" | 177 | LIFETIME@199..201 "\'b" |
178 | R_ANGLE@[201; 202) ">" | 178 | R_ANGLE@201..202 ">" |
179 | SEMICOLON@[202; 203) ";" | 179 | SEMICOLON@202..203 ";" |
180 | WHITESPACE@[203; 204) "\n" | 180 | WHITESPACE@203..204 "\n" |
181 | STRUCT_DEF@[204; 233) | 181 | STRUCT_DEF@204..233 |
182 | STRUCT_KW@[204; 210) "struct" | 182 | STRUCT_KW@204..210 "struct" |
183 | WHITESPACE@[210; 211) " " | 183 | WHITESPACE@210..211 " " |
184 | NAME@[211; 214) | 184 | NAME@211..214 |
185 | IDENT@[211; 214) "S12" | 185 | IDENT@211..214 "S12" |
186 | TYPE_PARAM_LIST@[214; 232) | 186 | TYPE_PARAM_LIST@214..232 |
187 | L_ANGLE@[214; 215) "<" | 187 | L_ANGLE@214..215 "<" |
188 | LIFETIME_PARAM@[215; 222) | 188 | LIFETIME_PARAM@215..222 |
189 | LIFETIME@[215; 217) "\'a" | 189 | LIFETIME@215..217 "\'a" |
190 | COLON@[217; 218) ":" | 190 | COLON@217..218 ":" |
191 | WHITESPACE@[218; 219) " " | 191 | WHITESPACE@218..219 " " |
192 | LIFETIME@[219; 221) "\'b" | 192 | LIFETIME@219..221 "\'b" |
193 | PLUS@[221; 222) "+" | 193 | PLUS@221..222 "+" |
194 | COMMA@[222; 223) "," | 194 | COMMA@222..223 "," |
195 | WHITESPACE@[223; 224) " " | 195 | WHITESPACE@223..224 " " |
196 | LIFETIME_PARAM@[224; 230) | 196 | LIFETIME_PARAM@224..230 |
197 | LIFETIME@[224; 226) "\'b" | 197 | LIFETIME@224..226 "\'b" |
198 | COLON@[226; 227) ":" | 198 | COLON@226..227 ":" |
199 | WHITESPACE@[227; 228) " " | 199 | WHITESPACE@227..228 " " |
200 | LIFETIME@[228; 230) "\'c" | 200 | LIFETIME@228..230 "\'c" |
201 | COMMA@[230; 231) "," | 201 | COMMA@230..231 "," |
202 | R_ANGLE@[231; 232) ">" | 202 | R_ANGLE@231..232 ">" |
203 | SEMICOLON@[232; 233) ";" | 203 | SEMICOLON@232..233 ";" |
204 | WHITESPACE@[233; 235) "\n\n" | 204 | WHITESPACE@233..235 "\n\n" |
205 | STRUCT_DEF@[235; 249) | 205 | STRUCT_DEF@235..249 |
206 | STRUCT_KW@[235; 241) "struct" | 206 | STRUCT_KW@235..241 "struct" |
207 | WHITESPACE@[241; 242) " " | 207 | WHITESPACE@241..242 " " |
208 | NAME@[242; 245) | 208 | NAME@242..245 |
209 | IDENT@[242; 245) "S13" | 209 | IDENT@242..245 "S13" |
210 | TYPE_PARAM_LIST@[245; 248) | 210 | TYPE_PARAM_LIST@245..248 |
211 | L_ANGLE@[245; 246) "<" | 211 | L_ANGLE@245..246 "<" |
212 | TYPE_PARAM@[246; 247) | 212 | TYPE_PARAM@246..247 |
213 | NAME@[246; 247) | 213 | NAME@246..247 |
214 | IDENT@[246; 247) "T" | 214 | IDENT@246..247 "T" |
215 | R_ANGLE@[247; 248) ">" | 215 | R_ANGLE@247..248 ">" |
216 | SEMICOLON@[248; 249) ";" | 216 | SEMICOLON@248..249 ";" |
217 | WHITESPACE@[249; 250) "\n" | 217 | WHITESPACE@249..250 "\n" |
218 | STRUCT_DEF@[250; 267) | 218 | STRUCT_DEF@250..267 |
219 | STRUCT_KW@[250; 256) "struct" | 219 | STRUCT_KW@250..256 "struct" |
220 | WHITESPACE@[256; 257) " " | 220 | WHITESPACE@256..257 " " |
221 | NAME@[257; 260) | 221 | NAME@257..260 |
222 | IDENT@[257; 260) "S14" | 222 | IDENT@257..260 "S14" |
223 | TYPE_PARAM_LIST@[260; 266) | 223 | TYPE_PARAM_LIST@260..266 |
224 | L_ANGLE@[260; 261) "<" | 224 | L_ANGLE@260..261 "<" |
225 | TYPE_PARAM@[261; 262) | 225 | TYPE_PARAM@261..262 |
226 | NAME@[261; 262) | 226 | NAME@261..262 |
227 | IDENT@[261; 262) "T" | 227 | IDENT@261..262 "T" |
228 | COMMA@[262; 263) "," | 228 | COMMA@262..263 "," |
229 | WHITESPACE@[263; 264) " " | 229 | WHITESPACE@263..264 " " |
230 | TYPE_PARAM@[264; 265) | 230 | TYPE_PARAM@264..265 |
231 | NAME@[264; 265) | 231 | NAME@264..265 |
232 | IDENT@[264; 265) "U" | 232 | IDENT@264..265 "U" |
233 | R_ANGLE@[265; 266) ">" | 233 | R_ANGLE@265..266 ">" |
234 | SEMICOLON@[266; 267) ";" | 234 | SEMICOLON@266..267 ";" |
235 | WHITESPACE@[267; 268) "\n" | 235 | WHITESPACE@267..268 "\n" |
236 | STRUCT_DEF@[268; 289) | 236 | STRUCT_DEF@268..289 |
237 | STRUCT_KW@[268; 274) "struct" | 237 | STRUCT_KW@268..274 "struct" |
238 | WHITESPACE@[274; 275) " " | 238 | WHITESPACE@274..275 " " |
239 | NAME@[275; 278) | 239 | NAME@275..278 |
240 | IDENT@[275; 278) "S15" | 240 | IDENT@275..278 "S15" |
241 | TYPE_PARAM_LIST@[278; 288) | 241 | TYPE_PARAM_LIST@278..288 |
242 | L_ANGLE@[278; 279) "<" | 242 | L_ANGLE@278..279 "<" |
243 | LIFETIME_PARAM@[279; 281) | 243 | LIFETIME_PARAM@279..281 |
244 | LIFETIME@[279; 281) "\'a" | 244 | LIFETIME@279..281 "\'a" |
245 | COMMA@[281; 282) "," | 245 | COMMA@281..282 "," |
246 | WHITESPACE@[282; 283) " " | 246 | WHITESPACE@282..283 " " |
247 | TYPE_PARAM@[283; 284) | 247 | TYPE_PARAM@283..284 |
248 | NAME@[283; 284) | 248 | NAME@283..284 |
249 | IDENT@[283; 284) "T" | 249 | IDENT@283..284 "T" |
250 | COMMA@[284; 285) "," | 250 | COMMA@284..285 "," |
251 | WHITESPACE@[285; 286) " " | 251 | WHITESPACE@285..286 " " |
252 | TYPE_PARAM@[286; 287) | 252 | TYPE_PARAM@286..287 |
253 | NAME@[286; 287) | 253 | NAME@286..287 |
254 | IDENT@[286; 287) "U" | 254 | IDENT@286..287 "U" |
255 | R_ANGLE@[287; 288) ">" | 255 | R_ANGLE@287..288 ">" |
256 | SEMICOLON@[288; 289) ";" | 256 | SEMICOLON@288..289 ";" |
257 | WHITESPACE@[289; 290) "\n" | 257 | WHITESPACE@289..290 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast index 9d4a47a51..f767e9e19 100644 --- a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast +++ b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast | |||
@@ -1,155 +1,155 @@ | |||
1 | SOURCE_FILE@[0; 182) | 1 | SOURCE_FILE@0..182 |
2 | ENUM_DEF@[0; 11) | 2 | ENUM_DEF@0..11 |
3 | ENUM_KW@[0; 4) "enum" | 3 | ENUM_KW@0..4 "enum" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 7) | 5 | NAME@5..7 |
6 | IDENT@[5; 7) "E1" | 6 | IDENT@5..7 "E1" |
7 | WHITESPACE@[7; 8) " " | 7 | WHITESPACE@7..8 " " |
8 | ENUM_VARIANT_LIST@[8; 11) | 8 | ENUM_VARIANT_LIST@8..11 |
9 | L_CURLY@[8; 9) "{" | 9 | L_CURLY@8..9 "{" |
10 | WHITESPACE@[9; 10) "\n" | 10 | WHITESPACE@9..10 "\n" |
11 | R_CURLY@[10; 11) "}" | 11 | R_CURLY@10..11 "}" |
12 | WHITESPACE@[11; 13) "\n\n" | 12 | WHITESPACE@11..13 "\n\n" |
13 | ENUM_DEF@[13; 27) | 13 | ENUM_DEF@13..27 |
14 | ENUM_KW@[13; 17) "enum" | 14 | ENUM_KW@13..17 "enum" |
15 | WHITESPACE@[17; 18) " " | 15 | WHITESPACE@17..18 " " |
16 | NAME@[18; 20) | 16 | NAME@18..20 |
17 | IDENT@[18; 20) "E2" | 17 | IDENT@18..20 "E2" |
18 | TYPE_PARAM_LIST@[20; 23) | 18 | TYPE_PARAM_LIST@20..23 |
19 | L_ANGLE@[20; 21) "<" | 19 | L_ANGLE@20..21 "<" |
20 | TYPE_PARAM@[21; 22) | 20 | TYPE_PARAM@21..22 |
21 | NAME@[21; 22) | 21 | NAME@21..22 |
22 | IDENT@[21; 22) "T" | 22 | IDENT@21..22 "T" |
23 | R_ANGLE@[22; 23) ">" | 23 | R_ANGLE@22..23 ">" |
24 | WHITESPACE@[23; 24) " " | 24 | WHITESPACE@23..24 " " |
25 | ENUM_VARIANT_LIST@[24; 27) | 25 | ENUM_VARIANT_LIST@24..27 |
26 | L_CURLY@[24; 25) "{" | 26 | L_CURLY@24..25 "{" |
27 | WHITESPACE@[25; 26) "\n" | 27 | WHITESPACE@25..26 "\n" |
28 | R_CURLY@[26; 27) "}" | 28 | R_CURLY@26..27 "}" |
29 | WHITESPACE@[27; 29) "\n\n" | 29 | WHITESPACE@27..29 "\n\n" |
30 | ENUM_DEF@[29; 46) | 30 | ENUM_DEF@29..46 |
31 | ENUM_KW@[29; 33) "enum" | 31 | ENUM_KW@29..33 "enum" |
32 | WHITESPACE@[33; 34) " " | 32 | WHITESPACE@33..34 " " |
33 | NAME@[34; 36) | 33 | NAME@34..36 |
34 | IDENT@[34; 36) "E3" | 34 | IDENT@34..36 "E3" |
35 | WHITESPACE@[36; 37) " " | 35 | WHITESPACE@36..37 " " |
36 | ENUM_VARIANT_LIST@[37; 46) | 36 | ENUM_VARIANT_LIST@37..46 |
37 | L_CURLY@[37; 38) "{" | 37 | L_CURLY@37..38 "{" |
38 | WHITESPACE@[38; 43) "\n " | 38 | WHITESPACE@38..43 "\n " |
39 | ENUM_VARIANT@[43; 44) | 39 | ENUM_VARIANT@43..44 |
40 | NAME@[43; 44) | 40 | NAME@43..44 |
41 | IDENT@[43; 44) "X" | 41 | IDENT@43..44 "X" |
42 | WHITESPACE@[44; 45) "\n" | 42 | WHITESPACE@44..45 "\n" |
43 | R_CURLY@[45; 46) "}" | 43 | R_CURLY@45..46 "}" |
44 | WHITESPACE@[46; 48) "\n\n" | 44 | WHITESPACE@46..48 "\n\n" |
45 | ENUM_DEF@[48; 66) | 45 | ENUM_DEF@48..66 |
46 | ENUM_KW@[48; 52) "enum" | 46 | ENUM_KW@48..52 "enum" |
47 | WHITESPACE@[52; 53) " " | 47 | WHITESPACE@52..53 " " |
48 | NAME@[53; 55) | 48 | NAME@53..55 |
49 | IDENT@[53; 55) "E4" | 49 | IDENT@53..55 "E4" |
50 | WHITESPACE@[55; 56) " " | 50 | WHITESPACE@55..56 " " |
51 | ENUM_VARIANT_LIST@[56; 66) | 51 | ENUM_VARIANT_LIST@56..66 |
52 | L_CURLY@[56; 57) "{" | 52 | L_CURLY@56..57 "{" |
53 | WHITESPACE@[57; 62) "\n " | 53 | WHITESPACE@57..62 "\n " |
54 | ENUM_VARIANT@[62; 63) | 54 | ENUM_VARIANT@62..63 |
55 | NAME@[62; 63) | 55 | NAME@62..63 |
56 | IDENT@[62; 63) "X" | 56 | IDENT@62..63 "X" |
57 | COMMA@[63; 64) "," | 57 | COMMA@63..64 "," |
58 | WHITESPACE@[64; 65) "\n" | 58 | WHITESPACE@64..65 "\n" |
59 | R_CURLY@[65; 66) "}" | 59 | R_CURLY@65..66 "}" |
60 | WHITESPACE@[66; 68) "\n\n" | 60 | WHITESPACE@66..68 "\n\n" |
61 | ENUM_DEF@[68; 181) | 61 | ENUM_DEF@68..181 |
62 | ENUM_KW@[68; 72) "enum" | 62 | ENUM_KW@68..72 "enum" |
63 | WHITESPACE@[72; 73) " " | 63 | WHITESPACE@72..73 " " |
64 | NAME@[73; 75) | 64 | NAME@73..75 |
65 | IDENT@[73; 75) "E5" | 65 | IDENT@73..75 "E5" |
66 | WHITESPACE@[75; 76) " " | 66 | WHITESPACE@75..76 " " |
67 | ENUM_VARIANT_LIST@[76; 181) | 67 | ENUM_VARIANT_LIST@76..181 |
68 | L_CURLY@[76; 77) "{" | 68 | L_CURLY@76..77 "{" |
69 | WHITESPACE@[77; 82) "\n " | 69 | WHITESPACE@77..82 "\n " |
70 | ENUM_VARIANT@[82; 83) | 70 | ENUM_VARIANT@82..83 |
71 | NAME@[82; 83) | 71 | NAME@82..83 |
72 | IDENT@[82; 83) "A" | 72 | IDENT@82..83 "A" |
73 | COMMA@[83; 84) "," | 73 | COMMA@83..84 "," |
74 | WHITESPACE@[84; 89) "\n " | 74 | WHITESPACE@84..89 "\n " |
75 | ENUM_VARIANT@[89; 95) | 75 | ENUM_VARIANT@89..95 |
76 | NAME@[89; 90) | 76 | NAME@89..90 |
77 | IDENT@[89; 90) "B" | 77 | IDENT@89..90 "B" |
78 | WHITESPACE@[90; 91) " " | 78 | WHITESPACE@90..91 " " |
79 | EQ@[91; 92) "=" | 79 | EQ@91..92 "=" |
80 | WHITESPACE@[92; 93) " " | 80 | WHITESPACE@92..93 " " |
81 | LITERAL@[93; 95) | 81 | LITERAL@93..95 |
82 | INT_NUMBER@[93; 95) "92" | 82 | INT_NUMBER@93..95 "92" |
83 | COMMA@[95; 96) "," | 83 | COMMA@95..96 "," |
84 | WHITESPACE@[96; 101) "\n " | 84 | WHITESPACE@96..101 "\n " |
85 | ENUM_VARIANT@[101; 146) | 85 | ENUM_VARIANT@101..146 |
86 | NAME@[101; 102) | 86 | NAME@101..102 |
87 | IDENT@[101; 102) "C" | 87 | IDENT@101..102 "C" |
88 | WHITESPACE@[102; 103) " " | 88 | WHITESPACE@102..103 " " |
89 | RECORD_FIELD_DEF_LIST@[103; 146) | 89 | RECORD_FIELD_DEF_LIST@103..146 |
90 | L_CURLY@[103; 104) "{" | 90 | L_CURLY@103..104 "{" |
91 | WHITESPACE@[104; 113) "\n " | 91 | WHITESPACE@104..113 "\n " |
92 | RECORD_FIELD_DEF@[113; 119) | 92 | RECORD_FIELD_DEF@113..119 |
93 | NAME@[113; 114) | 93 | NAME@113..114 |
94 | IDENT@[113; 114) "a" | 94 | IDENT@113..114 "a" |
95 | COLON@[114; 115) ":" | 95 | COLON@114..115 ":" |
96 | WHITESPACE@[115; 116) " " | 96 | WHITESPACE@115..116 " " |
97 | PATH_TYPE@[116; 119) | 97 | PATH_TYPE@116..119 |
98 | PATH@[116; 119) | 98 | PATH@116..119 |
99 | PATH_SEGMENT@[116; 119) | 99 | PATH_SEGMENT@116..119 |
100 | NAME_REF@[116; 119) | 100 | NAME_REF@116..119 |
101 | IDENT@[116; 119) "u32" | 101 | IDENT@116..119 "u32" |
102 | COMMA@[119; 120) "," | 102 | COMMA@119..120 "," |
103 | WHITESPACE@[120; 129) "\n " | 103 | WHITESPACE@120..129 "\n " |
104 | RECORD_FIELD_DEF@[129; 139) | 104 | RECORD_FIELD_DEF@129..139 |
105 | VISIBILITY@[129; 132) | 105 | VISIBILITY@129..132 |
106 | PUB_KW@[129; 132) "pub" | 106 | PUB_KW@129..132 "pub" |
107 | WHITESPACE@[132; 133) " " | 107 | WHITESPACE@132..133 " " |
108 | NAME@[133; 134) | 108 | NAME@133..134 |
109 | IDENT@[133; 134) "b" | 109 | IDENT@133..134 "b" |
110 | COLON@[134; 135) ":" | 110 | COLON@134..135 ":" |
111 | WHITESPACE@[135; 136) " " | 111 | WHITESPACE@135..136 " " |
112 | PATH_TYPE@[136; 139) | 112 | PATH_TYPE@136..139 |
113 | PATH@[136; 139) | 113 | PATH@136..139 |
114 | PATH_SEGMENT@[136; 139) | 114 | PATH_SEGMENT@136..139 |
115 | NAME_REF@[136; 139) | 115 | NAME_REF@136..139 |
116 | IDENT@[136; 139) "f64" | 116 | IDENT@136..139 "f64" |
117 | COMMA@[139; 140) "," | 117 | COMMA@139..140 "," |
118 | WHITESPACE@[140; 145) "\n " | 118 | WHITESPACE@140..145 "\n " |
119 | R_CURLY@[145; 146) "}" | 119 | R_CURLY@145..146 "}" |
120 | COMMA@[146; 147) "," | 120 | COMMA@146..147 "," |
121 | WHITESPACE@[147; 152) "\n " | 121 | WHITESPACE@147..152 "\n " |
122 | ENUM_VARIANT@[152; 156) | 122 | ENUM_VARIANT@152..156 |
123 | NAME@[152; 153) | 123 | NAME@152..153 |
124 | IDENT@[152; 153) "F" | 124 | IDENT@152..153 "F" |
125 | WHITESPACE@[153; 154) " " | 125 | WHITESPACE@153..154 " " |
126 | RECORD_FIELD_DEF_LIST@[154; 156) | 126 | RECORD_FIELD_DEF_LIST@154..156 |
127 | L_CURLY@[154; 155) "{" | 127 | L_CURLY@154..155 "{" |
128 | R_CURLY@[155; 156) "}" | 128 | R_CURLY@155..156 "}" |
129 | COMMA@[156; 157) "," | 129 | COMMA@156..157 "," |
130 | WHITESPACE@[157; 162) "\n " | 130 | WHITESPACE@157..162 "\n " |
131 | ENUM_VARIANT@[162; 169) | 131 | ENUM_VARIANT@162..169 |
132 | NAME@[162; 163) | 132 | NAME@162..163 |
133 | IDENT@[162; 163) "D" | 133 | IDENT@162..163 "D" |
134 | TUPLE_FIELD_DEF_LIST@[163; 169) | 134 | TUPLE_FIELD_DEF_LIST@163..169 |
135 | L_PAREN@[163; 164) "(" | 135 | L_PAREN@163..164 "(" |
136 | TUPLE_FIELD_DEF@[164; 167) | 136 | TUPLE_FIELD_DEF@164..167 |
137 | PATH_TYPE@[164; 167) | 137 | PATH_TYPE@164..167 |
138 | PATH@[164; 167) | 138 | PATH@164..167 |
139 | PATH_SEGMENT@[164; 167) | 139 | PATH_SEGMENT@164..167 |
140 | NAME_REF@[164; 167) | 140 | NAME_REF@164..167 |
141 | IDENT@[164; 167) "u32" | 141 | IDENT@164..167 "u32" |
142 | COMMA@[167; 168) "," | 142 | COMMA@167..168 "," |
143 | R_PAREN@[168; 169) ")" | 143 | R_PAREN@168..169 ")" |
144 | COMMA@[169; 170) "," | 144 | COMMA@169..170 "," |
145 | WHITESPACE@[170; 175) "\n " | 145 | WHITESPACE@170..175 "\n " |
146 | ENUM_VARIANT@[175; 178) | 146 | ENUM_VARIANT@175..178 |
147 | NAME@[175; 176) | 147 | NAME@175..176 |
148 | IDENT@[175; 176) "E" | 148 | IDENT@175..176 "E" |
149 | TUPLE_FIELD_DEF_LIST@[176; 178) | 149 | TUPLE_FIELD_DEF_LIST@176..178 |
150 | L_PAREN@[176; 177) "(" | 150 | L_PAREN@176..177 "(" |
151 | R_PAREN@[177; 178) ")" | 151 | R_PAREN@177..178 ")" |
152 | COMMA@[178; 179) "," | 152 | COMMA@178..179 "," |
153 | WHITESPACE@[179; 180) "\n" | 153 | WHITESPACE@179..180 "\n" |
154 | R_CURLY@[180; 181) "}" | 154 | R_CURLY@180..181 "}" |
155 | WHITESPACE@[181; 182) "\n" | 155 | WHITESPACE@181..182 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast index edacc4bd9..4fb4baf56 100644 --- a/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast +++ b/crates/ra_syntax/test_data/parser/ok/0020_type_param_bounds.rast | |||
@@ -1,268 +1,268 @@ | |||
1 | SOURCE_FILE@[0; 250) | 1 | SOURCE_FILE@0..250 |
2 | STRUCT_DEF@[0; 12) | 2 | STRUCT_DEF@0..12 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "A" | 6 | IDENT@7..8 "A" |
7 | TYPE_PARAM_LIST@[8; 11) | 7 | TYPE_PARAM_LIST@8..11 |
8 | L_ANGLE@[8; 9) "<" | 8 | L_ANGLE@8..9 "<" |
9 | TYPE_PARAM@[9; 10) | 9 | TYPE_PARAM@9..10 |
10 | NAME@[9; 10) | 10 | NAME@9..10 |
11 | IDENT@[9; 10) "T" | 11 | IDENT@9..10 "T" |
12 | R_ANGLE@[10; 11) ">" | 12 | R_ANGLE@10..11 ">" |
13 | SEMICOLON@[11; 12) ";" | 13 | SEMICOLON@11..12 ";" |
14 | WHITESPACE@[12; 13) "\n" | 14 | WHITESPACE@12..13 "\n" |
15 | STRUCT_DEF@[13; 26) | 15 | STRUCT_DEF@13..26 |
16 | STRUCT_KW@[13; 19) "struct" | 16 | STRUCT_KW@13..19 "struct" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | NAME@[20; 21) | 18 | NAME@20..21 |
19 | IDENT@[20; 21) "B" | 19 | IDENT@20..21 "B" |
20 | TYPE_PARAM_LIST@[21; 25) | 20 | TYPE_PARAM_LIST@21..25 |
21 | L_ANGLE@[21; 22) "<" | 21 | L_ANGLE@21..22 "<" |
22 | TYPE_PARAM@[22; 24) | 22 | TYPE_PARAM@22..24 |
23 | NAME@[22; 23) | 23 | NAME@22..23 |
24 | IDENT@[22; 23) "T" | 24 | IDENT@22..23 "T" |
25 | COLON@[23; 24) ":" | 25 | COLON@23..24 ":" |
26 | TYPE_BOUND_LIST@[24; 24) | 26 | TYPE_BOUND_LIST@24..24 |
27 | R_ANGLE@[24; 25) ">" | 27 | R_ANGLE@24..25 ">" |
28 | SEMICOLON@[25; 26) ";" | 28 | SEMICOLON@25..26 ";" |
29 | WHITESPACE@[26; 27) "\n" | 29 | WHITESPACE@26..27 "\n" |
30 | STRUCT_DEF@[27; 43) | 30 | STRUCT_DEF@27..43 |
31 | STRUCT_KW@[27; 33) "struct" | 31 | STRUCT_KW@27..33 "struct" |
32 | WHITESPACE@[33; 34) " " | 32 | WHITESPACE@33..34 " " |
33 | NAME@[34; 35) | 33 | NAME@34..35 |
34 | IDENT@[34; 35) "C" | 34 | IDENT@34..35 "C" |
35 | TYPE_PARAM_LIST@[35; 42) | 35 | TYPE_PARAM_LIST@35..42 |
36 | L_ANGLE@[35; 36) "<" | 36 | L_ANGLE@35..36 "<" |
37 | TYPE_PARAM@[36; 41) | 37 | TYPE_PARAM@36..41 |
38 | NAME@[36; 37) | 38 | NAME@36..37 |
39 | IDENT@[36; 37) "T" | 39 | IDENT@36..37 "T" |
40 | COLON@[37; 38) ":" | 40 | COLON@37..38 ":" |
41 | WHITESPACE@[38; 39) " " | 41 | WHITESPACE@38..39 " " |
42 | TYPE_BOUND_LIST@[39; 41) | 42 | TYPE_BOUND_LIST@39..41 |
43 | TYPE_BOUND@[39; 41) | 43 | TYPE_BOUND@39..41 |
44 | LIFETIME@[39; 41) "\'a" | 44 | LIFETIME@39..41 "\'a" |
45 | R_ANGLE@[41; 42) ">" | 45 | R_ANGLE@41..42 ">" |
46 | SEMICOLON@[42; 43) ";" | 46 | SEMICOLON@42..43 ";" |
47 | WHITESPACE@[43; 44) "\n" | 47 | WHITESPACE@43..44 "\n" |
48 | STRUCT_DEF@[44; 63) | 48 | STRUCT_DEF@44..63 |
49 | STRUCT_KW@[44; 50) "struct" | 49 | STRUCT_KW@44..50 "struct" |
50 | WHITESPACE@[50; 51) " " | 50 | WHITESPACE@50..51 " " |
51 | NAME@[51; 52) | 51 | NAME@51..52 |
52 | IDENT@[51; 52) "D" | 52 | IDENT@51..52 "D" |
53 | TYPE_PARAM_LIST@[52; 62) | 53 | TYPE_PARAM_LIST@52..62 |
54 | L_ANGLE@[52; 53) "<" | 54 | L_ANGLE@52..53 "<" |
55 | TYPE_PARAM@[53; 60) | 55 | TYPE_PARAM@53..60 |
56 | NAME@[53; 54) | 56 | NAME@53..54 |
57 | IDENT@[53; 54) "T" | 57 | IDENT@53..54 "T" |
58 | COLON@[54; 55) ":" | 58 | COLON@54..55 ":" |
59 | WHITESPACE@[55; 56) " " | 59 | WHITESPACE@55..56 " " |
60 | TYPE_BOUND_LIST@[56; 60) | 60 | TYPE_BOUND_LIST@56..60 |
61 | TYPE_BOUND@[56; 58) | 61 | TYPE_BOUND@56..58 |
62 | LIFETIME@[56; 58) "\'a" | 62 | LIFETIME@56..58 "\'a" |
63 | WHITESPACE@[58; 59) " " | 63 | WHITESPACE@58..59 " " |
64 | PLUS@[59; 60) "+" | 64 | PLUS@59..60 "+" |
65 | WHITESPACE@[60; 61) " " | 65 | WHITESPACE@60..61 " " |
66 | R_ANGLE@[61; 62) ">" | 66 | R_ANGLE@61..62 ">" |
67 | SEMICOLON@[62; 63) ";" | 67 | SEMICOLON@62..63 ";" |
68 | WHITESPACE@[63; 64) "\n" | 68 | WHITESPACE@63..64 "\n" |
69 | STRUCT_DEF@[64; 86) | 69 | STRUCT_DEF@64..86 |
70 | STRUCT_KW@[64; 70) "struct" | 70 | STRUCT_KW@64..70 "struct" |
71 | WHITESPACE@[70; 71) " " | 71 | WHITESPACE@70..71 " " |
72 | NAME@[71; 72) | 72 | NAME@71..72 |
73 | IDENT@[71; 72) "E" | 73 | IDENT@71..72 "E" |
74 | TYPE_PARAM_LIST@[72; 85) | 74 | TYPE_PARAM_LIST@72..85 |
75 | L_ANGLE@[72; 73) "<" | 75 | L_ANGLE@72..73 "<" |
76 | TYPE_PARAM@[73; 83) | 76 | TYPE_PARAM@73..83 |
77 | NAME@[73; 74) | 77 | NAME@73..74 |
78 | IDENT@[73; 74) "T" | 78 | IDENT@73..74 "T" |
79 | COLON@[74; 75) ":" | 79 | COLON@74..75 ":" |
80 | WHITESPACE@[75; 76) " " | 80 | WHITESPACE@75..76 " " |
81 | TYPE_BOUND_LIST@[76; 83) | 81 | TYPE_BOUND_LIST@76..83 |
82 | TYPE_BOUND@[76; 78) | 82 | TYPE_BOUND@76..78 |
83 | LIFETIME@[76; 78) "\'a" | 83 | LIFETIME@76..78 "\'a" |
84 | WHITESPACE@[78; 79) " " | 84 | WHITESPACE@78..79 " " |
85 | PLUS@[79; 80) "+" | 85 | PLUS@79..80 "+" |
86 | WHITESPACE@[80; 81) " " | 86 | WHITESPACE@80..81 " " |
87 | TYPE_BOUND@[81; 83) | 87 | TYPE_BOUND@81..83 |
88 | LIFETIME@[81; 83) "\'d" | 88 | LIFETIME@81..83 "\'d" |
89 | WHITESPACE@[83; 84) " " | 89 | WHITESPACE@83..84 " " |
90 | R_ANGLE@[84; 85) ">" | 90 | R_ANGLE@84..85 ">" |
91 | SEMICOLON@[85; 86) ";" | 91 | SEMICOLON@85..86 ";" |
92 | WHITESPACE@[86; 87) "\n" | 92 | WHITESPACE@86..87 "\n" |
93 | STRUCT_DEF@[87; 116) | 93 | STRUCT_DEF@87..116 |
94 | STRUCT_KW@[87; 93) "struct" | 94 | STRUCT_KW@87..93 "struct" |
95 | WHITESPACE@[93; 94) " " | 95 | WHITESPACE@93..94 " " |
96 | NAME@[94; 95) | 96 | NAME@94..95 |
97 | IDENT@[94; 95) "F" | 97 | IDENT@94..95 "F" |
98 | TYPE_PARAM_LIST@[95; 115) | 98 | TYPE_PARAM_LIST@95..115 |
99 | L_ANGLE@[95; 96) "<" | 99 | L_ANGLE@95..96 "<" |
100 | TYPE_PARAM@[96; 114) | 100 | TYPE_PARAM@96..114 |
101 | NAME@[96; 97) | 101 | NAME@96..97 |
102 | IDENT@[96; 97) "T" | 102 | IDENT@96..97 "T" |
103 | COLON@[97; 98) ":" | 103 | COLON@97..98 ":" |
104 | WHITESPACE@[98; 99) " " | 104 | WHITESPACE@98..99 " " |
105 | TYPE_BOUND_LIST@[99; 114) | 105 | TYPE_BOUND_LIST@99..114 |
106 | TYPE_BOUND@[99; 101) | 106 | TYPE_BOUND@99..101 |
107 | LIFETIME@[99; 101) "\'a" | 107 | LIFETIME@99..101 "\'a" |
108 | WHITESPACE@[101; 102) " " | 108 | WHITESPACE@101..102 " " |
109 | PLUS@[102; 103) "+" | 109 | PLUS@102..103 "+" |
110 | WHITESPACE@[103; 104) " " | 110 | WHITESPACE@103..104 " " |
111 | TYPE_BOUND@[104; 106) | 111 | TYPE_BOUND@104..106 |
112 | LIFETIME@[104; 106) "\'d" | 112 | LIFETIME@104..106 "\'d" |
113 | WHITESPACE@[106; 107) " " | 113 | WHITESPACE@106..107 " " |
114 | PLUS@[107; 108) "+" | 114 | PLUS@107..108 "+" |
115 | WHITESPACE@[108; 109) " " | 115 | WHITESPACE@108..109 " " |
116 | TYPE_BOUND@[109; 114) | 116 | TYPE_BOUND@109..114 |
117 | PATH_TYPE@[109; 114) | 117 | PATH_TYPE@109..114 |
118 | PATH@[109; 114) | 118 | PATH@109..114 |
119 | PATH_SEGMENT@[109; 114) | 119 | PATH_SEGMENT@109..114 |
120 | NAME_REF@[109; 114) | 120 | NAME_REF@109..114 |
121 | IDENT@[109; 114) "Clone" | 121 | IDENT@109..114 "Clone" |
122 | R_ANGLE@[114; 115) ">" | 122 | R_ANGLE@114..115 ">" |
123 | SEMICOLON@[115; 116) ";" | 123 | SEMICOLON@115..116 ";" |
124 | WHITESPACE@[116; 117) "\n" | 124 | WHITESPACE@116..117 "\n" |
125 | STRUCT_DEF@[117; 143) | 125 | STRUCT_DEF@117..143 |
126 | STRUCT_KW@[117; 123) "struct" | 126 | STRUCT_KW@117..123 "struct" |
127 | WHITESPACE@[123; 124) " " | 127 | WHITESPACE@123..124 " " |
128 | NAME@[124; 125) | 128 | NAME@124..125 |
129 | IDENT@[124; 125) "G" | 129 | IDENT@124..125 "G" |
130 | TYPE_PARAM_LIST@[125; 142) | 130 | TYPE_PARAM_LIST@125..142 |
131 | L_ANGLE@[125; 126) "<" | 131 | L_ANGLE@125..126 "<" |
132 | TYPE_PARAM@[126; 141) | 132 | TYPE_PARAM@126..141 |
133 | NAME@[126; 127) | 133 | NAME@126..127 |
134 | IDENT@[126; 127) "T" | 134 | IDENT@126..127 "T" |
135 | COLON@[127; 128) ":" | 135 | COLON@127..128 ":" |
136 | WHITESPACE@[128; 129) " " | 136 | WHITESPACE@128..129 " " |
137 | TYPE_BOUND_LIST@[129; 141) | 137 | TYPE_BOUND_LIST@129..141 |
138 | TYPE_BOUND@[129; 134) | 138 | TYPE_BOUND@129..134 |
139 | PATH_TYPE@[129; 134) | 139 | PATH_TYPE@129..134 |
140 | PATH@[129; 134) | 140 | PATH@129..134 |
141 | PATH_SEGMENT@[129; 134) | 141 | PATH_SEGMENT@129..134 |
142 | NAME_REF@[129; 134) | 142 | NAME_REF@129..134 |
143 | IDENT@[129; 134) "Clone" | 143 | IDENT@129..134 "Clone" |
144 | WHITESPACE@[134; 135) " " | 144 | WHITESPACE@134..135 " " |
145 | PLUS@[135; 136) "+" | 145 | PLUS@135..136 "+" |
146 | WHITESPACE@[136; 137) " " | 146 | WHITESPACE@136..137 " " |
147 | TYPE_BOUND@[137; 141) | 147 | TYPE_BOUND@137..141 |
148 | PATH_TYPE@[137; 141) | 148 | PATH_TYPE@137..141 |
149 | PATH@[137; 141) | 149 | PATH@137..141 |
150 | PATH_SEGMENT@[137; 141) | 150 | PATH_SEGMENT@137..141 |
151 | NAME_REF@[137; 141) | 151 | NAME_REF@137..141 |
152 | IDENT@[137; 141) "Copy" | 152 | IDENT@137..141 "Copy" |
153 | R_ANGLE@[141; 142) ">" | 153 | R_ANGLE@141..142 ">" |
154 | SEMICOLON@[142; 143) ";" | 154 | SEMICOLON@142..143 ";" |
155 | WHITESPACE@[143; 144) "\n" | 155 | WHITESPACE@143..144 "\n" |
156 | STRUCT_DEF@[144; 180) | 156 | STRUCT_DEF@144..180 |
157 | STRUCT_KW@[144; 150) "struct" | 157 | STRUCT_KW@144..150 "struct" |
158 | WHITESPACE@[150; 151) " " | 158 | WHITESPACE@150..151 " " |
159 | NAME@[151; 152) | 159 | NAME@151..152 |
160 | IDENT@[151; 152) "H" | 160 | IDENT@151..152 "H" |
161 | TYPE_PARAM_LIST@[152; 179) | 161 | TYPE_PARAM_LIST@152..179 |
162 | L_ANGLE@[152; 153) "<" | 162 | L_ANGLE@152..153 "<" |
163 | TYPE_PARAM@[153; 178) | 163 | TYPE_PARAM@153..178 |
164 | NAME@[153; 154) | 164 | NAME@153..154 |
165 | IDENT@[153; 154) "T" | 165 | IDENT@153..154 "T" |
166 | COLON@[154; 155) ":" | 166 | COLON@154..155 ":" |
167 | WHITESPACE@[155; 156) " " | 167 | WHITESPACE@155..156 " " |
168 | TYPE_BOUND_LIST@[156; 178) | 168 | TYPE_BOUND_LIST@156..178 |
169 | TYPE_BOUND@[156; 161) | 169 | TYPE_BOUND@156..161 |
170 | PATH_TYPE@[156; 161) | 170 | PATH_TYPE@156..161 |
171 | PATH@[156; 161) | 171 | PATH@156..161 |
172 | PATH_SEGMENT@[156; 161) | 172 | PATH_SEGMENT@156..161 |
173 | COLON2@[156; 158) "::" | 173 | COLON2@156..158 "::" |
174 | NAME_REF@[158; 161) | 174 | NAME_REF@158..161 |
175 | IDENT@[158; 161) "Foo" | 175 | IDENT@158..161 "Foo" |
176 | WHITESPACE@[161; 162) " " | 176 | WHITESPACE@161..162 " " |
177 | PLUS@[162; 163) "+" | 177 | PLUS@162..163 "+" |
178 | WHITESPACE@[163; 164) " " | 178 | WHITESPACE@163..164 " " |
179 | TYPE_BOUND@[164; 173) | 179 | TYPE_BOUND@164..173 |
180 | PATH_TYPE@[164; 173) | 180 | PATH_TYPE@164..173 |
181 | PATH@[164; 173) | 181 | PATH@164..173 |
182 | PATH@[164; 168) | 182 | PATH@164..168 |
183 | PATH_SEGMENT@[164; 168) | 183 | PATH_SEGMENT@164..168 |
184 | SELF_KW@[164; 168) "self" | 184 | SELF_KW@164..168 "self" |
185 | COLON2@[168; 170) "::" | 185 | COLON2@168..170 "::" |
186 | PATH_SEGMENT@[170; 173) | 186 | PATH_SEGMENT@170..173 |
187 | NAME_REF@[170; 173) | 187 | NAME_REF@170..173 |
188 | IDENT@[170; 173) "Bar" | 188 | IDENT@170..173 "Bar" |
189 | WHITESPACE@[173; 174) " " | 189 | WHITESPACE@173..174 " " |
190 | PLUS@[174; 175) "+" | 190 | PLUS@174..175 "+" |
191 | WHITESPACE@[175; 176) " " | 191 | WHITESPACE@175..176 " " |
192 | TYPE_BOUND@[176; 178) | 192 | TYPE_BOUND@176..178 |
193 | LIFETIME@[176; 178) "\'a" | 193 | LIFETIME@176..178 "\'a" |
194 | R_ANGLE@[178; 179) ">" | 194 | R_ANGLE@178..179 ">" |
195 | SEMICOLON@[179; 180) ";" | 195 | SEMICOLON@179..180 ";" |
196 | WHITESPACE@[180; 181) "\n" | 196 | WHITESPACE@180..181 "\n" |
197 | STRUCT_DEF@[181; 199) | 197 | STRUCT_DEF@181..199 |
198 | STRUCT_KW@[181; 187) "struct" | 198 | STRUCT_KW@181..187 "struct" |
199 | WHITESPACE@[187; 188) " " | 199 | WHITESPACE@187..188 " " |
200 | NAME@[188; 189) | 200 | NAME@188..189 |
201 | IDENT@[188; 189) "I" | 201 | IDENT@188..189 "I" |
202 | TYPE_PARAM_LIST@[189; 198) | 202 | TYPE_PARAM_LIST@189..198 |
203 | L_ANGLE@[189; 190) "<" | 203 | L_ANGLE@189..190 "<" |
204 | TYPE_PARAM@[190; 192) | 204 | TYPE_PARAM@190..192 |
205 | NAME@[190; 191) | 205 | NAME@190..191 |
206 | IDENT@[190; 191) "T" | 206 | IDENT@190..191 "T" |
207 | COLON@[191; 192) ":" | 207 | COLON@191..192 ":" |
208 | TYPE_BOUND_LIST@[192; 192) | 208 | TYPE_BOUND_LIST@192..192 |
209 | COMMA@[192; 193) "," | 209 | COMMA@192..193 "," |
210 | WHITESPACE@[193; 194) " " | 210 | WHITESPACE@193..194 " " |
211 | TYPE_PARAM@[194; 196) | 211 | TYPE_PARAM@194..196 |
212 | NAME@[194; 195) | 212 | NAME@194..195 |
213 | IDENT@[194; 195) "U" | 213 | IDENT@194..195 "U" |
214 | COLON@[195; 196) ":" | 214 | COLON@195..196 ":" |
215 | TYPE_BOUND_LIST@[196; 196) | 215 | TYPE_BOUND_LIST@196..196 |
216 | COMMA@[196; 197) "," | 216 | COMMA@196..197 "," |
217 | R_ANGLE@[197; 198) ">" | 217 | R_ANGLE@197..198 ">" |
218 | SEMICOLON@[198; 199) ";" | 218 | SEMICOLON@198..199 ";" |
219 | WHITESPACE@[199; 200) "\n" | 219 | WHITESPACE@199..200 "\n" |
220 | STRUCT_DEF@[200; 250) | 220 | STRUCT_DEF@200..250 |
221 | STRUCT_KW@[200; 206) "struct" | 221 | STRUCT_KW@200..206 "struct" |
222 | WHITESPACE@[206; 207) " " | 222 | WHITESPACE@206..207 " " |
223 | NAME@[207; 208) | 223 | NAME@207..208 |
224 | IDENT@[207; 208) "K" | 224 | IDENT@207..208 "K" |
225 | TYPE_PARAM_LIST@[208; 249) | 225 | TYPE_PARAM_LIST@208..249 |
226 | L_ANGLE@[208; 209) "<" | 226 | L_ANGLE@208..209 "<" |
227 | LIFETIME_PARAM@[209; 215) | 227 | LIFETIME_PARAM@209..215 |
228 | LIFETIME@[209; 211) "\'a" | 228 | LIFETIME@209..211 "\'a" |
229 | COLON@[211; 212) ":" | 229 | COLON@211..212 ":" |
230 | WHITESPACE@[212; 213) " " | 230 | WHITESPACE@212..213 " " |
231 | LIFETIME@[213; 215) "\'d" | 231 | LIFETIME@213..215 "\'d" |
232 | COMMA@[215; 216) "," | 232 | COMMA@215..216 "," |
233 | WHITESPACE@[216; 217) " " | 233 | WHITESPACE@216..217 " " |
234 | LIFETIME_PARAM@[217; 228) | 234 | LIFETIME_PARAM@217..228 |
235 | LIFETIME@[217; 219) "\'d" | 235 | LIFETIME@217..219 "\'d" |
236 | COLON@[219; 220) ":" | 236 | COLON@219..220 ":" |
237 | WHITESPACE@[220; 221) " " | 237 | WHITESPACE@220..221 " " |
238 | LIFETIME@[221; 223) "\'a" | 238 | LIFETIME@221..223 "\'a" |
239 | WHITESPACE@[223; 224) " " | 239 | WHITESPACE@223..224 " " |
240 | PLUS@[224; 225) "+" | 240 | PLUS@224..225 "+" |
241 | WHITESPACE@[225; 226) " " | 241 | WHITESPACE@225..226 " " |
242 | LIFETIME@[226; 228) "\'b" | 242 | LIFETIME@226..228 "\'b" |
243 | COMMA@[228; 229) "," | 243 | COMMA@228..229 "," |
244 | WHITESPACE@[229; 230) " " | 244 | WHITESPACE@229..230 " " |
245 | TYPE_PARAM@[230; 248) | 245 | TYPE_PARAM@230..248 |
246 | NAME@[230; 231) | 246 | NAME@230..231 |
247 | IDENT@[230; 231) "T" | 247 | IDENT@230..231 "T" |
248 | COLON@[231; 232) ":" | 248 | COLON@231..232 ":" |
249 | WHITESPACE@[232; 233) " " | 249 | WHITESPACE@232..233 " " |
250 | TYPE_BOUND_LIST@[233; 248) | 250 | TYPE_BOUND_LIST@233..248 |
251 | TYPE_BOUND@[233; 235) | 251 | TYPE_BOUND@233..235 |
252 | LIFETIME@[233; 235) "\'a" | 252 | LIFETIME@233..235 "\'a" |
253 | WHITESPACE@[235; 236) " " | 253 | WHITESPACE@235..236 " " |
254 | PLUS@[236; 237) "+" | 254 | PLUS@236..237 "+" |
255 | WHITESPACE@[237; 238) " " | 255 | WHITESPACE@237..238 " " |
256 | TYPE_BOUND@[238; 240) | 256 | TYPE_BOUND@238..240 |
257 | LIFETIME@[238; 240) "\'d" | 257 | LIFETIME@238..240 "\'d" |
258 | WHITESPACE@[240; 241) " " | 258 | WHITESPACE@240..241 " " |
259 | PLUS@[241; 242) "+" | 259 | PLUS@241..242 "+" |
260 | WHITESPACE@[242; 243) " " | 260 | WHITESPACE@242..243 " " |
261 | TYPE_BOUND@[243; 248) | 261 | TYPE_BOUND@243..248 |
262 | PATH_TYPE@[243; 248) | 262 | PATH_TYPE@243..248 |
263 | PATH@[243; 248) | 263 | PATH@243..248 |
264 | PATH_SEGMENT@[243; 248) | 264 | PATH_SEGMENT@243..248 |
265 | NAME_REF@[243; 248) | 265 | NAME_REF@243..248 |
266 | IDENT@[243; 248) "Clone" | 266 | IDENT@243..248 "Clone" |
267 | R_ANGLE@[248; 249) ">" | 267 | R_ANGLE@248..249 ">" |
268 | SEMICOLON@[249; 250) ";" | 268 | SEMICOLON@249..250 ";" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast index 974fb9c44..643a1d16c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast +++ b/crates/ra_syntax/test_data/parser/ok/0021_extern_fn.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 71) | 1 | SOURCE_FILE@0..71 |
2 | FN_DEF@[0; 19) | 2 | FN_DEF@0..19 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | FN_KW@[7; 9) "fn" | 6 | FN_KW@7..9 "fn" |
7 | WHITESPACE@[9; 10) " " | 7 | WHITESPACE@9..10 " " |
8 | NAME@[10; 13) | 8 | NAME@10..13 |
9 | IDENT@[10; 13) "foo" | 9 | IDENT@10..13 "foo" |
10 | PARAM_LIST@[13; 15) | 10 | PARAM_LIST@13..15 |
11 | L_PAREN@[13; 14) "(" | 11 | L_PAREN@13..14 "(" |
12 | R_PAREN@[14; 15) ")" | 12 | R_PAREN@14..15 ")" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | BLOCK_EXPR@[16; 19) | 14 | BLOCK_EXPR@16..19 |
15 | BLOCK@[16; 19) | 15 | BLOCK@16..19 |
16 | L_CURLY@[16; 17) "{" | 16 | L_CURLY@16..17 "{" |
17 | WHITESPACE@[17; 18) "\n" | 17 | WHITESPACE@17..18 "\n" |
18 | R_CURLY@[18; 19) "}" | 18 | R_CURLY@18..19 "}" |
19 | WHITESPACE@[19; 21) "\n\n" | 19 | WHITESPACE@19..21 "\n\n" |
20 | FN_DEF@[21; 44) | 20 | FN_DEF@21..44 |
21 | ABI@[21; 31) | 21 | ABI@21..31 |
22 | EXTERN_KW@[21; 27) "extern" | 22 | EXTERN_KW@21..27 "extern" |
23 | WHITESPACE@[27; 28) " " | 23 | WHITESPACE@27..28 " " |
24 | STRING@[28; 31) "\"C\"" | 24 | STRING@28..31 "\"C\"" |
25 | WHITESPACE@[31; 32) " " | 25 | WHITESPACE@31..32 " " |
26 | FN_KW@[32; 34) "fn" | 26 | FN_KW@32..34 "fn" |
27 | WHITESPACE@[34; 35) " " | 27 | WHITESPACE@34..35 " " |
28 | NAME@[35; 38) | 28 | NAME@35..38 |
29 | IDENT@[35; 38) "bar" | 29 | IDENT@35..38 "bar" |
30 | PARAM_LIST@[38; 40) | 30 | PARAM_LIST@38..40 |
31 | L_PAREN@[38; 39) "(" | 31 | L_PAREN@38..39 "(" |
32 | R_PAREN@[39; 40) ")" | 32 | R_PAREN@39..40 ")" |
33 | WHITESPACE@[40; 41) " " | 33 | WHITESPACE@40..41 " " |
34 | BLOCK_EXPR@[41; 44) | 34 | BLOCK_EXPR@41..44 |
35 | BLOCK@[41; 44) | 35 | BLOCK@41..44 |
36 | L_CURLY@[41; 42) "{" | 36 | L_CURLY@41..42 "{" |
37 | WHITESPACE@[42; 43) "\n" | 37 | WHITESPACE@42..43 "\n" |
38 | R_CURLY@[43; 44) "}" | 38 | R_CURLY@43..44 "}" |
39 | WHITESPACE@[44; 46) "\n\n" | 39 | WHITESPACE@44..46 "\n\n" |
40 | FN_DEF@[46; 70) | 40 | FN_DEF@46..70 |
41 | ABI@[46; 57) | 41 | ABI@46..57 |
42 | EXTERN_KW@[46; 52) "extern" | 42 | EXTERN_KW@46..52 "extern" |
43 | WHITESPACE@[52; 53) " " | 43 | WHITESPACE@52..53 " " |
44 | RAW_STRING@[53; 57) "r\"D\"" | 44 | RAW_STRING@53..57 "r\"D\"" |
45 | WHITESPACE@[57; 58) " " | 45 | WHITESPACE@57..58 " " |
46 | FN_KW@[58; 60) "fn" | 46 | FN_KW@58..60 "fn" |
47 | WHITESPACE@[60; 61) " " | 47 | WHITESPACE@60..61 " " |
48 | NAME@[61; 64) | 48 | NAME@61..64 |
49 | IDENT@[61; 64) "baz" | 49 | IDENT@61..64 "baz" |
50 | PARAM_LIST@[64; 66) | 50 | PARAM_LIST@64..66 |
51 | L_PAREN@[64; 65) "(" | 51 | L_PAREN@64..65 "(" |
52 | R_PAREN@[65; 66) ")" | 52 | R_PAREN@65..66 ")" |
53 | WHITESPACE@[66; 67) " " | 53 | WHITESPACE@66..67 " " |
54 | BLOCK_EXPR@[67; 70) | 54 | BLOCK_EXPR@67..70 |
55 | BLOCK@[67; 70) | 55 | BLOCK@67..70 |
56 | L_CURLY@[67; 68) "{" | 56 | L_CURLY@67..68 "{" |
57 | WHITESPACE@[68; 69) "\n" | 57 | WHITESPACE@68..69 "\n" |
58 | R_CURLY@[69; 70) "}" | 58 | R_CURLY@69..70 "}" |
59 | WHITESPACE@[70; 71) "\n" | 59 | WHITESPACE@70..71 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0022_empty_extern_block.rast b/crates/ra_syntax/test_data/parser/ok/0022_empty_extern_block.rast index bbbd95fd9..26abae3b2 100644 --- a/crates/ra_syntax/test_data/parser/ok/0022_empty_extern_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0022_empty_extern_block.rast | |||
@@ -1,21 +1,21 @@ | |||
1 | SOURCE_FILE@[0; 27) | 1 | SOURCE_FILE@0..27 |
2 | EXTERN_BLOCK@[0; 10) | 2 | EXTERN_BLOCK@0..10 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | EXTERN_ITEM_LIST@[7; 10) | 6 | EXTERN_ITEM_LIST@7..10 |
7 | L_CURLY@[7; 8) "{" | 7 | L_CURLY@7..8 "{" |
8 | WHITESPACE@[8; 9) "\n" | 8 | WHITESPACE@8..9 "\n" |
9 | R_CURLY@[9; 10) "}" | 9 | R_CURLY@9..10 "}" |
10 | WHITESPACE@[10; 12) "\n\n" | 10 | WHITESPACE@10..12 "\n\n" |
11 | EXTERN_BLOCK@[12; 26) | 11 | EXTERN_BLOCK@12..26 |
12 | ABI@[12; 22) | 12 | ABI@12..22 |
13 | EXTERN_KW@[12; 18) "extern" | 13 | EXTERN_KW@12..18 "extern" |
14 | WHITESPACE@[18; 19) " " | 14 | WHITESPACE@18..19 " " |
15 | STRING@[19; 22) "\"C\"" | 15 | STRING@19..22 "\"C\"" |
16 | WHITESPACE@[22; 23) " " | 16 | WHITESPACE@22..23 " " |
17 | EXTERN_ITEM_LIST@[23; 26) | 17 | EXTERN_ITEM_LIST@23..26 |
18 | L_CURLY@[23; 24) "{" | 18 | L_CURLY@23..24 "{" |
19 | WHITESPACE@[24; 25) "\n" | 19 | WHITESPACE@24..25 "\n" |
20 | R_CURLY@[25; 26) "}" | 20 | R_CURLY@25..26 "}" |
21 | WHITESPACE@[26; 27) "\n" | 21 | WHITESPACE@26..27 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast b/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast index dadf24fa6..97d90dc75 100644 --- a/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast +++ b/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast | |||
@@ -1,41 +1,41 @@ | |||
1 | SOURCE_FILE@[0; 47) | 1 | SOURCE_FILE@0..47 |
2 | STATIC_DEF@[0; 20) | 2 | STATIC_DEF@0..20 |
3 | STATIC_KW@[0; 6) "static" | 3 | STATIC_KW@0..6 "static" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 10) | 5 | NAME@7..10 |
6 | IDENT@[7; 10) "FOO" | 6 | IDENT@7..10 "FOO" |
7 | COLON@[10; 11) ":" | 7 | COLON@10..11 ":" |
8 | WHITESPACE@[11; 12) " " | 8 | WHITESPACE@11..12 " " |
9 | PATH_TYPE@[12; 15) | 9 | PATH_TYPE@12..15 |
10 | PATH@[12; 15) | 10 | PATH@12..15 |
11 | PATH_SEGMENT@[12; 15) | 11 | PATH_SEGMENT@12..15 |
12 | NAME_REF@[12; 15) | 12 | NAME_REF@12..15 |
13 | IDENT@[12; 15) "u32" | 13 | IDENT@12..15 "u32" |
14 | WHITESPACE@[15; 16) " " | 14 | WHITESPACE@15..16 " " |
15 | EQ@[16; 17) "=" | 15 | EQ@16..17 "=" |
16 | WHITESPACE@[17; 18) " " | 16 | WHITESPACE@17..18 " " |
17 | LITERAL@[18; 19) | 17 | LITERAL@18..19 |
18 | INT_NUMBER@[18; 19) "1" | 18 | INT_NUMBER@18..19 "1" |
19 | SEMICOLON@[19; 20) ";" | 19 | SEMICOLON@19..20 ";" |
20 | WHITESPACE@[20; 21) "\n" | 20 | WHITESPACE@20..21 "\n" |
21 | STATIC_DEF@[21; 46) | 21 | STATIC_DEF@21..46 |
22 | STATIC_KW@[21; 27) "static" | 22 | STATIC_KW@21..27 "static" |
23 | WHITESPACE@[27; 28) " " | 23 | WHITESPACE@27..28 " " |
24 | MUT_KW@[28; 31) "mut" | 24 | MUT_KW@28..31 "mut" |
25 | WHITESPACE@[31; 32) " " | 25 | WHITESPACE@31..32 " " |
26 | NAME@[32; 35) | 26 | NAME@32..35 |
27 | IDENT@[32; 35) "BAR" | 27 | IDENT@32..35 "BAR" |
28 | COLON@[35; 36) ":" | 28 | COLON@35..36 ":" |
29 | WHITESPACE@[36; 37) " " | 29 | WHITESPACE@36..37 " " |
30 | PATH_TYPE@[37; 40) | 30 | PATH_TYPE@37..40 |
31 | PATH@[37; 40) | 31 | PATH@37..40 |
32 | PATH_SEGMENT@[37; 40) | 32 | PATH_SEGMENT@37..40 |
33 | NAME_REF@[37; 40) | 33 | NAME_REF@37..40 |
34 | IDENT@[37; 40) "i32" | 34 | IDENT@37..40 "i32" |
35 | WHITESPACE@[40; 41) " " | 35 | WHITESPACE@40..41 " " |
36 | EQ@[41; 42) "=" | 36 | EQ@41..42 "=" |
37 | WHITESPACE@[42; 43) " " | 37 | WHITESPACE@42..43 " " |
38 | LITERAL@[43; 45) | 38 | LITERAL@43..45 |
39 | INT_NUMBER@[43; 45) "92" | 39 | INT_NUMBER@43..45 "92" |
40 | SEMICOLON@[45; 46) ";" | 40 | SEMICOLON@45..46 ";" |
41 | WHITESPACE@[46; 47) "\n" | 41 | WHITESPACE@46..47 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast b/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast index 262e31f7f..d241f034c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 64) | 1 | SOURCE_FILE@0..64 |
2 | CONST_DEF@[0; 17) | 2 | CONST_DEF@0..17 |
3 | CONST_KW@[0; 5) "const" | 3 | CONST_KW@0..5 "const" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | UNDERSCORE@[6; 7) "_" | 5 | UNDERSCORE@6..7 "_" |
6 | COLON@[7; 8) ":" | 6 | COLON@7..8 ":" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | PATH_TYPE@[9; 12) | 8 | PATH_TYPE@9..12 |
9 | PATH@[9; 12) | 9 | PATH@9..12 |
10 | PATH_SEGMENT@[9; 12) | 10 | PATH_SEGMENT@9..12 |
11 | NAME_REF@[9; 12) | 11 | NAME_REF@9..12 |
12 | IDENT@[9; 12) "u32" | 12 | IDENT@9..12 "u32" |
13 | WHITESPACE@[12; 13) " " | 13 | WHITESPACE@12..13 " " |
14 | EQ@[13; 14) "=" | 14 | EQ@13..14 "=" |
15 | WHITESPACE@[14; 15) " " | 15 | WHITESPACE@14..15 " " |
16 | LITERAL@[15; 16) | 16 | LITERAL@15..16 |
17 | INT_NUMBER@[15; 16) "0" | 17 | INT_NUMBER@15..16 "0" |
18 | SEMICOLON@[16; 17) ";" | 18 | SEMICOLON@16..17 ";" |
19 | WHITESPACE@[17; 18) "\n" | 19 | WHITESPACE@17..18 "\n" |
20 | CONST_DEF@[18; 38) | 20 | CONST_DEF@18..38 |
21 | CONST_KW@[18; 23) "const" | 21 | CONST_KW@18..23 "const" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | NAME@[24; 27) | 23 | NAME@24..27 |
24 | IDENT@[24; 27) "FOO" | 24 | IDENT@24..27 "FOO" |
25 | COLON@[27; 28) ":" | 25 | COLON@27..28 ":" |
26 | WHITESPACE@[28; 29) " " | 26 | WHITESPACE@28..29 " " |
27 | PATH_TYPE@[29; 32) | 27 | PATH_TYPE@29..32 |
28 | PATH@[29; 32) | 28 | PATH@29..32 |
29 | PATH_SEGMENT@[29; 32) | 29 | PATH_SEGMENT@29..32 |
30 | NAME_REF@[29; 32) | 30 | NAME_REF@29..32 |
31 | IDENT@[29; 32) "u32" | 31 | IDENT@29..32 "u32" |
32 | WHITESPACE@[32; 33) " " | 32 | WHITESPACE@32..33 " " |
33 | EQ@[33; 34) "=" | 33 | EQ@33..34 "=" |
34 | WHITESPACE@[34; 35) " " | 34 | WHITESPACE@34..35 " " |
35 | LITERAL@[35; 37) | 35 | LITERAL@35..37 |
36 | INT_NUMBER@[35; 37) "92" | 36 | INT_NUMBER@35..37 "92" |
37 | SEMICOLON@[37; 38) ";" | 37 | SEMICOLON@37..38 ";" |
38 | WHITESPACE@[38; 39) "\n" | 38 | WHITESPACE@38..39 "\n" |
39 | CONST_DEF@[39; 63) | 39 | CONST_DEF@39..63 |
40 | CONST_KW@[39; 44) "const" | 40 | CONST_KW@39..44 "const" |
41 | WHITESPACE@[44; 45) " " | 41 | WHITESPACE@44..45 " " |
42 | MUT_KW@[45; 48) "mut" | 42 | MUT_KW@45..48 "mut" |
43 | WHITESPACE@[48; 49) " " | 43 | WHITESPACE@48..49 " " |
44 | NAME@[49; 52) | 44 | NAME@49..52 |
45 | IDENT@[49; 52) "BAR" | 45 | IDENT@49..52 "BAR" |
46 | COLON@[52; 53) ":" | 46 | COLON@52..53 ":" |
47 | WHITESPACE@[53; 54) " " | 47 | WHITESPACE@53..54 " " |
48 | PATH_TYPE@[54; 57) | 48 | PATH_TYPE@54..57 |
49 | PATH@[54; 57) | 49 | PATH@54..57 |
50 | PATH_SEGMENT@[54; 57) | 50 | PATH_SEGMENT@54..57 |
51 | NAME_REF@[54; 57) | 51 | NAME_REF@54..57 |
52 | IDENT@[54; 57) "u32" | 52 | IDENT@54..57 "u32" |
53 | WHITESPACE@[57; 58) " " | 53 | WHITESPACE@57..58 " " |
54 | EQ@[58; 59) "=" | 54 | EQ@58..59 "=" |
55 | WHITESPACE@[59; 60) " " | 55 | WHITESPACE@59..60 " " |
56 | LITERAL@[60; 62) | 56 | LITERAL@60..62 |
57 | INT_NUMBER@[60; 62) "62" | 57 | INT_NUMBER@60..62 "62" |
58 | SEMICOLON@[62; 63) ";" | 58 | SEMICOLON@62..63 ";" |
59 | WHITESPACE@[63; 64) "\n" | 59 | WHITESPACE@63..64 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast index f5a7a1a5a..60af55837 100644 --- a/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0025_extern_fn_in_block.rast | |||
@@ -1,33 +1,33 @@ | |||
1 | SOURCE_FILE@[0; 35) | 1 | SOURCE_FILE@0..35 |
2 | FN_DEF@[0; 34) | 2 | FN_DEF@0..34 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 34) | 11 | BLOCK_EXPR@10..34 |
12 | BLOCK@[10; 34) | 12 | BLOCK@10..34 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | FN_DEF@[16; 32) | 15 | FN_DEF@16..32 |
16 | ABI@[16; 22) | 16 | ABI@16..22 |
17 | EXTERN_KW@[16; 22) "extern" | 17 | EXTERN_KW@16..22 "extern" |
18 | WHITESPACE@[22; 23) " " | 18 | WHITESPACE@22..23 " " |
19 | FN_KW@[23; 25) "fn" | 19 | FN_KW@23..25 "fn" |
20 | WHITESPACE@[25; 26) " " | 20 | WHITESPACE@25..26 " " |
21 | NAME@[26; 27) | 21 | NAME@26..27 |
22 | IDENT@[26; 27) "f" | 22 | IDENT@26..27 "f" |
23 | PARAM_LIST@[27; 29) | 23 | PARAM_LIST@27..29 |
24 | L_PAREN@[27; 28) "(" | 24 | L_PAREN@27..28 "(" |
25 | R_PAREN@[28; 29) ")" | 25 | R_PAREN@28..29 ")" |
26 | WHITESPACE@[29; 30) " " | 26 | WHITESPACE@29..30 " " |
27 | BLOCK_EXPR@[30; 32) | 27 | BLOCK_EXPR@30..32 |
28 | BLOCK@[30; 32) | 28 | BLOCK@30..32 |
29 | L_CURLY@[30; 31) "{" | 29 | L_CURLY@30..31 "{" |
30 | R_CURLY@[31; 32) "}" | 30 | R_CURLY@31..32 "}" |
31 | WHITESPACE@[32; 33) "\n" | 31 | WHITESPACE@32..33 "\n" |
32 | R_CURLY@[33; 34) "}" | 32 | R_CURLY@33..34 "}" |
33 | WHITESPACE@[34; 35) "\n" | 33 | WHITESPACE@34..35 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast index f9b1dcf1a..4432c0163 100644 --- a/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0026_const_fn_in_block.rast | |||
@@ -1,32 +1,32 @@ | |||
1 | SOURCE_FILE@[0; 34) | 1 | SOURCE_FILE@0..34 |
2 | FN_DEF@[0; 33) | 2 | FN_DEF@0..33 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 33) | 11 | BLOCK_EXPR@10..33 |
12 | BLOCK@[10; 33) | 12 | BLOCK@10..33 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | FN_DEF@[16; 31) | 15 | FN_DEF@16..31 |
16 | CONST_KW@[16; 21) "const" | 16 | CONST_KW@16..21 "const" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | FN_KW@[22; 24) "fn" | 18 | FN_KW@22..24 "fn" |
19 | WHITESPACE@[24; 25) " " | 19 | WHITESPACE@24..25 " " |
20 | NAME@[25; 26) | 20 | NAME@25..26 |
21 | IDENT@[25; 26) "f" | 21 | IDENT@25..26 "f" |
22 | PARAM_LIST@[26; 28) | 22 | PARAM_LIST@26..28 |
23 | L_PAREN@[26; 27) "(" | 23 | L_PAREN@26..27 "(" |
24 | R_PAREN@[27; 28) ")" | 24 | R_PAREN@27..28 ")" |
25 | WHITESPACE@[28; 29) " " | 25 | WHITESPACE@28..29 " " |
26 | BLOCK_EXPR@[29; 31) | 26 | BLOCK_EXPR@29..31 |
27 | BLOCK@[29; 31) | 27 | BLOCK@29..31 |
28 | L_CURLY@[29; 30) "{" | 28 | L_CURLY@29..30 "{" |
29 | R_CURLY@[30; 31) "}" | 29 | R_CURLY@30..31 "}" |
30 | WHITESPACE@[31; 32) "\n" | 30 | WHITESPACE@31..32 "\n" |
31 | R_CURLY@[32; 33) "}" | 31 | R_CURLY@32..33 "}" |
32 | WHITESPACE@[33; 34) "\n" | 32 | WHITESPACE@33..34 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast index 9fb7b70a0..c0162c609 100644 --- a/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0027_unsafe_fn_in_block.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 53) | 1 | SOURCE_FILE@0..53 |
2 | FN_DEF@[0; 52) | 2 | FN_DEF@0..52 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 52) | 11 | BLOCK_EXPR@10..52 |
12 | BLOCK@[10; 52) | 12 | BLOCK@10..52 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | FN_DEF@[16; 32) | 15 | FN_DEF@16..32 |
16 | UNSAFE_KW@[16; 22) "unsafe" | 16 | UNSAFE_KW@16..22 "unsafe" |
17 | WHITESPACE@[22; 23) " " | 17 | WHITESPACE@22..23 " " |
18 | FN_KW@[23; 25) "fn" | 18 | FN_KW@23..25 "fn" |
19 | WHITESPACE@[25; 26) " " | 19 | WHITESPACE@25..26 " " |
20 | NAME@[26; 27) | 20 | NAME@26..27 |
21 | IDENT@[26; 27) "f" | 21 | IDENT@26..27 "f" |
22 | PARAM_LIST@[27; 29) | 22 | PARAM_LIST@27..29 |
23 | L_PAREN@[27; 28) "(" | 23 | L_PAREN@27..28 "(" |
24 | R_PAREN@[28; 29) ")" | 24 | R_PAREN@28..29 ")" |
25 | WHITESPACE@[29; 30) " " | 25 | WHITESPACE@29..30 " " |
26 | BLOCK_EXPR@[30; 32) | 26 | BLOCK_EXPR@30..32 |
27 | BLOCK@[30; 32) | 27 | BLOCK@30..32 |
28 | L_CURLY@[30; 31) "{" | 28 | L_CURLY@30..31 "{" |
29 | R_CURLY@[31; 32) "}" | 29 | R_CURLY@31..32 "}" |
30 | WHITESPACE@[32; 37) "\n " | 30 | WHITESPACE@32..37 "\n " |
31 | BLOCK_EXPR@[37; 50) | 31 | BLOCK_EXPR@37..50 |
32 | UNSAFE_KW@[37; 43) "unsafe" | 32 | UNSAFE_KW@37..43 "unsafe" |
33 | WHITESPACE@[43; 44) " " | 33 | WHITESPACE@43..44 " " |
34 | BLOCK@[44; 50) | 34 | BLOCK@44..50 |
35 | L_CURLY@[44; 45) "{" | 35 | L_CURLY@44..45 "{" |
36 | WHITESPACE@[45; 46) " " | 36 | WHITESPACE@45..46 " " |
37 | LITERAL@[46; 48) | 37 | LITERAL@46..48 |
38 | INT_NUMBER@[46; 48) "92" | 38 | INT_NUMBER@46..48 "92" |
39 | WHITESPACE@[48; 49) " " | 39 | WHITESPACE@48..49 " " |
40 | R_CURLY@[49; 50) "}" | 40 | R_CURLY@49..50 "}" |
41 | WHITESPACE@[50; 51) "\n" | 41 | WHITESPACE@50..51 "\n" |
42 | R_CURLY@[51; 52) "}" | 42 | R_CURLY@51..52 "}" |
43 | WHITESPACE@[52; 53) "\n" | 43 | WHITESPACE@52..53 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast index 5542f7701..6c0daef52 100644 --- a/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast +++ b/crates/ra_syntax/test_data/parser/ok/0028_operator_binding_power.rast | |||
@@ -1,186 +1,186 @@ | |||
1 | SOURCE_FILE@[0; 248) | 1 | SOURCE_FILE@0..248 |
2 | FN_DEF@[0; 247) | 2 | FN_DEF@0..247 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 16) | 5 | NAME@3..16 |
6 | IDENT@[3; 16) "binding_power" | 6 | IDENT@3..16 "binding_power" |
7 | PARAM_LIST@[16; 18) | 7 | PARAM_LIST@16..18 |
8 | L_PAREN@[16; 17) "(" | 8 | L_PAREN@16..17 "(" |
9 | R_PAREN@[17; 18) ")" | 9 | R_PAREN@17..18 ")" |
10 | WHITESPACE@[18; 19) " " | 10 | WHITESPACE@18..19 " " |
11 | BLOCK_EXPR@[19; 247) | 11 | BLOCK_EXPR@19..247 |
12 | BLOCK@[19; 247) | 12 | BLOCK@19..247 |
13 | L_CURLY@[19; 20) "{" | 13 | L_CURLY@19..20 "{" |
14 | WHITESPACE@[20; 25) "\n " | 14 | WHITESPACE@20..25 "\n " |
15 | LET_STMT@[25; 55) | 15 | LET_STMT@25..55 |
16 | LET_KW@[25; 28) "let" | 16 | LET_KW@25..28 "let" |
17 | WHITESPACE@[28; 29) " " | 17 | WHITESPACE@28..29 " " |
18 | BIND_PAT@[29; 30) | 18 | BIND_PAT@29..30 |
19 | NAME@[29; 30) | 19 | NAME@29..30 |
20 | IDENT@[29; 30) "x" | 20 | IDENT@29..30 "x" |
21 | WHITESPACE@[30; 31) " " | 21 | WHITESPACE@30..31 " " |
22 | EQ@[31; 32) "=" | 22 | EQ@31..32 "=" |
23 | WHITESPACE@[32; 33) " " | 23 | WHITESPACE@32..33 " " |
24 | BIN_EXPR@[33; 54) | 24 | BIN_EXPR@33..54 |
25 | BIN_EXPR@[33; 46) | 25 | BIN_EXPR@33..46 |
26 | LITERAL@[33; 34) | 26 | LITERAL@33..34 |
27 | INT_NUMBER@[33; 34) "1" | 27 | INT_NUMBER@33..34 "1" |
28 | WHITESPACE@[34; 35) " " | 28 | WHITESPACE@34..35 " " |
29 | PLUS@[35; 36) "+" | 29 | PLUS@35..36 "+" |
30 | WHITESPACE@[36; 37) " " | 30 | WHITESPACE@36..37 " " |
31 | BIN_EXPR@[37; 46) | 31 | BIN_EXPR@37..46 |
32 | BIN_EXPR@[37; 42) | 32 | BIN_EXPR@37..42 |
33 | LITERAL@[37; 38) | 33 | LITERAL@37..38 |
34 | INT_NUMBER@[37; 38) "2" | 34 | INT_NUMBER@37..38 "2" |
35 | WHITESPACE@[38; 39) " " | 35 | WHITESPACE@38..39 " " |
36 | STAR@[39; 40) "*" | 36 | STAR@39..40 "*" |
37 | WHITESPACE@[40; 41) " " | 37 | WHITESPACE@40..41 " " |
38 | LITERAL@[41; 42) | 38 | LITERAL@41..42 |
39 | INT_NUMBER@[41; 42) "3" | 39 | INT_NUMBER@41..42 "3" |
40 | WHITESPACE@[42; 43) " " | 40 | WHITESPACE@42..43 " " |
41 | PERCENT@[43; 44) "%" | 41 | PERCENT@43..44 "%" |
42 | WHITESPACE@[44; 45) " " | 42 | WHITESPACE@44..45 " " |
43 | LITERAL@[45; 46) | 43 | LITERAL@45..46 |
44 | INT_NUMBER@[45; 46) "4" | 44 | INT_NUMBER@45..46 "4" |
45 | WHITESPACE@[46; 47) " " | 45 | WHITESPACE@46..47 " " |
46 | MINUS@[47; 48) "-" | 46 | MINUS@47..48 "-" |
47 | WHITESPACE@[48; 49) " " | 47 | WHITESPACE@48..49 " " |
48 | BIN_EXPR@[49; 54) | 48 | BIN_EXPR@49..54 |
49 | LITERAL@[49; 50) | 49 | LITERAL@49..50 |
50 | INT_NUMBER@[49; 50) "5" | 50 | INT_NUMBER@49..50 "5" |
51 | WHITESPACE@[50; 51) " " | 51 | WHITESPACE@50..51 " " |
52 | SLASH@[51; 52) "/" | 52 | SLASH@51..52 "/" |
53 | WHITESPACE@[52; 53) " " | 53 | WHITESPACE@52..53 " " |
54 | LITERAL@[53; 54) | 54 | LITERAL@53..54 |
55 | INT_NUMBER@[53; 54) "6" | 55 | INT_NUMBER@53..54 "6" |
56 | SEMICOLON@[54; 55) ";" | 56 | SEMICOLON@54..55 ";" |
57 | WHITESPACE@[55; 60) "\n " | 57 | WHITESPACE@55..60 "\n " |
58 | EXPR_STMT@[60; 70) | 58 | EXPR_STMT@60..70 |
59 | BIN_EXPR@[60; 69) | 59 | BIN_EXPR@60..69 |
60 | LITERAL@[60; 61) | 60 | LITERAL@60..61 |
61 | INT_NUMBER@[60; 61) "1" | 61 | INT_NUMBER@60..61 "1" |
62 | WHITESPACE@[61; 62) " " | 62 | WHITESPACE@61..62 " " |
63 | PLUS@[62; 63) "+" | 63 | PLUS@62..63 "+" |
64 | WHITESPACE@[63; 64) " " | 64 | WHITESPACE@63..64 " " |
65 | BIN_EXPR@[64; 69) | 65 | BIN_EXPR@64..69 |
66 | LITERAL@[64; 65) | 66 | LITERAL@64..65 |
67 | INT_NUMBER@[64; 65) "2" | 67 | INT_NUMBER@64..65 "2" |
68 | WHITESPACE@[65; 66) " " | 68 | WHITESPACE@65..66 " " |
69 | STAR@[66; 67) "*" | 69 | STAR@66..67 "*" |
70 | WHITESPACE@[67; 68) " " | 70 | WHITESPACE@67..68 " " |
71 | LITERAL@[68; 69) | 71 | LITERAL@68..69 |
72 | INT_NUMBER@[68; 69) "3" | 72 | INT_NUMBER@68..69 "3" |
73 | SEMICOLON@[69; 70) ";" | 73 | SEMICOLON@69..70 ";" |
74 | WHITESPACE@[70; 75) "\n " | 74 | WHITESPACE@70..75 "\n " |
75 | EXPR_STMT@[75; 86) | 75 | EXPR_STMT@75..86 |
76 | BIN_EXPR@[75; 85) | 76 | BIN_EXPR@75..85 |
77 | LITERAL@[75; 76) | 77 | LITERAL@75..76 |
78 | INT_NUMBER@[75; 76) "1" | 78 | INT_NUMBER@75..76 "1" |
79 | WHITESPACE@[76; 77) " " | 79 | WHITESPACE@76..77 " " |
80 | SHL@[77; 79) "<<" | 80 | SHL@77..79 "<<" |
81 | WHITESPACE@[79; 80) " " | 81 | WHITESPACE@79..80 " " |
82 | BIN_EXPR@[80; 85) | 82 | BIN_EXPR@80..85 |
83 | LITERAL@[80; 81) | 83 | LITERAL@80..81 |
84 | INT_NUMBER@[80; 81) "2" | 84 | INT_NUMBER@80..81 "2" |
85 | WHITESPACE@[81; 82) " " | 85 | WHITESPACE@81..82 " " |
86 | PLUS@[82; 83) "+" | 86 | PLUS@82..83 "+" |
87 | WHITESPACE@[83; 84) " " | 87 | WHITESPACE@83..84 " " |
88 | LITERAL@[84; 85) | 88 | LITERAL@84..85 |
89 | INT_NUMBER@[84; 85) "3" | 89 | INT_NUMBER@84..85 "3" |
90 | SEMICOLON@[85; 86) ";" | 90 | SEMICOLON@85..86 ";" |
91 | WHITESPACE@[86; 91) "\n " | 91 | WHITESPACE@86..91 "\n " |
92 | EXPR_STMT@[91; 102) | 92 | EXPR_STMT@91..102 |
93 | BIN_EXPR@[91; 101) | 93 | BIN_EXPR@91..101 |
94 | LITERAL@[91; 92) | 94 | LITERAL@91..92 |
95 | INT_NUMBER@[91; 92) "1" | 95 | INT_NUMBER@91..92 "1" |
96 | WHITESPACE@[92; 93) " " | 96 | WHITESPACE@92..93 " " |
97 | AMP@[93; 94) "&" | 97 | AMP@93..94 "&" |
98 | WHITESPACE@[94; 95) " " | 98 | WHITESPACE@94..95 " " |
99 | BIN_EXPR@[95; 101) | 99 | BIN_EXPR@95..101 |
100 | LITERAL@[95; 96) | 100 | LITERAL@95..96 |
101 | INT_NUMBER@[95; 96) "2" | 101 | INT_NUMBER@95..96 "2" |
102 | WHITESPACE@[96; 97) " " | 102 | WHITESPACE@96..97 " " |
103 | SHR@[97; 99) ">>" | 103 | SHR@97..99 ">>" |
104 | WHITESPACE@[99; 100) " " | 104 | WHITESPACE@99..100 " " |
105 | LITERAL@[100; 101) | 105 | LITERAL@100..101 |
106 | INT_NUMBER@[100; 101) "3" | 106 | INT_NUMBER@100..101 "3" |
107 | SEMICOLON@[101; 102) ";" | 107 | SEMICOLON@101..102 ";" |
108 | WHITESPACE@[102; 107) "\n " | 108 | WHITESPACE@102..107 "\n " |
109 | EXPR_STMT@[107; 117) | 109 | EXPR_STMT@107..117 |
110 | BIN_EXPR@[107; 116) | 110 | BIN_EXPR@107..116 |
111 | LITERAL@[107; 108) | 111 | LITERAL@107..108 |
112 | INT_NUMBER@[107; 108) "1" | 112 | INT_NUMBER@107..108 "1" |
113 | WHITESPACE@[108; 109) " " | 113 | WHITESPACE@108..109 " " |
114 | CARET@[109; 110) "^" | 114 | CARET@109..110 "^" |
115 | WHITESPACE@[110; 111) " " | 115 | WHITESPACE@110..111 " " |
116 | BIN_EXPR@[111; 116) | 116 | BIN_EXPR@111..116 |
117 | LITERAL@[111; 112) | 117 | LITERAL@111..112 |
118 | INT_NUMBER@[111; 112) "2" | 118 | INT_NUMBER@111..112 "2" |
119 | WHITESPACE@[112; 113) " " | 119 | WHITESPACE@112..113 " " |
120 | AMP@[113; 114) "&" | 120 | AMP@113..114 "&" |
121 | WHITESPACE@[114; 115) " " | 121 | WHITESPACE@114..115 " " |
122 | LITERAL@[115; 116) | 122 | LITERAL@115..116 |
123 | INT_NUMBER@[115; 116) "3" | 123 | INT_NUMBER@115..116 "3" |
124 | SEMICOLON@[116; 117) ";" | 124 | SEMICOLON@116..117 ";" |
125 | WHITESPACE@[117; 122) "\n " | 125 | WHITESPACE@117..122 "\n " |
126 | EXPR_STMT@[122; 132) | 126 | EXPR_STMT@122..132 |
127 | BIN_EXPR@[122; 131) | 127 | BIN_EXPR@122..131 |
128 | LITERAL@[122; 123) | 128 | LITERAL@122..123 |
129 | INT_NUMBER@[122; 123) "1" | 129 | INT_NUMBER@122..123 "1" |
130 | WHITESPACE@[123; 124) " " | 130 | WHITESPACE@123..124 " " |
131 | PIPE@[124; 125) "|" | 131 | PIPE@124..125 "|" |
132 | WHITESPACE@[125; 126) " " | 132 | WHITESPACE@125..126 " " |
133 | BIN_EXPR@[126; 131) | 133 | BIN_EXPR@126..131 |
134 | LITERAL@[126; 127) | 134 | LITERAL@126..127 |
135 | INT_NUMBER@[126; 127) "2" | 135 | INT_NUMBER@126..127 "2" |
136 | WHITESPACE@[127; 128) " " | 136 | WHITESPACE@127..128 " " |
137 | CARET@[128; 129) "^" | 137 | CARET@128..129 "^" |
138 | WHITESPACE@[129; 130) " " | 138 | WHITESPACE@129..130 " " |
139 | LITERAL@[130; 131) | 139 | LITERAL@130..131 |
140 | INT_NUMBER@[130; 131) "3" | 140 | INT_NUMBER@130..131 "3" |
141 | SEMICOLON@[131; 132) ";" | 141 | SEMICOLON@131..132 ";" |
142 | WHITESPACE@[132; 137) "\n " | 142 | WHITESPACE@132..137 "\n " |
143 | EXPR_STMT@[137; 148) | 143 | EXPR_STMT@137..148 |
144 | BIN_EXPR@[137; 147) | 144 | BIN_EXPR@137..147 |
145 | LITERAL@[137; 138) | 145 | LITERAL@137..138 |
146 | INT_NUMBER@[137; 138) "1" | 146 | INT_NUMBER@137..138 "1" |
147 | WHITESPACE@[138; 139) " " | 147 | WHITESPACE@138..139 " " |
148 | EQ2@[139; 141) "==" | 148 | EQ2@139..141 "==" |
149 | WHITESPACE@[141; 142) " " | 149 | WHITESPACE@141..142 " " |
150 | BIN_EXPR@[142; 147) | 150 | BIN_EXPR@142..147 |
151 | LITERAL@[142; 143) | 151 | LITERAL@142..143 |
152 | INT_NUMBER@[142; 143) "2" | 152 | INT_NUMBER@142..143 "2" |
153 | WHITESPACE@[143; 144) " " | 153 | WHITESPACE@143..144 " " |
154 | PIPE@[144; 145) "|" | 154 | PIPE@144..145 "|" |
155 | WHITESPACE@[145; 146) " " | 155 | WHITESPACE@145..146 " " |
156 | LITERAL@[146; 147) | 156 | LITERAL@146..147 |
157 | INT_NUMBER@[146; 147) "3" | 157 | INT_NUMBER@146..147 "3" |
158 | SEMICOLON@[147; 148) ";" | 158 | SEMICOLON@147..148 ";" |
159 | WHITESPACE@[148; 153) "\n " | 159 | WHITESPACE@148..153 "\n " |
160 | EXPR_STMT@[153; 165) | 160 | EXPR_STMT@153..165 |
161 | BIN_EXPR@[153; 164) | 161 | BIN_EXPR@153..164 |
162 | LITERAL@[153; 154) | 162 | LITERAL@153..154 |
163 | INT_NUMBER@[153; 154) "1" | 163 | INT_NUMBER@153..154 "1" |
164 | WHITESPACE@[154; 155) " " | 164 | WHITESPACE@154..155 " " |
165 | AMP2@[155; 157) "&&" | 165 | AMP2@155..157 "&&" |
166 | WHITESPACE@[157; 158) " " | 166 | WHITESPACE@157..158 " " |
167 | BIN_EXPR@[158; 164) | 167 | BIN_EXPR@158..164 |
168 | LITERAL@[158; 159) | 168 | LITERAL@158..159 |
169 | INT_NUMBER@[158; 159) "2" | 169 | INT_NUMBER@158..159 "2" |
170 | WHITESPACE@[159; 160) " " | 170 | WHITESPACE@159..160 " " |
171 | EQ2@[160; 162) "==" | 171 | EQ2@160..162 "==" |
172 | WHITESPACE@[162; 163) " " | 172 | WHITESPACE@162..163 " " |
173 | LITERAL@[163; 164) | 173 | LITERAL@163..164 |
174 | INT_NUMBER@[163; 164) "3" | 174 | INT_NUMBER@163..164 "3" |
175 | SEMICOLON@[164; 165) ";" | 175 | SEMICOLON@164..165 ";" |
176 | WHITESPACE@[165; 170) "\n " | 176 | WHITESPACE@165..170 "\n " |
177 | COMMENT@[170; 184) "//1 || 2 && 2;" | 177 | COMMENT@170..184 "//1 || 2 && 2;" |
178 | WHITESPACE@[184; 189) "\n " | 178 | WHITESPACE@184..189 "\n " |
179 | COMMENT@[189; 203) "//1 .. 2 || 3;" | 179 | COMMENT@189..203 "//1 .. 2 || 3;" |
180 | WHITESPACE@[203; 208) "\n " | 180 | WHITESPACE@203..208 "\n " |
181 | COMMENT@[208; 221) "//1 = 2 .. 3;" | 181 | COMMENT@208..221 "//1 = 2 .. 3;" |
182 | WHITESPACE@[221; 226) "\n " | 182 | WHITESPACE@221..226 "\n " |
183 | COMMENT@[226; 245) "//---&*1 - --2 * 9;" | 183 | COMMENT@226..245 "//---&*1 - --2 * 9;" |
184 | WHITESPACE@[245; 246) "\n" | 184 | WHITESPACE@245..246 "\n" |
185 | R_CURLY@[246; 247) "}" | 185 | R_CURLY@246..247 "}" |
186 | WHITESPACE@[247; 248) "\n" | 186 | WHITESPACE@247..248 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast index 78056aa95..8177bd89b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast +++ b/crates/ra_syntax/test_data/parser/ok/0029_range_forms.rast | |||
@@ -1,152 +1,152 @@ | |||
1 | SOURCE_FILE@[0; 153) | 1 | SOURCE_FILE@0..153 |
2 | FN_DEF@[0; 152) | 2 | FN_DEF@0..152 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 152) | 11 | BLOCK_EXPR@9..152 |
12 | BLOCK@[9; 152) | 12 | BLOCK@9..152 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 23) | 15 | EXPR_STMT@15..23 |
16 | RANGE_EXPR@[15; 22) | 16 | RANGE_EXPR@15..22 |
17 | DOT2@[15; 17) ".." | 17 | DOT2@15..17 ".." |
18 | BIN_EXPR@[17; 22) | 18 | BIN_EXPR@17..22 |
19 | LITERAL@[17; 18) | 19 | LITERAL@17..18 |
20 | INT_NUMBER@[17; 18) "1" | 20 | INT_NUMBER@17..18 "1" |
21 | WHITESPACE@[18; 19) " " | 21 | WHITESPACE@18..19 " " |
22 | PLUS@[19; 20) "+" | 22 | PLUS@19..20 "+" |
23 | WHITESPACE@[20; 21) " " | 23 | WHITESPACE@20..21 " " |
24 | LITERAL@[21; 22) | 24 | LITERAL@21..22 |
25 | INT_NUMBER@[21; 22) "1" | 25 | INT_NUMBER@21..22 "1" |
26 | SEMICOLON@[22; 23) ";" | 26 | SEMICOLON@22..23 ";" |
27 | WHITESPACE@[23; 28) "\n " | 27 | WHITESPACE@23..28 "\n " |
28 | EXPR_STMT@[28; 36) | 28 | EXPR_STMT@28..36 |
29 | BIN_EXPR@[28; 35) | 29 | BIN_EXPR@28..35 |
30 | RANGE_EXPR@[28; 31) | 30 | RANGE_EXPR@28..31 |
31 | DOT2@[28; 30) ".." | 31 | DOT2@28..30 ".." |
32 | PATH_EXPR@[30; 31) | 32 | PATH_EXPR@30..31 |
33 | PATH@[30; 31) | 33 | PATH@30..31 |
34 | PATH_SEGMENT@[30; 31) | 34 | PATH_SEGMENT@30..31 |
35 | NAME_REF@[30; 31) | 35 | NAME_REF@30..31 |
36 | IDENT@[30; 31) "z" | 36 | IDENT@30..31 "z" |
37 | WHITESPACE@[31; 32) " " | 37 | WHITESPACE@31..32 " " |
38 | EQ@[32; 33) "=" | 38 | EQ@32..33 "=" |
39 | WHITESPACE@[33; 34) " " | 39 | WHITESPACE@33..34 " " |
40 | LITERAL@[34; 35) | 40 | LITERAL@34..35 |
41 | INT_NUMBER@[34; 35) "2" | 41 | INT_NUMBER@34..35 "2" |
42 | SEMICOLON@[35; 36) ";" | 42 | SEMICOLON@35..36 ";" |
43 | WHITESPACE@[36; 41) "\n " | 43 | WHITESPACE@36..41 "\n " |
44 | EXPR_STMT@[41; 59) | 44 | EXPR_STMT@41..59 |
45 | BIN_EXPR@[41; 58) | 45 | BIN_EXPR@41..58 |
46 | PATH_EXPR@[41; 42) | 46 | PATH_EXPR@41..42 |
47 | PATH@[41; 42) | 47 | PATH@41..42 |
48 | PATH_SEGMENT@[41; 42) | 48 | PATH_SEGMENT@41..42 |
49 | NAME_REF@[41; 42) | 49 | NAME_REF@41..42 |
50 | IDENT@[41; 42) "x" | 50 | IDENT@41..42 "x" |
51 | WHITESPACE@[42; 43) " " | 51 | WHITESPACE@42..43 " " |
52 | EQ@[43; 44) "=" | 52 | EQ@43..44 "=" |
53 | WHITESPACE@[44; 45) " " | 53 | WHITESPACE@44..45 " " |
54 | RANGE_EXPR@[45; 58) | 54 | RANGE_EXPR@45..58 |
55 | LITERAL@[45; 50) | 55 | LITERAL@45..50 |
56 | FALSE_KW@[45; 50) "false" | 56 | FALSE_KW@45..50 "false" |
57 | DOT2@[50; 52) ".." | 57 | DOT2@50..52 ".." |
58 | BIN_EXPR@[52; 58) | 58 | BIN_EXPR@52..58 |
59 | LITERAL@[52; 53) | 59 | LITERAL@52..53 |
60 | INT_NUMBER@[52; 53) "1" | 60 | INT_NUMBER@52..53 "1" |
61 | WHITESPACE@[53; 54) " " | 61 | WHITESPACE@53..54 " " |
62 | EQ2@[54; 56) "==" | 62 | EQ2@54..56 "==" |
63 | WHITESPACE@[56; 57) " " | 63 | WHITESPACE@56..57 " " |
64 | LITERAL@[57; 58) | 64 | LITERAL@57..58 |
65 | INT_NUMBER@[57; 58) "1" | 65 | INT_NUMBER@57..58 "1" |
66 | SEMICOLON@[58; 59) ";" | 66 | SEMICOLON@58..59 ";" |
67 | WHITESPACE@[59; 64) "\n " | 67 | WHITESPACE@59..64 "\n " |
68 | LET_STMT@[64; 76) | 68 | LET_STMT@64..76 |
69 | LET_KW@[64; 67) "let" | 69 | LET_KW@64..67 "let" |
70 | WHITESPACE@[67; 68) " " | 70 | WHITESPACE@67..68 " " |
71 | BIND_PAT@[68; 69) | 71 | BIND_PAT@68..69 |
72 | NAME@[68; 69) | 72 | NAME@68..69 |
73 | IDENT@[68; 69) "x" | 73 | IDENT@68..69 "x" |
74 | WHITESPACE@[69; 70) " " | 74 | WHITESPACE@69..70 " " |
75 | EQ@[70; 71) "=" | 75 | EQ@70..71 "=" |
76 | WHITESPACE@[71; 72) " " | 76 | WHITESPACE@71..72 " " |
77 | RANGE_EXPR@[72; 75) | 77 | RANGE_EXPR@72..75 |
78 | LITERAL@[72; 73) | 78 | LITERAL@72..73 |
79 | INT_NUMBER@[72; 73) "1" | 79 | INT_NUMBER@72..73 "1" |
80 | DOT2@[73; 75) ".." | 80 | DOT2@73..75 ".." |
81 | SEMICOLON@[75; 76) ";" | 81 | SEMICOLON@75..76 ";" |
82 | WHITESPACE@[76; 86) "\n \n " | 82 | WHITESPACE@76..86 "\n \n " |
83 | EXPR_STMT@[86; 95) | 83 | EXPR_STMT@86..95 |
84 | RANGE_EXPR@[86; 94) | 84 | RANGE_EXPR@86..94 |
85 | DOT2EQ@[86; 89) "..=" | 85 | DOT2EQ@86..89 "..=" |
86 | BIN_EXPR@[89; 94) | 86 | BIN_EXPR@89..94 |
87 | LITERAL@[89; 90) | 87 | LITERAL@89..90 |
88 | INT_NUMBER@[89; 90) "1" | 88 | INT_NUMBER@89..90 "1" |
89 | WHITESPACE@[90; 91) " " | 89 | WHITESPACE@90..91 " " |
90 | PLUS@[91; 92) "+" | 90 | PLUS@91..92 "+" |
91 | WHITESPACE@[92; 93) " " | 91 | WHITESPACE@92..93 " " |
92 | LITERAL@[93; 94) | 92 | LITERAL@93..94 |
93 | INT_NUMBER@[93; 94) "1" | 93 | INT_NUMBER@93..94 "1" |
94 | SEMICOLON@[94; 95) ";" | 94 | SEMICOLON@94..95 ";" |
95 | WHITESPACE@[95; 100) "\n " | 95 | WHITESPACE@95..100 "\n " |
96 | EXPR_STMT@[100; 109) | 96 | EXPR_STMT@100..109 |
97 | BIN_EXPR@[100; 108) | 97 | BIN_EXPR@100..108 |
98 | RANGE_EXPR@[100; 104) | 98 | RANGE_EXPR@100..104 |
99 | DOT2EQ@[100; 103) "..=" | 99 | DOT2EQ@100..103 "..=" |
100 | PATH_EXPR@[103; 104) | 100 | PATH_EXPR@103..104 |
101 | PATH@[103; 104) | 101 | PATH@103..104 |
102 | PATH_SEGMENT@[103; 104) | 102 | PATH_SEGMENT@103..104 |
103 | NAME_REF@[103; 104) | 103 | NAME_REF@103..104 |
104 | IDENT@[103; 104) "z" | 104 | IDENT@103..104 "z" |
105 | WHITESPACE@[104; 105) " " | 105 | WHITESPACE@104..105 " " |
106 | EQ@[105; 106) "=" | 106 | EQ@105..106 "=" |
107 | WHITESPACE@[106; 107) " " | 107 | WHITESPACE@106..107 " " |
108 | LITERAL@[107; 108) | 108 | LITERAL@107..108 |
109 | INT_NUMBER@[107; 108) "2" | 109 | INT_NUMBER@107..108 "2" |
110 | SEMICOLON@[108; 109) ";" | 110 | SEMICOLON@108..109 ";" |
111 | WHITESPACE@[109; 114) "\n " | 111 | WHITESPACE@109..114 "\n " |
112 | EXPR_STMT@[114; 133) | 112 | EXPR_STMT@114..133 |
113 | BIN_EXPR@[114; 132) | 113 | BIN_EXPR@114..132 |
114 | PATH_EXPR@[114; 115) | 114 | PATH_EXPR@114..115 |
115 | PATH@[114; 115) | 115 | PATH@114..115 |
116 | PATH_SEGMENT@[114; 115) | 116 | PATH_SEGMENT@114..115 |
117 | NAME_REF@[114; 115) | 117 | NAME_REF@114..115 |
118 | IDENT@[114; 115) "x" | 118 | IDENT@114..115 "x" |
119 | WHITESPACE@[115; 116) " " | 119 | WHITESPACE@115..116 " " |
120 | EQ@[116; 117) "=" | 120 | EQ@116..117 "=" |
121 | WHITESPACE@[117; 118) " " | 121 | WHITESPACE@117..118 " " |
122 | RANGE_EXPR@[118; 132) | 122 | RANGE_EXPR@118..132 |
123 | LITERAL@[118; 123) | 123 | LITERAL@118..123 |
124 | FALSE_KW@[118; 123) "false" | 124 | FALSE_KW@118..123 "false" |
125 | DOT2EQ@[123; 126) "..=" | 125 | DOT2EQ@123..126 "..=" |
126 | BIN_EXPR@[126; 132) | 126 | BIN_EXPR@126..132 |
127 | LITERAL@[126; 127) | 127 | LITERAL@126..127 |
128 | INT_NUMBER@[126; 127) "1" | 128 | INT_NUMBER@126..127 "1" |
129 | WHITESPACE@[127; 128) " " | 129 | WHITESPACE@127..128 " " |
130 | EQ2@[128; 130) "==" | 130 | EQ2@128..130 "==" |
131 | WHITESPACE@[130; 131) " " | 131 | WHITESPACE@130..131 " " |
132 | LITERAL@[131; 132) | 132 | LITERAL@131..132 |
133 | INT_NUMBER@[131; 132) "1" | 133 | INT_NUMBER@131..132 "1" |
134 | SEMICOLON@[132; 133) ";" | 134 | SEMICOLON@132..133 ";" |
135 | WHITESPACE@[133; 138) "\n " | 135 | WHITESPACE@133..138 "\n " |
136 | LET_STMT@[138; 150) | 136 | LET_STMT@138..150 |
137 | LET_KW@[138; 141) "let" | 137 | LET_KW@138..141 "let" |
138 | WHITESPACE@[141; 142) " " | 138 | WHITESPACE@141..142 " " |
139 | BIND_PAT@[142; 143) | 139 | BIND_PAT@142..143 |
140 | NAME@[142; 143) | 140 | NAME@142..143 |
141 | IDENT@[142; 143) "x" | 141 | IDENT@142..143 "x" |
142 | WHITESPACE@[143; 144) " " | 142 | WHITESPACE@143..144 " " |
143 | EQ@[144; 145) "=" | 143 | EQ@144..145 "=" |
144 | WHITESPACE@[145; 146) " " | 144 | WHITESPACE@145..146 " " |
145 | RANGE_EXPR@[146; 149) | 145 | RANGE_EXPR@146..149 |
146 | LITERAL@[146; 147) | 146 | LITERAL@146..147 |
147 | INT_NUMBER@[146; 147) "1" | 147 | INT_NUMBER@146..147 "1" |
148 | DOT2@[147; 149) ".." | 148 | DOT2@147..149 ".." |
149 | SEMICOLON@[149; 150) ";" | 149 | SEMICOLON@149..150 ";" |
150 | WHITESPACE@[150; 151) "\n" | 150 | WHITESPACE@150..151 "\n" |
151 | R_CURLY@[151; 152) "}" | 151 | R_CURLY@151..152 "}" |
152 | WHITESPACE@[152; 153) "\n" | 152 | WHITESPACE@152..153 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast index 4e583c6e8..953930f6c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast +++ b/crates/ra_syntax/test_data/parser/ok/0030_string_suffixes.rast | |||
@@ -1,64 +1,64 @@ | |||
1 | SOURCE_FILE@[0; 112) | 1 | SOURCE_FILE@0..112 |
2 | FN_DEF@[0; 111) | 2 | FN_DEF@0..111 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 111) | 11 | BLOCK_EXPR@10..111 |
12 | BLOCK@[10; 111) | 12 | BLOCK@10..111 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | LET_STMT@[16; 31) | 15 | LET_STMT@16..31 |
16 | LET_KW@[16; 19) "let" | 16 | LET_KW@16..19 "let" |
17 | WHITESPACE@[19; 20) " " | 17 | WHITESPACE@19..20 " " |
18 | PLACEHOLDER_PAT@[20; 21) | 18 | PLACEHOLDER_PAT@20..21 |
19 | UNDERSCORE@[20; 21) "_" | 19 | UNDERSCORE@20..21 "_" |
20 | WHITESPACE@[21; 22) " " | 20 | WHITESPACE@21..22 " " |
21 | EQ@[22; 23) "=" | 21 | EQ@22..23 "=" |
22 | WHITESPACE@[23; 24) " " | 22 | WHITESPACE@23..24 " " |
23 | LITERAL@[24; 30) | 23 | LITERAL@24..30 |
24 | CHAR@[24; 30) "\'c\'u32" | 24 | CHAR@24..30 "\'c\'u32" |
25 | SEMICOLON@[30; 31) ";" | 25 | SEMICOLON@30..31 ";" |
26 | WHITESPACE@[31; 36) "\n " | 26 | WHITESPACE@31..36 "\n " |
27 | LET_STMT@[36; 60) | 27 | LET_STMT@36..60 |
28 | LET_KW@[36; 39) "let" | 28 | LET_KW@36..39 "let" |
29 | WHITESPACE@[39; 40) " " | 29 | WHITESPACE@39..40 " " |
30 | PLACEHOLDER_PAT@[40; 41) | 30 | PLACEHOLDER_PAT@40..41 |
31 | UNDERSCORE@[40; 41) "_" | 31 | UNDERSCORE@40..41 "_" |
32 | WHITESPACE@[41; 42) " " | 32 | WHITESPACE@41..42 " " |
33 | EQ@[42; 43) "=" | 33 | EQ@42..43 "=" |
34 | WHITESPACE@[43; 44) " " | 34 | WHITESPACE@43..44 " " |
35 | LITERAL@[44; 59) | 35 | LITERAL@44..59 |
36 | STRING@[44; 59) "\"string\"invalid" | 36 | STRING@44..59 "\"string\"invalid" |
37 | SEMICOLON@[59; 60) ";" | 37 | SEMICOLON@59..60 ";" |
38 | WHITESPACE@[60; 65) "\n " | 38 | WHITESPACE@60..65 "\n " |
39 | LET_STMT@[65; 83) | 39 | LET_STMT@65..83 |
40 | LET_KW@[65; 68) "let" | 40 | LET_KW@65..68 "let" |
41 | WHITESPACE@[68; 69) " " | 41 | WHITESPACE@68..69 " " |
42 | PLACEHOLDER_PAT@[69; 70) | 42 | PLACEHOLDER_PAT@69..70 |
43 | UNDERSCORE@[69; 70) "_" | 43 | UNDERSCORE@69..70 "_" |
44 | WHITESPACE@[70; 71) " " | 44 | WHITESPACE@70..71 " " |
45 | EQ@[71; 72) "=" | 45 | EQ@71..72 "=" |
46 | WHITESPACE@[72; 73) " " | 46 | WHITESPACE@72..73 " " |
47 | LITERAL@[73; 82) | 47 | LITERAL@73..82 |
48 | BYTE@[73; 82) "b\'b\'_suff" | 48 | BYTE@73..82 "b\'b\'_suff" |
49 | SEMICOLON@[82; 83) ";" | 49 | SEMICOLON@82..83 ";" |
50 | WHITESPACE@[83; 88) "\n " | 50 | WHITESPACE@83..88 "\n " |
51 | LET_STMT@[88; 109) | 51 | LET_STMT@88..109 |
52 | LET_KW@[88; 91) "let" | 52 | LET_KW@88..91 "let" |
53 | WHITESPACE@[91; 92) " " | 53 | WHITESPACE@91..92 " " |
54 | PLACEHOLDER_PAT@[92; 93) | 54 | PLACEHOLDER_PAT@92..93 |
55 | UNDERSCORE@[92; 93) "_" | 55 | UNDERSCORE@92..93 "_" |
56 | WHITESPACE@[93; 94) " " | 56 | WHITESPACE@93..94 " " |
57 | EQ@[94; 95) "=" | 57 | EQ@94..95 "=" |
58 | WHITESPACE@[95; 96) " " | 58 | WHITESPACE@95..96 " " |
59 | LITERAL@[96; 108) | 59 | LITERAL@96..108 |
60 | BYTE_STRING@[96; 108) "b\"bs\"invalid" | 60 | BYTE_STRING@96..108 "b\"bs\"invalid" |
61 | SEMICOLON@[108; 109) ";" | 61 | SEMICOLON@108..109 ";" |
62 | WHITESPACE@[109; 110) "\n" | 62 | WHITESPACE@109..110 "\n" |
63 | R_CURLY@[110; 111) "}" | 63 | R_CURLY@110..111 "}" |
64 | WHITESPACE@[111; 112) "\n" | 64 | WHITESPACE@111..112 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0030_traits.rast b/crates/ra_syntax/test_data/parser/ok/0030_traits.rast index 4131cd81a..0aadc11a4 100644 --- a/crates/ra_syntax/test_data/parser/ok/0030_traits.rast +++ b/crates/ra_syntax/test_data/parser/ok/0030_traits.rast | |||
@@ -1,61 +1,61 @@ | |||
1 | SOURCE_FILE@[0; 96) | 1 | SOURCE_FILE@0..96 |
2 | TRAIT_DEF@[0; 36) | 2 | TRAIT_DEF@0..36 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 14) | 5 | NAME@6..14 |
6 | IDENT@[6; 14) "Runnable" | 6 | IDENT@6..14 "Runnable" |
7 | WHITESPACE@[14; 15) " " | 7 | WHITESPACE@14..15 " " |
8 | ITEM_LIST@[15; 36) | 8 | ITEM_LIST@15..36 |
9 | L_CURLY@[15; 16) "{" | 9 | L_CURLY@15..16 "{" |
10 | WHITESPACE@[16; 21) "\n " | 10 | WHITESPACE@16..21 "\n " |
11 | FN_DEF@[21; 34) | 11 | FN_DEF@21..34 |
12 | FN_KW@[21; 23) "fn" | 12 | FN_KW@21..23 "fn" |
13 | WHITESPACE@[23; 24) " " | 13 | WHITESPACE@23..24 " " |
14 | NAME@[24; 31) | 14 | NAME@24..31 |
15 | IDENT@[24; 31) "handler" | 15 | IDENT@24..31 "handler" |
16 | PARAM_LIST@[31; 33) | 16 | PARAM_LIST@31..33 |
17 | L_PAREN@[31; 32) "(" | 17 | L_PAREN@31..32 "(" |
18 | R_PAREN@[32; 33) ")" | 18 | R_PAREN@32..33 ")" |
19 | SEMICOLON@[33; 34) ";" | 19 | SEMICOLON@33..34 ";" |
20 | WHITESPACE@[34; 35) "\n" | 20 | WHITESPACE@34..35 "\n" |
21 | R_CURLY@[35; 36) "}" | 21 | R_CURLY@35..36 "}" |
22 | WHITESPACE@[36; 38) "\n\n" | 22 | WHITESPACE@36..38 "\n\n" |
23 | TRAIT_DEF@[38; 95) | 23 | TRAIT_DEF@38..95 |
24 | TRAIT_KW@[38; 43) "trait" | 24 | TRAIT_KW@38..43 "trait" |
25 | WHITESPACE@[43; 44) " " | 25 | WHITESPACE@43..44 " " |
26 | NAME@[44; 57) | 26 | NAME@44..57 |
27 | IDENT@[44; 57) "TraitWithExpr" | 27 | IDENT@44..57 "TraitWithExpr" |
28 | WHITESPACE@[57; 58) " " | 28 | WHITESPACE@57..58 " " |
29 | ITEM_LIST@[58; 95) | 29 | ITEM_LIST@58..95 |
30 | L_CURLY@[58; 59) "{" | 30 | L_CURLY@58..59 "{" |
31 | WHITESPACE@[59; 64) "\n " | 31 | WHITESPACE@59..64 "\n " |
32 | FN_DEF@[64; 93) | 32 | FN_DEF@64..93 |
33 | FN_KW@[64; 66) "fn" | 33 | FN_KW@64..66 "fn" |
34 | WHITESPACE@[66; 67) " " | 34 | WHITESPACE@66..67 " " |
35 | NAME@[67; 79) | 35 | NAME@67..79 |
36 | IDENT@[67; 79) "fn_with_expr" | 36 | IDENT@67..79 "fn_with_expr" |
37 | PARAM_LIST@[79; 92) | 37 | PARAM_LIST@79..92 |
38 | L_PAREN@[79; 80) "(" | 38 | L_PAREN@79..80 "(" |
39 | PARAM@[80; 91) | 39 | PARAM@80..91 |
40 | BIND_PAT@[80; 81) | 40 | BIND_PAT@80..81 |
41 | NAME@[80; 81) | 41 | NAME@80..81 |
42 | IDENT@[80; 81) "x" | 42 | IDENT@80..81 "x" |
43 | COLON@[81; 82) ":" | 43 | COLON@81..82 ":" |
44 | WHITESPACE@[82; 83) " " | 44 | WHITESPACE@82..83 " " |
45 | ARRAY_TYPE@[83; 91) | 45 | ARRAY_TYPE@83..91 |
46 | L_BRACK@[83; 84) "[" | 46 | L_BRACK@83..84 "[" |
47 | PATH_TYPE@[84; 87) | 47 | PATH_TYPE@84..87 |
48 | PATH@[84; 87) | 48 | PATH@84..87 |
49 | PATH_SEGMENT@[84; 87) | 49 | PATH_SEGMENT@84..87 |
50 | NAME_REF@[84; 87) | 50 | NAME_REF@84..87 |
51 | IDENT@[84; 87) "i32" | 51 | IDENT@84..87 "i32" |
52 | SEMICOLON@[87; 88) ";" | 52 | SEMICOLON@87..88 ";" |
53 | WHITESPACE@[88; 89) " " | 53 | WHITESPACE@88..89 " " |
54 | LITERAL@[89; 90) | 54 | LITERAL@89..90 |
55 | INT_NUMBER@[89; 90) "1" | 55 | INT_NUMBER@89..90 "1" |
56 | R_BRACK@[90; 91) "]" | 56 | R_BRACK@90..91 "]" |
57 | R_PAREN@[91; 92) ")" | 57 | R_PAREN@91..92 ")" |
58 | SEMICOLON@[92; 93) ";" | 58 | SEMICOLON@92..93 ";" |
59 | WHITESPACE@[93; 94) "\n" | 59 | WHITESPACE@93..94 "\n" |
60 | R_CURLY@[94; 95) "}" | 60 | R_CURLY@94..95 "}" |
61 | WHITESPACE@[95; 96) "\n" | 61 | WHITESPACE@95..96 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0031_extern.rast b/crates/ra_syntax/test_data/parser/ok/0031_extern.rast index 23757df52..ea285f52f 100644 --- a/crates/ra_syntax/test_data/parser/ok/0031_extern.rast +++ b/crates/ra_syntax/test_data/parser/ok/0031_extern.rast | |||
@@ -1,973 +1,973 @@ | |||
1 | SOURCE_FILE@[0; 1598) | 1 | SOURCE_FILE@0..1598 |
2 | EXTERN_BLOCK@[0; 1597) | 2 | EXTERN_BLOCK@0..1597 |
3 | ABI@[0; 6) | 3 | ABI@0..6 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | EXTERN_ITEM_LIST@[7; 1597) | 6 | EXTERN_ITEM_LIST@7..1597 |
7 | L_CURLY@[7; 8) "{" | 7 | L_CURLY@7..8 "{" |
8 | WHITESPACE@[8; 13) "\n " | 8 | WHITESPACE@8..13 "\n " |
9 | FN_DEF@[13; 87) | 9 | FN_DEF@13..87 |
10 | VISIBILITY@[13; 16) | 10 | VISIBILITY@13..16 |
11 | PUB_KW@[13; 16) "pub" | 11 | PUB_KW@13..16 "pub" |
12 | WHITESPACE@[16; 17) " " | 12 | WHITESPACE@16..17 " " |
13 | FN_KW@[17; 19) "fn" | 13 | FN_KW@17..19 "fn" |
14 | WHITESPACE@[19; 20) " " | 14 | WHITESPACE@19..20 " " |
15 | NAME@[20; 26) | 15 | NAME@20..26 |
16 | IDENT@[20; 26) "socket" | 16 | IDENT@20..26 "socket" |
17 | PARAM_LIST@[26; 75) | 17 | PARAM_LIST@26..75 |
18 | L_PAREN@[26; 27) "(" | 18 | L_PAREN@26..27 "(" |
19 | PARAM@[27; 42) | 19 | PARAM@27..42 |
20 | BIND_PAT@[27; 33) | 20 | BIND_PAT@27..33 |
21 | NAME@[27; 33) | 21 | NAME@27..33 |
22 | IDENT@[27; 33) "domain" | 22 | IDENT@27..33 "domain" |
23 | COLON@[33; 34) ":" | 23 | COLON@33..34 ":" |
24 | WHITESPACE@[34; 35) " " | 24 | WHITESPACE@34..35 " " |
25 | PATH_TYPE@[35; 42) | 25 | PATH_TYPE@35..42 |
26 | PATH@[35; 42) | 26 | PATH@35..42 |
27 | PATH_SEGMENT@[35; 42) | 27 | PATH_SEGMENT@35..42 |
28 | COLON2@[35; 37) "::" | 28 | COLON2@35..37 "::" |
29 | NAME_REF@[37; 42) | 29 | NAME_REF@37..42 |
30 | IDENT@[37; 42) "c_int" | 30 | IDENT@37..42 "c_int" |
31 | COMMA@[42; 43) "," | 31 | COMMA@42..43 "," |
32 | WHITESPACE@[43; 44) " " | 32 | WHITESPACE@43..44 " " |
33 | PARAM@[44; 55) | 33 | PARAM@44..55 |
34 | BIND_PAT@[44; 46) | 34 | BIND_PAT@44..46 |
35 | NAME@[44; 46) | 35 | NAME@44..46 |
36 | IDENT@[44; 46) "ty" | 36 | IDENT@44..46 "ty" |
37 | COLON@[46; 47) ":" | 37 | COLON@46..47 ":" |
38 | WHITESPACE@[47; 48) " " | 38 | WHITESPACE@47..48 " " |
39 | PATH_TYPE@[48; 55) | 39 | PATH_TYPE@48..55 |
40 | PATH@[48; 55) | 40 | PATH@48..55 |
41 | PATH_SEGMENT@[48; 55) | 41 | PATH_SEGMENT@48..55 |
42 | COLON2@[48; 50) "::" | 42 | COLON2@48..50 "::" |
43 | NAME_REF@[50; 55) | 43 | NAME_REF@50..55 |
44 | IDENT@[50; 55) "c_int" | 44 | IDENT@50..55 "c_int" |
45 | COMMA@[55; 56) "," | 45 | COMMA@55..56 "," |
46 | WHITESPACE@[56; 57) " " | 46 | WHITESPACE@56..57 " " |
47 | PARAM@[57; 74) | 47 | PARAM@57..74 |
48 | BIND_PAT@[57; 65) | 48 | BIND_PAT@57..65 |
49 | NAME@[57; 65) | 49 | NAME@57..65 |
50 | IDENT@[57; 65) "protocol" | 50 | IDENT@57..65 "protocol" |
51 | COLON@[65; 66) ":" | 51 | COLON@65..66 ":" |
52 | WHITESPACE@[66; 67) " " | 52 | WHITESPACE@66..67 " " |
53 | PATH_TYPE@[67; 74) | 53 | PATH_TYPE@67..74 |
54 | PATH@[67; 74) | 54 | PATH@67..74 |
55 | PATH_SEGMENT@[67; 74) | 55 | PATH_SEGMENT@67..74 |
56 | COLON2@[67; 69) "::" | 56 | COLON2@67..69 "::" |
57 | NAME_REF@[69; 74) | 57 | NAME_REF@69..74 |
58 | IDENT@[69; 74) "c_int" | 58 | IDENT@69..74 "c_int" |
59 | R_PAREN@[74; 75) ")" | 59 | R_PAREN@74..75 ")" |
60 | WHITESPACE@[75; 76) " " | 60 | WHITESPACE@75..76 " " |
61 | RET_TYPE@[76; 86) | 61 | RET_TYPE@76..86 |
62 | THIN_ARROW@[76; 78) "->" | 62 | THIN_ARROW@76..78 "->" |
63 | WHITESPACE@[78; 79) " " | 63 | WHITESPACE@78..79 " " |
64 | PATH_TYPE@[79; 86) | 64 | PATH_TYPE@79..86 |
65 | PATH@[79; 86) | 65 | PATH@79..86 |
66 | PATH_SEGMENT@[79; 86) | 66 | PATH_SEGMENT@79..86 |
67 | COLON2@[79; 81) "::" | 67 | COLON2@79..81 "::" |
68 | NAME_REF@[81; 86) | 68 | NAME_REF@81..86 |
69 | IDENT@[81; 86) "c_int" | 69 | IDENT@81..86 "c_int" |
70 | SEMICOLON@[86; 87) ";" | 70 | SEMICOLON@86..87 ";" |
71 | WHITESPACE@[87; 92) "\n " | 71 | WHITESPACE@87..92 "\n " |
72 | FN_DEF@[92; 167) | 72 | FN_DEF@92..167 |
73 | VISIBILITY@[92; 95) | 73 | VISIBILITY@92..95 |
74 | PUB_KW@[92; 95) "pub" | 74 | PUB_KW@92..95 "pub" |
75 | WHITESPACE@[95; 96) " " | 75 | WHITESPACE@95..96 " " |
76 | FN_KW@[96; 98) "fn" | 76 | FN_KW@96..98 "fn" |
77 | WHITESPACE@[98; 99) " " | 77 | WHITESPACE@98..99 " " |
78 | NAME@[99; 103) | 78 | NAME@99..103 |
79 | IDENT@[99; 103) "bind" | 79 | IDENT@99..103 "bind" |
80 | PARAM_LIST@[103; 155) | 80 | PARAM_LIST@103..155 |
81 | L_PAREN@[103; 104) "(" | 81 | L_PAREN@103..104 "(" |
82 | PARAM@[104; 115) | 82 | PARAM@104..115 |
83 | BIND_PAT@[104; 106) | 83 | BIND_PAT@104..106 |
84 | NAME@[104; 106) | 84 | NAME@104..106 |
85 | IDENT@[104; 106) "fd" | 85 | IDENT@104..106 "fd" |
86 | COLON@[106; 107) ":" | 86 | COLON@106..107 ":" |
87 | WHITESPACE@[107; 108) " " | 87 | WHITESPACE@107..108 " " |
88 | PATH_TYPE@[108; 115) | 88 | PATH_TYPE@108..115 |
89 | PATH@[108; 115) | 89 | PATH@108..115 |
90 | PATH_SEGMENT@[108; 115) | 90 | PATH_SEGMENT@108..115 |
91 | COLON2@[108; 110) "::" | 91 | COLON2@108..110 "::" |
92 | NAME_REF@[110; 115) | 92 | NAME_REF@110..115 |
93 | IDENT@[110; 115) "c_int" | 93 | IDENT@110..115 "c_int" |
94 | COMMA@[115; 116) "," | 94 | COMMA@115..116 "," |
95 | WHITESPACE@[116; 117) " " | 95 | WHITESPACE@116..117 " " |
96 | PARAM@[117; 138) | 96 | PARAM@117..138 |
97 | BIND_PAT@[117; 121) | 97 | BIND_PAT@117..121 |
98 | NAME@[117; 121) | 98 | NAME@117..121 |
99 | IDENT@[117; 121) "addr" | 99 | IDENT@117..121 "addr" |
100 | COLON@[121; 122) ":" | 100 | COLON@121..122 ":" |
101 | WHITESPACE@[122; 123) " " | 101 | WHITESPACE@122..123 " " |
102 | POINTER_TYPE@[123; 138) | 102 | POINTER_TYPE@123..138 |
103 | STAR@[123; 124) "*" | 103 | STAR@123..124 "*" |
104 | CONST_KW@[124; 129) "const" | 104 | CONST_KW@124..129 "const" |
105 | WHITESPACE@[129; 130) " " | 105 | WHITESPACE@129..130 " " |
106 | PATH_TYPE@[130; 138) | 106 | PATH_TYPE@130..138 |
107 | PATH@[130; 138) | 107 | PATH@130..138 |
108 | PATH_SEGMENT@[130; 138) | 108 | PATH_SEGMENT@130..138 |
109 | NAME_REF@[130; 138) | 109 | NAME_REF@130..138 |
110 | IDENT@[130; 138) "sockaddr" | 110 | IDENT@130..138 "sockaddr" |
111 | COMMA@[138; 139) "," | 111 | COMMA@138..139 "," |
112 | WHITESPACE@[139; 140) " " | 112 | WHITESPACE@139..140 " " |
113 | PARAM@[140; 154) | 113 | PARAM@140..154 |
114 | BIND_PAT@[140; 143) | 114 | BIND_PAT@140..143 |
115 | NAME@[140; 143) | 115 | NAME@140..143 |
116 | IDENT@[140; 143) "len" | 116 | IDENT@140..143 "len" |
117 | COLON@[143; 144) ":" | 117 | COLON@143..144 ":" |
118 | WHITESPACE@[144; 145) " " | 118 | WHITESPACE@144..145 " " |
119 | PATH_TYPE@[145; 154) | 119 | PATH_TYPE@145..154 |
120 | PATH@[145; 154) | 120 | PATH@145..154 |
121 | PATH_SEGMENT@[145; 154) | 121 | PATH_SEGMENT@145..154 |
122 | NAME_REF@[145; 154) | 122 | NAME_REF@145..154 |
123 | IDENT@[145; 154) "socklen_t" | 123 | IDENT@145..154 "socklen_t" |
124 | R_PAREN@[154; 155) ")" | 124 | R_PAREN@154..155 ")" |
125 | WHITESPACE@[155; 156) " " | 125 | WHITESPACE@155..156 " " |
126 | RET_TYPE@[156; 166) | 126 | RET_TYPE@156..166 |
127 | THIN_ARROW@[156; 158) "->" | 127 | THIN_ARROW@156..158 "->" |
128 | WHITESPACE@[158; 159) " " | 128 | WHITESPACE@158..159 " " |
129 | PATH_TYPE@[159; 166) | 129 | PATH_TYPE@159..166 |
130 | PATH@[159; 166) | 130 | PATH@159..166 |
131 | PATH_SEGMENT@[159; 166) | 131 | PATH_SEGMENT@159..166 |
132 | COLON2@[159; 161) "::" | 132 | COLON2@159..161 "::" |
133 | NAME_REF@[161; 166) | 133 | NAME_REF@161..166 |
134 | IDENT@[161; 166) "c_int" | 134 | IDENT@161..166 "c_int" |
135 | SEMICOLON@[166; 167) ";" | 135 | SEMICOLON@166..167 ";" |
136 | WHITESPACE@[167; 172) "\n " | 136 | WHITESPACE@167..172 "\n " |
137 | FN_DEF@[172; 276) | 137 | FN_DEF@172..276 |
138 | VISIBILITY@[172; 175) | 138 | VISIBILITY@172..175 |
139 | PUB_KW@[172; 175) "pub" | 139 | PUB_KW@172..175 "pub" |
140 | WHITESPACE@[175; 176) " " | 140 | WHITESPACE@175..176 " " |
141 | FN_KW@[176; 178) "fn" | 141 | FN_KW@176..178 "fn" |
142 | WHITESPACE@[178; 179) " " | 142 | WHITESPACE@178..179 " " |
143 | NAME@[179; 186) | 143 | NAME@179..186 |
144 | IDENT@[179; 186) "connect" | 144 | IDENT@179..186 "connect" |
145 | PARAM_LIST@[186; 264) | 145 | PARAM_LIST@186..264 |
146 | L_PAREN@[186; 187) "(" | 146 | L_PAREN@186..187 "(" |
147 | PARAM@[187; 202) | 147 | PARAM@187..202 |
148 | BIND_PAT@[187; 193) | 148 | BIND_PAT@187..193 |
149 | NAME@[187; 193) | 149 | NAME@187..193 |
150 | IDENT@[187; 193) "socket" | 150 | IDENT@187..193 "socket" |
151 | COLON@[193; 194) ":" | 151 | COLON@193..194 ":" |
152 | WHITESPACE@[194; 195) " " | 152 | WHITESPACE@194..195 " " |
153 | PATH_TYPE@[195; 202) | 153 | PATH_TYPE@195..202 |
154 | PATH@[195; 202) | 154 | PATH@195..202 |
155 | PATH_SEGMENT@[195; 202) | 155 | PATH_SEGMENT@195..202 |
156 | COLON2@[195; 197) "::" | 156 | COLON2@195..197 "::" |
157 | NAME_REF@[197; 202) | 157 | NAME_REF@197..202 |
158 | IDENT@[197; 202) "c_int" | 158 | IDENT@197..202 "c_int" |
159 | COMMA@[202; 203) "," | 159 | COMMA@202..203 "," |
160 | WHITESPACE@[203; 204) " " | 160 | WHITESPACE@203..204 " " |
161 | PARAM@[204; 228) | 161 | PARAM@204..228 |
162 | BIND_PAT@[204; 211) | 162 | BIND_PAT@204..211 |
163 | NAME@[204; 211) | 163 | NAME@204..211 |
164 | IDENT@[204; 211) "address" | 164 | IDENT@204..211 "address" |
165 | COLON@[211; 212) ":" | 165 | COLON@211..212 ":" |
166 | WHITESPACE@[212; 213) " " | 166 | WHITESPACE@212..213 " " |
167 | POINTER_TYPE@[213; 228) | 167 | POINTER_TYPE@213..228 |
168 | STAR@[213; 214) "*" | 168 | STAR@213..214 "*" |
169 | CONST_KW@[214; 219) "const" | 169 | CONST_KW@214..219 "const" |
170 | WHITESPACE@[219; 220) " " | 170 | WHITESPACE@219..220 " " |
171 | PATH_TYPE@[220; 228) | 171 | PATH_TYPE@220..228 |
172 | PATH@[220; 228) | 172 | PATH@220..228 |
173 | PATH_SEGMENT@[220; 228) | 173 | PATH_SEGMENT@220..228 |
174 | NAME_REF@[220; 228) | 174 | NAME_REF@220..228 |
175 | IDENT@[220; 228) "sockaddr" | 175 | IDENT@220..228 "sockaddr" |
176 | COMMA@[228; 229) "," | 176 | COMMA@228..229 "," |
177 | WHITESPACE@[229; 249) "\n " | 177 | WHITESPACE@229..249 "\n " |
178 | PARAM@[249; 263) | 178 | PARAM@249..263 |
179 | BIND_PAT@[249; 252) | 179 | BIND_PAT@249..252 |
180 | NAME@[249; 252) | 180 | NAME@249..252 |
181 | IDENT@[249; 252) "len" | 181 | IDENT@249..252 "len" |
182 | COLON@[252; 253) ":" | 182 | COLON@252..253 ":" |
183 | WHITESPACE@[253; 254) " " | 183 | WHITESPACE@253..254 " " |
184 | PATH_TYPE@[254; 263) | 184 | PATH_TYPE@254..263 |
185 | PATH@[254; 263) | 185 | PATH@254..263 |
186 | PATH_SEGMENT@[254; 263) | 186 | PATH_SEGMENT@254..263 |
187 | NAME_REF@[254; 263) | 187 | NAME_REF@254..263 |
188 | IDENT@[254; 263) "socklen_t" | 188 | IDENT@254..263 "socklen_t" |
189 | R_PAREN@[263; 264) ")" | 189 | R_PAREN@263..264 ")" |
190 | WHITESPACE@[264; 265) " " | 190 | WHITESPACE@264..265 " " |
191 | RET_TYPE@[265; 275) | 191 | RET_TYPE@265..275 |
192 | THIN_ARROW@[265; 267) "->" | 192 | THIN_ARROW@265..267 "->" |
193 | WHITESPACE@[267; 268) " " | 193 | WHITESPACE@267..268 " " |
194 | PATH_TYPE@[268; 275) | 194 | PATH_TYPE@268..275 |
195 | PATH@[268; 275) | 195 | PATH@268..275 |
196 | PATH_SEGMENT@[268; 275) | 196 | PATH_SEGMENT@268..275 |
197 | COLON2@[268; 270) "::" | 197 | COLON2@268..270 "::" |
198 | NAME_REF@[270; 275) | 198 | NAME_REF@270..275 |
199 | IDENT@[270; 275) "c_int" | 199 | IDENT@270..275 "c_int" |
200 | SEMICOLON@[275; 276) ";" | 200 | SEMICOLON@275..276 ";" |
201 | WHITESPACE@[276; 281) "\n " | 201 | WHITESPACE@276..281 "\n " |
202 | FN_DEF@[281; 341) | 202 | FN_DEF@281..341 |
203 | VISIBILITY@[281; 284) | 203 | VISIBILITY@281..284 |
204 | PUB_KW@[281; 284) "pub" | 204 | PUB_KW@281..284 "pub" |
205 | WHITESPACE@[284; 285) " " | 205 | WHITESPACE@284..285 " " |
206 | FN_KW@[285; 287) "fn" | 206 | FN_KW@285..287 "fn" |
207 | WHITESPACE@[287; 288) " " | 207 | WHITESPACE@287..288 " " |
208 | NAME@[288; 294) | 208 | NAME@288..294 |
209 | IDENT@[288; 294) "listen" | 209 | IDENT@288..294 "listen" |
210 | PARAM_LIST@[294; 329) | 210 | PARAM_LIST@294..329 |
211 | L_PAREN@[294; 295) "(" | 211 | L_PAREN@294..295 "(" |
212 | PARAM@[295; 310) | 212 | PARAM@295..310 |
213 | BIND_PAT@[295; 301) | 213 | BIND_PAT@295..301 |
214 | NAME@[295; 301) | 214 | NAME@295..301 |
215 | IDENT@[295; 301) "socket" | 215 | IDENT@295..301 "socket" |
216 | COLON@[301; 302) ":" | 216 | COLON@301..302 ":" |
217 | WHITESPACE@[302; 303) " " | 217 | WHITESPACE@302..303 " " |
218 | PATH_TYPE@[303; 310) | 218 | PATH_TYPE@303..310 |
219 | PATH@[303; 310) | 219 | PATH@303..310 |
220 | PATH_SEGMENT@[303; 310) | 220 | PATH_SEGMENT@303..310 |
221 | COLON2@[303; 305) "::" | 221 | COLON2@303..305 "::" |
222 | NAME_REF@[305; 310) | 222 | NAME_REF@305..310 |
223 | IDENT@[305; 310) "c_int" | 223 | IDENT@305..310 "c_int" |
224 | COMMA@[310; 311) "," | 224 | COMMA@310..311 "," |
225 | WHITESPACE@[311; 312) " " | 225 | WHITESPACE@311..312 " " |
226 | PARAM@[312; 328) | 226 | PARAM@312..328 |
227 | BIND_PAT@[312; 319) | 227 | BIND_PAT@312..319 |
228 | NAME@[312; 319) | 228 | NAME@312..319 |
229 | IDENT@[312; 319) "backlog" | 229 | IDENT@312..319 "backlog" |
230 | COLON@[319; 320) ":" | 230 | COLON@319..320 ":" |
231 | WHITESPACE@[320; 321) " " | 231 | WHITESPACE@320..321 " " |
232 | PATH_TYPE@[321; 328) | 232 | PATH_TYPE@321..328 |
233 | PATH@[321; 328) | 233 | PATH@321..328 |
234 | PATH_SEGMENT@[321; 328) | 234 | PATH_SEGMENT@321..328 |
235 | COLON2@[321; 323) "::" | 235 | COLON2@321..323 "::" |
236 | NAME_REF@[323; 328) | 236 | NAME_REF@323..328 |
237 | IDENT@[323; 328) "c_int" | 237 | IDENT@323..328 "c_int" |
238 | R_PAREN@[328; 329) ")" | 238 | R_PAREN@328..329 ")" |
239 | WHITESPACE@[329; 330) " " | 239 | WHITESPACE@329..330 " " |
240 | RET_TYPE@[330; 340) | 240 | RET_TYPE@330..340 |
241 | THIN_ARROW@[330; 332) "->" | 241 | THIN_ARROW@330..332 "->" |
242 | WHITESPACE@[332; 333) " " | 242 | WHITESPACE@332..333 " " |
243 | PATH_TYPE@[333; 340) | 243 | PATH_TYPE@333..340 |
244 | PATH@[333; 340) | 244 | PATH@333..340 |
245 | PATH_SEGMENT@[333; 340) | 245 | PATH_SEGMENT@333..340 |
246 | COLON2@[333; 335) "::" | 246 | COLON2@333..335 "::" |
247 | NAME_REF@[335; 340) | 247 | NAME_REF@335..340 |
248 | IDENT@[335; 340) "c_int" | 248 | IDENT@335..340 "c_int" |
249 | SEMICOLON@[340; 341) ";" | 249 | SEMICOLON@340..341 ";" |
250 | WHITESPACE@[341; 346) "\n " | 250 | WHITESPACE@341..346 "\n " |
251 | FN_DEF@[346; 469) | 251 | FN_DEF@346..469 |
252 | VISIBILITY@[346; 349) | 252 | VISIBILITY@346..349 |
253 | PUB_KW@[346; 349) "pub" | 253 | PUB_KW@346..349 "pub" |
254 | WHITESPACE@[349; 350) " " | 254 | WHITESPACE@349..350 " " |
255 | FN_KW@[350; 352) "fn" | 255 | FN_KW@350..352 "fn" |
256 | WHITESPACE@[352; 353) " " | 256 | WHITESPACE@352..353 " " |
257 | NAME@[353; 364) | 257 | NAME@353..364 |
258 | IDENT@[353; 364) "getsockname" | 258 | IDENT@353..364 "getsockname" |
259 | PARAM_LIST@[364; 457) | 259 | PARAM_LIST@364..457 |
260 | L_PAREN@[364; 365) "(" | 260 | L_PAREN@364..365 "(" |
261 | PARAM@[365; 380) | 261 | PARAM@365..380 |
262 | BIND_PAT@[365; 371) | 262 | BIND_PAT@365..371 |
263 | NAME@[365; 371) | 263 | NAME@365..371 |
264 | IDENT@[365; 371) "socket" | 264 | IDENT@365..371 "socket" |
265 | COLON@[371; 372) ":" | 265 | COLON@371..372 ":" |
266 | WHITESPACE@[372; 373) " " | 266 | WHITESPACE@372..373 " " |
267 | PATH_TYPE@[373; 380) | 267 | PATH_TYPE@373..380 |
268 | PATH@[373; 380) | 268 | PATH@373..380 |
269 | PATH_SEGMENT@[373; 380) | 269 | PATH_SEGMENT@373..380 |
270 | COLON2@[373; 375) "::" | 270 | COLON2@373..375 "::" |
271 | NAME_REF@[375; 380) | 271 | NAME_REF@375..380 |
272 | IDENT@[375; 380) "c_int" | 272 | IDENT@375..380 "c_int" |
273 | COMMA@[380; 381) "," | 273 | COMMA@380..381 "," |
274 | WHITESPACE@[381; 382) " " | 274 | WHITESPACE@381..382 " " |
275 | PARAM@[382; 404) | 275 | PARAM@382..404 |
276 | BIND_PAT@[382; 389) | 276 | BIND_PAT@382..389 |
277 | NAME@[382; 389) | 277 | NAME@382..389 |
278 | IDENT@[382; 389) "address" | 278 | IDENT@382..389 "address" |
279 | COLON@[389; 390) ":" | 279 | COLON@389..390 ":" |
280 | WHITESPACE@[390; 391) " " | 280 | WHITESPACE@390..391 " " |
281 | POINTER_TYPE@[391; 404) | 281 | POINTER_TYPE@391..404 |
282 | STAR@[391; 392) "*" | 282 | STAR@391..392 "*" |
283 | MUT_KW@[392; 395) "mut" | 283 | MUT_KW@392..395 "mut" |
284 | WHITESPACE@[395; 396) " " | 284 | WHITESPACE@395..396 " " |
285 | PATH_TYPE@[396; 404) | 285 | PATH_TYPE@396..404 |
286 | PATH@[396; 404) | 286 | PATH@396..404 |
287 | PATH_SEGMENT@[396; 404) | 287 | PATH_SEGMENT@396..404 |
288 | NAME_REF@[396; 404) | 288 | NAME_REF@396..404 |
289 | IDENT@[396; 404) "sockaddr" | 289 | IDENT@396..404 "sockaddr" |
290 | COMMA@[404; 405) "," | 290 | COMMA@404..405 "," |
291 | WHITESPACE@[405; 429) "\n " | 291 | WHITESPACE@405..429 "\n " |
292 | PARAM@[429; 456) | 292 | PARAM@429..456 |
293 | BIND_PAT@[429; 440) | 293 | BIND_PAT@429..440 |
294 | NAME@[429; 440) | 294 | NAME@429..440 |
295 | IDENT@[429; 440) "address_len" | 295 | IDENT@429..440 "address_len" |
296 | COLON@[440; 441) ":" | 296 | COLON@440..441 ":" |
297 | WHITESPACE@[441; 442) " " | 297 | WHITESPACE@441..442 " " |
298 | POINTER_TYPE@[442; 456) | 298 | POINTER_TYPE@442..456 |
299 | STAR@[442; 443) "*" | 299 | STAR@442..443 "*" |
300 | MUT_KW@[443; 446) "mut" | 300 | MUT_KW@443..446 "mut" |
301 | WHITESPACE@[446; 447) " " | 301 | WHITESPACE@446..447 " " |
302 | PATH_TYPE@[447; 456) | 302 | PATH_TYPE@447..456 |
303 | PATH@[447; 456) | 303 | PATH@447..456 |
304 | PATH_SEGMENT@[447; 456) | 304 | PATH_SEGMENT@447..456 |
305 | NAME_REF@[447; 456) | 305 | NAME_REF@447..456 |
306 | IDENT@[447; 456) "socklen_t" | 306 | IDENT@447..456 "socklen_t" |
307 | R_PAREN@[456; 457) ")" | 307 | R_PAREN@456..457 ")" |
308 | WHITESPACE@[457; 458) " " | 308 | WHITESPACE@457..458 " " |
309 | RET_TYPE@[458; 468) | 309 | RET_TYPE@458..468 |
310 | THIN_ARROW@[458; 460) "->" | 310 | THIN_ARROW@458..460 "->" |
311 | WHITESPACE@[460; 461) " " | 311 | WHITESPACE@460..461 " " |
312 | PATH_TYPE@[461; 468) | 312 | PATH_TYPE@461..468 |
313 | PATH@[461; 468) | 313 | PATH@461..468 |
314 | PATH_SEGMENT@[461; 468) | 314 | PATH_SEGMENT@461..468 |
315 | COLON2@[461; 463) "::" | 315 | COLON2@461..463 "::" |
316 | NAME_REF@[463; 468) | 316 | NAME_REF@463..468 |
317 | IDENT@[463; 468) "c_int" | 317 | IDENT@463..468 "c_int" |
318 | SEMICOLON@[468; 469) ";" | 318 | SEMICOLON@468..469 ";" |
319 | WHITESPACE@[469; 474) "\n " | 319 | WHITESPACE@469..474 "\n " |
320 | FN_DEF@[474; 691) | 320 | FN_DEF@474..691 |
321 | VISIBILITY@[474; 477) | 321 | VISIBILITY@474..477 |
322 | PUB_KW@[474; 477) "pub" | 322 | PUB_KW@474..477 "pub" |
323 | WHITESPACE@[477; 478) " " | 323 | WHITESPACE@477..478 " " |
324 | FN_KW@[478; 480) "fn" | 324 | FN_KW@478..480 "fn" |
325 | WHITESPACE@[480; 481) " " | 325 | WHITESPACE@480..481 " " |
326 | NAME@[481; 491) | 326 | NAME@481..491 |
327 | IDENT@[481; 491) "getsockopt" | 327 | IDENT@481..491 "getsockopt" |
328 | PARAM_LIST@[491; 679) | 328 | PARAM_LIST@491..679 |
329 | L_PAREN@[491; 492) "(" | 329 | L_PAREN@491..492 "(" |
330 | PARAM@[492; 507) | 330 | PARAM@492..507 |
331 | BIND_PAT@[492; 498) | 331 | BIND_PAT@492..498 |
332 | NAME@[492; 498) | 332 | NAME@492..498 |
333 | IDENT@[492; 498) "sockfd" | 333 | IDENT@492..498 "sockfd" |
334 | COLON@[498; 499) ":" | 334 | COLON@498..499 ":" |
335 | WHITESPACE@[499; 500) " " | 335 | WHITESPACE@499..500 " " |
336 | PATH_TYPE@[500; 507) | 336 | PATH_TYPE@500..507 |
337 | PATH@[500; 507) | 337 | PATH@500..507 |
338 | PATH_SEGMENT@[500; 507) | 338 | PATH_SEGMENT@500..507 |
339 | COLON2@[500; 502) "::" | 339 | COLON2@500..502 "::" |
340 | NAME_REF@[502; 507) | 340 | NAME_REF@502..507 |
341 | IDENT@[502; 507) "c_int" | 341 | IDENT@502..507 "c_int" |
342 | COMMA@[507; 508) "," | 342 | COMMA@507..508 "," |
343 | WHITESPACE@[508; 531) "\n " | 343 | WHITESPACE@508..531 "\n " |
344 | PARAM@[531; 545) | 344 | PARAM@531..545 |
345 | BIND_PAT@[531; 536) | 345 | BIND_PAT@531..536 |
346 | NAME@[531; 536) | 346 | NAME@531..536 |
347 | IDENT@[531; 536) "level" | 347 | IDENT@531..536 "level" |
348 | COLON@[536; 537) ":" | 348 | COLON@536..537 ":" |
349 | WHITESPACE@[537; 538) " " | 349 | WHITESPACE@537..538 " " |
350 | PATH_TYPE@[538; 545) | 350 | PATH_TYPE@538..545 |
351 | PATH@[538; 545) | 351 | PATH@538..545 |
352 | PATH_SEGMENT@[538; 545) | 352 | PATH_SEGMENT@538..545 |
353 | COLON2@[538; 540) "::" | 353 | COLON2@538..540 "::" |
354 | NAME_REF@[540; 545) | 354 | NAME_REF@540..545 |
355 | IDENT@[540; 545) "c_int" | 355 | IDENT@540..545 "c_int" |
356 | COMMA@[545; 546) "," | 356 | COMMA@545..546 "," |
357 | WHITESPACE@[546; 569) "\n " | 357 | WHITESPACE@546..569 "\n " |
358 | PARAM@[569; 585) | 358 | PARAM@569..585 |
359 | BIND_PAT@[569; 576) | 359 | BIND_PAT@569..576 |
360 | NAME@[569; 576) | 360 | NAME@569..576 |
361 | IDENT@[569; 576) "optname" | 361 | IDENT@569..576 "optname" |
362 | COLON@[576; 577) ":" | 362 | COLON@576..577 ":" |
363 | WHITESPACE@[577; 578) " " | 363 | WHITESPACE@577..578 " " |
364 | PATH_TYPE@[578; 585) | 364 | PATH_TYPE@578..585 |
365 | PATH@[578; 585) | 365 | PATH@578..585 |
366 | PATH_SEGMENT@[578; 585) | 366 | PATH_SEGMENT@578..585 |
367 | COLON2@[578; 580) "::" | 367 | COLON2@578..580 "::" |
368 | NAME_REF@[580; 585) | 368 | NAME_REF@580..585 |
369 | IDENT@[580; 585) "c_int" | 369 | IDENT@580..585 "c_int" |
370 | COMMA@[585; 586) "," | 370 | COMMA@585..586 "," |
371 | WHITESPACE@[586; 609) "\n " | 371 | WHITESPACE@586..609 "\n " |
372 | PARAM@[609; 630) | 372 | PARAM@609..630 |
373 | BIND_PAT@[609; 615) | 373 | BIND_PAT@609..615 |
374 | NAME@[609; 615) | 374 | NAME@609..615 |
375 | IDENT@[609; 615) "optval" | 375 | IDENT@609..615 "optval" |
376 | COLON@[615; 616) ":" | 376 | COLON@615..616 ":" |
377 | WHITESPACE@[616; 617) " " | 377 | WHITESPACE@616..617 " " |
378 | POINTER_TYPE@[617; 630) | 378 | POINTER_TYPE@617..630 |
379 | STAR@[617; 618) "*" | 379 | STAR@617..618 "*" |
380 | MUT_KW@[618; 621) "mut" | 380 | MUT_KW@618..621 "mut" |
381 | WHITESPACE@[621; 622) " " | 381 | WHITESPACE@621..622 " " |
382 | PATH_TYPE@[622; 630) | 382 | PATH_TYPE@622..630 |
383 | PATH@[622; 630) | 383 | PATH@622..630 |
384 | PATH_SEGMENT@[622; 630) | 384 | PATH_SEGMENT@622..630 |
385 | COLON2@[622; 624) "::" | 385 | COLON2@622..624 "::" |
386 | NAME_REF@[624; 630) | 386 | NAME_REF@624..630 |
387 | IDENT@[624; 630) "c_void" | 387 | IDENT@624..630 "c_void" |
388 | COMMA@[630; 631) "," | 388 | COMMA@630..631 "," |
389 | WHITESPACE@[631; 654) "\n " | 389 | WHITESPACE@631..654 "\n " |
390 | PARAM@[654; 678) | 390 | PARAM@654..678 |
391 | BIND_PAT@[654; 660) | 391 | BIND_PAT@654..660 |
392 | NAME@[654; 660) | 392 | NAME@654..660 |
393 | IDENT@[654; 660) "optlen" | 393 | IDENT@654..660 "optlen" |
394 | COLON@[660; 661) ":" | 394 | COLON@660..661 ":" |
395 | WHITESPACE@[661; 662) " " | 395 | WHITESPACE@661..662 " " |
396 | POINTER_TYPE@[662; 678) | 396 | POINTER_TYPE@662..678 |
397 | STAR@[662; 663) "*" | 397 | STAR@662..663 "*" |
398 | MUT_KW@[663; 666) "mut" | 398 | MUT_KW@663..666 "mut" |
399 | WHITESPACE@[666; 667) " " | 399 | WHITESPACE@666..667 " " |
400 | PATH_TYPE@[667; 678) | 400 | PATH_TYPE@667..678 |
401 | PATH@[667; 678) | 401 | PATH@667..678 |
402 | PATH_SEGMENT@[667; 678) | 402 | PATH_SEGMENT@667..678 |
403 | COLON2@[667; 669) "::" | 403 | COLON2@667..669 "::" |
404 | NAME_REF@[669; 678) | 404 | NAME_REF@669..678 |
405 | IDENT@[669; 678) "socklen_t" | 405 | IDENT@669..678 "socklen_t" |
406 | R_PAREN@[678; 679) ")" | 406 | R_PAREN@678..679 ")" |
407 | WHITESPACE@[679; 680) " " | 407 | WHITESPACE@679..680 " " |
408 | RET_TYPE@[680; 690) | 408 | RET_TYPE@680..690 |
409 | THIN_ARROW@[680; 682) "->" | 409 | THIN_ARROW@680..682 "->" |
410 | WHITESPACE@[682; 683) " " | 410 | WHITESPACE@682..683 " " |
411 | PATH_TYPE@[683; 690) | 411 | PATH_TYPE@683..690 |
412 | PATH@[683; 690) | 412 | PATH@683..690 |
413 | PATH_SEGMENT@[683; 690) | 413 | PATH_SEGMENT@683..690 |
414 | COLON2@[683; 685) "::" | 414 | COLON2@683..685 "::" |
415 | NAME_REF@[685; 690) | 415 | NAME_REF@685..690 |
416 | IDENT@[685; 690) "c_int" | 416 | IDENT@685..690 "c_int" |
417 | SEMICOLON@[690; 691) ";" | 417 | SEMICOLON@690..691 ";" |
418 | WHITESPACE@[691; 696) "\n " | 418 | WHITESPACE@691..696 "\n " |
419 | FN_DEF@[696; 864) | 419 | FN_DEF@696..864 |
420 | VISIBILITY@[696; 699) | 420 | VISIBILITY@696..699 |
421 | PUB_KW@[696; 699) "pub" | 421 | PUB_KW@696..699 "pub" |
422 | WHITESPACE@[699; 700) " " | 422 | WHITESPACE@699..700 " " |
423 | FN_KW@[700; 702) "fn" | 423 | FN_KW@700..702 "fn" |
424 | WHITESPACE@[702; 703) " " | 424 | WHITESPACE@702..703 " " |
425 | NAME@[703; 713) | 425 | NAME@703..713 |
426 | IDENT@[703; 713) "setsockopt" | 426 | IDENT@703..713 "setsockopt" |
427 | PARAM_LIST@[713; 852) | 427 | PARAM_LIST@713..852 |
428 | L_PAREN@[713; 714) "(" | 428 | L_PAREN@713..714 "(" |
429 | PARAM@[714; 729) | 429 | PARAM@714..729 |
430 | BIND_PAT@[714; 720) | 430 | BIND_PAT@714..720 |
431 | NAME@[714; 720) | 431 | NAME@714..720 |
432 | IDENT@[714; 720) "socket" | 432 | IDENT@714..720 "socket" |
433 | COLON@[720; 721) ":" | 433 | COLON@720..721 ":" |
434 | WHITESPACE@[721; 722) " " | 434 | WHITESPACE@721..722 " " |
435 | PATH_TYPE@[722; 729) | 435 | PATH_TYPE@722..729 |
436 | PATH@[722; 729) | 436 | PATH@722..729 |
437 | PATH_SEGMENT@[722; 729) | 437 | PATH_SEGMENT@722..729 |
438 | COLON2@[722; 724) "::" | 438 | COLON2@722..724 "::" |
439 | NAME_REF@[724; 729) | 439 | NAME_REF@724..729 |
440 | IDENT@[724; 729) "c_int" | 440 | IDENT@724..729 "c_int" |
441 | COMMA@[729; 730) "," | 441 | COMMA@729..730 "," |
442 | WHITESPACE@[730; 731) " " | 442 | WHITESPACE@730..731 " " |
443 | PARAM@[731; 745) | 443 | PARAM@731..745 |
444 | BIND_PAT@[731; 736) | 444 | BIND_PAT@731..736 |
445 | NAME@[731; 736) | 445 | NAME@731..736 |
446 | IDENT@[731; 736) "level" | 446 | IDENT@731..736 "level" |
447 | COLON@[736; 737) ":" | 447 | COLON@736..737 ":" |
448 | WHITESPACE@[737; 738) " " | 448 | WHITESPACE@737..738 " " |
449 | PATH_TYPE@[738; 745) | 449 | PATH_TYPE@738..745 |
450 | PATH@[738; 745) | 450 | PATH@738..745 |
451 | PATH_SEGMENT@[738; 745) | 451 | PATH_SEGMENT@738..745 |
452 | COLON2@[738; 740) "::" | 452 | COLON2@738..740 "::" |
453 | NAME_REF@[740; 745) | 453 | NAME_REF@740..745 |
454 | IDENT@[740; 745) "c_int" | 454 | IDENT@740..745 "c_int" |
455 | COMMA@[745; 746) "," | 455 | COMMA@745..746 "," |
456 | WHITESPACE@[746; 747) " " | 456 | WHITESPACE@746..747 " " |
457 | PARAM@[747; 760) | 457 | PARAM@747..760 |
458 | BIND_PAT@[747; 751) | 458 | BIND_PAT@747..751 |
459 | NAME@[747; 751) | 459 | NAME@747..751 |
460 | IDENT@[747; 751) "name" | 460 | IDENT@747..751 "name" |
461 | COLON@[751; 752) ":" | 461 | COLON@751..752 ":" |
462 | WHITESPACE@[752; 753) " " | 462 | WHITESPACE@752..753 " " |
463 | PATH_TYPE@[753; 760) | 463 | PATH_TYPE@753..760 |
464 | PATH@[753; 760) | 464 | PATH@753..760 |
465 | PATH_SEGMENT@[753; 760) | 465 | PATH_SEGMENT@753..760 |
466 | COLON2@[753; 755) "::" | 466 | COLON2@753..755 "::" |
467 | NAME_REF@[755; 760) | 467 | NAME_REF@755..760 |
468 | IDENT@[755; 760) "c_int" | 468 | IDENT@755..760 "c_int" |
469 | COMMA@[760; 761) "," | 469 | COMMA@760..761 "," |
470 | WHITESPACE@[761; 784) "\n " | 470 | WHITESPACE@761..784 "\n " |
471 | PARAM@[784; 806) | 471 | PARAM@784..806 |
472 | BIND_PAT@[784; 789) | 472 | BIND_PAT@784..789 |
473 | NAME@[784; 789) | 473 | NAME@784..789 |
474 | IDENT@[784; 789) "value" | 474 | IDENT@784..789 "value" |
475 | COLON@[789; 790) ":" | 475 | COLON@789..790 ":" |
476 | WHITESPACE@[790; 791) " " | 476 | WHITESPACE@790..791 " " |
477 | POINTER_TYPE@[791; 806) | 477 | POINTER_TYPE@791..806 |
478 | STAR@[791; 792) "*" | 478 | STAR@791..792 "*" |
479 | CONST_KW@[792; 797) "const" | 479 | CONST_KW@792..797 "const" |
480 | WHITESPACE@[797; 798) " " | 480 | WHITESPACE@797..798 " " |
481 | PATH_TYPE@[798; 806) | 481 | PATH_TYPE@798..806 |
482 | PATH@[798; 806) | 482 | PATH@798..806 |
483 | PATH_SEGMENT@[798; 806) | 483 | PATH_SEGMENT@798..806 |
484 | COLON2@[798; 800) "::" | 484 | COLON2@798..800 "::" |
485 | NAME_REF@[800; 806) | 485 | NAME_REF@800..806 |
486 | IDENT@[800; 806) "c_void" | 486 | IDENT@800..806 "c_void" |
487 | COMMA@[806; 807) "," | 487 | COMMA@806..807 "," |
488 | WHITESPACE@[807; 830) "\n " | 488 | WHITESPACE@807..830 "\n " |
489 | PARAM@[830; 851) | 489 | PARAM@830..851 |
490 | BIND_PAT@[830; 840) | 490 | BIND_PAT@830..840 |
491 | NAME@[830; 840) | 491 | NAME@830..840 |
492 | IDENT@[830; 840) "option_len" | 492 | IDENT@830..840 "option_len" |
493 | COLON@[840; 841) ":" | 493 | COLON@840..841 ":" |
494 | WHITESPACE@[841; 842) " " | 494 | WHITESPACE@841..842 " " |
495 | PATH_TYPE@[842; 851) | 495 | PATH_TYPE@842..851 |
496 | PATH@[842; 851) | 496 | PATH@842..851 |
497 | PATH_SEGMENT@[842; 851) | 497 | PATH_SEGMENT@842..851 |
498 | NAME_REF@[842; 851) | 498 | NAME_REF@842..851 |
499 | IDENT@[842; 851) "socklen_t" | 499 | IDENT@842..851 "socklen_t" |
500 | R_PAREN@[851; 852) ")" | 500 | R_PAREN@851..852 ")" |
501 | WHITESPACE@[852; 853) " " | 501 | WHITESPACE@852..853 " " |
502 | RET_TYPE@[853; 863) | 502 | RET_TYPE@853..863 |
503 | THIN_ARROW@[853; 855) "->" | 503 | THIN_ARROW@853..855 "->" |
504 | WHITESPACE@[855; 856) " " | 504 | WHITESPACE@855..856 " " |
505 | PATH_TYPE@[856; 863) | 505 | PATH_TYPE@856..863 |
506 | PATH@[856; 863) | 506 | PATH@856..863 |
507 | PATH_SEGMENT@[856; 863) | 507 | PATH_SEGMENT@856..863 |
508 | COLON2@[856; 858) "::" | 508 | COLON2@856..858 "::" |
509 | NAME_REF@[858; 863) | 509 | NAME_REF@858..863 |
510 | IDENT@[858; 863) "c_int" | 510 | IDENT@858..863 "c_int" |
511 | SEMICOLON@[863; 864) ";" | 511 | SEMICOLON@863..864 ";" |
512 | WHITESPACE@[864; 869) "\n " | 512 | WHITESPACE@864..869 "\n " |
513 | FN_DEF@[869; 992) | 513 | FN_DEF@869..992 |
514 | VISIBILITY@[869; 872) | 514 | VISIBILITY@869..872 |
515 | PUB_KW@[869; 872) "pub" | 515 | PUB_KW@869..872 "pub" |
516 | WHITESPACE@[872; 873) " " | 516 | WHITESPACE@872..873 " " |
517 | FN_KW@[873; 875) "fn" | 517 | FN_KW@873..875 "fn" |
518 | WHITESPACE@[875; 876) " " | 518 | WHITESPACE@875..876 " " |
519 | NAME@[876; 887) | 519 | NAME@876..887 |
520 | IDENT@[876; 887) "getpeername" | 520 | IDENT@876..887 "getpeername" |
521 | PARAM_LIST@[887; 980) | 521 | PARAM_LIST@887..980 |
522 | L_PAREN@[887; 888) "(" | 522 | L_PAREN@887..888 "(" |
523 | PARAM@[888; 903) | 523 | PARAM@888..903 |
524 | BIND_PAT@[888; 894) | 524 | BIND_PAT@888..894 |
525 | NAME@[888; 894) | 525 | NAME@888..894 |
526 | IDENT@[888; 894) "socket" | 526 | IDENT@888..894 "socket" |
527 | COLON@[894; 895) ":" | 527 | COLON@894..895 ":" |
528 | WHITESPACE@[895; 896) " " | 528 | WHITESPACE@895..896 " " |
529 | PATH_TYPE@[896; 903) | 529 | PATH_TYPE@896..903 |
530 | PATH@[896; 903) | 530 | PATH@896..903 |
531 | PATH_SEGMENT@[896; 903) | 531 | PATH_SEGMENT@896..903 |
532 | COLON2@[896; 898) "::" | 532 | COLON2@896..898 "::" |
533 | NAME_REF@[898; 903) | 533 | NAME_REF@898..903 |
534 | IDENT@[898; 903) "c_int" | 534 | IDENT@898..903 "c_int" |
535 | COMMA@[903; 904) "," | 535 | COMMA@903..904 "," |
536 | WHITESPACE@[904; 905) " " | 536 | WHITESPACE@904..905 " " |
537 | PARAM@[905; 927) | 537 | PARAM@905..927 |
538 | BIND_PAT@[905; 912) | 538 | BIND_PAT@905..912 |
539 | NAME@[905; 912) | 539 | NAME@905..912 |
540 | IDENT@[905; 912) "address" | 540 | IDENT@905..912 "address" |
541 | COLON@[912; 913) ":" | 541 | COLON@912..913 ":" |
542 | WHITESPACE@[913; 914) " " | 542 | WHITESPACE@913..914 " " |
543 | POINTER_TYPE@[914; 927) | 543 | POINTER_TYPE@914..927 |
544 | STAR@[914; 915) "*" | 544 | STAR@914..915 "*" |
545 | MUT_KW@[915; 918) "mut" | 545 | MUT_KW@915..918 "mut" |
546 | WHITESPACE@[918; 919) " " | 546 | WHITESPACE@918..919 " " |
547 | PATH_TYPE@[919; 927) | 547 | PATH_TYPE@919..927 |
548 | PATH@[919; 927) | 548 | PATH@919..927 |
549 | PATH_SEGMENT@[919; 927) | 549 | PATH_SEGMENT@919..927 |
550 | NAME_REF@[919; 927) | 550 | NAME_REF@919..927 |
551 | IDENT@[919; 927) "sockaddr" | 551 | IDENT@919..927 "sockaddr" |
552 | COMMA@[927; 928) "," | 552 | COMMA@927..928 "," |
553 | WHITESPACE@[928; 952) "\n " | 553 | WHITESPACE@928..952 "\n " |
554 | PARAM@[952; 979) | 554 | PARAM@952..979 |
555 | BIND_PAT@[952; 963) | 555 | BIND_PAT@952..963 |
556 | NAME@[952; 963) | 556 | NAME@952..963 |
557 | IDENT@[952; 963) "address_len" | 557 | IDENT@952..963 "address_len" |
558 | COLON@[963; 964) ":" | 558 | COLON@963..964 ":" |
559 | WHITESPACE@[964; 965) " " | 559 | WHITESPACE@964..965 " " |
560 | POINTER_TYPE@[965; 979) | 560 | POINTER_TYPE@965..979 |
561 | STAR@[965; 966) "*" | 561 | STAR@965..966 "*" |
562 | MUT_KW@[966; 969) "mut" | 562 | MUT_KW@966..969 "mut" |
563 | WHITESPACE@[969; 970) " " | 563 | WHITESPACE@969..970 " " |
564 | PATH_TYPE@[970; 979) | 564 | PATH_TYPE@970..979 |
565 | PATH@[970; 979) | 565 | PATH@970..979 |
566 | PATH_SEGMENT@[970; 979) | 566 | PATH_SEGMENT@970..979 |
567 | NAME_REF@[970; 979) | 567 | NAME_REF@970..979 |
568 | IDENT@[970; 979) "socklen_t" | 568 | IDENT@970..979 "socklen_t" |
569 | R_PAREN@[979; 980) ")" | 569 | R_PAREN@979..980 ")" |
570 | WHITESPACE@[980; 981) " " | 570 | WHITESPACE@980..981 " " |
571 | RET_TYPE@[981; 991) | 571 | RET_TYPE@981..991 |
572 | THIN_ARROW@[981; 983) "->" | 572 | THIN_ARROW@981..983 "->" |
573 | WHITESPACE@[983; 984) " " | 573 | WHITESPACE@983..984 " " |
574 | PATH_TYPE@[984; 991) | 574 | PATH_TYPE@984..991 |
575 | PATH@[984; 991) | 575 | PATH@984..991 |
576 | PATH_SEGMENT@[984; 991) | 576 | PATH_SEGMENT@984..991 |
577 | COLON2@[984; 986) "::" | 577 | COLON2@984..986 "::" |
578 | NAME_REF@[986; 991) | 578 | NAME_REF@986..991 |
579 | IDENT@[986; 991) "c_int" | 579 | IDENT@986..991 "c_int" |
580 | SEMICOLON@[991; 992) ";" | 580 | SEMICOLON@991..992 ";" |
581 | WHITESPACE@[992; 997) "\n " | 581 | WHITESPACE@992..997 "\n " |
582 | FN_DEF@[997; 1173) | 582 | FN_DEF@997..1173 |
583 | VISIBILITY@[997; 1000) | 583 | VISIBILITY@997..1000 |
584 | PUB_KW@[997; 1000) "pub" | 584 | PUB_KW@997..1000 "pub" |
585 | WHITESPACE@[1000; 1001) " " | 585 | WHITESPACE@1000..1001 " " |
586 | FN_KW@[1001; 1003) "fn" | 586 | FN_KW@1001..1003 "fn" |
587 | WHITESPACE@[1003; 1004) " " | 587 | WHITESPACE@1003..1004 " " |
588 | NAME@[1004; 1010) | 588 | NAME@1004..1010 |
589 | IDENT@[1004; 1010) "sendto" | 589 | IDENT@1004..1010 "sendto" |
590 | PARAM_LIST@[1010; 1159) | 590 | PARAM_LIST@1010..1159 |
591 | L_PAREN@[1010; 1011) "(" | 591 | L_PAREN@1010..1011 "(" |
592 | PARAM@[1011; 1026) | 592 | PARAM@1011..1026 |
593 | BIND_PAT@[1011; 1017) | 593 | BIND_PAT@1011..1017 |
594 | NAME@[1011; 1017) | 594 | NAME@1011..1017 |
595 | IDENT@[1011; 1017) "socket" | 595 | IDENT@1011..1017 "socket" |
596 | COLON@[1017; 1018) ":" | 596 | COLON@1017..1018 ":" |
597 | WHITESPACE@[1018; 1019) " " | 597 | WHITESPACE@1018..1019 " " |
598 | PATH_TYPE@[1019; 1026) | 598 | PATH_TYPE@1019..1026 |
599 | PATH@[1019; 1026) | 599 | PATH@1019..1026 |
600 | PATH_SEGMENT@[1019; 1026) | 600 | PATH_SEGMENT@1019..1026 |
601 | COLON2@[1019; 1021) "::" | 601 | COLON2@1019..1021 "::" |
602 | NAME_REF@[1021; 1026) | 602 | NAME_REF@1021..1026 |
603 | IDENT@[1021; 1026) "c_int" | 603 | IDENT@1021..1026 "c_int" |
604 | COMMA@[1026; 1027) "," | 604 | COMMA@1026..1027 "," |
605 | WHITESPACE@[1027; 1028) " " | 605 | WHITESPACE@1027..1028 " " |
606 | PARAM@[1028; 1048) | 606 | PARAM@1028..1048 |
607 | BIND_PAT@[1028; 1031) | 607 | BIND_PAT@1028..1031 |
608 | NAME@[1028; 1031) | 608 | NAME@1028..1031 |
609 | IDENT@[1028; 1031) "buf" | 609 | IDENT@1028..1031 "buf" |
610 | COLON@[1031; 1032) ":" | 610 | COLON@1031..1032 ":" |
611 | WHITESPACE@[1032; 1033) " " | 611 | WHITESPACE@1032..1033 " " |
612 | POINTER_TYPE@[1033; 1048) | 612 | POINTER_TYPE@1033..1048 |
613 | STAR@[1033; 1034) "*" | 613 | STAR@1033..1034 "*" |
614 | CONST_KW@[1034; 1039) "const" | 614 | CONST_KW@1034..1039 "const" |
615 | WHITESPACE@[1039; 1040) " " | 615 | WHITESPACE@1039..1040 " " |
616 | PATH_TYPE@[1040; 1048) | 616 | PATH_TYPE@1040..1048 |
617 | PATH@[1040; 1048) | 617 | PATH@1040..1048 |
618 | PATH_SEGMENT@[1040; 1048) | 618 | PATH_SEGMENT@1040..1048 |
619 | COLON2@[1040; 1042) "::" | 619 | COLON2@1040..1042 "::" |
620 | NAME_REF@[1042; 1048) | 620 | NAME_REF@1042..1048 |
621 | IDENT@[1042; 1048) "c_void" | 621 | IDENT@1042..1048 "c_void" |
622 | COMMA@[1048; 1049) "," | 622 | COMMA@1048..1049 "," |
623 | WHITESPACE@[1049; 1050) " " | 623 | WHITESPACE@1049..1050 " " |
624 | PARAM@[1050; 1063) | 624 | PARAM@1050..1063 |
625 | BIND_PAT@[1050; 1053) | 625 | BIND_PAT@1050..1053 |
626 | NAME@[1050; 1053) | 626 | NAME@1050..1053 |
627 | IDENT@[1050; 1053) "len" | 627 | IDENT@1050..1053 "len" |
628 | COLON@[1053; 1054) ":" | 628 | COLON@1053..1054 ":" |
629 | WHITESPACE@[1054; 1055) " " | 629 | WHITESPACE@1054..1055 " " |
630 | PATH_TYPE@[1055; 1063) | 630 | PATH_TYPE@1055..1063 |
631 | PATH@[1055; 1063) | 631 | PATH@1055..1063 |
632 | PATH_SEGMENT@[1055; 1063) | 632 | PATH_SEGMENT@1055..1063 |
633 | COLON2@[1055; 1057) "::" | 633 | COLON2@1055..1057 "::" |
634 | NAME_REF@[1057; 1063) | 634 | NAME_REF@1057..1063 |
635 | IDENT@[1057; 1063) "size_t" | 635 | IDENT@1057..1063 "size_t" |
636 | COMMA@[1063; 1064) "," | 636 | COMMA@1063..1064 "," |
637 | WHITESPACE@[1064; 1083) "\n " | 637 | WHITESPACE@1064..1083 "\n " |
638 | PARAM@[1083; 1097) | 638 | PARAM@1083..1097 |
639 | BIND_PAT@[1083; 1088) | 639 | BIND_PAT@1083..1088 |
640 | NAME@[1083; 1088) | 640 | NAME@1083..1088 |
641 | IDENT@[1083; 1088) "flags" | 641 | IDENT@1083..1088 "flags" |
642 | COLON@[1088; 1089) ":" | 642 | COLON@1088..1089 ":" |
643 | WHITESPACE@[1089; 1090) " " | 643 | WHITESPACE@1089..1090 " " |
644 | PATH_TYPE@[1090; 1097) | 644 | PATH_TYPE@1090..1097 |
645 | PATH@[1090; 1097) | 645 | PATH@1090..1097 |
646 | PATH_SEGMENT@[1090; 1097) | 646 | PATH_SEGMENT@1090..1097 |
647 | COLON2@[1090; 1092) "::" | 647 | COLON2@1090..1092 "::" |
648 | NAME_REF@[1092; 1097) | 648 | NAME_REF@1092..1097 |
649 | IDENT@[1092; 1097) "c_int" | 649 | IDENT@1092..1097 "c_int" |
650 | COMMA@[1097; 1098) "," | 650 | COMMA@1097..1098 "," |
651 | WHITESPACE@[1098; 1099) " " | 651 | WHITESPACE@1098..1099 " " |
652 | PARAM@[1099; 1120) | 652 | PARAM@1099..1120 |
653 | BIND_PAT@[1099; 1103) | 653 | BIND_PAT@1099..1103 |
654 | NAME@[1099; 1103) | 654 | NAME@1099..1103 |
655 | IDENT@[1099; 1103) "addr" | 655 | IDENT@1099..1103 "addr" |
656 | COLON@[1103; 1104) ":" | 656 | COLON@1103..1104 ":" |
657 | WHITESPACE@[1104; 1105) " " | 657 | WHITESPACE@1104..1105 " " |
658 | POINTER_TYPE@[1105; 1120) | 658 | POINTER_TYPE@1105..1120 |
659 | STAR@[1105; 1106) "*" | 659 | STAR@1105..1106 "*" |
660 | CONST_KW@[1106; 1111) "const" | 660 | CONST_KW@1106..1111 "const" |
661 | WHITESPACE@[1111; 1112) " " | 661 | WHITESPACE@1111..1112 " " |
662 | PATH_TYPE@[1112; 1120) | 662 | PATH_TYPE@1112..1120 |
663 | PATH@[1112; 1120) | 663 | PATH@1112..1120 |
664 | PATH_SEGMENT@[1112; 1120) | 664 | PATH_SEGMENT@1112..1120 |
665 | NAME_REF@[1112; 1120) | 665 | NAME_REF@1112..1120 |
666 | IDENT@[1112; 1120) "sockaddr" | 666 | IDENT@1112..1120 "sockaddr" |
667 | COMMA@[1120; 1121) "," | 667 | COMMA@1120..1121 "," |
668 | WHITESPACE@[1121; 1140) "\n " | 668 | WHITESPACE@1121..1140 "\n " |
669 | PARAM@[1140; 1158) | 669 | PARAM@1140..1158 |
670 | BIND_PAT@[1140; 1147) | 670 | BIND_PAT@1140..1147 |
671 | NAME@[1140; 1147) | 671 | NAME@1140..1147 |
672 | IDENT@[1140; 1147) "addrlen" | 672 | IDENT@1140..1147 "addrlen" |
673 | COLON@[1147; 1148) ":" | 673 | COLON@1147..1148 ":" |
674 | WHITESPACE@[1148; 1149) " " | 674 | WHITESPACE@1148..1149 " " |
675 | PATH_TYPE@[1149; 1158) | 675 | PATH_TYPE@1149..1158 |
676 | PATH@[1149; 1158) | 676 | PATH@1149..1158 |
677 | PATH_SEGMENT@[1149; 1158) | 677 | PATH_SEGMENT@1149..1158 |
678 | NAME_REF@[1149; 1158) | 678 | NAME_REF@1149..1158 |
679 | IDENT@[1149; 1158) "socklen_t" | 679 | IDENT@1149..1158 "socklen_t" |
680 | R_PAREN@[1158; 1159) ")" | 680 | R_PAREN@1158..1159 ")" |
681 | WHITESPACE@[1159; 1160) " " | 681 | WHITESPACE@1159..1160 " " |
682 | RET_TYPE@[1160; 1172) | 682 | RET_TYPE@1160..1172 |
683 | THIN_ARROW@[1160; 1162) "->" | 683 | THIN_ARROW@1160..1162 "->" |
684 | WHITESPACE@[1162; 1163) " " | 684 | WHITESPACE@1162..1163 " " |
685 | PATH_TYPE@[1163; 1172) | 685 | PATH_TYPE@1163..1172 |
686 | PATH@[1163; 1172) | 686 | PATH@1163..1172 |
687 | PATH_SEGMENT@[1163; 1172) | 687 | PATH_SEGMENT@1163..1172 |
688 | COLON2@[1163; 1165) "::" | 688 | COLON2@1163..1165 "::" |
689 | NAME_REF@[1165; 1172) | 689 | NAME_REF@1165..1172 |
690 | IDENT@[1165; 1172) "ssize_t" | 690 | IDENT@1165..1172 "ssize_t" |
691 | SEMICOLON@[1172; 1173) ";" | 691 | SEMICOLON@1172..1173 ";" |
692 | WHITESPACE@[1173; 1178) "\n " | 692 | WHITESPACE@1173..1178 "\n " |
693 | FN_DEF@[1178; 1289) | 693 | FN_DEF@1178..1289 |
694 | VISIBILITY@[1178; 1181) | 694 | VISIBILITY@1178..1181 |
695 | PUB_KW@[1178; 1181) "pub" | 695 | PUB_KW@1178..1181 "pub" |
696 | WHITESPACE@[1181; 1182) " " | 696 | WHITESPACE@1181..1182 " " |
697 | FN_KW@[1182; 1184) "fn" | 697 | FN_KW@1182..1184 "fn" |
698 | WHITESPACE@[1184; 1185) " " | 698 | WHITESPACE@1184..1185 " " |
699 | NAME@[1185; 1189) | 699 | NAME@1185..1189 |
700 | IDENT@[1185; 1189) "send" | 700 | IDENT@1185..1189 "send" |
701 | PARAM_LIST@[1189; 1275) | 701 | PARAM_LIST@1189..1275 |
702 | L_PAREN@[1189; 1190) "(" | 702 | L_PAREN@1189..1190 "(" |
703 | PARAM@[1190; 1205) | 703 | PARAM@1190..1205 |
704 | BIND_PAT@[1190; 1196) | 704 | BIND_PAT@1190..1196 |
705 | NAME@[1190; 1196) | 705 | NAME@1190..1196 |
706 | IDENT@[1190; 1196) "socket" | 706 | IDENT@1190..1196 "socket" |
707 | COLON@[1196; 1197) ":" | 707 | COLON@1196..1197 ":" |
708 | WHITESPACE@[1197; 1198) " " | 708 | WHITESPACE@1197..1198 " " |
709 | PATH_TYPE@[1198; 1205) | 709 | PATH_TYPE@1198..1205 |
710 | PATH@[1198; 1205) | 710 | PATH@1198..1205 |
711 | PATH_SEGMENT@[1198; 1205) | 711 | PATH_SEGMENT@1198..1205 |
712 | COLON2@[1198; 1200) "::" | 712 | COLON2@1198..1200 "::" |
713 | NAME_REF@[1200; 1205) | 713 | NAME_REF@1200..1205 |
714 | IDENT@[1200; 1205) "c_int" | 714 | IDENT@1200..1205 "c_int" |
715 | COMMA@[1205; 1206) "," | 715 | COMMA@1205..1206 "," |
716 | WHITESPACE@[1206; 1207) " " | 716 | WHITESPACE@1206..1207 " " |
717 | PARAM@[1207; 1227) | 717 | PARAM@1207..1227 |
718 | BIND_PAT@[1207; 1210) | 718 | BIND_PAT@1207..1210 |
719 | NAME@[1207; 1210) | 719 | NAME@1207..1210 |
720 | IDENT@[1207; 1210) "buf" | 720 | IDENT@1207..1210 "buf" |
721 | COLON@[1210; 1211) ":" | 721 | COLON@1210..1211 ":" |
722 | WHITESPACE@[1211; 1212) " " | 722 | WHITESPACE@1211..1212 " " |
723 | POINTER_TYPE@[1212; 1227) | 723 | POINTER_TYPE@1212..1227 |
724 | STAR@[1212; 1213) "*" | 724 | STAR@1212..1213 "*" |
725 | CONST_KW@[1213; 1218) "const" | 725 | CONST_KW@1213..1218 "const" |
726 | WHITESPACE@[1218; 1219) " " | 726 | WHITESPACE@1218..1219 " " |
727 | PATH_TYPE@[1219; 1227) | 727 | PATH_TYPE@1219..1227 |
728 | PATH@[1219; 1227) | 728 | PATH@1219..1227 |
729 | PATH_SEGMENT@[1219; 1227) | 729 | PATH_SEGMENT@1219..1227 |
730 | COLON2@[1219; 1221) "::" | 730 | COLON2@1219..1221 "::" |
731 | NAME_REF@[1221; 1227) | 731 | NAME_REF@1221..1227 |
732 | IDENT@[1221; 1227) "c_void" | 732 | IDENT@1221..1227 "c_void" |
733 | COMMA@[1227; 1228) "," | 733 | COMMA@1227..1228 "," |
734 | WHITESPACE@[1228; 1229) " " | 734 | WHITESPACE@1228..1229 " " |
735 | PARAM@[1229; 1242) | 735 | PARAM@1229..1242 |
736 | BIND_PAT@[1229; 1232) | 736 | BIND_PAT@1229..1232 |
737 | NAME@[1229; 1232) | 737 | NAME@1229..1232 |
738 | IDENT@[1229; 1232) "len" | 738 | IDENT@1229..1232 "len" |
739 | COLON@[1232; 1233) ":" | 739 | COLON@1232..1233 ":" |
740 | WHITESPACE@[1233; 1234) " " | 740 | WHITESPACE@1233..1234 " " |
741 | PATH_TYPE@[1234; 1242) | 741 | PATH_TYPE@1234..1242 |
742 | PATH@[1234; 1242) | 742 | PATH@1234..1242 |
743 | PATH_SEGMENT@[1234; 1242) | 743 | PATH_SEGMENT@1234..1242 |
744 | COLON2@[1234; 1236) "::" | 744 | COLON2@1234..1236 "::" |
745 | NAME_REF@[1236; 1242) | 745 | NAME_REF@1236..1242 |
746 | IDENT@[1236; 1242) "size_t" | 746 | IDENT@1236..1242 "size_t" |
747 | COMMA@[1242; 1243) "," | 747 | COMMA@1242..1243 "," |
748 | WHITESPACE@[1243; 1260) "\n " | 748 | WHITESPACE@1243..1260 "\n " |
749 | PARAM@[1260; 1274) | 749 | PARAM@1260..1274 |
750 | BIND_PAT@[1260; 1265) | 750 | BIND_PAT@1260..1265 |
751 | NAME@[1260; 1265) | 751 | NAME@1260..1265 |
752 | IDENT@[1260; 1265) "flags" | 752 | IDENT@1260..1265 "flags" |
753 | COLON@[1265; 1266) ":" | 753 | COLON@1265..1266 ":" |
754 | WHITESPACE@[1266; 1267) " " | 754 | WHITESPACE@1266..1267 " " |
755 | PATH_TYPE@[1267; 1274) | 755 | PATH_TYPE@1267..1274 |
756 | PATH@[1267; 1274) | 756 | PATH@1267..1274 |
757 | PATH_SEGMENT@[1267; 1274) | 757 | PATH_SEGMENT@1267..1274 |
758 | COLON2@[1267; 1269) "::" | 758 | COLON2@1267..1269 "::" |
759 | NAME_REF@[1269; 1274) | 759 | NAME_REF@1269..1274 |
760 | IDENT@[1269; 1274) "c_int" | 760 | IDENT@1269..1274 "c_int" |
761 | R_PAREN@[1274; 1275) ")" | 761 | R_PAREN@1274..1275 ")" |
762 | WHITESPACE@[1275; 1276) " " | 762 | WHITESPACE@1275..1276 " " |
763 | RET_TYPE@[1276; 1288) | 763 | RET_TYPE@1276..1288 |
764 | THIN_ARROW@[1276; 1278) "->" | 764 | THIN_ARROW@1276..1278 "->" |
765 | WHITESPACE@[1278; 1279) " " | 765 | WHITESPACE@1278..1279 " " |
766 | PATH_TYPE@[1279; 1288) | 766 | PATH_TYPE@1279..1288 |
767 | PATH@[1279; 1288) | 767 | PATH@1279..1288 |
768 | PATH_SEGMENT@[1279; 1288) | 768 | PATH_SEGMENT@1279..1288 |
769 | COLON2@[1279; 1281) "::" | 769 | COLON2@1279..1281 "::" |
770 | NAME_REF@[1281; 1288) | 770 | NAME_REF@1281..1288 |
771 | IDENT@[1281; 1288) "ssize_t" | 771 | IDENT@1281..1288 "ssize_t" |
772 | SEMICOLON@[1288; 1289) ";" | 772 | SEMICOLON@1288..1289 ";" |
773 | WHITESPACE@[1289; 1294) "\n " | 773 | WHITESPACE@1289..1294 "\n " |
774 | FN_DEF@[1294; 1481) | 774 | FN_DEF@1294..1481 |
775 | VISIBILITY@[1294; 1297) | 775 | VISIBILITY@1294..1297 |
776 | PUB_KW@[1294; 1297) "pub" | 776 | PUB_KW@1294..1297 "pub" |
777 | WHITESPACE@[1297; 1298) " " | 777 | WHITESPACE@1297..1298 " " |
778 | FN_KW@[1298; 1300) "fn" | 778 | FN_KW@1298..1300 "fn" |
779 | WHITESPACE@[1300; 1301) " " | 779 | WHITESPACE@1300..1301 " " |
780 | NAME@[1301; 1309) | 780 | NAME@1301..1309 |
781 | IDENT@[1301; 1309) "recvfrom" | 781 | IDENT@1301..1309 "recvfrom" |
782 | PARAM_LIST@[1309; 1467) | 782 | PARAM_LIST@1309..1467 |
783 | L_PAREN@[1309; 1310) "(" | 783 | L_PAREN@1309..1310 "(" |
784 | PARAM@[1310; 1325) | 784 | PARAM@1310..1325 |
785 | BIND_PAT@[1310; 1316) | 785 | BIND_PAT@1310..1316 |
786 | NAME@[1310; 1316) | 786 | NAME@1310..1316 |
787 | IDENT@[1310; 1316) "socket" | 787 | IDENT@1310..1316 "socket" |
788 | COLON@[1316; 1317) ":" | 788 | COLON@1316..1317 ":" |
789 | WHITESPACE@[1317; 1318) " " | 789 | WHITESPACE@1317..1318 " " |
790 | PATH_TYPE@[1318; 1325) | 790 | PATH_TYPE@1318..1325 |
791 | PATH@[1318; 1325) | 791 | PATH@1318..1325 |
792 | PATH_SEGMENT@[1318; 1325) | 792 | PATH_SEGMENT@1318..1325 |
793 | COLON2@[1318; 1320) "::" | 793 | COLON2@1318..1320 "::" |
794 | NAME_REF@[1320; 1325) | 794 | NAME_REF@1320..1325 |
795 | IDENT@[1320; 1325) "c_int" | 795 | IDENT@1320..1325 "c_int" |
796 | COMMA@[1325; 1326) "," | 796 | COMMA@1325..1326 "," |
797 | WHITESPACE@[1326; 1327) " " | 797 | WHITESPACE@1326..1327 " " |
798 | PARAM@[1327; 1345) | 798 | PARAM@1327..1345 |
799 | BIND_PAT@[1327; 1330) | 799 | BIND_PAT@1327..1330 |
800 | NAME@[1327; 1330) | 800 | NAME@1327..1330 |
801 | IDENT@[1327; 1330) "buf" | 801 | IDENT@1327..1330 "buf" |
802 | COLON@[1330; 1331) ":" | 802 | COLON@1330..1331 ":" |
803 | WHITESPACE@[1331; 1332) " " | 803 | WHITESPACE@1331..1332 " " |
804 | POINTER_TYPE@[1332; 1345) | 804 | POINTER_TYPE@1332..1345 |
805 | STAR@[1332; 1333) "*" | 805 | STAR@1332..1333 "*" |
806 | MUT_KW@[1333; 1336) "mut" | 806 | MUT_KW@1333..1336 "mut" |
807 | WHITESPACE@[1336; 1337) " " | 807 | WHITESPACE@1336..1337 " " |
808 | PATH_TYPE@[1337; 1345) | 808 | PATH_TYPE@1337..1345 |
809 | PATH@[1337; 1345) | 809 | PATH@1337..1345 |
810 | PATH_SEGMENT@[1337; 1345) | 810 | PATH_SEGMENT@1337..1345 |
811 | COLON2@[1337; 1339) "::" | 811 | COLON2@1337..1339 "::" |
812 | NAME_REF@[1339; 1345) | 812 | NAME_REF@1339..1345 |
813 | IDENT@[1339; 1345) "c_void" | 813 | IDENT@1339..1345 "c_void" |
814 | COMMA@[1345; 1346) "," | 814 | COMMA@1345..1346 "," |
815 | WHITESPACE@[1346; 1347) " " | 815 | WHITESPACE@1346..1347 " " |
816 | PARAM@[1347; 1360) | 816 | PARAM@1347..1360 |
817 | BIND_PAT@[1347; 1350) | 817 | BIND_PAT@1347..1350 |
818 | NAME@[1347; 1350) | 818 | NAME@1347..1350 |
819 | IDENT@[1347; 1350) "len" | 819 | IDENT@1347..1350 "len" |
820 | COLON@[1350; 1351) ":" | 820 | COLON@1350..1351 ":" |
821 | WHITESPACE@[1351; 1352) " " | 821 | WHITESPACE@1351..1352 " " |
822 | PATH_TYPE@[1352; 1360) | 822 | PATH_TYPE@1352..1360 |
823 | PATH@[1352; 1360) | 823 | PATH@1352..1360 |
824 | PATH_SEGMENT@[1352; 1360) | 824 | PATH_SEGMENT@1352..1360 |
825 | COLON2@[1352; 1354) "::" | 825 | COLON2@1352..1354 "::" |
826 | NAME_REF@[1354; 1360) | 826 | NAME_REF@1354..1360 |
827 | IDENT@[1354; 1360) "size_t" | 827 | IDENT@1354..1360 "size_t" |
828 | COMMA@[1360; 1361) "," | 828 | COMMA@1360..1361 "," |
829 | WHITESPACE@[1361; 1382) "\n " | 829 | WHITESPACE@1361..1382 "\n " |
830 | PARAM@[1382; 1396) | 830 | PARAM@1382..1396 |
831 | BIND_PAT@[1382; 1387) | 831 | BIND_PAT@1382..1387 |
832 | NAME@[1382; 1387) | 832 | NAME@1382..1387 |
833 | IDENT@[1382; 1387) "flags" | 833 | IDENT@1382..1387 "flags" |
834 | COLON@[1387; 1388) ":" | 834 | COLON@1387..1388 ":" |
835 | WHITESPACE@[1388; 1389) " " | 835 | WHITESPACE@1388..1389 " " |
836 | PATH_TYPE@[1389; 1396) | 836 | PATH_TYPE@1389..1396 |
837 | PATH@[1389; 1396) | 837 | PATH@1389..1396 |
838 | PATH_SEGMENT@[1389; 1396) | 838 | PATH_SEGMENT@1389..1396 |
839 | COLON2@[1389; 1391) "::" | 839 | COLON2@1389..1391 "::" |
840 | NAME_REF@[1391; 1396) | 840 | NAME_REF@1391..1396 |
841 | IDENT@[1391; 1396) "c_int" | 841 | IDENT@1391..1396 "c_int" |
842 | COMMA@[1396; 1397) "," | 842 | COMMA@1396..1397 "," |
843 | WHITESPACE@[1397; 1398) " " | 843 | WHITESPACE@1397..1398 " " |
844 | PARAM@[1398; 1419) | 844 | PARAM@1398..1419 |
845 | BIND_PAT@[1398; 1402) | 845 | BIND_PAT@1398..1402 |
846 | NAME@[1398; 1402) | 846 | NAME@1398..1402 |
847 | IDENT@[1398; 1402) "addr" | 847 | IDENT@1398..1402 "addr" |
848 | COLON@[1402; 1403) ":" | 848 | COLON@1402..1403 ":" |
849 | WHITESPACE@[1403; 1404) " " | 849 | WHITESPACE@1403..1404 " " |
850 | POINTER_TYPE@[1404; 1419) | 850 | POINTER_TYPE@1404..1419 |
851 | STAR@[1404; 1405) "*" | 851 | STAR@1404..1405 "*" |
852 | MUT_KW@[1405; 1408) "mut" | 852 | MUT_KW@1405..1408 "mut" |
853 | WHITESPACE@[1408; 1409) " " | 853 | WHITESPACE@1408..1409 " " |
854 | PATH_TYPE@[1409; 1419) | 854 | PATH_TYPE@1409..1419 |
855 | PATH@[1409; 1419) | 855 | PATH@1409..1419 |
856 | PATH_SEGMENT@[1409; 1419) | 856 | PATH_SEGMENT@1409..1419 |
857 | COLON2@[1409; 1411) "::" | 857 | COLON2@1409..1411 "::" |
858 | NAME_REF@[1411; 1419) | 858 | NAME_REF@1411..1419 |
859 | IDENT@[1411; 1419) "sockaddr" | 859 | IDENT@1411..1419 "sockaddr" |
860 | COMMA@[1419; 1420) "," | 860 | COMMA@1419..1420 "," |
861 | WHITESPACE@[1420; 1441) "\n " | 861 | WHITESPACE@1420..1441 "\n " |
862 | PARAM@[1441; 1466) | 862 | PARAM@1441..1466 |
863 | BIND_PAT@[1441; 1448) | 863 | BIND_PAT@1441..1448 |
864 | NAME@[1441; 1448) | 864 | NAME@1441..1448 |
865 | IDENT@[1441; 1448) "addrlen" | 865 | IDENT@1441..1448 "addrlen" |
866 | COLON@[1448; 1449) ":" | 866 | COLON@1448..1449 ":" |
867 | WHITESPACE@[1449; 1450) " " | 867 | WHITESPACE@1449..1450 " " |
868 | POINTER_TYPE@[1450; 1466) | 868 | POINTER_TYPE@1450..1466 |
869 | STAR@[1450; 1451) "*" | 869 | STAR@1450..1451 "*" |
870 | MUT_KW@[1451; 1454) "mut" | 870 | MUT_KW@1451..1454 "mut" |
871 | WHITESPACE@[1454; 1455) " " | 871 | WHITESPACE@1454..1455 " " |
872 | PATH_TYPE@[1455; 1466) | 872 | PATH_TYPE@1455..1466 |
873 | PATH@[1455; 1466) | 873 | PATH@1455..1466 |
874 | PATH_SEGMENT@[1455; 1466) | 874 | PATH_SEGMENT@1455..1466 |
875 | COLON2@[1455; 1457) "::" | 875 | COLON2@1455..1457 "::" |
876 | NAME_REF@[1457; 1466) | 876 | NAME_REF@1457..1466 |
877 | IDENT@[1457; 1466) "socklen_t" | 877 | IDENT@1457..1466 "socklen_t" |
878 | R_PAREN@[1466; 1467) ")" | 878 | R_PAREN@1466..1467 ")" |
879 | WHITESPACE@[1467; 1468) " " | 879 | WHITESPACE@1467..1468 " " |
880 | RET_TYPE@[1468; 1480) | 880 | RET_TYPE@1468..1480 |
881 | THIN_ARROW@[1468; 1470) "->" | 881 | THIN_ARROW@1468..1470 "->" |
882 | WHITESPACE@[1470; 1471) " " | 882 | WHITESPACE@1470..1471 " " |
883 | PATH_TYPE@[1471; 1480) | 883 | PATH_TYPE@1471..1480 |
884 | PATH@[1471; 1480) | 884 | PATH@1471..1480 |
885 | PATH_SEGMENT@[1471; 1480) | 885 | PATH_SEGMENT@1471..1480 |
886 | COLON2@[1471; 1473) "::" | 886 | COLON2@1471..1473 "::" |
887 | NAME_REF@[1473; 1480) | 887 | NAME_REF@1473..1480 |
888 | IDENT@[1473; 1480) "ssize_t" | 888 | IDENT@1473..1480 "ssize_t" |
889 | SEMICOLON@[1480; 1481) ";" | 889 | SEMICOLON@1480..1481 ";" |
890 | WHITESPACE@[1481; 1486) "\n " | 890 | WHITESPACE@1481..1486 "\n " |
891 | FN_DEF@[1486; 1595) | 891 | FN_DEF@1486..1595 |
892 | VISIBILITY@[1486; 1489) | 892 | VISIBILITY@1486..1489 |
893 | PUB_KW@[1486; 1489) "pub" | 893 | PUB_KW@1486..1489 "pub" |
894 | WHITESPACE@[1489; 1490) " " | 894 | WHITESPACE@1489..1490 " " |
895 | FN_KW@[1490; 1492) "fn" | 895 | FN_KW@1490..1492 "fn" |
896 | WHITESPACE@[1492; 1493) " " | 896 | WHITESPACE@1492..1493 " " |
897 | NAME@[1493; 1497) | 897 | NAME@1493..1497 |
898 | IDENT@[1493; 1497) "recv" | 898 | IDENT@1493..1497 "recv" |
899 | PARAM_LIST@[1497; 1581) | 899 | PARAM_LIST@1497..1581 |
900 | L_PAREN@[1497; 1498) "(" | 900 | L_PAREN@1497..1498 "(" |
901 | PARAM@[1498; 1513) | 901 | PARAM@1498..1513 |
902 | BIND_PAT@[1498; 1504) | 902 | BIND_PAT@1498..1504 |
903 | NAME@[1498; 1504) | 903 | NAME@1498..1504 |
904 | IDENT@[1498; 1504) "socket" | 904 | IDENT@1498..1504 "socket" |
905 | COLON@[1504; 1505) ":" | 905 | COLON@1504..1505 ":" |
906 | WHITESPACE@[1505; 1506) " " | 906 | WHITESPACE@1505..1506 " " |
907 | PATH_TYPE@[1506; 1513) | 907 | PATH_TYPE@1506..1513 |
908 | PATH@[1506; 1513) | 908 | PATH@1506..1513 |
909 | PATH_SEGMENT@[1506; 1513) | 909 | PATH_SEGMENT@1506..1513 |
910 | COLON2@[1506; 1508) "::" | 910 | COLON2@1506..1508 "::" |
911 | NAME_REF@[1508; 1513) | 911 | NAME_REF@1508..1513 |
912 | IDENT@[1508; 1513) "c_int" | 912 | IDENT@1508..1513 "c_int" |
913 | COMMA@[1513; 1514) "," | 913 | COMMA@1513..1514 "," |
914 | WHITESPACE@[1514; 1515) " " | 914 | WHITESPACE@1514..1515 " " |
915 | PARAM@[1515; 1533) | 915 | PARAM@1515..1533 |
916 | BIND_PAT@[1515; 1518) | 916 | BIND_PAT@1515..1518 |
917 | NAME@[1515; 1518) | 917 | NAME@1515..1518 |
918 | IDENT@[1515; 1518) "buf" | 918 | IDENT@1515..1518 "buf" |
919 | COLON@[1518; 1519) ":" | 919 | COLON@1518..1519 ":" |
920 | WHITESPACE@[1519; 1520) " " | 920 | WHITESPACE@1519..1520 " " |
921 | POINTER_TYPE@[1520; 1533) | 921 | POINTER_TYPE@1520..1533 |
922 | STAR@[1520; 1521) "*" | 922 | STAR@1520..1521 "*" |
923 | MUT_KW@[1521; 1524) "mut" | 923 | MUT_KW@1521..1524 "mut" |
924 | WHITESPACE@[1524; 1525) " " | 924 | WHITESPACE@1524..1525 " " |
925 | PATH_TYPE@[1525; 1533) | 925 | PATH_TYPE@1525..1533 |
926 | PATH@[1525; 1533) | 926 | PATH@1525..1533 |
927 | PATH_SEGMENT@[1525; 1533) | 927 | PATH_SEGMENT@1525..1533 |
928 | COLON2@[1525; 1527) "::" | 928 | COLON2@1525..1527 "::" |
929 | NAME_REF@[1527; 1533) | 929 | NAME_REF@1527..1533 |
930 | IDENT@[1527; 1533) "c_void" | 930 | IDENT@1527..1533 "c_void" |
931 | COMMA@[1533; 1534) "," | 931 | COMMA@1533..1534 "," |
932 | WHITESPACE@[1534; 1535) " " | 932 | WHITESPACE@1534..1535 " " |
933 | PARAM@[1535; 1548) | 933 | PARAM@1535..1548 |
934 | BIND_PAT@[1535; 1538) | 934 | BIND_PAT@1535..1538 |
935 | NAME@[1535; 1538) | 935 | NAME@1535..1538 |
936 | IDENT@[1535; 1538) "len" | 936 | IDENT@1535..1538 "len" |
937 | COLON@[1538; 1539) ":" | 937 | COLON@1538..1539 ":" |
938 | WHITESPACE@[1539; 1540) " " | 938 | WHITESPACE@1539..1540 " " |
939 | PATH_TYPE@[1540; 1548) | 939 | PATH_TYPE@1540..1548 |
940 | PATH@[1540; 1548) | 940 | PATH@1540..1548 |
941 | PATH_SEGMENT@[1540; 1548) | 941 | PATH_SEGMENT@1540..1548 |
942 | COLON2@[1540; 1542) "::" | 942 | COLON2@1540..1542 "::" |
943 | NAME_REF@[1542; 1548) | 943 | NAME_REF@1542..1548 |
944 | IDENT@[1542; 1548) "size_t" | 944 | IDENT@1542..1548 "size_t" |
945 | COMMA@[1548; 1549) "," | 945 | COMMA@1548..1549 "," |
946 | WHITESPACE@[1549; 1566) "\n " | 946 | WHITESPACE@1549..1566 "\n " |
947 | PARAM@[1566; 1580) | 947 | PARAM@1566..1580 |
948 | BIND_PAT@[1566; 1571) | 948 | BIND_PAT@1566..1571 |
949 | NAME@[1566; 1571) | 949 | NAME@1566..1571 |
950 | IDENT@[1566; 1571) "flags" | 950 | IDENT@1566..1571 "flags" |
951 | COLON@[1571; 1572) ":" | 951 | COLON@1571..1572 ":" |
952 | WHITESPACE@[1572; 1573) " " | 952 | WHITESPACE@1572..1573 " " |
953 | PATH_TYPE@[1573; 1580) | 953 | PATH_TYPE@1573..1580 |
954 | PATH@[1573; 1580) | 954 | PATH@1573..1580 |
955 | PATH_SEGMENT@[1573; 1580) | 955 | PATH_SEGMENT@1573..1580 |
956 | COLON2@[1573; 1575) "::" | 956 | COLON2@1573..1575 "::" |
957 | NAME_REF@[1575; 1580) | 957 | NAME_REF@1575..1580 |
958 | IDENT@[1575; 1580) "c_int" | 958 | IDENT@1575..1580 "c_int" |
959 | R_PAREN@[1580; 1581) ")" | 959 | R_PAREN@1580..1581 ")" |
960 | WHITESPACE@[1581; 1582) " " | 960 | WHITESPACE@1581..1582 " " |
961 | RET_TYPE@[1582; 1594) | 961 | RET_TYPE@1582..1594 |
962 | THIN_ARROW@[1582; 1584) "->" | 962 | THIN_ARROW@1582..1584 "->" |
963 | WHITESPACE@[1584; 1585) " " | 963 | WHITESPACE@1584..1585 " " |
964 | PATH_TYPE@[1585; 1594) | 964 | PATH_TYPE@1585..1594 |
965 | PATH@[1585; 1594) | 965 | PATH@1585..1594 |
966 | PATH_SEGMENT@[1585; 1594) | 966 | PATH_SEGMENT@1585..1594 |
967 | COLON2@[1585; 1587) "::" | 967 | COLON2@1585..1587 "::" |
968 | NAME_REF@[1587; 1594) | 968 | NAME_REF@1587..1594 |
969 | IDENT@[1587; 1594) "ssize_t" | 969 | IDENT@1587..1594 "ssize_t" |
970 | SEMICOLON@[1594; 1595) ";" | 970 | SEMICOLON@1594..1595 ";" |
971 | WHITESPACE@[1595; 1596) "\n" | 971 | WHITESPACE@1595..1596 "\n" |
972 | R_CURLY@[1596; 1597) "}" | 972 | R_CURLY@1596..1597 "}" |
973 | WHITESPACE@[1597; 1598) "\n" | 973 | WHITESPACE@1597..1598 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast index f71cf5b6c..68eb16bbd 100644 --- a/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast +++ b/crates/ra_syntax/test_data/parser/ok/0032_where_for.rast | |||
@@ -1,91 +1,91 @@ | |||
1 | SOURCE_FILE@[0; 116) | 1 | SOURCE_FILE@0..116 |
2 | FN_DEF@[0; 115) | 2 | FN_DEF@0..115 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 21) | 5 | NAME@3..21 |
6 | IDENT@[3; 21) "test_serialization" | 6 | IDENT@3..21 "test_serialization" |
7 | TYPE_PARAM_LIST@[21; 26) | 7 | TYPE_PARAM_LIST@21..26 |
8 | L_ANGLE@[21; 22) "<" | 8 | L_ANGLE@21..22 "<" |
9 | TYPE_PARAM@[22; 25) | 9 | TYPE_PARAM@22..25 |
10 | NAME@[22; 25) | 10 | NAME@22..25 |
11 | IDENT@[22; 25) "SER" | 11 | IDENT@22..25 "SER" |
12 | R_ANGLE@[25; 26) ">" | 12 | R_ANGLE@25..26 ">" |
13 | PARAM_LIST@[26; 28) | 13 | PARAM_LIST@26..28 |
14 | L_PAREN@[26; 27) "(" | 14 | L_PAREN@26..27 "(" |
15 | R_PAREN@[27; 28) ")" | 15 | R_PAREN@27..28 ")" |
16 | WHITESPACE@[28; 29) "\n" | 16 | WHITESPACE@28..29 "\n" |
17 | WHERE_CLAUSE@[29; 112) | 17 | WHERE_CLAUSE@29..112 |
18 | WHERE_KW@[29; 34) "where" | 18 | WHERE_KW@29..34 "where" |
19 | WHITESPACE@[34; 39) "\n " | 19 | WHITESPACE@34..39 "\n " |
20 | WHERE_PRED@[39; 111) | 20 | WHERE_PRED@39..111 |
21 | PATH_TYPE@[39; 42) | 21 | PATH_TYPE@39..42 |
22 | PATH@[39; 42) | 22 | PATH@39..42 |
23 | PATH_SEGMENT@[39; 42) | 23 | PATH_SEGMENT@39..42 |
24 | NAME_REF@[39; 42) | 24 | NAME_REF@39..42 |
25 | IDENT@[39; 42) "SER" | 25 | IDENT@39..42 "SER" |
26 | COLON@[42; 43) ":" | 26 | COLON@42..43 ":" |
27 | WHITESPACE@[43; 44) " " | 27 | WHITESPACE@43..44 " " |
28 | TYPE_BOUND_LIST@[44; 111) | 28 | TYPE_BOUND_LIST@44..111 |
29 | TYPE_BOUND@[44; 53) | 29 | TYPE_BOUND@44..53 |
30 | PATH_TYPE@[44; 53) | 30 | PATH_TYPE@44..53 |
31 | PATH@[44; 53) | 31 | PATH@44..53 |
32 | PATH_SEGMENT@[44; 53) | 32 | PATH_SEGMENT@44..53 |
33 | NAME_REF@[44; 53) | 33 | NAME_REF@44..53 |
34 | IDENT@[44; 53) "Serialize" | 34 | IDENT@44..53 "Serialize" |
35 | WHITESPACE@[53; 54) " " | 35 | WHITESPACE@53..54 " " |
36 | PLUS@[54; 55) "+" | 36 | PLUS@54..55 "+" |
37 | WHITESPACE@[55; 56) " " | 37 | WHITESPACE@55..56 " " |
38 | TYPE_BOUND@[56; 81) | 38 | TYPE_BOUND@56..81 |
39 | FOR_TYPE@[56; 81) | 39 | FOR_TYPE@56..81 |
40 | FOR_KW@[56; 59) "for" | 40 | FOR_KW@56..59 "for" |
41 | TYPE_PARAM_LIST@[59; 64) | 41 | TYPE_PARAM_LIST@59..64 |
42 | L_ANGLE@[59; 60) "<" | 42 | L_ANGLE@59..60 "<" |
43 | LIFETIME_PARAM@[60; 63) | 43 | LIFETIME_PARAM@60..63 |
44 | LIFETIME@[60; 63) "\'de" | 44 | LIFETIME@60..63 "\'de" |
45 | R_ANGLE@[63; 64) ">" | 45 | R_ANGLE@63..64 ">" |
46 | WHITESPACE@[64; 65) " " | 46 | WHITESPACE@64..65 " " |
47 | PATH_TYPE@[65; 81) | 47 | PATH_TYPE@65..81 |
48 | PATH@[65; 81) | 48 | PATH@65..81 |
49 | PATH_SEGMENT@[65; 81) | 49 | PATH_SEGMENT@65..81 |
50 | NAME_REF@[65; 76) | 50 | NAME_REF@65..76 |
51 | IDENT@[65; 76) "Deserialize" | 51 | IDENT@65..76 "Deserialize" |
52 | TYPE_ARG_LIST@[76; 81) | 52 | TYPE_ARG_LIST@76..81 |
53 | L_ANGLE@[76; 77) "<" | 53 | L_ANGLE@76..77 "<" |
54 | LIFETIME_ARG@[77; 80) | 54 | LIFETIME_ARG@77..80 |
55 | LIFETIME@[77; 80) "\'de" | 55 | LIFETIME@77..80 "\'de" |
56 | R_ANGLE@[80; 81) ">" | 56 | R_ANGLE@80..81 ">" |
57 | WHITESPACE@[81; 82) " " | 57 | WHITESPACE@81..82 " " |
58 | PLUS@[82; 83) "+" | 58 | PLUS@82..83 "+" |
59 | WHITESPACE@[83; 84) " " | 59 | WHITESPACE@83..84 " " |
60 | TYPE_BOUND@[84; 93) | 60 | TYPE_BOUND@84..93 |
61 | PATH_TYPE@[84; 93) | 61 | PATH_TYPE@84..93 |
62 | PATH@[84; 93) | 62 | PATH@84..93 |
63 | PATH_SEGMENT@[84; 93) | 63 | PATH_SEGMENT@84..93 |
64 | NAME_REF@[84; 93) | 64 | NAME_REF@84..93 |
65 | IDENT@[84; 93) "PartialEq" | 65 | IDENT@84..93 "PartialEq" |
66 | WHITESPACE@[93; 94) " " | 66 | WHITESPACE@93..94 " " |
67 | PLUS@[94; 95) "+" | 67 | PLUS@94..95 "+" |
68 | WHITESPACE@[95; 96) " " | 68 | WHITESPACE@95..96 " " |
69 | TYPE_BOUND@[96; 111) | 69 | TYPE_BOUND@96..111 |
70 | PATH_TYPE@[96; 111) | 70 | PATH_TYPE@96..111 |
71 | PATH@[96; 111) | 71 | PATH@96..111 |
72 | PATH@[96; 104) | 72 | PATH@96..104 |
73 | PATH@[96; 99) | 73 | PATH@96..99 |
74 | PATH_SEGMENT@[96; 99) | 74 | PATH_SEGMENT@96..99 |
75 | NAME_REF@[96; 99) | 75 | NAME_REF@96..99 |
76 | IDENT@[96; 99) "std" | 76 | IDENT@96..99 "std" |
77 | COLON2@[99; 101) "::" | 77 | COLON2@99..101 "::" |
78 | PATH_SEGMENT@[101; 104) | 78 | PATH_SEGMENT@101..104 |
79 | NAME_REF@[101; 104) | 79 | NAME_REF@101..104 |
80 | IDENT@[101; 104) "fmt" | 80 | IDENT@101..104 "fmt" |
81 | COLON2@[104; 106) "::" | 81 | COLON2@104..106 "::" |
82 | PATH_SEGMENT@[106; 111) | 82 | PATH_SEGMENT@106..111 |
83 | NAME_REF@[106; 111) | 83 | NAME_REF@106..111 |
84 | IDENT@[106; 111) "Debug" | 84 | IDENT@106..111 "Debug" |
85 | COMMA@[111; 112) "," | 85 | COMMA@111..112 "," |
86 | WHITESPACE@[112; 113) "\n" | 86 | WHITESPACE@112..113 "\n" |
87 | BLOCK_EXPR@[113; 115) | 87 | BLOCK_EXPR@113..115 |
88 | BLOCK@[113; 115) | 88 | BLOCK@113..115 |
89 | L_CURLY@[113; 114) "{" | 89 | L_CURLY@113..114 "{" |
90 | R_CURLY@[114; 115) "}" | 90 | R_CURLY@114..115 "}" |
91 | WHITESPACE@[115; 116) "\n" | 91 | WHITESPACE@115..116 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast index 8af41caa0..3977faa60 100644 --- a/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast +++ b/crates/ra_syntax/test_data/parser/ok/0033_label_break.rast | |||
@@ -1,220 +1,220 @@ | |||
1 | SOURCE_FILE@[0; 506) | 1 | SOURCE_FILE@0..506 |
2 | FN_DEF@[0; 505) | 2 | FN_DEF@0..505 |
3 | COMMENT@[0; 33) "// format with label ..." | 3 | COMMENT@0..33 "// format with label ..." |
4 | WHITESPACE@[33; 34) "\n" | 4 | WHITESPACE@33..34 "\n" |
5 | FN_KW@[34; 36) "fn" | 5 | FN_KW@34..36 "fn" |
6 | WHITESPACE@[36; 37) " " | 6 | WHITESPACE@36..37 " " |
7 | NAME@[37; 41) | 7 | NAME@37..41 |
8 | IDENT@[37; 41) "main" | 8 | IDENT@37..41 "main" |
9 | PARAM_LIST@[41; 43) | 9 | PARAM_LIST@41..43 |
10 | L_PAREN@[41; 42) "(" | 10 | L_PAREN@41..42 "(" |
11 | R_PAREN@[42; 43) ")" | 11 | R_PAREN@42..43 ")" |
12 | WHITESPACE@[43; 44) " " | 12 | WHITESPACE@43..44 " " |
13 | BLOCK_EXPR@[44; 505) | 13 | BLOCK_EXPR@44..505 |
14 | BLOCK@[44; 505) | 14 | BLOCK@44..505 |
15 | L_CURLY@[44; 45) "{" | 15 | L_CURLY@44..45 "{" |
16 | WHITESPACE@[45; 50) "\n " | 16 | WHITESPACE@45..50 "\n " |
17 | EXPR_STMT@[50; 66) | 17 | EXPR_STMT@50..66 |
18 | BLOCK_EXPR@[50; 66) | 18 | BLOCK_EXPR@50..66 |
19 | LABEL@[50; 63) | 19 | LABEL@50..63 |
20 | LIFETIME@[50; 62) "\'empty_block" | 20 | LIFETIME@50..62 "\'empty_block" |
21 | COLON@[62; 63) ":" | 21 | COLON@62..63 ":" |
22 | WHITESPACE@[63; 64) " " | 22 | WHITESPACE@63..64 " " |
23 | BLOCK@[64; 66) | 23 | BLOCK@64..66 |
24 | L_CURLY@[64; 65) "{" | 24 | L_CURLY@64..65 "{" |
25 | R_CURLY@[65; 66) "}" | 25 | R_CURLY@65..66 "}" |
26 | WHITESPACE@[66; 72) "\n\n " | 26 | WHITESPACE@66..72 "\n\n " |
27 | EXPR_STMT@[72; 295) | 27 | EXPR_STMT@72..295 |
28 | BLOCK_EXPR@[72; 295) | 28 | BLOCK_EXPR@72..295 |
29 | LABEL@[72; 79) | 29 | LABEL@72..79 |
30 | LIFETIME@[72; 78) "\'block" | 30 | LIFETIME@72..78 "\'block" |
31 | COLON@[78; 79) ":" | 31 | COLON@78..79 ":" |
32 | WHITESPACE@[79; 80) " " | 32 | WHITESPACE@79..80 " " |
33 | BLOCK@[80; 295) | 33 | BLOCK@80..295 |
34 | L_CURLY@[80; 81) "{" | 34 | L_CURLY@80..81 "{" |
35 | WHITESPACE@[81; 90) "\n " | 35 | WHITESPACE@81..90 "\n " |
36 | EXPR_STMT@[90; 101) | 36 | EXPR_STMT@90..101 |
37 | CALL_EXPR@[90; 100) | 37 | CALL_EXPR@90..100 |
38 | PATH_EXPR@[90; 98) | 38 | PATH_EXPR@90..98 |
39 | PATH@[90; 98) | 39 | PATH@90..98 |
40 | PATH_SEGMENT@[90; 98) | 40 | PATH_SEGMENT@90..98 |
41 | NAME_REF@[90; 98) | 41 | NAME_REF@90..98 |
42 | IDENT@[90; 98) "do_thing" | 42 | IDENT@90..98 "do_thing" |
43 | ARG_LIST@[98; 100) | 43 | ARG_LIST@98..100 |
44 | L_PAREN@[98; 99) "(" | 44 | L_PAREN@98..99 "(" |
45 | R_PAREN@[99; 100) ")" | 45 | R_PAREN@99..100 ")" |
46 | SEMICOLON@[100; 101) ";" | 46 | SEMICOLON@100..101 ";" |
47 | WHITESPACE@[101; 110) "\n " | 47 | WHITESPACE@101..110 "\n " |
48 | EXPR_STMT@[110; 170) | 48 | EXPR_STMT@110..170 |
49 | IF_EXPR@[110; 170) | 49 | IF_EXPR@110..170 |
50 | IF_KW@[110; 112) "if" | 50 | IF_KW@110..112 "if" |
51 | WHITESPACE@[112; 113) " " | 51 | WHITESPACE@112..113 " " |
52 | CONDITION@[113; 132) | 52 | CONDITION@113..132 |
53 | CALL_EXPR@[113; 132) | 53 | CALL_EXPR@113..132 |
54 | PATH_EXPR@[113; 130) | 54 | PATH_EXPR@113..130 |
55 | PATH@[113; 130) | 55 | PATH@113..130 |
56 | PATH_SEGMENT@[113; 130) | 56 | PATH_SEGMENT@113..130 |
57 | NAME_REF@[113; 130) | 57 | NAME_REF@113..130 |
58 | IDENT@[113; 130) "condition_not_met" | 58 | IDENT@113..130 "condition_not_met" |
59 | ARG_LIST@[130; 132) | 59 | ARG_LIST@130..132 |
60 | L_PAREN@[130; 131) "(" | 60 | L_PAREN@130..131 "(" |
61 | R_PAREN@[131; 132) ")" | 61 | R_PAREN@131..132 ")" |
62 | WHITESPACE@[132; 133) " " | 62 | WHITESPACE@132..133 " " |
63 | BLOCK_EXPR@[133; 170) | 63 | BLOCK_EXPR@133..170 |
64 | BLOCK@[133; 170) | 64 | BLOCK@133..170 |
65 | L_CURLY@[133; 134) "{" | 65 | L_CURLY@133..134 "{" |
66 | WHITESPACE@[134; 147) "\n " | 66 | WHITESPACE@134..147 "\n " |
67 | EXPR_STMT@[147; 160) | 67 | EXPR_STMT@147..160 |
68 | BREAK_EXPR@[147; 159) | 68 | BREAK_EXPR@147..159 |
69 | BREAK_KW@[147; 152) "break" | 69 | BREAK_KW@147..152 "break" |
70 | WHITESPACE@[152; 153) " " | 70 | WHITESPACE@152..153 " " |
71 | LIFETIME@[153; 159) "\'block" | 71 | LIFETIME@153..159 "\'block" |
72 | SEMICOLON@[159; 160) ";" | 72 | SEMICOLON@159..160 ";" |
73 | WHITESPACE@[160; 169) "\n " | 73 | WHITESPACE@160..169 "\n " |
74 | R_CURLY@[169; 170) "}" | 74 | R_CURLY@169..170 "}" |
75 | WHITESPACE@[170; 179) "\n " | 75 | WHITESPACE@170..179 "\n " |
76 | EXPR_STMT@[179; 195) | 76 | EXPR_STMT@179..195 |
77 | CALL_EXPR@[179; 194) | 77 | CALL_EXPR@179..194 |
78 | PATH_EXPR@[179; 192) | 78 | PATH_EXPR@179..192 |
79 | PATH@[179; 192) | 79 | PATH@179..192 |
80 | PATH_SEGMENT@[179; 192) | 80 | PATH_SEGMENT@179..192 |
81 | NAME_REF@[179; 192) | 81 | NAME_REF@179..192 |
82 | IDENT@[179; 192) "do_next_thing" | 82 | IDENT@179..192 "do_next_thing" |
83 | ARG_LIST@[192; 194) | 83 | ARG_LIST@192..194 |
84 | L_PAREN@[192; 193) "(" | 84 | L_PAREN@192..193 "(" |
85 | R_PAREN@[193; 194) ")" | 85 | R_PAREN@193..194 ")" |
86 | SEMICOLON@[194; 195) ";" | 86 | SEMICOLON@194..195 ";" |
87 | WHITESPACE@[195; 204) "\n " | 87 | WHITESPACE@195..204 "\n " |
88 | EXPR_STMT@[204; 264) | 88 | EXPR_STMT@204..264 |
89 | IF_EXPR@[204; 264) | 89 | IF_EXPR@204..264 |
90 | IF_KW@[204; 206) "if" | 90 | IF_KW@204..206 "if" |
91 | WHITESPACE@[206; 207) " " | 91 | WHITESPACE@206..207 " " |
92 | CONDITION@[207; 226) | 92 | CONDITION@207..226 |
93 | CALL_EXPR@[207; 226) | 93 | CALL_EXPR@207..226 |
94 | PATH_EXPR@[207; 224) | 94 | PATH_EXPR@207..224 |
95 | PATH@[207; 224) | 95 | PATH@207..224 |
96 | PATH_SEGMENT@[207; 224) | 96 | PATH_SEGMENT@207..224 |
97 | NAME_REF@[207; 224) | 97 | NAME_REF@207..224 |
98 | IDENT@[207; 224) "condition_not_met" | 98 | IDENT@207..224 "condition_not_met" |
99 | ARG_LIST@[224; 226) | 99 | ARG_LIST@224..226 |
100 | L_PAREN@[224; 225) "(" | 100 | L_PAREN@224..225 "(" |
101 | R_PAREN@[225; 226) ")" | 101 | R_PAREN@225..226 ")" |
102 | WHITESPACE@[226; 227) " " | 102 | WHITESPACE@226..227 " " |
103 | BLOCK_EXPR@[227; 264) | 103 | BLOCK_EXPR@227..264 |
104 | BLOCK@[227; 264) | 104 | BLOCK@227..264 |
105 | L_CURLY@[227; 228) "{" | 105 | L_CURLY@227..228 "{" |
106 | WHITESPACE@[228; 241) "\n " | 106 | WHITESPACE@228..241 "\n " |
107 | EXPR_STMT@[241; 254) | 107 | EXPR_STMT@241..254 |
108 | BREAK_EXPR@[241; 253) | 108 | BREAK_EXPR@241..253 |
109 | BREAK_KW@[241; 246) "break" | 109 | BREAK_KW@241..246 "break" |
110 | WHITESPACE@[246; 247) " " | 110 | WHITESPACE@246..247 " " |
111 | LIFETIME@[247; 253) "\'block" | 111 | LIFETIME@247..253 "\'block" |
112 | SEMICOLON@[253; 254) ";" | 112 | SEMICOLON@253..254 ";" |
113 | WHITESPACE@[254; 263) "\n " | 113 | WHITESPACE@254..263 "\n " |
114 | R_CURLY@[263; 264) "}" | 114 | R_CURLY@263..264 "}" |
115 | WHITESPACE@[264; 273) "\n " | 115 | WHITESPACE@264..273 "\n " |
116 | EXPR_STMT@[273; 289) | 116 | EXPR_STMT@273..289 |
117 | CALL_EXPR@[273; 288) | 117 | CALL_EXPR@273..288 |
118 | PATH_EXPR@[273; 286) | 118 | PATH_EXPR@273..286 |
119 | PATH@[273; 286) | 119 | PATH@273..286 |
120 | PATH_SEGMENT@[273; 286) | 120 | PATH_SEGMENT@273..286 |
121 | NAME_REF@[273; 286) | 121 | NAME_REF@273..286 |
122 | IDENT@[273; 286) "do_last_thing" | 122 | IDENT@273..286 "do_last_thing" |
123 | ARG_LIST@[286; 288) | 123 | ARG_LIST@286..288 |
124 | L_PAREN@[286; 287) "(" | 124 | L_PAREN@286..287 "(" |
125 | R_PAREN@[287; 288) ")" | 125 | R_PAREN@287..288 ")" |
126 | SEMICOLON@[288; 289) ";" | 126 | SEMICOLON@288..289 ";" |
127 | WHITESPACE@[289; 294) "\n " | 127 | WHITESPACE@289..294 "\n " |
128 | R_CURLY@[294; 295) "}" | 128 | R_CURLY@294..295 "}" |
129 | WHITESPACE@[295; 301) "\n\n " | 129 | WHITESPACE@295..301 "\n\n " |
130 | LET_STMT@[301; 503) | 130 | LET_STMT@301..503 |
131 | LET_KW@[301; 304) "let" | 131 | LET_KW@301..304 "let" |
132 | WHITESPACE@[304; 305) " " | 132 | WHITESPACE@304..305 " " |
133 | BIND_PAT@[305; 311) | 133 | BIND_PAT@305..311 |
134 | NAME@[305; 311) | 134 | NAME@305..311 |
135 | IDENT@[305; 311) "result" | 135 | IDENT@305..311 "result" |
136 | WHITESPACE@[311; 312) " " | 136 | WHITESPACE@311..312 " " |
137 | EQ@[312; 313) "=" | 137 | EQ@312..313 "=" |
138 | WHITESPACE@[313; 314) " " | 138 | WHITESPACE@313..314 " " |
139 | BLOCK_EXPR@[314; 502) | 139 | BLOCK_EXPR@314..502 |
140 | LABEL@[314; 321) | 140 | LABEL@314..321 |
141 | LIFETIME@[314; 320) "\'block" | 141 | LIFETIME@314..320 "\'block" |
142 | COLON@[320; 321) ":" | 142 | COLON@320..321 ":" |
143 | WHITESPACE@[321; 322) " " | 143 | WHITESPACE@321..322 " " |
144 | BLOCK@[322; 502) | 144 | BLOCK@322..502 |
145 | L_CURLY@[322; 323) "{" | 145 | L_CURLY@322..323 "{" |
146 | WHITESPACE@[323; 332) "\n " | 146 | WHITESPACE@323..332 "\n " |
147 | EXPR_STMT@[332; 403) | 147 | EXPR_STMT@332..403 |
148 | IF_EXPR@[332; 403) | 148 | IF_EXPR@332..403 |
149 | IF_KW@[332; 334) "if" | 149 | IF_KW@332..334 "if" |
150 | WHITESPACE@[334; 335) " " | 150 | WHITESPACE@334..335 " " |
151 | CONDITION@[335; 340) | 151 | CONDITION@335..340 |
152 | CALL_EXPR@[335; 340) | 152 | CALL_EXPR@335..340 |
153 | PATH_EXPR@[335; 338) | 153 | PATH_EXPR@335..338 |
154 | PATH@[335; 338) | 154 | PATH@335..338 |
155 | PATH_SEGMENT@[335; 338) | 155 | PATH_SEGMENT@335..338 |
156 | NAME_REF@[335; 338) | 156 | NAME_REF@335..338 |
157 | IDENT@[335; 338) "foo" | 157 | IDENT@335..338 "foo" |
158 | ARG_LIST@[338; 340) | 158 | ARG_LIST@338..340 |
159 | L_PAREN@[338; 339) "(" | 159 | L_PAREN@338..339 "(" |
160 | R_PAREN@[339; 340) ")" | 160 | R_PAREN@339..340 ")" |
161 | WHITESPACE@[340; 341) " " | 161 | WHITESPACE@340..341 " " |
162 | BLOCK_EXPR@[341; 403) | 162 | BLOCK_EXPR@341..403 |
163 | BLOCK@[341; 403) | 163 | BLOCK@341..403 |
164 | L_CURLY@[341; 342) "{" | 164 | L_CURLY@341..342 "{" |
165 | WHITESPACE@[342; 355) "\n " | 165 | WHITESPACE@342..355 "\n " |
166 | COMMENT@[355; 365) "// comment" | 166 | COMMENT@355..365 "// comment" |
167 | WHITESPACE@[365; 378) "\n " | 167 | WHITESPACE@365..378 "\n " |
168 | EXPR_STMT@[378; 393) | 168 | EXPR_STMT@378..393 |
169 | BREAK_EXPR@[378; 392) | 169 | BREAK_EXPR@378..392 |
170 | BREAK_KW@[378; 383) "break" | 170 | BREAK_KW@378..383 "break" |
171 | WHITESPACE@[383; 384) " " | 171 | WHITESPACE@383..384 " " |
172 | LIFETIME@[384; 390) "\'block" | 172 | LIFETIME@384..390 "\'block" |
173 | WHITESPACE@[390; 391) " " | 173 | WHITESPACE@390..391 " " |
174 | LITERAL@[391; 392) | 174 | LITERAL@391..392 |
175 | INT_NUMBER@[391; 392) "1" | 175 | INT_NUMBER@391..392 "1" |
176 | SEMICOLON@[392; 393) ";" | 176 | SEMICOLON@392..393 ";" |
177 | WHITESPACE@[393; 402) "\n " | 177 | WHITESPACE@393..402 "\n " |
178 | R_CURLY@[402; 403) "}" | 178 | R_CURLY@402..403 "}" |
179 | WHITESPACE@[403; 412) "\n " | 179 | WHITESPACE@403..412 "\n " |
180 | EXPR_STMT@[412; 486) | 180 | EXPR_STMT@412..486 |
181 | IF_EXPR@[412; 486) | 181 | IF_EXPR@412..486 |
182 | IF_KW@[412; 414) "if" | 182 | IF_KW@412..414 "if" |
183 | WHITESPACE@[414; 415) " " | 183 | WHITESPACE@414..415 " " |
184 | CONDITION@[415; 420) | 184 | CONDITION@415..420 |
185 | CALL_EXPR@[415; 420) | 185 | CALL_EXPR@415..420 |
186 | PATH_EXPR@[415; 418) | 186 | PATH_EXPR@415..418 |
187 | PATH@[415; 418) | 187 | PATH@415..418 |
188 | PATH_SEGMENT@[415; 418) | 188 | PATH_SEGMENT@415..418 |
189 | NAME_REF@[415; 418) | 189 | NAME_REF@415..418 |
190 | IDENT@[415; 418) "bar" | 190 | IDENT@415..418 "bar" |
191 | ARG_LIST@[418; 420) | 191 | ARG_LIST@418..420 |
192 | L_PAREN@[418; 419) "(" | 192 | L_PAREN@418..419 "(" |
193 | R_PAREN@[419; 420) ")" | 193 | R_PAREN@419..420 ")" |
194 | WHITESPACE@[420; 421) " " | 194 | WHITESPACE@420..421 " " |
195 | BLOCK_EXPR@[421; 486) | 195 | BLOCK_EXPR@421..486 |
196 | BLOCK@[421; 486) | 196 | BLOCK@421..486 |
197 | L_CURLY@[421; 422) "{" | 197 | L_CURLY@421..422 "{" |
198 | WHITESPACE@[422; 435) "\n " | 198 | WHITESPACE@422..435 "\n " |
199 | COMMENT@[435; 448) "/* comment */" | 199 | COMMENT@435..448 "/* comment */" |
200 | WHITESPACE@[448; 461) "\n " | 200 | WHITESPACE@448..461 "\n " |
201 | EXPR_STMT@[461; 476) | 201 | EXPR_STMT@461..476 |
202 | BREAK_EXPR@[461; 475) | 202 | BREAK_EXPR@461..475 |
203 | BREAK_KW@[461; 466) "break" | 203 | BREAK_KW@461..466 "break" |
204 | WHITESPACE@[466; 467) " " | 204 | WHITESPACE@466..467 " " |
205 | LIFETIME@[467; 473) "\'block" | 205 | LIFETIME@467..473 "\'block" |
206 | WHITESPACE@[473; 474) " " | 206 | WHITESPACE@473..474 " " |
207 | LITERAL@[474; 475) | 207 | LITERAL@474..475 |
208 | INT_NUMBER@[474; 475) "2" | 208 | INT_NUMBER@474..475 "2" |
209 | SEMICOLON@[475; 476) ";" | 209 | SEMICOLON@475..476 ";" |
210 | WHITESPACE@[476; 485) "\n " | 210 | WHITESPACE@476..485 "\n " |
211 | R_CURLY@[485; 486) "}" | 211 | R_CURLY@485..486 "}" |
212 | WHITESPACE@[486; 495) "\n " | 212 | WHITESPACE@486..495 "\n " |
213 | LITERAL@[495; 496) | 213 | LITERAL@495..496 |
214 | INT_NUMBER@[495; 496) "3" | 214 | INT_NUMBER@495..496 "3" |
215 | WHITESPACE@[496; 501) "\n " | 215 | WHITESPACE@496..501 "\n " |
216 | R_CURLY@[501; 502) "}" | 216 | R_CURLY@501..502 "}" |
217 | SEMICOLON@[502; 503) ";" | 217 | SEMICOLON@502..503 ";" |
218 | WHITESPACE@[503; 504) "\n" | 218 | WHITESPACE@503..504 "\n" |
219 | R_CURLY@[504; 505) "}" | 219 | R_CURLY@504..505 "}" |
220 | WHITESPACE@[505; 506) "\n" | 220 | WHITESPACE@505..506 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast index beaa96388..3b9e8c71c 100644 --- a/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast +++ b/crates/ra_syntax/test_data/parser/ok/0034_crate_path_in_call.rast | |||
@@ -1,42 +1,42 @@ | |||
1 | SOURCE_FILE@[0; 62) | 1 | SOURCE_FILE@0..62 |
2 | FN_DEF@[0; 61) | 2 | FN_DEF@0..61 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 61) | 11 | BLOCK_EXPR@10..61 |
12 | BLOCK@[10; 61) | 12 | BLOCK@10..61 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 59) | 15 | EXPR_STMT@16..59 |
16 | CALL_EXPR@[16; 58) | 16 | CALL_EXPR@16..58 |
17 | PATH_EXPR@[16; 26) | 17 | PATH_EXPR@16..26 |
18 | PATH@[16; 26) | 18 | PATH@16..26 |
19 | PATH_SEGMENT@[16; 26) | 19 | PATH_SEGMENT@16..26 |
20 | NAME_REF@[16; 26) | 20 | NAME_REF@16..26 |
21 | IDENT@[16; 26) "make_query" | 21 | IDENT@16..26 "make_query" |
22 | ARG_LIST@[26; 58) | 22 | ARG_LIST@26..58 |
23 | L_PAREN@[26; 27) "(" | 23 | L_PAREN@26..27 "(" |
24 | PATH_EXPR@[27; 57) | 24 | PATH_EXPR@27..57 |
25 | PATH@[27; 57) | 25 | PATH@27..57 |
26 | PATH@[27; 44) | 26 | PATH@27..44 |
27 | PATH@[27; 32) | 27 | PATH@27..32 |
28 | PATH_SEGMENT@[27; 32) | 28 | PATH_SEGMENT@27..32 |
29 | CRATE_KW@[27; 32) "crate" | 29 | CRATE_KW@27..32 "crate" |
30 | COLON2@[32; 34) "::" | 30 | COLON2@32..34 "::" |
31 | PATH_SEGMENT@[34; 44) | 31 | PATH_SEGMENT@34..44 |
32 | NAME_REF@[34; 44) | 32 | NAME_REF@34..44 |
33 | IDENT@[34; 44) "module_map" | 33 | IDENT@34..44 "module_map" |
34 | COLON2@[44; 46) "::" | 34 | COLON2@44..46 "::" |
35 | PATH_SEGMENT@[46; 57) | 35 | PATH_SEGMENT@46..57 |
36 | NAME_REF@[46; 57) | 36 | NAME_REF@46..57 |
37 | IDENT@[46; 57) "module_tree" | 37 | IDENT@46..57 "module_tree" |
38 | R_PAREN@[57; 58) ")" | 38 | R_PAREN@57..58 ")" |
39 | SEMICOLON@[58; 59) ";" | 39 | SEMICOLON@58..59 ";" |
40 | WHITESPACE@[59; 60) "\n" | 40 | WHITESPACE@59..60 "\n" |
41 | R_CURLY@[60; 61) "}" | 41 | R_CURLY@60..61 "}" |
42 | WHITESPACE@[61; 62) "\n" | 42 | WHITESPACE@61..62 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast index 7143a31a5..9af689635 100644 --- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.rast | |||
@@ -1,2329 +1,2329 @@ | |||
1 | SOURCE_FILE@[0; 3813) | 1 | SOURCE_FILE@0..3813 |
2 | COMMENT@[0; 55) "//! Adapted from a `r ..." | 2 | COMMENT@0..55 "//! Adapted from a `r ..." |
3 | WHITESPACE@[55; 56) "\n" | 3 | WHITESPACE@55..56 "\n" |
4 | COMMENT@[56; 173) "//! https://github.co ..." | 4 | COMMENT@56..173 "//! https://github.co ..." |
5 | WHITESPACE@[173; 174) "\n" | 5 | WHITESPACE@173..174 "\n" |
6 | COMMENT@[174; 178) "//! " | 6 | COMMENT@174..178 "//! " |
7 | WHITESPACE@[178; 179) "\n" | 7 | WHITESPACE@178..179 "\n" |
8 | COMMENT@[179; 269) "//! Reported to rust- ..." | 8 | COMMENT@179..269 "//! Reported to rust- ..." |
9 | WHITESPACE@[269; 271) "\n\n" | 9 | WHITESPACE@269..271 "\n\n" |
10 | ATTR@[271; 302) | 10 | ATTR@271..302 |
11 | POUND@[271; 272) "#" | 11 | POUND@271..272 "#" |
12 | BANG@[272; 273) "!" | 12 | BANG@272..273 "!" |
13 | L_BRACK@[273; 274) "[" | 13 | L_BRACK@273..274 "[" |
14 | PATH@[274; 279) | 14 | PATH@274..279 |
15 | PATH_SEGMENT@[274; 279) | 15 | PATH_SEGMENT@274..279 |
16 | NAME_REF@[274; 279) | 16 | NAME_REF@274..279 |
17 | IDENT@[274; 279) "allow" | 17 | IDENT@274..279 "allow" |
18 | TOKEN_TREE@[279; 301) | 18 | TOKEN_TREE@279..301 |
19 | L_PAREN@[279; 280) "(" | 19 | L_PAREN@279..280 "(" |
20 | IDENT@[280; 300) "non_camel_case_types" | 20 | IDENT@280..300 "non_camel_case_types" |
21 | R_PAREN@[300; 301) ")" | 21 | R_PAREN@300..301 ")" |
22 | R_BRACK@[301; 302) "]" | 22 | R_BRACK@301..302 "]" |
23 | WHITESPACE@[302; 303) "\n" | 23 | WHITESPACE@302..303 "\n" |
24 | ATTR@[303; 323) | 24 | ATTR@303..323 |
25 | POUND@[303; 304) "#" | 25 | POUND@303..304 "#" |
26 | BANG@[304; 305) "!" | 26 | BANG@304..305 "!" |
27 | L_BRACK@[305; 306) "[" | 27 | L_BRACK@305..306 "[" |
28 | PATH@[306; 311) | 28 | PATH@306..311 |
29 | PATH_SEGMENT@[306; 311) | 29 | PATH_SEGMENT@306..311 |
30 | NAME_REF@[306; 311) | 30 | NAME_REF@306..311 |
31 | IDENT@[306; 311) "allow" | 31 | IDENT@306..311 "allow" |
32 | TOKEN_TREE@[311; 322) | 32 | TOKEN_TREE@311..322 |
33 | L_PAREN@[311; 312) "(" | 33 | L_PAREN@311..312 "(" |
34 | IDENT@[312; 321) "dead_code" | 34 | IDENT@312..321 "dead_code" |
35 | R_PAREN@[321; 322) ")" | 35 | R_PAREN@321..322 ")" |
36 | R_BRACK@[322; 323) "]" | 36 | R_BRACK@322..323 "]" |
37 | WHITESPACE@[323; 324) "\n" | 37 | WHITESPACE@323..324 "\n" |
38 | ATTR@[324; 351) | 38 | ATTR@324..351 |
39 | POUND@[324; 325) "#" | 39 | POUND@324..325 "#" |
40 | BANG@[325; 326) "!" | 40 | BANG@325..326 "!" |
41 | L_BRACK@[326; 327) "[" | 41 | L_BRACK@326..327 "[" |
42 | PATH@[327; 332) | 42 | PATH@327..332 |
43 | PATH_SEGMENT@[327; 332) | 43 | PATH_SEGMENT@327..332 |
44 | NAME_REF@[327; 332) | 44 | NAME_REF@327..332 |
45 | IDENT@[327; 332) "allow" | 45 | IDENT@327..332 "allow" |
46 | TOKEN_TREE@[332; 350) | 46 | TOKEN_TREE@332..350 |
47 | L_PAREN@[332; 333) "(" | 47 | L_PAREN@332..333 "(" |
48 | IDENT@[333; 349) "unreachable_code" | 48 | IDENT@333..349 "unreachable_code" |
49 | R_PAREN@[349; 350) ")" | 49 | R_PAREN@349..350 ")" |
50 | R_BRACK@[350; 351) "]" | 50 | R_BRACK@350..351 "]" |
51 | WHITESPACE@[351; 352) "\n" | 51 | WHITESPACE@351..352 "\n" |
52 | ATTR@[352; 376) | 52 | ATTR@352..376 |
53 | POUND@[352; 353) "#" | 53 | POUND@352..353 "#" |
54 | BANG@[353; 354) "!" | 54 | BANG@353..354 "!" |
55 | L_BRACK@[354; 355) "[" | 55 | L_BRACK@354..355 "[" |
56 | PATH@[355; 360) | 56 | PATH@355..360 |
57 | PATH_SEGMENT@[355; 360) | 57 | PATH_SEGMENT@355..360 |
58 | NAME_REF@[355; 360) | 58 | NAME_REF@355..360 |
59 | IDENT@[355; 360) "allow" | 59 | IDENT@355..360 "allow" |
60 | TOKEN_TREE@[360; 375) | 60 | TOKEN_TREE@360..375 |
61 | L_PAREN@[360; 361) "(" | 61 | L_PAREN@360..361 "(" |
62 | IDENT@[361; 374) "unused_parens" | 62 | IDENT@361..374 "unused_parens" |
63 | R_PAREN@[374; 375) ")" | 63 | R_PAREN@374..375 ")" |
64 | R_BRACK@[375; 376) "]" | 64 | R_BRACK@375..376 "]" |
65 | WHITESPACE@[376; 378) "\n\n" | 65 | WHITESPACE@376..378 "\n\n" |
66 | ATTR@[378; 405) | 66 | ATTR@378..405 |
67 | POUND@[378; 379) "#" | 67 | POUND@378..379 "#" |
68 | BANG@[379; 380) "!" | 68 | BANG@379..380 "!" |
69 | L_BRACK@[380; 381) "[" | 69 | L_BRACK@380..381 "[" |
70 | PATH@[381; 396) | 70 | PATH@381..396 |
71 | PATH_SEGMENT@[381; 396) | 71 | PATH_SEGMENT@381..396 |
72 | NAME_REF@[381; 396) | 72 | NAME_REF@381..396 |
73 | IDENT@[381; 396) "recursion_limit" | 73 | IDENT@381..396 "recursion_limit" |
74 | WHITESPACE@[396; 397) " " | 74 | WHITESPACE@396..397 " " |
75 | EQ@[397; 398) "=" | 75 | EQ@397..398 "=" |
76 | WHITESPACE@[398; 399) " " | 76 | WHITESPACE@398..399 " " |
77 | LITERAL@[399; 404) | 77 | LITERAL@399..404 |
78 | STRING@[399; 404) "\"128\"" | 78 | STRING@399..404 "\"128\"" |
79 | R_BRACK@[404; 405) "]" | 79 | R_BRACK@404..405 "]" |
80 | WHITESPACE@[405; 407) "\n\n" | 80 | WHITESPACE@405..407 "\n\n" |
81 | USE_ITEM@[407; 427) | 81 | USE_ITEM@407..427 |
82 | USE_KW@[407; 410) "use" | 82 | USE_KW@407..410 "use" |
83 | WHITESPACE@[410; 411) " " | 83 | WHITESPACE@410..411 " " |
84 | USE_TREE@[411; 426) | 84 | USE_TREE@411..426 |
85 | PATH@[411; 426) | 85 | PATH@411..426 |
86 | PATH@[411; 420) | 86 | PATH@411..420 |
87 | PATH@[411; 414) | 87 | PATH@411..414 |
88 | PATH_SEGMENT@[411; 414) | 88 | PATH_SEGMENT@411..414 |
89 | NAME_REF@[411; 414) | 89 | NAME_REF@411..414 |
90 | IDENT@[411; 414) "std" | 90 | IDENT@411..414 "std" |
91 | COLON2@[414; 416) "::" | 91 | COLON2@414..416 "::" |
92 | PATH_SEGMENT@[416; 420) | 92 | PATH_SEGMENT@416..420 |
93 | NAME_REF@[416; 420) | 93 | NAME_REF@416..420 |
94 | IDENT@[416; 420) "cell" | 94 | IDENT@416..420 "cell" |
95 | COLON2@[420; 422) "::" | 95 | COLON2@420..422 "::" |
96 | PATH_SEGMENT@[422; 426) | 96 | PATH_SEGMENT@422..426 |
97 | NAME_REF@[422; 426) | 97 | NAME_REF@422..426 |
98 | IDENT@[422; 426) "Cell" | 98 | IDENT@422..426 "Cell" |
99 | SEMICOLON@[426; 427) ";" | 99 | SEMICOLON@426..427 ";" |
100 | WHITESPACE@[427; 428) "\n" | 100 | WHITESPACE@427..428 "\n" |
101 | USE_ITEM@[428; 447) | 101 | USE_ITEM@428..447 |
102 | USE_KW@[428; 431) "use" | 102 | USE_KW@428..431 "use" |
103 | WHITESPACE@[431; 432) " " | 103 | WHITESPACE@431..432 " " |
104 | USE_TREE@[432; 446) | 104 | USE_TREE@432..446 |
105 | PATH@[432; 446) | 105 | PATH@432..446 |
106 | PATH@[432; 440) | 106 | PATH@432..440 |
107 | PATH@[432; 435) | 107 | PATH@432..435 |
108 | PATH_SEGMENT@[432; 435) | 108 | PATH_SEGMENT@432..435 |
109 | NAME_REF@[432; 435) | 109 | NAME_REF@432..435 |
110 | IDENT@[432; 435) "std" | 110 | IDENT@432..435 "std" |
111 | COLON2@[435; 437) "::" | 111 | COLON2@435..437 "::" |
112 | PATH_SEGMENT@[437; 440) | 112 | PATH_SEGMENT@437..440 |
113 | NAME_REF@[437; 440) | 113 | NAME_REF@437..440 |
114 | IDENT@[437; 440) "mem" | 114 | IDENT@437..440 "mem" |
115 | COLON2@[440; 442) "::" | 115 | COLON2@440..442 "::" |
116 | PATH_SEGMENT@[442; 446) | 116 | PATH_SEGMENT@442..446 |
117 | NAME_REF@[442; 446) | 117 | NAME_REF@442..446 |
118 | IDENT@[442; 446) "swap" | 118 | IDENT@442..446 "swap" |
119 | SEMICOLON@[446; 447) ";" | 119 | SEMICOLON@446..447 ";" |
120 | WHITESPACE@[447; 449) "\n\n" | 120 | WHITESPACE@447..449 "\n\n" |
121 | COMMENT@[449; 518) "// Just a grab bag of ..." | 121 | COMMENT@449..518 "// Just a grab bag of ..." |
122 | WHITESPACE@[518; 520) "\n\n" | 122 | WHITESPACE@518..520 "\n\n" |
123 | FN_DEF@[520; 572) | 123 | FN_DEF@520..572 |
124 | FN_KW@[520; 522) "fn" | 124 | FN_KW@520..522 "fn" |
125 | WHITESPACE@[522; 523) " " | 125 | WHITESPACE@522..523 " " |
126 | NAME@[523; 530) | 126 | NAME@523..530 |
127 | IDENT@[523; 530) "strange" | 127 | IDENT@523..530 "strange" |
128 | PARAM_LIST@[530; 532) | 128 | PARAM_LIST@530..532 |
129 | L_PAREN@[530; 531) "(" | 129 | L_PAREN@530..531 "(" |
130 | R_PAREN@[531; 532) ")" | 130 | R_PAREN@531..532 ")" |
131 | WHITESPACE@[532; 533) " " | 131 | WHITESPACE@532..533 " " |
132 | RET_TYPE@[533; 540) | 132 | RET_TYPE@533..540 |
133 | THIN_ARROW@[533; 535) "->" | 133 | THIN_ARROW@533..535 "->" |
134 | WHITESPACE@[535; 536) " " | 134 | WHITESPACE@535..536 " " |
135 | PATH_TYPE@[536; 540) | 135 | PATH_TYPE@536..540 |
136 | PATH@[536; 540) | 136 | PATH@536..540 |
137 | PATH_SEGMENT@[536; 540) | 137 | PATH_SEGMENT@536..540 |
138 | NAME_REF@[536; 540) | 138 | NAME_REF@536..540 |
139 | IDENT@[536; 540) "bool" | 139 | IDENT@536..540 "bool" |
140 | WHITESPACE@[540; 541) " " | 140 | WHITESPACE@540..541 " " |
141 | BLOCK_EXPR@[541; 572) | 141 | BLOCK_EXPR@541..572 |
142 | BLOCK@[541; 572) | 142 | BLOCK@541..572 |
143 | L_CURLY@[541; 542) "{" | 143 | L_CURLY@541..542 "{" |
144 | WHITESPACE@[542; 543) " " | 144 | WHITESPACE@542..543 " " |
145 | LET_STMT@[543; 570) | 145 | LET_STMT@543..570 |
146 | LET_KW@[543; 546) "let" | 146 | LET_KW@543..546 "let" |
147 | WHITESPACE@[546; 547) " " | 147 | WHITESPACE@546..547 " " |
148 | BIND_PAT@[547; 549) | 148 | BIND_PAT@547..549 |
149 | NAME@[547; 549) | 149 | NAME@547..549 |
150 | IDENT@[547; 549) "_x" | 150 | IDENT@547..549 "_x" |
151 | COLON@[549; 550) ":" | 151 | COLON@549..550 ":" |
152 | WHITESPACE@[550; 551) " " | 152 | WHITESPACE@550..551 " " |
153 | PATH_TYPE@[551; 555) | 153 | PATH_TYPE@551..555 |
154 | PATH@[551; 555) | 154 | PATH@551..555 |
155 | PATH_SEGMENT@[551; 555) | 155 | PATH_SEGMENT@551..555 |
156 | NAME_REF@[551; 555) | 156 | NAME_REF@551..555 |
157 | IDENT@[551; 555) "bool" | 157 | IDENT@551..555 "bool" |
158 | WHITESPACE@[555; 556) " " | 158 | WHITESPACE@555..556 " " |
159 | EQ@[556; 557) "=" | 159 | EQ@556..557 "=" |
160 | WHITESPACE@[557; 558) " " | 160 | WHITESPACE@557..558 " " |
161 | RETURN_EXPR@[558; 569) | 161 | RETURN_EXPR@558..569 |
162 | RETURN_KW@[558; 564) "return" | 162 | RETURN_KW@558..564 "return" |
163 | WHITESPACE@[564; 565) " " | 163 | WHITESPACE@564..565 " " |
164 | LITERAL@[565; 569) | 164 | LITERAL@565..569 |
165 | TRUE_KW@[565; 569) "true" | 165 | TRUE_KW@565..569 "true" |
166 | SEMICOLON@[569; 570) ";" | 166 | SEMICOLON@569..570 ";" |
167 | WHITESPACE@[570; 571) " " | 167 | WHITESPACE@570..571 " " |
168 | R_CURLY@[571; 572) "}" | 168 | R_CURLY@571..572 "}" |
169 | WHITESPACE@[572; 574) "\n\n" | 169 | WHITESPACE@572..574 "\n\n" |
170 | FN_DEF@[574; 624) | 170 | FN_DEF@574..624 |
171 | FN_KW@[574; 576) "fn" | 171 | FN_KW@574..576 "fn" |
172 | WHITESPACE@[576; 577) " " | 172 | WHITESPACE@576..577 " " |
173 | NAME@[577; 582) | 173 | NAME@577..582 |
174 | IDENT@[577; 582) "funny" | 174 | IDENT@577..582 "funny" |
175 | PARAM_LIST@[582; 584) | 175 | PARAM_LIST@582..584 |
176 | L_PAREN@[582; 583) "(" | 176 | L_PAREN@582..583 "(" |
177 | R_PAREN@[583; 584) ")" | 177 | R_PAREN@583..584 ")" |
178 | WHITESPACE@[584; 585) " " | 178 | WHITESPACE@584..585 " " |
179 | BLOCK_EXPR@[585; 624) | 179 | BLOCK_EXPR@585..624 |
180 | BLOCK@[585; 624) | 180 | BLOCK@585..624 |
181 | L_CURLY@[585; 586) "{" | 181 | L_CURLY@585..586 "{" |
182 | WHITESPACE@[586; 591) "\n " | 182 | WHITESPACE@586..591 "\n " |
183 | FN_DEF@[591; 607) | 183 | FN_DEF@591..607 |
184 | FN_KW@[591; 593) "fn" | 184 | FN_KW@591..593 "fn" |
185 | WHITESPACE@[593; 594) " " | 185 | WHITESPACE@593..594 " " |
186 | NAME@[594; 595) | 186 | NAME@594..595 |
187 | IDENT@[594; 595) "f" | 187 | IDENT@594..595 "f" |
188 | PARAM_LIST@[595; 603) | 188 | PARAM_LIST@595..603 |
189 | L_PAREN@[595; 596) "(" | 189 | L_PAREN@595..596 "(" |
190 | PARAM@[596; 602) | 190 | PARAM@596..602 |
191 | BIND_PAT@[596; 598) | 191 | BIND_PAT@596..598 |
192 | NAME@[596; 598) | 192 | NAME@596..598 |
193 | IDENT@[596; 598) "_x" | 193 | IDENT@596..598 "_x" |
194 | COLON@[598; 599) ":" | 194 | COLON@598..599 ":" |
195 | WHITESPACE@[599; 600) " " | 195 | WHITESPACE@599..600 " " |
196 | TUPLE_TYPE@[600; 602) | 196 | TUPLE_TYPE@600..602 |
197 | L_PAREN@[600; 601) "(" | 197 | L_PAREN@600..601 "(" |
198 | R_PAREN@[601; 602) ")" | 198 | R_PAREN@601..602 ")" |
199 | R_PAREN@[602; 603) ")" | 199 | R_PAREN@602..603 ")" |
200 | WHITESPACE@[603; 604) " " | 200 | WHITESPACE@603..604 " " |
201 | BLOCK_EXPR@[604; 607) | 201 | BLOCK_EXPR@604..607 |
202 | BLOCK@[604; 607) | 202 | BLOCK@604..607 |
203 | L_CURLY@[604; 605) "{" | 203 | L_CURLY@604..605 "{" |
204 | WHITESPACE@[605; 606) " " | 204 | WHITESPACE@605..606 " " |
205 | R_CURLY@[606; 607) "}" | 205 | R_CURLY@606..607 "}" |
206 | WHITESPACE@[607; 612) "\n " | 206 | WHITESPACE@607..612 "\n " |
207 | EXPR_STMT@[612; 622) | 207 | EXPR_STMT@612..622 |
208 | CALL_EXPR@[612; 621) | 208 | CALL_EXPR@612..621 |
209 | PATH_EXPR@[612; 613) | 209 | PATH_EXPR@612..613 |
210 | PATH@[612; 613) | 210 | PATH@612..613 |
211 | PATH_SEGMENT@[612; 613) | 211 | PATH_SEGMENT@612..613 |
212 | NAME_REF@[612; 613) | 212 | NAME_REF@612..613 |
213 | IDENT@[612; 613) "f" | 213 | IDENT@612..613 "f" |
214 | ARG_LIST@[613; 621) | 214 | ARG_LIST@613..621 |
215 | L_PAREN@[613; 614) "(" | 215 | L_PAREN@613..614 "(" |
216 | RETURN_EXPR@[614; 620) | 216 | RETURN_EXPR@614..620 |
217 | RETURN_KW@[614; 620) "return" | 217 | RETURN_KW@614..620 "return" |
218 | R_PAREN@[620; 621) ")" | 218 | R_PAREN@620..621 ")" |
219 | SEMICOLON@[621; 622) ";" | 219 | SEMICOLON@621..622 ";" |
220 | WHITESPACE@[622; 623) "\n" | 220 | WHITESPACE@622..623 "\n" |
221 | R_CURLY@[623; 624) "}" | 221 | R_CURLY@623..624 "}" |
222 | WHITESPACE@[624; 626) "\n\n" | 222 | WHITESPACE@624..626 "\n\n" |
223 | FN_DEF@[626; 816) | 223 | FN_DEF@626..816 |
224 | FN_KW@[626; 628) "fn" | 224 | FN_KW@626..628 "fn" |
225 | WHITESPACE@[628; 629) " " | 225 | WHITESPACE@628..629 " " |
226 | NAME@[629; 633) | 226 | NAME@629..633 |
227 | IDENT@[629; 633) "what" | 227 | IDENT@629..633 "what" |
228 | PARAM_LIST@[633; 635) | 228 | PARAM_LIST@633..635 |
229 | L_PAREN@[633; 634) "(" | 229 | L_PAREN@633..634 "(" |
230 | R_PAREN@[634; 635) ")" | 230 | R_PAREN@634..635 ")" |
231 | WHITESPACE@[635; 636) " " | 231 | WHITESPACE@635..636 " " |
232 | BLOCK_EXPR@[636; 816) | 232 | BLOCK_EXPR@636..816 |
233 | BLOCK@[636; 816) | 233 | BLOCK@636..816 |
234 | L_CURLY@[636; 637) "{" | 234 | L_CURLY@636..637 "{" |
235 | WHITESPACE@[637; 642) "\n " | 235 | WHITESPACE@637..642 "\n " |
236 | FN_DEF@[642; 720) | 236 | FN_DEF@642..720 |
237 | FN_KW@[642; 644) "fn" | 237 | FN_KW@642..644 "fn" |
238 | WHITESPACE@[644; 645) " " | 238 | WHITESPACE@644..645 " " |
239 | NAME@[645; 648) | 239 | NAME@645..648 |
240 | IDENT@[645; 648) "the" | 240 | IDENT@645..648 "the" |
241 | PARAM_LIST@[648; 664) | 241 | PARAM_LIST@648..664 |
242 | L_PAREN@[648; 649) "(" | 242 | L_PAREN@648..649 "(" |
243 | PARAM@[649; 663) | 243 | PARAM@649..663 |
244 | BIND_PAT@[649; 650) | 244 | BIND_PAT@649..650 |
245 | NAME@[649; 650) | 245 | NAME@649..650 |
246 | IDENT@[649; 650) "x" | 246 | IDENT@649..650 "x" |
247 | COLON@[650; 651) ":" | 247 | COLON@650..651 ":" |
248 | WHITESPACE@[651; 652) " " | 248 | WHITESPACE@651..652 " " |
249 | REFERENCE_TYPE@[652; 663) | 249 | REFERENCE_TYPE@652..663 |
250 | AMP@[652; 653) "&" | 250 | AMP@652..653 "&" |
251 | PATH_TYPE@[653; 663) | 251 | PATH_TYPE@653..663 |
252 | PATH@[653; 663) | 252 | PATH@653..663 |
253 | PATH_SEGMENT@[653; 663) | 253 | PATH_SEGMENT@653..663 |
254 | NAME_REF@[653; 657) | 254 | NAME_REF@653..657 |
255 | IDENT@[653; 657) "Cell" | 255 | IDENT@653..657 "Cell" |
256 | TYPE_ARG_LIST@[657; 663) | 256 | TYPE_ARG_LIST@657..663 |
257 | L_ANGLE@[657; 658) "<" | 257 | L_ANGLE@657..658 "<" |
258 | TYPE_ARG@[658; 662) | 258 | TYPE_ARG@658..662 |
259 | PATH_TYPE@[658; 662) | 259 | PATH_TYPE@658..662 |
260 | PATH@[658; 662) | 260 | PATH@658..662 |
261 | PATH_SEGMENT@[658; 662) | 261 | PATH_SEGMENT@658..662 |
262 | NAME_REF@[658; 662) | 262 | NAME_REF@658..662 |
263 | IDENT@[658; 662) "bool" | 263 | IDENT@658..662 "bool" |
264 | R_ANGLE@[662; 663) ">" | 264 | R_ANGLE@662..663 ">" |
265 | R_PAREN@[663; 664) ")" | 265 | R_PAREN@663..664 ")" |
266 | WHITESPACE@[664; 665) " " | 266 | WHITESPACE@664..665 " " |
267 | BLOCK_EXPR@[665; 720) | 267 | BLOCK_EXPR@665..720 |
268 | BLOCK@[665; 720) | 268 | BLOCK@665..720 |
269 | L_CURLY@[665; 666) "{" | 269 | L_CURLY@665..666 "{" |
270 | WHITESPACE@[666; 675) "\n " | 270 | WHITESPACE@666..675 "\n " |
271 | EXPR_STMT@[675; 714) | 271 | EXPR_STMT@675..714 |
272 | RETURN_EXPR@[675; 713) | 272 | RETURN_EXPR@675..713 |
273 | RETURN_KW@[675; 681) "return" | 273 | RETURN_KW@675..681 "return" |
274 | WHITESPACE@[681; 682) " " | 274 | WHITESPACE@681..682 " " |
275 | WHILE_EXPR@[682; 713) | 275 | WHILE_EXPR@682..713 |
276 | WHILE_KW@[682; 687) "while" | 276 | WHILE_KW@682..687 "while" |
277 | WHITESPACE@[687; 688) " " | 277 | WHITESPACE@687..688 " " |
278 | CONDITION@[688; 696) | 278 | CONDITION@688..696 |
279 | PREFIX_EXPR@[688; 696) | 279 | PREFIX_EXPR@688..696 |
280 | BANG@[688; 689) "!" | 280 | BANG@688..689 "!" |
281 | METHOD_CALL_EXPR@[689; 696) | 281 | METHOD_CALL_EXPR@689..696 |
282 | PATH_EXPR@[689; 690) | 282 | PATH_EXPR@689..690 |
283 | PATH@[689; 690) | 283 | PATH@689..690 |
284 | PATH_SEGMENT@[689; 690) | 284 | PATH_SEGMENT@689..690 |
285 | NAME_REF@[689; 690) | 285 | NAME_REF@689..690 |
286 | IDENT@[689; 690) "x" | 286 | IDENT@689..690 "x" |
287 | DOT@[690; 691) "." | 287 | DOT@690..691 "." |
288 | NAME_REF@[691; 694) | 288 | NAME_REF@691..694 |
289 | IDENT@[691; 694) "get" | 289 | IDENT@691..694 "get" |
290 | ARG_LIST@[694; 696) | 290 | ARG_LIST@694..696 |
291 | L_PAREN@[694; 695) "(" | 291 | L_PAREN@694..695 "(" |
292 | R_PAREN@[695; 696) ")" | 292 | R_PAREN@695..696 ")" |
293 | WHITESPACE@[696; 697) " " | 293 | WHITESPACE@696..697 " " |
294 | BLOCK_EXPR@[697; 713) | 294 | BLOCK_EXPR@697..713 |
295 | BLOCK@[697; 713) | 295 | BLOCK@697..713 |
296 | L_CURLY@[697; 698) "{" | 296 | L_CURLY@697..698 "{" |
297 | WHITESPACE@[698; 699) " " | 297 | WHITESPACE@698..699 " " |
298 | EXPR_STMT@[699; 711) | 298 | EXPR_STMT@699..711 |
299 | METHOD_CALL_EXPR@[699; 710) | 299 | METHOD_CALL_EXPR@699..710 |
300 | PATH_EXPR@[699; 700) | 300 | PATH_EXPR@699..700 |
301 | PATH@[699; 700) | 301 | PATH@699..700 |
302 | PATH_SEGMENT@[699; 700) | 302 | PATH_SEGMENT@699..700 |
303 | NAME_REF@[699; 700) | 303 | NAME_REF@699..700 |
304 | IDENT@[699; 700) "x" | 304 | IDENT@699..700 "x" |
305 | DOT@[700; 701) "." | 305 | DOT@700..701 "." |
306 | NAME_REF@[701; 704) | 306 | NAME_REF@701..704 |
307 | IDENT@[701; 704) "set" | 307 | IDENT@701..704 "set" |
308 | ARG_LIST@[704; 710) | 308 | ARG_LIST@704..710 |
309 | L_PAREN@[704; 705) "(" | 309 | L_PAREN@704..705 "(" |
310 | LITERAL@[705; 709) | 310 | LITERAL@705..709 |
311 | TRUE_KW@[705; 709) "true" | 311 | TRUE_KW@705..709 "true" |
312 | R_PAREN@[709; 710) ")" | 312 | R_PAREN@709..710 ")" |
313 | SEMICOLON@[710; 711) ";" | 313 | SEMICOLON@710..711 ";" |
314 | WHITESPACE@[711; 712) " " | 314 | WHITESPACE@711..712 " " |
315 | R_CURLY@[712; 713) "}" | 315 | R_CURLY@712..713 "}" |
316 | SEMICOLON@[713; 714) ";" | 316 | SEMICOLON@713..714 ";" |
317 | WHITESPACE@[714; 719) "\n " | 317 | WHITESPACE@714..719 "\n " |
318 | R_CURLY@[719; 720) "}" | 318 | R_CURLY@719..720 "}" |
319 | WHITESPACE@[720; 725) "\n " | 319 | WHITESPACE@720..725 "\n " |
320 | LET_STMT@[725; 751) | 320 | LET_STMT@725..751 |
321 | LET_KW@[725; 728) "let" | 321 | LET_KW@725..728 "let" |
322 | WHITESPACE@[728; 729) " " | 322 | WHITESPACE@728..729 " " |
323 | BIND_PAT@[729; 730) | 323 | BIND_PAT@729..730 |
324 | NAME@[729; 730) | 324 | NAME@729..730 |
325 | IDENT@[729; 730) "i" | 325 | IDENT@729..730 "i" |
326 | WHITESPACE@[730; 731) " " | 326 | WHITESPACE@730..731 " " |
327 | EQ@[731; 732) "=" | 327 | EQ@731..732 "=" |
328 | WHITESPACE@[732; 733) " " | 328 | WHITESPACE@732..733 " " |
329 | REF_EXPR@[733; 750) | 329 | REF_EXPR@733..750 |
330 | AMP@[733; 734) "&" | 330 | AMP@733..734 "&" |
331 | CALL_EXPR@[734; 750) | 331 | CALL_EXPR@734..750 |
332 | PATH_EXPR@[734; 743) | 332 | PATH_EXPR@734..743 |
333 | PATH@[734; 743) | 333 | PATH@734..743 |
334 | PATH@[734; 738) | 334 | PATH@734..738 |
335 | PATH_SEGMENT@[734; 738) | 335 | PATH_SEGMENT@734..738 |
336 | NAME_REF@[734; 738) | 336 | NAME_REF@734..738 |
337 | IDENT@[734; 738) "Cell" | 337 | IDENT@734..738 "Cell" |
338 | COLON2@[738; 740) "::" | 338 | COLON2@738..740 "::" |
339 | PATH_SEGMENT@[740; 743) | 339 | PATH_SEGMENT@740..743 |
340 | NAME_REF@[740; 743) | 340 | NAME_REF@740..743 |
341 | IDENT@[740; 743) "new" | 341 | IDENT@740..743 "new" |
342 | ARG_LIST@[743; 750) | 342 | ARG_LIST@743..750 |
343 | L_PAREN@[743; 744) "(" | 343 | L_PAREN@743..744 "(" |
344 | LITERAL@[744; 749) | 344 | LITERAL@744..749 |
345 | FALSE_KW@[744; 749) "false" | 345 | FALSE_KW@744..749 "false" |
346 | R_PAREN@[749; 750) ")" | 346 | R_PAREN@749..750 ")" |
347 | SEMICOLON@[750; 751) ";" | 347 | SEMICOLON@750..751 ";" |
348 | WHITESPACE@[751; 756) "\n " | 348 | WHITESPACE@751..756 "\n " |
349 | LET_STMT@[756; 778) | 349 | LET_STMT@756..778 |
350 | LET_KW@[756; 759) "let" | 350 | LET_KW@756..759 "let" |
351 | WHITESPACE@[759; 760) " " | 351 | WHITESPACE@759..760 " " |
352 | BIND_PAT@[760; 764) | 352 | BIND_PAT@760..764 |
353 | NAME@[760; 764) | 353 | NAME@760..764 |
354 | IDENT@[760; 764) "dont" | 354 | IDENT@760..764 "dont" |
355 | WHITESPACE@[764; 765) " " | 355 | WHITESPACE@764..765 " " |
356 | EQ@[765; 766) "=" | 356 | EQ@765..766 "=" |
357 | WHITESPACE@[766; 767) " " | 357 | WHITESPACE@766..767 " " |
358 | BLOCK_EXPR@[767; 777) | 358 | BLOCK_EXPR@767..777 |
359 | BLOCK@[767; 777) | 359 | BLOCK@767..777 |
360 | L_CURLY@[767; 768) "{" | 360 | L_CURLY@767..768 "{" |
361 | LAMBDA_EXPR@[768; 776) | 361 | LAMBDA_EXPR@768..776 |
362 | PARAM_LIST@[768; 770) | 362 | PARAM_LIST@768..770 |
363 | PIPE@[768; 769) "|" | 363 | PIPE@768..769 "|" |
364 | PIPE@[769; 770) "|" | 364 | PIPE@769..770 "|" |
365 | CALL_EXPR@[770; 776) | 365 | CALL_EXPR@770..776 |
366 | PATH_EXPR@[770; 773) | 366 | PATH_EXPR@770..773 |
367 | PATH@[770; 773) | 367 | PATH@770..773 |
368 | PATH_SEGMENT@[770; 773) | 368 | PATH_SEGMENT@770..773 |
369 | NAME_REF@[770; 773) | 369 | NAME_REF@770..773 |
370 | IDENT@[770; 773) "the" | 370 | IDENT@770..773 "the" |
371 | ARG_LIST@[773; 776) | 371 | ARG_LIST@773..776 |
372 | L_PAREN@[773; 774) "(" | 372 | L_PAREN@773..774 "(" |
373 | PATH_EXPR@[774; 775) | 373 | PATH_EXPR@774..775 |
374 | PATH@[774; 775) | 374 | PATH@774..775 |
375 | PATH_SEGMENT@[774; 775) | 375 | PATH_SEGMENT@774..775 |
376 | NAME_REF@[774; 775) | 376 | NAME_REF@774..775 |
377 | IDENT@[774; 775) "i" | 377 | IDENT@774..775 "i" |
378 | R_PAREN@[775; 776) ")" | 378 | R_PAREN@775..776 ")" |
379 | R_CURLY@[776; 777) "}" | 379 | R_CURLY@776..777 "}" |
380 | SEMICOLON@[777; 778) ";" | 380 | SEMICOLON@777..778 ";" |
381 | WHITESPACE@[778; 783) "\n " | 381 | WHITESPACE@778..783 "\n " |
382 | EXPR_STMT@[783; 790) | 382 | EXPR_STMT@783..790 |
383 | CALL_EXPR@[783; 789) | 383 | CALL_EXPR@783..789 |
384 | PATH_EXPR@[783; 787) | 384 | PATH_EXPR@783..787 |
385 | PATH@[783; 787) | 385 | PATH@783..787 |
386 | PATH_SEGMENT@[783; 787) | 386 | PATH_SEGMENT@783..787 |
387 | NAME_REF@[783; 787) | 387 | NAME_REF@783..787 |
388 | IDENT@[783; 787) "dont" | 388 | IDENT@783..787 "dont" |
389 | ARG_LIST@[787; 789) | 389 | ARG_LIST@787..789 |
390 | L_PAREN@[787; 788) "(" | 390 | L_PAREN@787..788 "(" |
391 | R_PAREN@[788; 789) ")" | 391 | R_PAREN@788..789 ")" |
392 | SEMICOLON@[789; 790) ";" | 392 | SEMICOLON@789..790 ";" |
393 | WHITESPACE@[790; 795) "\n " | 393 | WHITESPACE@790..795 "\n " |
394 | EXPR_STMT@[795; 814) | 394 | EXPR_STMT@795..814 |
395 | MACRO_CALL@[795; 813) | 395 | MACRO_CALL@795..813 |
396 | PATH@[795; 801) | 396 | PATH@795..801 |
397 | PATH_SEGMENT@[795; 801) | 397 | PATH_SEGMENT@795..801 |
398 | NAME_REF@[795; 801) | 398 | NAME_REF@795..801 |
399 | IDENT@[795; 801) "assert" | 399 | IDENT@795..801 "assert" |
400 | BANG@[801; 802) "!" | 400 | BANG@801..802 "!" |
401 | TOKEN_TREE@[802; 813) | 401 | TOKEN_TREE@802..813 |
402 | L_PAREN@[802; 803) "(" | 402 | L_PAREN@802..803 "(" |
403 | TOKEN_TREE@[803; 812) | 403 | TOKEN_TREE@803..812 |
404 | L_PAREN@[803; 804) "(" | 404 | L_PAREN@803..804 "(" |
405 | IDENT@[804; 805) "i" | 405 | IDENT@804..805 "i" |
406 | DOT@[805; 806) "." | 406 | DOT@805..806 "." |
407 | IDENT@[806; 809) "get" | 407 | IDENT@806..809 "get" |
408 | TOKEN_TREE@[809; 811) | 408 | TOKEN_TREE@809..811 |
409 | L_PAREN@[809; 810) "(" | 409 | L_PAREN@809..810 "(" |
410 | R_PAREN@[810; 811) ")" | 410 | R_PAREN@810..811 ")" |
411 | R_PAREN@[811; 812) ")" | 411 | R_PAREN@811..812 ")" |
412 | R_PAREN@[812; 813) ")" | 412 | R_PAREN@812..813 ")" |
413 | SEMICOLON@[813; 814) ";" | 413 | SEMICOLON@813..814 ";" |
414 | WHITESPACE@[814; 815) "\n" | 414 | WHITESPACE@814..815 "\n" |
415 | R_CURLY@[815; 816) "}" | 415 | R_CURLY@815..816 "}" |
416 | WHITESPACE@[816; 818) "\n\n" | 416 | WHITESPACE@816..818 "\n\n" |
417 | FN_DEF@[818; 1322) | 417 | FN_DEF@818..1322 |
418 | FN_KW@[818; 820) "fn" | 418 | FN_KW@818..820 "fn" |
419 | WHITESPACE@[820; 821) " " | 419 | WHITESPACE@820..821 " " |
420 | NAME@[821; 832) | 420 | NAME@821..832 |
421 | IDENT@[821; 832) "zombiejesus" | 421 | IDENT@821..832 "zombiejesus" |
422 | PARAM_LIST@[832; 834) | 422 | PARAM_LIST@832..834 |
423 | L_PAREN@[832; 833) "(" | 423 | L_PAREN@832..833 "(" |
424 | R_PAREN@[833; 834) ")" | 424 | R_PAREN@833..834 ")" |
425 | WHITESPACE@[834; 835) " " | 425 | WHITESPACE@834..835 " " |
426 | BLOCK_EXPR@[835; 1322) | 426 | BLOCK_EXPR@835..1322 |
427 | BLOCK@[835; 1322) | 427 | BLOCK@835..1322 |
428 | L_CURLY@[835; 836) "{" | 428 | L_CURLY@835..836 "{" |
429 | WHITESPACE@[836; 841) "\n " | 429 | WHITESPACE@836..841 "\n " |
430 | LOOP_EXPR@[841; 1320) | 430 | LOOP_EXPR@841..1320 |
431 | LOOP_KW@[841; 845) "loop" | 431 | LOOP_KW@841..845 "loop" |
432 | WHITESPACE@[845; 846) " " | 432 | WHITESPACE@845..846 " " |
433 | BLOCK_EXPR@[846; 1320) | 433 | BLOCK_EXPR@846..1320 |
434 | BLOCK@[846; 1320) | 434 | BLOCK@846..1320 |
435 | L_CURLY@[846; 847) "{" | 435 | L_CURLY@846..847 "{" |
436 | WHITESPACE@[847; 856) "\n " | 436 | WHITESPACE@847..856 "\n " |
437 | EXPR_STMT@[856; 1283) | 437 | EXPR_STMT@856..1283 |
438 | WHILE_EXPR@[856; 1283) | 438 | WHILE_EXPR@856..1283 |
439 | WHILE_KW@[856; 861) "while" | 439 | WHILE_KW@856..861 "while" |
440 | WHITESPACE@[861; 862) " " | 440 | WHITESPACE@861..862 " " |
441 | CONDITION@[862; 870) | 441 | CONDITION@862..870 |
442 | PAREN_EXPR@[862; 870) | 442 | PAREN_EXPR@862..870 |
443 | L_PAREN@[862; 863) "(" | 443 | L_PAREN@862..863 "(" |
444 | RETURN_EXPR@[863; 869) | 444 | RETURN_EXPR@863..869 |
445 | RETURN_KW@[863; 869) "return" | 445 | RETURN_KW@863..869 "return" |
446 | R_PAREN@[869; 870) ")" | 446 | R_PAREN@869..870 ")" |
447 | WHITESPACE@[870; 871) " " | 447 | WHITESPACE@870..871 " " |
448 | BLOCK_EXPR@[871; 1283) | 448 | BLOCK_EXPR@871..1283 |
449 | BLOCK@[871; 1283) | 449 | BLOCK@871..1283 |
450 | L_CURLY@[871; 872) "{" | 450 | L_CURLY@871..872 "{" |
451 | WHITESPACE@[872; 885) "\n " | 451 | WHITESPACE@872..885 "\n " |
452 | IF_EXPR@[885; 1273) | 452 | IF_EXPR@885..1273 |
453 | IF_KW@[885; 887) "if" | 453 | IF_KW@885..887 "if" |
454 | WHITESPACE@[887; 888) " " | 454 | WHITESPACE@887..888 " " |
455 | CONDITION@[888; 896) | 455 | CONDITION@888..896 |
456 | PAREN_EXPR@[888; 896) | 456 | PAREN_EXPR@888..896 |
457 | L_PAREN@[888; 889) "(" | 457 | L_PAREN@888..889 "(" |
458 | RETURN_EXPR@[889; 895) | 458 | RETURN_EXPR@889..895 |
459 | RETURN_KW@[889; 895) "return" | 459 | RETURN_KW@889..895 "return" |
460 | R_PAREN@[895; 896) ")" | 460 | R_PAREN@895..896 ")" |
461 | WHITESPACE@[896; 897) " " | 461 | WHITESPACE@896..897 " " |
462 | BLOCK_EXPR@[897; 1216) | 462 | BLOCK_EXPR@897..1216 |
463 | BLOCK@[897; 1216) | 463 | BLOCK@897..1216 |
464 | L_CURLY@[897; 898) "{" | 464 | L_CURLY@897..898 "{" |
465 | WHITESPACE@[898; 915) "\n " | 465 | WHITESPACE@898..915 "\n " |
466 | EXPR_STMT@[915; 1202) | 466 | EXPR_STMT@915..1202 |
467 | MATCH_EXPR@[915; 1201) | 467 | MATCH_EXPR@915..1201 |
468 | MATCH_KW@[915; 920) "match" | 468 | MATCH_KW@915..920 "match" |
469 | WHITESPACE@[920; 921) " " | 469 | WHITESPACE@920..921 " " |
470 | PAREN_EXPR@[921; 929) | 470 | PAREN_EXPR@921..929 |
471 | L_PAREN@[921; 922) "(" | 471 | L_PAREN@921..922 "(" |
472 | RETURN_EXPR@[922; 928) | 472 | RETURN_EXPR@922..928 |
473 | RETURN_KW@[922; 928) "return" | 473 | RETURN_KW@922..928 "return" |
474 | R_PAREN@[928; 929) ")" | 474 | R_PAREN@928..929 ")" |
475 | WHITESPACE@[929; 930) " " | 475 | WHITESPACE@929..930 " " |
476 | MATCH_ARM_LIST@[930; 1201) | 476 | MATCH_ARM_LIST@930..1201 |
477 | L_CURLY@[930; 931) "{" | 477 | L_CURLY@930..931 "{" |
478 | WHITESPACE@[931; 952) "\n " | 478 | WHITESPACE@931..952 "\n " |
479 | MATCH_ARM@[952; 1147) | 479 | MATCH_ARM@952..1147 |
480 | LITERAL_PAT@[952; 953) | 480 | LITERAL_PAT@952..953 |
481 | LITERAL@[952; 953) | 481 | LITERAL@952..953 |
482 | INT_NUMBER@[952; 953) "1" | 482 | INT_NUMBER@952..953 "1" |
483 | WHITESPACE@[953; 954) " " | 483 | WHITESPACE@953..954 " " |
484 | FAT_ARROW@[954; 956) "=>" | 484 | FAT_ARROW@954..956 "=>" |
485 | WHITESPACE@[956; 957) " " | 485 | WHITESPACE@956..957 " " |
486 | BLOCK_EXPR@[957; 1147) | 486 | BLOCK_EXPR@957..1147 |
487 | BLOCK@[957; 1147) | 487 | BLOCK@957..1147 |
488 | L_CURLY@[957; 958) "{" | 488 | L_CURLY@957..958 "{" |
489 | WHITESPACE@[958; 983) "\n ..." | 489 | WHITESPACE@958..983 "\n ..." |
490 | IF_EXPR@[983; 1125) | 490 | IF_EXPR@983..1125 |
491 | IF_KW@[983; 985) "if" | 491 | IF_KW@983..985 "if" |
492 | WHITESPACE@[985; 986) " " | 492 | WHITESPACE@985..986 " " |
493 | CONDITION@[986; 994) | 493 | CONDITION@986..994 |
494 | PAREN_EXPR@[986; 994) | 494 | PAREN_EXPR@986..994 |
495 | L_PAREN@[986; 987) "(" | 495 | L_PAREN@986..987 "(" |
496 | RETURN_EXPR@[987; 993) | 496 | RETURN_EXPR@987..993 |
497 | RETURN_KW@[987; 993) "return" | 497 | RETURN_KW@987..993 "return" |
498 | R_PAREN@[993; 994) ")" | 498 | R_PAREN@993..994 ")" |
499 | WHITESPACE@[994; 995) " " | 499 | WHITESPACE@994..995 " " |
500 | BLOCK_EXPR@[995; 1057) | 500 | BLOCK_EXPR@995..1057 |
501 | BLOCK@[995; 1057) | 501 | BLOCK@995..1057 |
502 | L_CURLY@[995; 996) "{" | 502 | L_CURLY@995..996 "{" |
503 | WHITESPACE@[996; 1025) "\n ..." | 503 | WHITESPACE@996..1025 "\n ..." |
504 | RETURN_EXPR@[1025; 1031) | 504 | RETURN_EXPR@1025..1031 |
505 | RETURN_KW@[1025; 1031) "return" | 505 | RETURN_KW@1025..1031 "return" |
506 | WHITESPACE@[1031; 1056) "\n ..." | 506 | WHITESPACE@1031..1056 "\n ..." |
507 | R_CURLY@[1056; 1057) "}" | 507 | R_CURLY@1056..1057 "}" |
508 | WHITESPACE@[1057; 1058) " " | 508 | WHITESPACE@1057..1058 " " |
509 | ELSE_KW@[1058; 1062) "else" | 509 | ELSE_KW@1058..1062 "else" |
510 | WHITESPACE@[1062; 1063) " " | 510 | WHITESPACE@1062..1063 " " |
511 | BLOCK_EXPR@[1063; 1125) | 511 | BLOCK_EXPR@1063..1125 |
512 | BLOCK@[1063; 1125) | 512 | BLOCK@1063..1125 |
513 | L_CURLY@[1063; 1064) "{" | 513 | L_CURLY@1063..1064 "{" |
514 | WHITESPACE@[1064; 1093) "\n ..." | 514 | WHITESPACE@1064..1093 "\n ..." |
515 | RETURN_EXPR@[1093; 1099) | 515 | RETURN_EXPR@1093..1099 |
516 | RETURN_KW@[1093; 1099) "return" | 516 | RETURN_KW@1093..1099 "return" |
517 | WHITESPACE@[1099; 1124) "\n ..." | 517 | WHITESPACE@1099..1124 "\n ..." |
518 | R_CURLY@[1124; 1125) "}" | 518 | R_CURLY@1124..1125 "}" |
519 | WHITESPACE@[1125; 1146) "\n " | 519 | WHITESPACE@1125..1146 "\n " |
520 | R_CURLY@[1146; 1147) "}" | 520 | R_CURLY@1146..1147 "}" |
521 | WHITESPACE@[1147; 1168) "\n " | 521 | WHITESPACE@1147..1168 "\n " |
522 | MATCH_ARM@[1168; 1183) | 522 | MATCH_ARM@1168..1183 |
523 | PLACEHOLDER_PAT@[1168; 1169) | 523 | PLACEHOLDER_PAT@1168..1169 |
524 | UNDERSCORE@[1168; 1169) "_" | 524 | UNDERSCORE@1168..1169 "_" |
525 | WHITESPACE@[1169; 1170) " " | 525 | WHITESPACE@1169..1170 " " |
526 | FAT_ARROW@[1170; 1172) "=>" | 526 | FAT_ARROW@1170..1172 "=>" |
527 | WHITESPACE@[1172; 1173) " " | 527 | WHITESPACE@1172..1173 " " |
528 | BLOCK_EXPR@[1173; 1183) | 528 | BLOCK_EXPR@1173..1183 |
529 | BLOCK@[1173; 1183) | 529 | BLOCK@1173..1183 |
530 | L_CURLY@[1173; 1174) "{" | 530 | L_CURLY@1173..1174 "{" |
531 | WHITESPACE@[1174; 1175) " " | 531 | WHITESPACE@1174..1175 " " |
532 | RETURN_EXPR@[1175; 1181) | 532 | RETURN_EXPR@1175..1181 |
533 | RETURN_KW@[1175; 1181) "return" | 533 | RETURN_KW@1175..1181 "return" |
534 | WHITESPACE@[1181; 1182) " " | 534 | WHITESPACE@1181..1182 " " |
535 | R_CURLY@[1182; 1183) "}" | 535 | R_CURLY@1182..1183 "}" |
536 | WHITESPACE@[1183; 1200) "\n " | 536 | WHITESPACE@1183..1200 "\n " |
537 | R_CURLY@[1200; 1201) "}" | 537 | R_CURLY@1200..1201 "}" |
538 | SEMICOLON@[1201; 1202) ";" | 538 | SEMICOLON@1201..1202 ";" |
539 | WHITESPACE@[1202; 1215) "\n " | 539 | WHITESPACE@1202..1215 "\n " |
540 | R_CURLY@[1215; 1216) "}" | 540 | R_CURLY@1215..1216 "}" |
541 | WHITESPACE@[1216; 1217) " " | 541 | WHITESPACE@1216..1217 " " |
542 | ELSE_KW@[1217; 1221) "else" | 542 | ELSE_KW@1217..1221 "else" |
543 | WHITESPACE@[1221; 1222) " " | 543 | WHITESPACE@1221..1222 " " |
544 | IF_EXPR@[1222; 1273) | 544 | IF_EXPR@1222..1273 |
545 | IF_KW@[1222; 1224) "if" | 545 | IF_KW@1222..1224 "if" |
546 | WHITESPACE@[1224; 1225) " " | 546 | WHITESPACE@1224..1225 " " |
547 | CONDITION@[1225; 1233) | 547 | CONDITION@1225..1233 |
548 | PAREN_EXPR@[1225; 1233) | 548 | PAREN_EXPR@1225..1233 |
549 | L_PAREN@[1225; 1226) "(" | 549 | L_PAREN@1225..1226 "(" |
550 | RETURN_EXPR@[1226; 1232) | 550 | RETURN_EXPR@1226..1232 |
551 | RETURN_KW@[1226; 1232) "return" | 551 | RETURN_KW@1226..1232 "return" |
552 | R_PAREN@[1232; 1233) ")" | 552 | R_PAREN@1232..1233 ")" |
553 | WHITESPACE@[1233; 1234) " " | 553 | WHITESPACE@1233..1234 " " |
554 | BLOCK_EXPR@[1234; 1273) | 554 | BLOCK_EXPR@1234..1273 |
555 | BLOCK@[1234; 1273) | 555 | BLOCK@1234..1273 |
556 | L_CURLY@[1234; 1235) "{" | 556 | L_CURLY@1234..1235 "{" |
557 | WHITESPACE@[1235; 1252) "\n " | 557 | WHITESPACE@1235..1252 "\n " |
558 | EXPR_STMT@[1252; 1259) | 558 | EXPR_STMT@1252..1259 |
559 | RETURN_EXPR@[1252; 1258) | 559 | RETURN_EXPR@1252..1258 |
560 | RETURN_KW@[1252; 1258) "return" | 560 | RETURN_KW@1252..1258 "return" |
561 | SEMICOLON@[1258; 1259) ";" | 561 | SEMICOLON@1258..1259 ";" |
562 | WHITESPACE@[1259; 1272) "\n " | 562 | WHITESPACE@1259..1272 "\n " |
563 | R_CURLY@[1272; 1273) "}" | 563 | R_CURLY@1272..1273 "}" |
564 | WHITESPACE@[1273; 1282) "\n " | 564 | WHITESPACE@1273..1282 "\n " |
565 | R_CURLY@[1282; 1283) "}" | 565 | R_CURLY@1282..1283 "}" |
566 | WHITESPACE@[1283; 1292) "\n " | 566 | WHITESPACE@1283..1292 "\n " |
567 | IF_EXPR@[1292; 1314) | 567 | IF_EXPR@1292..1314 |
568 | IF_KW@[1292; 1294) "if" | 568 | IF_KW@1292..1294 "if" |
569 | WHITESPACE@[1294; 1295) " " | 569 | WHITESPACE@1294..1295 " " |
570 | CONDITION@[1295; 1303) | 570 | CONDITION@1295..1303 |
571 | PAREN_EXPR@[1295; 1303) | 571 | PAREN_EXPR@1295..1303 |
572 | L_PAREN@[1295; 1296) "(" | 572 | L_PAREN@1295..1296 "(" |
573 | RETURN_EXPR@[1296; 1302) | 573 | RETURN_EXPR@1296..1302 |
574 | RETURN_KW@[1296; 1302) "return" | 574 | RETURN_KW@1296..1302 "return" |
575 | R_PAREN@[1302; 1303) ")" | 575 | R_PAREN@1302..1303 ")" |
576 | WHITESPACE@[1303; 1304) " " | 576 | WHITESPACE@1303..1304 " " |
577 | BLOCK_EXPR@[1304; 1314) | 577 | BLOCK_EXPR@1304..1314 |
578 | BLOCK@[1304; 1314) | 578 | BLOCK@1304..1314 |
579 | L_CURLY@[1304; 1305) "{" | 579 | L_CURLY@1304..1305 "{" |
580 | WHITESPACE@[1305; 1306) " " | 580 | WHITESPACE@1305..1306 " " |
581 | EXPR_STMT@[1306; 1312) | 581 | EXPR_STMT@1306..1312 |
582 | BREAK_EXPR@[1306; 1311) | 582 | BREAK_EXPR@1306..1311 |
583 | BREAK_KW@[1306; 1311) "break" | 583 | BREAK_KW@1306..1311 "break" |
584 | SEMICOLON@[1311; 1312) ";" | 584 | SEMICOLON@1311..1312 ";" |
585 | WHITESPACE@[1312; 1313) " " | 585 | WHITESPACE@1312..1313 " " |
586 | R_CURLY@[1313; 1314) "}" | 586 | R_CURLY@1313..1314 "}" |
587 | WHITESPACE@[1314; 1319) "\n " | 587 | WHITESPACE@1314..1319 "\n " |
588 | R_CURLY@[1319; 1320) "}" | 588 | R_CURLY@1319..1320 "}" |
589 | WHITESPACE@[1320; 1321) "\n" | 589 | WHITESPACE@1320..1321 "\n" |
590 | R_CURLY@[1321; 1322) "}" | 590 | R_CURLY@1321..1322 "}" |
591 | WHITESPACE@[1322; 1324) "\n\n" | 591 | WHITESPACE@1322..1324 "\n\n" |
592 | FN_DEF@[1324; 1539) | 592 | FN_DEF@1324..1539 |
593 | FN_KW@[1324; 1326) "fn" | 593 | FN_KW@1324..1326 "fn" |
594 | WHITESPACE@[1326; 1327) " " | 594 | WHITESPACE@1326..1327 " " |
595 | NAME@[1327; 1334) | 595 | NAME@1327..1334 |
596 | IDENT@[1327; 1334) "notsure" | 596 | IDENT@1327..1334 "notsure" |
597 | PARAM_LIST@[1334; 1336) | 597 | PARAM_LIST@1334..1336 |
598 | L_PAREN@[1334; 1335) "(" | 598 | L_PAREN@1334..1335 "(" |
599 | R_PAREN@[1335; 1336) ")" | 599 | R_PAREN@1335..1336 ")" |
600 | WHITESPACE@[1336; 1337) " " | 600 | WHITESPACE@1336..1337 " " |
601 | BLOCK_EXPR@[1337; 1539) | 601 | BLOCK_EXPR@1337..1539 |
602 | BLOCK@[1337; 1539) | 602 | BLOCK@1337..1539 |
603 | L_CURLY@[1337; 1338) "{" | 603 | L_CURLY@1337..1338 "{" |
604 | WHITESPACE@[1338; 1343) "\n " | 604 | WHITESPACE@1338..1343 "\n " |
605 | LET_STMT@[1343; 1361) | 605 | LET_STMT@1343..1361 |
606 | LET_KW@[1343; 1346) "let" | 606 | LET_KW@1343..1346 "let" |
607 | WHITESPACE@[1346; 1347) " " | 607 | WHITESPACE@1346..1347 " " |
608 | BIND_PAT@[1347; 1353) | 608 | BIND_PAT@1347..1353 |
609 | MUT_KW@[1347; 1350) "mut" | 609 | MUT_KW@1347..1350 "mut" |
610 | WHITESPACE@[1350; 1351) " " | 610 | WHITESPACE@1350..1351 " " |
611 | NAME@[1351; 1353) | 611 | NAME@1351..1353 |
612 | IDENT@[1351; 1353) "_x" | 612 | IDENT@1351..1353 "_x" |
613 | COLON@[1353; 1354) ":" | 613 | COLON@1353..1354 ":" |
614 | WHITESPACE@[1354; 1355) " " | 614 | WHITESPACE@1354..1355 " " |
615 | PATH_TYPE@[1355; 1360) | 615 | PATH_TYPE@1355..1360 |
616 | PATH@[1355; 1360) | 616 | PATH@1355..1360 |
617 | PATH_SEGMENT@[1355; 1360) | 617 | PATH_SEGMENT@1355..1360 |
618 | NAME_REF@[1355; 1360) | 618 | NAME_REF@1355..1360 |
619 | IDENT@[1355; 1360) "isize" | 619 | IDENT@1355..1360 "isize" |
620 | SEMICOLON@[1360; 1361) ";" | 620 | SEMICOLON@1360..1361 ";" |
621 | WHITESPACE@[1361; 1366) "\n " | 621 | WHITESPACE@1361..1366 "\n " |
622 | LET_STMT@[1366; 1400) | 622 | LET_STMT@1366..1400 |
623 | LET_KW@[1366; 1369) "let" | 623 | LET_KW@1366..1369 "let" |
624 | WHITESPACE@[1369; 1370) " " | 624 | WHITESPACE@1369..1370 " " |
625 | BIND_PAT@[1370; 1376) | 625 | BIND_PAT@1370..1376 |
626 | MUT_KW@[1370; 1373) "mut" | 626 | MUT_KW@1370..1373 "mut" |
627 | WHITESPACE@[1373; 1374) " " | 627 | WHITESPACE@1373..1374 " " |
628 | NAME@[1374; 1376) | 628 | NAME@1374..1376 |
629 | IDENT@[1374; 1376) "_y" | 629 | IDENT@1374..1376 "_y" |
630 | WHITESPACE@[1376; 1377) " " | 630 | WHITESPACE@1376..1377 " " |
631 | EQ@[1377; 1378) "=" | 631 | EQ@1377..1378 "=" |
632 | WHITESPACE@[1378; 1379) " " | 632 | WHITESPACE@1378..1379 " " |
633 | BIN_EXPR@[1379; 1399) | 633 | BIN_EXPR@1379..1399 |
634 | PAREN_EXPR@[1379; 1387) | 634 | PAREN_EXPR@1379..1387 |
635 | L_PAREN@[1379; 1380) "(" | 635 | L_PAREN@1379..1380 "(" |
636 | BIN_EXPR@[1380; 1386) | 636 | BIN_EXPR@1380..1386 |
637 | PATH_EXPR@[1380; 1382) | 637 | PATH_EXPR@1380..1382 |
638 | PATH@[1380; 1382) | 638 | PATH@1380..1382 |
639 | PATH_SEGMENT@[1380; 1382) | 639 | PATH_SEGMENT@1380..1382 |
640 | NAME_REF@[1380; 1382) | 640 | NAME_REF@1380..1382 |
641 | IDENT@[1380; 1382) "_x" | 641 | IDENT@1380..1382 "_x" |
642 | WHITESPACE@[1382; 1383) " " | 642 | WHITESPACE@1382..1383 " " |
643 | EQ@[1383; 1384) "=" | 643 | EQ@1383..1384 "=" |
644 | WHITESPACE@[1384; 1385) " " | 644 | WHITESPACE@1384..1385 " " |
645 | LITERAL@[1385; 1386) | 645 | LITERAL@1385..1386 |
646 | INT_NUMBER@[1385; 1386) "0" | 646 | INT_NUMBER@1385..1386 "0" |
647 | R_PAREN@[1386; 1387) ")" | 647 | R_PAREN@1386..1387 ")" |
648 | WHITESPACE@[1387; 1388) " " | 648 | WHITESPACE@1387..1388 " " |
649 | EQ2@[1388; 1390) "==" | 649 | EQ2@1388..1390 "==" |
650 | WHITESPACE@[1390; 1391) " " | 650 | WHITESPACE@1390..1391 " " |
651 | PAREN_EXPR@[1391; 1399) | 651 | PAREN_EXPR@1391..1399 |
652 | L_PAREN@[1391; 1392) "(" | 652 | L_PAREN@1391..1392 "(" |
653 | BIN_EXPR@[1392; 1398) | 653 | BIN_EXPR@1392..1398 |
654 | PATH_EXPR@[1392; 1394) | 654 | PATH_EXPR@1392..1394 |
655 | PATH@[1392; 1394) | 655 | PATH@1392..1394 |
656 | PATH_SEGMENT@[1392; 1394) | 656 | PATH_SEGMENT@1392..1394 |
657 | NAME_REF@[1392; 1394) | 657 | NAME_REF@1392..1394 |
658 | IDENT@[1392; 1394) "_x" | 658 | IDENT@1392..1394 "_x" |
659 | WHITESPACE@[1394; 1395) " " | 659 | WHITESPACE@1394..1395 " " |
660 | EQ@[1395; 1396) "=" | 660 | EQ@1395..1396 "=" |
661 | WHITESPACE@[1396; 1397) " " | 661 | WHITESPACE@1396..1397 " " |
662 | LITERAL@[1397; 1398) | 662 | LITERAL@1397..1398 |
663 | INT_NUMBER@[1397; 1398) "0" | 663 | INT_NUMBER@1397..1398 "0" |
664 | R_PAREN@[1398; 1399) ")" | 664 | R_PAREN@1398..1399 ")" |
665 | SEMICOLON@[1399; 1400) ";" | 665 | SEMICOLON@1399..1400 ";" |
666 | WHITESPACE@[1400; 1405) "\n " | 666 | WHITESPACE@1400..1405 "\n " |
667 | LET_STMT@[1405; 1438) | 667 | LET_STMT@1405..1438 |
668 | LET_KW@[1405; 1408) "let" | 668 | LET_KW@1405..1408 "let" |
669 | WHITESPACE@[1408; 1409) " " | 669 | WHITESPACE@1408..1409 " " |
670 | BIND_PAT@[1409; 1415) | 670 | BIND_PAT@1409..1415 |
671 | MUT_KW@[1409; 1412) "mut" | 671 | MUT_KW@1409..1412 "mut" |
672 | WHITESPACE@[1412; 1413) " " | 672 | WHITESPACE@1412..1413 " " |
673 | NAME@[1413; 1415) | 673 | NAME@1413..1415 |
674 | IDENT@[1413; 1415) "_z" | 674 | IDENT@1413..1415 "_z" |
675 | WHITESPACE@[1415; 1416) " " | 675 | WHITESPACE@1415..1416 " " |
676 | EQ@[1416; 1417) "=" | 676 | EQ@1416..1417 "=" |
677 | WHITESPACE@[1417; 1418) " " | 677 | WHITESPACE@1417..1418 " " |
678 | BIN_EXPR@[1418; 1437) | 678 | BIN_EXPR@1418..1437 |
679 | PAREN_EXPR@[1418; 1426) | 679 | PAREN_EXPR@1418..1426 |
680 | L_PAREN@[1418; 1419) "(" | 680 | L_PAREN@1418..1419 "(" |
681 | BIN_EXPR@[1419; 1425) | 681 | BIN_EXPR@1419..1425 |
682 | PATH_EXPR@[1419; 1421) | 682 | PATH_EXPR@1419..1421 |
683 | PATH@[1419; 1421) | 683 | PATH@1419..1421 |
684 | PATH_SEGMENT@[1419; 1421) | 684 | PATH_SEGMENT@1419..1421 |
685 | NAME_REF@[1419; 1421) | 685 | NAME_REF@1419..1421 |
686 | IDENT@[1419; 1421) "_x" | 686 | IDENT@1419..1421 "_x" |
687 | WHITESPACE@[1421; 1422) " " | 687 | WHITESPACE@1421..1422 " " |
688 | EQ@[1422; 1423) "=" | 688 | EQ@1422..1423 "=" |
689 | WHITESPACE@[1423; 1424) " " | 689 | WHITESPACE@1423..1424 " " |
690 | LITERAL@[1424; 1425) | 690 | LITERAL@1424..1425 |
691 | INT_NUMBER@[1424; 1425) "0" | 691 | INT_NUMBER@1424..1425 "0" |
692 | R_PAREN@[1425; 1426) ")" | 692 | R_PAREN@1425..1426 ")" |
693 | WHITESPACE@[1426; 1427) " " | 693 | WHITESPACE@1426..1427 " " |
694 | L_ANGLE@[1427; 1428) "<" | 694 | L_ANGLE@1427..1428 "<" |
695 | WHITESPACE@[1428; 1429) " " | 695 | WHITESPACE@1428..1429 " " |
696 | PAREN_EXPR@[1429; 1437) | 696 | PAREN_EXPR@1429..1437 |
697 | L_PAREN@[1429; 1430) "(" | 697 | L_PAREN@1429..1430 "(" |
698 | BIN_EXPR@[1430; 1436) | 698 | BIN_EXPR@1430..1436 |
699 | PATH_EXPR@[1430; 1432) | 699 | PATH_EXPR@1430..1432 |
700 | PATH@[1430; 1432) | 700 | PATH@1430..1432 |
701 | PATH_SEGMENT@[1430; 1432) | 701 | PATH_SEGMENT@1430..1432 |
702 | NAME_REF@[1430; 1432) | 702 | NAME_REF@1430..1432 |
703 | IDENT@[1430; 1432) "_x" | 703 | IDENT@1430..1432 "_x" |
704 | WHITESPACE@[1432; 1433) " " | 704 | WHITESPACE@1432..1433 " " |
705 | EQ@[1433; 1434) "=" | 705 | EQ@1433..1434 "=" |
706 | WHITESPACE@[1434; 1435) " " | 706 | WHITESPACE@1434..1435 " " |
707 | LITERAL@[1435; 1436) | 707 | LITERAL@1435..1436 |
708 | INT_NUMBER@[1435; 1436) "0" | 708 | INT_NUMBER@1435..1436 "0" |
709 | R_PAREN@[1436; 1437) ")" | 709 | R_PAREN@1436..1437 ")" |
710 | SEMICOLON@[1437; 1438) ";" | 710 | SEMICOLON@1437..1438 ";" |
711 | WHITESPACE@[1438; 1443) "\n " | 711 | WHITESPACE@1438..1443 "\n " |
712 | LET_STMT@[1443; 1474) | 712 | LET_STMT@1443..1474 |
713 | LET_KW@[1443; 1446) "let" | 713 | LET_KW@1443..1446 "let" |
714 | WHITESPACE@[1446; 1447) " " | 714 | WHITESPACE@1446..1447 " " |
715 | BIND_PAT@[1447; 1449) | 715 | BIND_PAT@1447..1449 |
716 | NAME@[1447; 1449) | 716 | NAME@1447..1449 |
717 | IDENT@[1447; 1449) "_a" | 717 | IDENT@1447..1449 "_a" |
718 | WHITESPACE@[1449; 1450) " " | 718 | WHITESPACE@1449..1450 " " |
719 | EQ@[1450; 1451) "=" | 719 | EQ@1450..1451 "=" |
720 | WHITESPACE@[1451; 1452) " " | 720 | WHITESPACE@1451..1452 " " |
721 | BIN_EXPR@[1452; 1473) | 721 | BIN_EXPR@1452..1473 |
722 | PAREN_EXPR@[1452; 1461) | 722 | PAREN_EXPR@1452..1461 |
723 | L_PAREN@[1452; 1453) "(" | 723 | L_PAREN@1452..1453 "(" |
724 | BIN_EXPR@[1453; 1460) | 724 | BIN_EXPR@1453..1460 |
725 | PATH_EXPR@[1453; 1455) | 725 | PATH_EXPR@1453..1455 |
726 | PATH@[1453; 1455) | 726 | PATH@1453..1455 |
727 | PATH_SEGMENT@[1453; 1455) | 727 | PATH_SEGMENT@1453..1455 |
728 | NAME_REF@[1453; 1455) | 728 | NAME_REF@1453..1455 |
729 | IDENT@[1453; 1455) "_x" | 729 | IDENT@1453..1455 "_x" |
730 | WHITESPACE@[1455; 1456) " " | 730 | WHITESPACE@1455..1456 " " |
731 | PLUSEQ@[1456; 1458) "+=" | 731 | PLUSEQ@1456..1458 "+=" |
732 | WHITESPACE@[1458; 1459) " " | 732 | WHITESPACE@1458..1459 " " |
733 | LITERAL@[1459; 1460) | 733 | LITERAL@1459..1460 |
734 | INT_NUMBER@[1459; 1460) "0" | 734 | INT_NUMBER@1459..1460 "0" |
735 | R_PAREN@[1460; 1461) ")" | 735 | R_PAREN@1460..1461 ")" |
736 | WHITESPACE@[1461; 1462) " " | 736 | WHITESPACE@1461..1462 " " |
737 | EQ2@[1462; 1464) "==" | 737 | EQ2@1462..1464 "==" |
738 | WHITESPACE@[1464; 1465) " " | 738 | WHITESPACE@1464..1465 " " |
739 | PAREN_EXPR@[1465; 1473) | 739 | PAREN_EXPR@1465..1473 |
740 | L_PAREN@[1465; 1466) "(" | 740 | L_PAREN@1465..1466 "(" |
741 | BIN_EXPR@[1466; 1472) | 741 | BIN_EXPR@1466..1472 |
742 | PATH_EXPR@[1466; 1468) | 742 | PATH_EXPR@1466..1468 |
743 | PATH@[1466; 1468) | 743 | PATH@1466..1468 |
744 | PATH_SEGMENT@[1466; 1468) | 744 | PATH_SEGMENT@1466..1468 |
745 | NAME_REF@[1466; 1468) | 745 | NAME_REF@1466..1468 |
746 | IDENT@[1466; 1468) "_x" | 746 | IDENT@1466..1468 "_x" |
747 | WHITESPACE@[1468; 1469) " " | 747 | WHITESPACE@1468..1469 " " |
748 | EQ@[1469; 1470) "=" | 748 | EQ@1469..1470 "=" |
749 | WHITESPACE@[1470; 1471) " " | 749 | WHITESPACE@1470..1471 " " |
750 | LITERAL@[1471; 1472) | 750 | LITERAL@1471..1472 |
751 | INT_NUMBER@[1471; 1472) "0" | 751 | INT_NUMBER@1471..1472 "0" |
752 | R_PAREN@[1472; 1473) ")" | 752 | R_PAREN@1472..1473 ")" |
753 | SEMICOLON@[1473; 1474) ";" | 753 | SEMICOLON@1473..1474 ";" |
754 | WHITESPACE@[1474; 1479) "\n " | 754 | WHITESPACE@1474..1479 "\n " |
755 | LET_STMT@[1479; 1537) | 755 | LET_STMT@1479..1537 |
756 | LET_KW@[1479; 1482) "let" | 756 | LET_KW@1479..1482 "let" |
757 | WHITESPACE@[1482; 1483) " " | 757 | WHITESPACE@1482..1483 " " |
758 | BIND_PAT@[1483; 1485) | 758 | BIND_PAT@1483..1485 |
759 | NAME@[1483; 1485) | 759 | NAME@1483..1485 |
760 | IDENT@[1483; 1485) "_b" | 760 | IDENT@1483..1485 "_b" |
761 | WHITESPACE@[1485; 1486) " " | 761 | WHITESPACE@1485..1486 " " |
762 | EQ@[1486; 1487) "=" | 762 | EQ@1486..1487 "=" |
763 | WHITESPACE@[1487; 1488) " " | 763 | WHITESPACE@1487..1488 " " |
764 | BIN_EXPR@[1488; 1536) | 764 | BIN_EXPR@1488..1536 |
765 | CALL_EXPR@[1488; 1510) | 765 | CALL_EXPR@1488..1510 |
766 | PATH_EXPR@[1488; 1492) | 766 | PATH_EXPR@1488..1492 |
767 | PATH@[1488; 1492) | 767 | PATH@1488..1492 |
768 | PATH_SEGMENT@[1488; 1492) | 768 | PATH_SEGMENT@1488..1492 |
769 | NAME_REF@[1488; 1492) | 769 | NAME_REF@1488..1492 |
770 | IDENT@[1488; 1492) "swap" | 770 | IDENT@1488..1492 "swap" |
771 | ARG_LIST@[1492; 1510) | 771 | ARG_LIST@1492..1510 |
772 | L_PAREN@[1492; 1493) "(" | 772 | L_PAREN@1492..1493 "(" |
773 | REF_EXPR@[1493; 1500) | 773 | REF_EXPR@1493..1500 |
774 | AMP@[1493; 1494) "&" | 774 | AMP@1493..1494 "&" |
775 | MUT_KW@[1494; 1497) "mut" | 775 | MUT_KW@1494..1497 "mut" |
776 | WHITESPACE@[1497; 1498) " " | 776 | WHITESPACE@1497..1498 " " |
777 | PATH_EXPR@[1498; 1500) | 777 | PATH_EXPR@1498..1500 |
778 | PATH@[1498; 1500) | 778 | PATH@1498..1500 |
779 | PATH_SEGMENT@[1498; 1500) | 779 | PATH_SEGMENT@1498..1500 |
780 | NAME_REF@[1498; 1500) | 780 | NAME_REF@1498..1500 |
781 | IDENT@[1498; 1500) "_y" | 781 | IDENT@1498..1500 "_y" |
782 | COMMA@[1500; 1501) "," | 782 | COMMA@1500..1501 "," |
783 | WHITESPACE@[1501; 1502) " " | 783 | WHITESPACE@1501..1502 " " |
784 | REF_EXPR@[1502; 1509) | 784 | REF_EXPR@1502..1509 |
785 | AMP@[1502; 1503) "&" | 785 | AMP@1502..1503 "&" |
786 | MUT_KW@[1503; 1506) "mut" | 786 | MUT_KW@1503..1506 "mut" |
787 | WHITESPACE@[1506; 1507) " " | 787 | WHITESPACE@1506..1507 " " |
788 | PATH_EXPR@[1507; 1509) | 788 | PATH_EXPR@1507..1509 |
789 | PATH@[1507; 1509) | 789 | PATH@1507..1509 |
790 | PATH_SEGMENT@[1507; 1509) | 790 | PATH_SEGMENT@1507..1509 |
791 | NAME_REF@[1507; 1509) | 791 | NAME_REF@1507..1509 |
792 | IDENT@[1507; 1509) "_z" | 792 | IDENT@1507..1509 "_z" |
793 | R_PAREN@[1509; 1510) ")" | 793 | R_PAREN@1509..1510 ")" |
794 | WHITESPACE@[1510; 1511) " " | 794 | WHITESPACE@1510..1511 " " |
795 | EQ2@[1511; 1513) "==" | 795 | EQ2@1511..1513 "==" |
796 | WHITESPACE@[1513; 1514) " " | 796 | WHITESPACE@1513..1514 " " |
797 | CALL_EXPR@[1514; 1536) | 797 | CALL_EXPR@1514..1536 |
798 | PATH_EXPR@[1514; 1518) | 798 | PATH_EXPR@1514..1518 |
799 | PATH@[1514; 1518) | 799 | PATH@1514..1518 |
800 | PATH_SEGMENT@[1514; 1518) | 800 | PATH_SEGMENT@1514..1518 |
801 | NAME_REF@[1514; 1518) | 801 | NAME_REF@1514..1518 |
802 | IDENT@[1514; 1518) "swap" | 802 | IDENT@1514..1518 "swap" |
803 | ARG_LIST@[1518; 1536) | 803 | ARG_LIST@1518..1536 |
804 | L_PAREN@[1518; 1519) "(" | 804 | L_PAREN@1518..1519 "(" |
805 | REF_EXPR@[1519; 1526) | 805 | REF_EXPR@1519..1526 |
806 | AMP@[1519; 1520) "&" | 806 | AMP@1519..1520 "&" |
807 | MUT_KW@[1520; 1523) "mut" | 807 | MUT_KW@1520..1523 "mut" |
808 | WHITESPACE@[1523; 1524) " " | 808 | WHITESPACE@1523..1524 " " |
809 | PATH_EXPR@[1524; 1526) | 809 | PATH_EXPR@1524..1526 |
810 | PATH@[1524; 1526) | 810 | PATH@1524..1526 |
811 | PATH_SEGMENT@[1524; 1526) | 811 | PATH_SEGMENT@1524..1526 |
812 | NAME_REF@[1524; 1526) | 812 | NAME_REF@1524..1526 |
813 | IDENT@[1524; 1526) "_y" | 813 | IDENT@1524..1526 "_y" |
814 | COMMA@[1526; 1527) "," | 814 | COMMA@1526..1527 "," |
815 | WHITESPACE@[1527; 1528) " " | 815 | WHITESPACE@1527..1528 " " |
816 | REF_EXPR@[1528; 1535) | 816 | REF_EXPR@1528..1535 |
817 | AMP@[1528; 1529) "&" | 817 | AMP@1528..1529 "&" |
818 | MUT_KW@[1529; 1532) "mut" | 818 | MUT_KW@1529..1532 "mut" |
819 | WHITESPACE@[1532; 1533) " " | 819 | WHITESPACE@1532..1533 " " |
820 | PATH_EXPR@[1533; 1535) | 820 | PATH_EXPR@1533..1535 |
821 | PATH@[1533; 1535) | 821 | PATH@1533..1535 |
822 | PATH_SEGMENT@[1533; 1535) | 822 | PATH_SEGMENT@1533..1535 |
823 | NAME_REF@[1533; 1535) | 823 | NAME_REF@1533..1535 |
824 | IDENT@[1533; 1535) "_z" | 824 | IDENT@1533..1535 "_z" |
825 | R_PAREN@[1535; 1536) ")" | 825 | R_PAREN@1535..1536 ")" |
826 | SEMICOLON@[1536; 1537) ";" | 826 | SEMICOLON@1536..1537 ";" |
827 | WHITESPACE@[1537; 1538) "\n" | 827 | WHITESPACE@1537..1538 "\n" |
828 | R_CURLY@[1538; 1539) "}" | 828 | R_CURLY@1538..1539 "}" |
829 | WHITESPACE@[1539; 1541) "\n\n" | 829 | WHITESPACE@1539..1541 "\n\n" |
830 | FN_DEF@[1541; 1741) | 830 | FN_DEF@1541..1741 |
831 | FN_KW@[1541; 1543) "fn" | 831 | FN_KW@1541..1543 "fn" |
832 | WHITESPACE@[1543; 1544) " " | 832 | WHITESPACE@1543..1544 " " |
833 | NAME@[1544; 1557) | 833 | NAME@1544..1557 |
834 | IDENT@[1544; 1557) "canttouchthis" | 834 | IDENT@1544..1557 "canttouchthis" |
835 | PARAM_LIST@[1557; 1559) | 835 | PARAM_LIST@1557..1559 |
836 | L_PAREN@[1557; 1558) "(" | 836 | L_PAREN@1557..1558 "(" |
837 | R_PAREN@[1558; 1559) ")" | 837 | R_PAREN@1558..1559 ")" |
838 | WHITESPACE@[1559; 1560) " " | 838 | WHITESPACE@1559..1560 " " |
839 | RET_TYPE@[1560; 1568) | 839 | RET_TYPE@1560..1568 |
840 | THIN_ARROW@[1560; 1562) "->" | 840 | THIN_ARROW@1560..1562 "->" |
841 | WHITESPACE@[1562; 1563) " " | 841 | WHITESPACE@1562..1563 " " |
842 | PATH_TYPE@[1563; 1568) | 842 | PATH_TYPE@1563..1568 |
843 | PATH@[1563; 1568) | 843 | PATH@1563..1568 |
844 | PATH_SEGMENT@[1563; 1568) | 844 | PATH_SEGMENT@1563..1568 |
845 | NAME_REF@[1563; 1568) | 845 | NAME_REF@1563..1568 |
846 | IDENT@[1563; 1568) "usize" | 846 | IDENT@1563..1568 "usize" |
847 | WHITESPACE@[1568; 1569) " " | 847 | WHITESPACE@1568..1569 " " |
848 | BLOCK_EXPR@[1569; 1741) | 848 | BLOCK_EXPR@1569..1741 |
849 | BLOCK@[1569; 1741) | 849 | BLOCK@1569..1741 |
850 | L_CURLY@[1569; 1570) "{" | 850 | L_CURLY@1569..1570 "{" |
851 | WHITESPACE@[1570; 1575) "\n " | 851 | WHITESPACE@1570..1575 "\n " |
852 | FN_DEF@[1575; 1598) | 852 | FN_DEF@1575..1598 |
853 | FN_KW@[1575; 1577) "fn" | 853 | FN_KW@1575..1577 "fn" |
854 | WHITESPACE@[1577; 1578) " " | 854 | WHITESPACE@1577..1578 " " |
855 | NAME@[1578; 1579) | 855 | NAME@1578..1579 |
856 | IDENT@[1578; 1579) "p" | 856 | IDENT@1578..1579 "p" |
857 | PARAM_LIST@[1579; 1581) | 857 | PARAM_LIST@1579..1581 |
858 | L_PAREN@[1579; 1580) "(" | 858 | L_PAREN@1579..1580 "(" |
859 | R_PAREN@[1580; 1581) ")" | 859 | R_PAREN@1580..1581 ")" |
860 | WHITESPACE@[1581; 1582) " " | 860 | WHITESPACE@1581..1582 " " |
861 | RET_TYPE@[1582; 1589) | 861 | RET_TYPE@1582..1589 |
862 | THIN_ARROW@[1582; 1584) "->" | 862 | THIN_ARROW@1582..1584 "->" |
863 | WHITESPACE@[1584; 1585) " " | 863 | WHITESPACE@1584..1585 " " |
864 | PATH_TYPE@[1585; 1589) | 864 | PATH_TYPE@1585..1589 |
865 | PATH@[1585; 1589) | 865 | PATH@1585..1589 |
866 | PATH_SEGMENT@[1585; 1589) | 866 | PATH_SEGMENT@1585..1589 |
867 | NAME_REF@[1585; 1589) | 867 | NAME_REF@1585..1589 |
868 | IDENT@[1585; 1589) "bool" | 868 | IDENT@1585..1589 "bool" |
869 | WHITESPACE@[1589; 1590) " " | 869 | WHITESPACE@1589..1590 " " |
870 | BLOCK_EXPR@[1590; 1598) | 870 | BLOCK_EXPR@1590..1598 |
871 | BLOCK@[1590; 1598) | 871 | BLOCK@1590..1598 |
872 | L_CURLY@[1590; 1591) "{" | 872 | L_CURLY@1590..1591 "{" |
873 | WHITESPACE@[1591; 1592) " " | 873 | WHITESPACE@1591..1592 " " |
874 | LITERAL@[1592; 1596) | 874 | LITERAL@1592..1596 |
875 | TRUE_KW@[1592; 1596) "true" | 875 | TRUE_KW@1592..1596 "true" |
876 | WHITESPACE@[1596; 1597) " " | 876 | WHITESPACE@1596..1597 " " |
877 | R_CURLY@[1597; 1598) "}" | 877 | R_CURLY@1597..1598 "}" |
878 | WHITESPACE@[1598; 1603) "\n " | 878 | WHITESPACE@1598..1603 "\n " |
879 | LET_STMT@[1603; 1648) | 879 | LET_STMT@1603..1648 |
880 | LET_KW@[1603; 1606) "let" | 880 | LET_KW@1603..1606 "let" |
881 | WHITESPACE@[1606; 1607) " " | 881 | WHITESPACE@1606..1607 " " |
882 | BIND_PAT@[1607; 1609) | 882 | BIND_PAT@1607..1609 |
883 | NAME@[1607; 1609) | 883 | NAME@1607..1609 |
884 | IDENT@[1607; 1609) "_a" | 884 | IDENT@1607..1609 "_a" |
885 | WHITESPACE@[1609; 1610) " " | 885 | WHITESPACE@1609..1610 " " |
886 | EQ@[1610; 1611) "=" | 886 | EQ@1610..1611 "=" |
887 | WHITESPACE@[1611; 1612) " " | 887 | WHITESPACE@1611..1612 " " |
888 | PAREN_EXPR@[1612; 1647) | 888 | PAREN_EXPR@1612..1647 |
889 | L_PAREN@[1612; 1613) "(" | 889 | L_PAREN@1612..1613 "(" |
890 | BIN_EXPR@[1613; 1646) | 890 | BIN_EXPR@1613..1646 |
891 | MACRO_CALL@[1613; 1628) | 891 | MACRO_CALL@1613..1628 |
892 | PATH@[1613; 1619) | 892 | PATH@1613..1619 |
893 | PATH_SEGMENT@[1613; 1619) | 893 | PATH_SEGMENT@1613..1619 |
894 | NAME_REF@[1613; 1619) | 894 | NAME_REF@1613..1619 |
895 | IDENT@[1613; 1619) "assert" | 895 | IDENT@1613..1619 "assert" |
896 | BANG@[1619; 1620) "!" | 896 | BANG@1619..1620 "!" |
897 | TOKEN_TREE@[1620; 1628) | 897 | TOKEN_TREE@1620..1628 |
898 | L_PAREN@[1620; 1621) "(" | 898 | L_PAREN@1620..1621 "(" |
899 | TOKEN_TREE@[1621; 1627) | 899 | TOKEN_TREE@1621..1627 |
900 | L_PAREN@[1621; 1622) "(" | 900 | L_PAREN@1621..1622 "(" |
901 | TRUE_KW@[1622; 1626) "true" | 901 | TRUE_KW@1622..1626 "true" |
902 | R_PAREN@[1626; 1627) ")" | 902 | R_PAREN@1626..1627 ")" |
903 | R_PAREN@[1627; 1628) ")" | 903 | R_PAREN@1627..1628 ")" |
904 | WHITESPACE@[1628; 1629) " " | 904 | WHITESPACE@1628..1629 " " |
905 | EQ2@[1629; 1631) "==" | 905 | EQ2@1629..1631 "==" |
906 | WHITESPACE@[1631; 1632) " " | 906 | WHITESPACE@1631..1632 " " |
907 | PAREN_EXPR@[1632; 1646) | 907 | PAREN_EXPR@1632..1646 |
908 | L_PAREN@[1632; 1633) "(" | 908 | L_PAREN@1632..1633 "(" |
909 | MACRO_CALL@[1633; 1645) | 909 | MACRO_CALL@1633..1645 |
910 | PATH@[1633; 1639) | 910 | PATH@1633..1639 |
911 | PATH_SEGMENT@[1633; 1639) | 911 | PATH_SEGMENT@1633..1639 |
912 | NAME_REF@[1633; 1639) | 912 | NAME_REF@1633..1639 |
913 | IDENT@[1633; 1639) "assert" | 913 | IDENT@1633..1639 "assert" |
914 | BANG@[1639; 1640) "!" | 914 | BANG@1639..1640 "!" |
915 | TOKEN_TREE@[1640; 1645) | 915 | TOKEN_TREE@1640..1645 |
916 | L_PAREN@[1640; 1641) "(" | 916 | L_PAREN@1640..1641 "(" |
917 | IDENT@[1641; 1642) "p" | 917 | IDENT@1641..1642 "p" |
918 | TOKEN_TREE@[1642; 1644) | 918 | TOKEN_TREE@1642..1644 |
919 | L_PAREN@[1642; 1643) "(" | 919 | L_PAREN@1642..1643 "(" |
920 | R_PAREN@[1643; 1644) ")" | 920 | R_PAREN@1643..1644 ")" |
921 | R_PAREN@[1644; 1645) ")" | 921 | R_PAREN@1644..1645 ")" |
922 | R_PAREN@[1645; 1646) ")" | 922 | R_PAREN@1645..1646 ")" |
923 | R_PAREN@[1646; 1647) ")" | 923 | R_PAREN@1646..1647 ")" |
924 | SEMICOLON@[1647; 1648) ";" | 924 | SEMICOLON@1647..1648 ";" |
925 | WHITESPACE@[1648; 1653) "\n " | 925 | WHITESPACE@1648..1653 "\n " |
926 | LET_STMT@[1653; 1685) | 926 | LET_STMT@1653..1685 |
927 | LET_KW@[1653; 1656) "let" | 927 | LET_KW@1653..1656 "let" |
928 | WHITESPACE@[1656; 1657) " " | 928 | WHITESPACE@1656..1657 " " |
929 | BIND_PAT@[1657; 1659) | 929 | BIND_PAT@1657..1659 |
930 | NAME@[1657; 1659) | 930 | NAME@1657..1659 |
931 | IDENT@[1657; 1659) "_c" | 931 | IDENT@1657..1659 "_c" |
932 | WHITESPACE@[1659; 1660) " " | 932 | WHITESPACE@1659..1660 " " |
933 | EQ@[1660; 1661) "=" | 933 | EQ@1660..1661 "=" |
934 | WHITESPACE@[1661; 1662) " " | 934 | WHITESPACE@1661..1662 " " |
935 | PAREN_EXPR@[1662; 1684) | 935 | PAREN_EXPR@1662..1684 |
936 | L_PAREN@[1662; 1663) "(" | 936 | L_PAREN@1662..1663 "(" |
937 | BIN_EXPR@[1663; 1683) | 937 | BIN_EXPR@1663..1683 |
938 | MACRO_CALL@[1663; 1677) | 938 | MACRO_CALL@1663..1677 |
939 | PATH@[1663; 1669) | 939 | PATH@1663..1669 |
940 | PATH_SEGMENT@[1663; 1669) | 940 | PATH_SEGMENT@1663..1669 |
941 | NAME_REF@[1663; 1669) | 941 | NAME_REF@1663..1669 |
942 | IDENT@[1663; 1669) "assert" | 942 | IDENT@1663..1669 "assert" |
943 | BANG@[1669; 1670) "!" | 943 | BANG@1669..1670 "!" |
944 | TOKEN_TREE@[1670; 1677) | 944 | TOKEN_TREE@1670..1677 |
945 | L_PAREN@[1670; 1671) "(" | 945 | L_PAREN@1670..1671 "(" |
946 | TOKEN_TREE@[1671; 1676) | 946 | TOKEN_TREE@1671..1676 |
947 | L_PAREN@[1671; 1672) "(" | 947 | L_PAREN@1671..1672 "(" |
948 | IDENT@[1672; 1673) "p" | 948 | IDENT@1672..1673 "p" |
949 | TOKEN_TREE@[1673; 1675) | 949 | TOKEN_TREE@1673..1675 |
950 | L_PAREN@[1673; 1674) "(" | 950 | L_PAREN@1673..1674 "(" |
951 | R_PAREN@[1674; 1675) ")" | 951 | R_PAREN@1674..1675 ")" |
952 | R_PAREN@[1675; 1676) ")" | 952 | R_PAREN@1675..1676 ")" |
953 | R_PAREN@[1676; 1677) ")" | 953 | R_PAREN@1676..1677 ")" |
954 | WHITESPACE@[1677; 1678) " " | 954 | WHITESPACE@1677..1678 " " |
955 | EQ2@[1678; 1680) "==" | 955 | EQ2@1678..1680 "==" |
956 | WHITESPACE@[1680; 1681) " " | 956 | WHITESPACE@1680..1681 " " |
957 | TUPLE_EXPR@[1681; 1683) | 957 | TUPLE_EXPR@1681..1683 |
958 | L_PAREN@[1681; 1682) "(" | 958 | L_PAREN@1681..1682 "(" |
959 | R_PAREN@[1682; 1683) ")" | 959 | R_PAREN@1682..1683 ")" |
960 | R_PAREN@[1683; 1684) ")" | 960 | R_PAREN@1683..1684 ")" |
961 | SEMICOLON@[1684; 1685) ";" | 961 | SEMICOLON@1684..1685 ";" |
962 | WHITESPACE@[1685; 1690) "\n " | 962 | WHITESPACE@1685..1690 "\n " |
963 | LET_STMT@[1690; 1739) | 963 | LET_STMT@1690..1739 |
964 | LET_KW@[1690; 1693) "let" | 964 | LET_KW@1690..1693 "let" |
965 | WHITESPACE@[1693; 1694) " " | 965 | WHITESPACE@1693..1694 " " |
966 | BIND_PAT@[1694; 1696) | 966 | BIND_PAT@1694..1696 |
967 | NAME@[1694; 1696) | 967 | NAME@1694..1696 |
968 | IDENT@[1694; 1696) "_b" | 968 | IDENT@1694..1696 "_b" |
969 | COLON@[1696; 1697) ":" | 969 | COLON@1696..1697 ":" |
970 | WHITESPACE@[1697; 1698) " " | 970 | WHITESPACE@1697..1698 " " |
971 | PATH_TYPE@[1698; 1702) | 971 | PATH_TYPE@1698..1702 |
972 | PATH@[1698; 1702) | 972 | PATH@1698..1702 |
973 | PATH_SEGMENT@[1698; 1702) | 973 | PATH_SEGMENT@1698..1702 |
974 | NAME_REF@[1698; 1702) | 974 | NAME_REF@1698..1702 |
975 | IDENT@[1698; 1702) "bool" | 975 | IDENT@1698..1702 "bool" |
976 | WHITESPACE@[1702; 1703) " " | 976 | WHITESPACE@1702..1703 " " |
977 | EQ@[1703; 1704) "=" | 977 | EQ@1703..1704 "=" |
978 | WHITESPACE@[1704; 1705) " " | 978 | WHITESPACE@1704..1705 " " |
979 | PAREN_EXPR@[1705; 1738) | 979 | PAREN_EXPR@1705..1738 |
980 | L_PAREN@[1705; 1706) "(" | 980 | L_PAREN@1705..1706 "(" |
981 | BIN_EXPR@[1706; 1737) | 981 | BIN_EXPR@1706..1737 |
982 | MACRO_CALL@[1706; 1723) | 982 | MACRO_CALL@1706..1723 |
983 | PATH@[1706; 1713) | 983 | PATH@1706..1713 |
984 | PATH_SEGMENT@[1706; 1713) | 984 | PATH_SEGMENT@1706..1713 |
985 | NAME_REF@[1706; 1713) | 985 | NAME_REF@1706..1713 |
986 | IDENT@[1706; 1713) "println" | 986 | IDENT@1706..1713 "println" |
987 | BANG@[1713; 1714) "!" | 987 | BANG@1713..1714 "!" |
988 | TOKEN_TREE@[1714; 1723) | 988 | TOKEN_TREE@1714..1723 |
989 | L_PAREN@[1714; 1715) "(" | 989 | L_PAREN@1714..1715 "(" |
990 | STRING@[1715; 1719) "\"{}\"" | 990 | STRING@1715..1719 "\"{}\"" |
991 | COMMA@[1719; 1720) "," | 991 | COMMA@1719..1720 "," |
992 | WHITESPACE@[1720; 1721) " " | 992 | WHITESPACE@1720..1721 " " |
993 | INT_NUMBER@[1721; 1722) "0" | 993 | INT_NUMBER@1721..1722 "0" |
994 | R_PAREN@[1722; 1723) ")" | 994 | R_PAREN@1722..1723 ")" |
995 | WHITESPACE@[1723; 1724) " " | 995 | WHITESPACE@1723..1724 " " |
996 | EQ2@[1724; 1726) "==" | 996 | EQ2@1724..1726 "==" |
997 | WHITESPACE@[1726; 1727) " " | 997 | WHITESPACE@1726..1727 " " |
998 | PAREN_EXPR@[1727; 1737) | 998 | PAREN_EXPR@1727..1737 |
999 | L_PAREN@[1727; 1728) "(" | 999 | L_PAREN@1727..1728 "(" |
1000 | RETURN_EXPR@[1728; 1736) | 1000 | RETURN_EXPR@1728..1736 |
1001 | RETURN_KW@[1728; 1734) "return" | 1001 | RETURN_KW@1728..1734 "return" |
1002 | WHITESPACE@[1734; 1735) " " | 1002 | WHITESPACE@1734..1735 " " |
1003 | LITERAL@[1735; 1736) | 1003 | LITERAL@1735..1736 |
1004 | INT_NUMBER@[1735; 1736) "0" | 1004 | INT_NUMBER@1735..1736 "0" |
1005 | R_PAREN@[1736; 1737) ")" | 1005 | R_PAREN@1736..1737 ")" |
1006 | R_PAREN@[1737; 1738) ")" | 1006 | R_PAREN@1737..1738 ")" |
1007 | SEMICOLON@[1738; 1739) ";" | 1007 | SEMICOLON@1738..1739 ";" |
1008 | WHITESPACE@[1739; 1740) "\n" | 1008 | WHITESPACE@1739..1740 "\n" |
1009 | R_CURLY@[1740; 1741) "}" | 1009 | R_CURLY@1740..1741 "}" |
1010 | WHITESPACE@[1741; 1743) "\n\n" | 1010 | WHITESPACE@1741..1743 "\n\n" |
1011 | FN_DEF@[1743; 1904) | 1011 | FN_DEF@1743..1904 |
1012 | FN_KW@[1743; 1745) "fn" | 1012 | FN_KW@1743..1745 "fn" |
1013 | WHITESPACE@[1745; 1746) " " | 1013 | WHITESPACE@1745..1746 " " |
1014 | NAME@[1746; 1755) | 1014 | NAME@1746..1755 |
1015 | IDENT@[1746; 1755) "angrydome" | 1015 | IDENT@1746..1755 "angrydome" |
1016 | PARAM_LIST@[1755; 1757) | 1016 | PARAM_LIST@1755..1757 |
1017 | L_PAREN@[1755; 1756) "(" | 1017 | L_PAREN@1755..1756 "(" |
1018 | R_PAREN@[1756; 1757) ")" | 1018 | R_PAREN@1756..1757 ")" |
1019 | WHITESPACE@[1757; 1758) " " | 1019 | WHITESPACE@1757..1758 " " |
1020 | BLOCK_EXPR@[1758; 1904) | 1020 | BLOCK_EXPR@1758..1904 |
1021 | BLOCK@[1758; 1904) | 1021 | BLOCK@1758..1904 |
1022 | L_CURLY@[1758; 1759) "{" | 1022 | L_CURLY@1758..1759 "{" |
1023 | WHITESPACE@[1759; 1764) "\n " | 1023 | WHITESPACE@1759..1764 "\n " |
1024 | EXPR_STMT@[1764; 1785) | 1024 | EXPR_STMT@1764..1785 |
1025 | LOOP_EXPR@[1764; 1785) | 1025 | LOOP_EXPR@1764..1785 |
1026 | LOOP_KW@[1764; 1768) "loop" | 1026 | LOOP_KW@1764..1768 "loop" |
1027 | WHITESPACE@[1768; 1769) " " | 1027 | WHITESPACE@1768..1769 " " |
1028 | BLOCK_EXPR@[1769; 1785) | 1028 | BLOCK_EXPR@1769..1785 |
1029 | BLOCK@[1769; 1785) | 1029 | BLOCK@1769..1785 |
1030 | L_CURLY@[1769; 1770) "{" | 1030 | L_CURLY@1769..1770 "{" |
1031 | WHITESPACE@[1770; 1771) " " | 1031 | WHITESPACE@1770..1771 " " |
1032 | IF_EXPR@[1771; 1783) | 1032 | IF_EXPR@1771..1783 |
1033 | IF_KW@[1771; 1773) "if" | 1033 | IF_KW@1771..1773 "if" |
1034 | WHITESPACE@[1773; 1774) " " | 1034 | WHITESPACE@1773..1774 " " |
1035 | CONDITION@[1774; 1779) | 1035 | CONDITION@1774..1779 |
1036 | BREAK_EXPR@[1774; 1779) | 1036 | BREAK_EXPR@1774..1779 |
1037 | BREAK_KW@[1774; 1779) "break" | 1037 | BREAK_KW@1774..1779 "break" |
1038 | WHITESPACE@[1779; 1780) " " | 1038 | WHITESPACE@1779..1780 " " |
1039 | BLOCK_EXPR@[1780; 1783) | 1039 | BLOCK_EXPR@1780..1783 |
1040 | BLOCK@[1780; 1783) | 1040 | BLOCK@1780..1783 |
1041 | L_CURLY@[1780; 1781) "{" | 1041 | L_CURLY@1780..1781 "{" |
1042 | WHITESPACE@[1781; 1782) " " | 1042 | WHITESPACE@1781..1782 " " |
1043 | R_CURLY@[1782; 1783) "}" | 1043 | R_CURLY@1782..1783 "}" |
1044 | WHITESPACE@[1783; 1784) " " | 1044 | WHITESPACE@1783..1784 " " |
1045 | R_CURLY@[1784; 1785) "}" | 1045 | R_CURLY@1784..1785 "}" |
1046 | WHITESPACE@[1785; 1790) "\n " | 1046 | WHITESPACE@1785..1790 "\n " |
1047 | LET_STMT@[1790; 1804) | 1047 | LET_STMT@1790..1804 |
1048 | LET_KW@[1790; 1793) "let" | 1048 | LET_KW@1790..1793 "let" |
1049 | WHITESPACE@[1793; 1794) " " | 1049 | WHITESPACE@1793..1794 " " |
1050 | BIND_PAT@[1794; 1799) | 1050 | BIND_PAT@1794..1799 |
1051 | MUT_KW@[1794; 1797) "mut" | 1051 | MUT_KW@1794..1797 "mut" |
1052 | WHITESPACE@[1797; 1798) " " | 1052 | WHITESPACE@1797..1798 " " |
1053 | NAME@[1798; 1799) | 1053 | NAME@1798..1799 |
1054 | IDENT@[1798; 1799) "i" | 1054 | IDENT@1798..1799 "i" |
1055 | WHITESPACE@[1799; 1800) " " | 1055 | WHITESPACE@1799..1800 " " |
1056 | EQ@[1800; 1801) "=" | 1056 | EQ@1800..1801 "=" |
1057 | WHITESPACE@[1801; 1802) " " | 1057 | WHITESPACE@1801..1802 " " |
1058 | LITERAL@[1802; 1803) | 1058 | LITERAL@1802..1803 |
1059 | INT_NUMBER@[1802; 1803) "0" | 1059 | INT_NUMBER@1802..1803 "0" |
1060 | SEMICOLON@[1803; 1804) ";" | 1060 | SEMICOLON@1803..1804 ";" |
1061 | WHITESPACE@[1804; 1809) "\n " | 1061 | WHITESPACE@1804..1809 "\n " |
1062 | LOOP_EXPR@[1809; 1902) | 1062 | LOOP_EXPR@1809..1902 |
1063 | LOOP_KW@[1809; 1813) "loop" | 1063 | LOOP_KW@1809..1813 "loop" |
1064 | WHITESPACE@[1813; 1814) " " | 1064 | WHITESPACE@1813..1814 " " |
1065 | BLOCK_EXPR@[1814; 1902) | 1065 | BLOCK_EXPR@1814..1902 |
1066 | BLOCK@[1814; 1902) | 1066 | BLOCK@1814..1902 |
1067 | L_CURLY@[1814; 1815) "{" | 1067 | L_CURLY@1814..1815 "{" |
1068 | WHITESPACE@[1815; 1816) " " | 1068 | WHITESPACE@1815..1816 " " |
1069 | EXPR_STMT@[1816; 1823) | 1069 | EXPR_STMT@1816..1823 |
1070 | BIN_EXPR@[1816; 1822) | 1070 | BIN_EXPR@1816..1822 |
1071 | PATH_EXPR@[1816; 1817) | 1071 | PATH_EXPR@1816..1817 |
1072 | PATH@[1816; 1817) | 1072 | PATH@1816..1817 |
1073 | PATH_SEGMENT@[1816; 1817) | 1073 | PATH_SEGMENT@1816..1817 |
1074 | NAME_REF@[1816; 1817) | 1074 | NAME_REF@1816..1817 |
1075 | IDENT@[1816; 1817) "i" | 1075 | IDENT@1816..1817 "i" |
1076 | WHITESPACE@[1817; 1818) " " | 1076 | WHITESPACE@1817..1818 " " |
1077 | PLUSEQ@[1818; 1820) "+=" | 1077 | PLUSEQ@1818..1820 "+=" |
1078 | WHITESPACE@[1820; 1821) " " | 1078 | WHITESPACE@1820..1821 " " |
1079 | LITERAL@[1821; 1822) | 1079 | LITERAL@1821..1822 |
1080 | INT_NUMBER@[1821; 1822) "1" | 1080 | INT_NUMBER@1821..1822 "1" |
1081 | SEMICOLON@[1822; 1823) ";" | 1081 | SEMICOLON@1822..1823 ";" |
1082 | WHITESPACE@[1823; 1824) " " | 1082 | WHITESPACE@1823..1824 " " |
1083 | EXPR_STMT@[1824; 1887) | 1083 | EXPR_STMT@1824..1887 |
1084 | IF_EXPR@[1824; 1887) | 1084 | IF_EXPR@1824..1887 |
1085 | IF_KW@[1824; 1826) "if" | 1085 | IF_KW@1824..1826 "if" |
1086 | WHITESPACE@[1826; 1827) " " | 1086 | WHITESPACE@1826..1827 " " |
1087 | CONDITION@[1827; 1833) | 1087 | CONDITION@1827..1833 |
1088 | BIN_EXPR@[1827; 1833) | 1088 | BIN_EXPR@1827..1833 |
1089 | PATH_EXPR@[1827; 1828) | 1089 | PATH_EXPR@1827..1828 |
1090 | PATH@[1827; 1828) | 1090 | PATH@1827..1828 |
1091 | PATH_SEGMENT@[1827; 1828) | 1091 | PATH_SEGMENT@1827..1828 |
1092 | NAME_REF@[1827; 1828) | 1092 | NAME_REF@1827..1828 |
1093 | IDENT@[1827; 1828) "i" | 1093 | IDENT@1827..1828 "i" |
1094 | WHITESPACE@[1828; 1829) " " | 1094 | WHITESPACE@1828..1829 " " |
1095 | EQ2@[1829; 1831) "==" | 1095 | EQ2@1829..1831 "==" |
1096 | WHITESPACE@[1831; 1832) " " | 1096 | WHITESPACE@1831..1832 " " |
1097 | LITERAL@[1832; 1833) | 1097 | LITERAL@1832..1833 |
1098 | INT_NUMBER@[1832; 1833) "1" | 1098 | INT_NUMBER@1832..1833 "1" |
1099 | WHITESPACE@[1833; 1834) " " | 1099 | WHITESPACE@1833..1834 " " |
1100 | BLOCK_EXPR@[1834; 1887) | 1100 | BLOCK_EXPR@1834..1887 |
1101 | BLOCK@[1834; 1887) | 1101 | BLOCK@1834..1887 |
1102 | L_CURLY@[1834; 1835) "{" | 1102 | L_CURLY@1834..1835 "{" |
1103 | WHITESPACE@[1835; 1836) " " | 1103 | WHITESPACE@1835..1836 " " |
1104 | MATCH_EXPR@[1836; 1885) | 1104 | MATCH_EXPR@1836..1885 |
1105 | MATCH_KW@[1836; 1841) "match" | 1105 | MATCH_KW@1836..1841 "match" |
1106 | WHITESPACE@[1841; 1842) " " | 1106 | WHITESPACE@1841..1842 " " |
1107 | PAREN_EXPR@[1842; 1852) | 1107 | PAREN_EXPR@1842..1852 |
1108 | L_PAREN@[1842; 1843) "(" | 1108 | L_PAREN@1842..1843 "(" |
1109 | CONTINUE_EXPR@[1843; 1851) | 1109 | CONTINUE_EXPR@1843..1851 |
1110 | CONTINUE_KW@[1843; 1851) "continue" | 1110 | CONTINUE_KW@1843..1851 "continue" |
1111 | R_PAREN@[1851; 1852) ")" | 1111 | R_PAREN@1851..1852 ")" |
1112 | WHITESPACE@[1852; 1853) " " | 1112 | WHITESPACE@1852..1853 " " |
1113 | MATCH_ARM_LIST@[1853; 1885) | 1113 | MATCH_ARM_LIST@1853..1885 |
1114 | L_CURLY@[1853; 1854) "{" | 1114 | L_CURLY@1853..1854 "{" |
1115 | WHITESPACE@[1854; 1855) " " | 1115 | WHITESPACE@1854..1855 " " |
1116 | MATCH_ARM@[1855; 1863) | 1116 | MATCH_ARM@1855..1863 |
1117 | LITERAL_PAT@[1855; 1856) | 1117 | LITERAL_PAT@1855..1856 |
1118 | LITERAL@[1855; 1856) | 1118 | LITERAL@1855..1856 |
1119 | INT_NUMBER@[1855; 1856) "1" | 1119 | INT_NUMBER@1855..1856 "1" |
1120 | WHITESPACE@[1856; 1857) " " | 1120 | WHITESPACE@1856..1857 " " |
1121 | FAT_ARROW@[1857; 1859) "=>" | 1121 | FAT_ARROW@1857..1859 "=>" |
1122 | WHITESPACE@[1859; 1860) " " | 1122 | WHITESPACE@1859..1860 " " |
1123 | BLOCK_EXPR@[1860; 1863) | 1123 | BLOCK_EXPR@1860..1863 |
1124 | BLOCK@[1860; 1863) | 1124 | BLOCK@1860..1863 |
1125 | L_CURLY@[1860; 1861) "{" | 1125 | L_CURLY@1860..1861 "{" |
1126 | WHITESPACE@[1861; 1862) " " | 1126 | WHITESPACE@1861..1862 " " |
1127 | R_CURLY@[1862; 1863) "}" | 1127 | R_CURLY@1862..1863 "}" |
1128 | COMMA@[1863; 1864) "," | 1128 | COMMA@1863..1864 "," |
1129 | WHITESPACE@[1864; 1865) " " | 1129 | WHITESPACE@1864..1865 " " |
1130 | MATCH_ARM@[1865; 1883) | 1130 | MATCH_ARM@1865..1883 |
1131 | PLACEHOLDER_PAT@[1865; 1866) | 1131 | PLACEHOLDER_PAT@1865..1866 |
1132 | UNDERSCORE@[1865; 1866) "_" | 1132 | UNDERSCORE@1865..1866 "_" |
1133 | WHITESPACE@[1866; 1867) " " | 1133 | WHITESPACE@1866..1867 " " |
1134 | FAT_ARROW@[1867; 1869) "=>" | 1134 | FAT_ARROW@1867..1869 "=>" |
1135 | WHITESPACE@[1869; 1870) " " | 1135 | WHITESPACE@1869..1870 " " |
1136 | MACRO_CALL@[1870; 1883) | 1136 | MACRO_CALL@1870..1883 |
1137 | PATH@[1870; 1875) | 1137 | PATH@1870..1875 |
1138 | PATH_SEGMENT@[1870; 1875) | 1138 | PATH_SEGMENT@1870..1875 |
1139 | NAME_REF@[1870; 1875) | 1139 | NAME_REF@1870..1875 |
1140 | IDENT@[1870; 1875) "panic" | 1140 | IDENT@1870..1875 "panic" |
1141 | BANG@[1875; 1876) "!" | 1141 | BANG@1875..1876 "!" |
1142 | TOKEN_TREE@[1876; 1883) | 1142 | TOKEN_TREE@1876..1883 |
1143 | L_PAREN@[1876; 1877) "(" | 1143 | L_PAREN@1876..1877 "(" |
1144 | STRING@[1877; 1882) "\"wat\"" | 1144 | STRING@1877..1882 "\"wat\"" |
1145 | R_PAREN@[1882; 1883) ")" | 1145 | R_PAREN@1882..1883 ")" |
1146 | WHITESPACE@[1883; 1884) " " | 1146 | WHITESPACE@1883..1884 " " |
1147 | R_CURLY@[1884; 1885) "}" | 1147 | R_CURLY@1884..1885 "}" |
1148 | WHITESPACE@[1885; 1886) " " | 1148 | WHITESPACE@1885..1886 " " |
1149 | R_CURLY@[1886; 1887) "}" | 1149 | R_CURLY@1886..1887 "}" |
1150 | WHITESPACE@[1887; 1894) "\n " | 1150 | WHITESPACE@1887..1894 "\n " |
1151 | EXPR_STMT@[1894; 1900) | 1151 | EXPR_STMT@1894..1900 |
1152 | BREAK_EXPR@[1894; 1899) | 1152 | BREAK_EXPR@1894..1899 |
1153 | BREAK_KW@[1894; 1899) "break" | 1153 | BREAK_KW@1894..1899 "break" |
1154 | SEMICOLON@[1899; 1900) ";" | 1154 | SEMICOLON@1899..1900 ";" |
1155 | WHITESPACE@[1900; 1901) " " | 1155 | WHITESPACE@1900..1901 " " |
1156 | R_CURLY@[1901; 1902) "}" | 1156 | R_CURLY@1901..1902 "}" |
1157 | WHITESPACE@[1902; 1903) "\n" | 1157 | WHITESPACE@1902..1903 "\n" |
1158 | R_CURLY@[1903; 1904) "}" | 1158 | R_CURLY@1903..1904 "}" |
1159 | WHITESPACE@[1904; 1906) "\n\n" | 1159 | WHITESPACE@1904..1906 "\n\n" |
1160 | FN_DEF@[1906; 1960) | 1160 | FN_DEF@1906..1960 |
1161 | FN_KW@[1906; 1908) "fn" | 1161 | FN_KW@1906..1908 "fn" |
1162 | WHITESPACE@[1908; 1909) " " | 1162 | WHITESPACE@1908..1909 " " |
1163 | NAME@[1909; 1921) | 1163 | NAME@1909..1921 |
1164 | IDENT@[1909; 1921) "evil_lincoln" | 1164 | IDENT@1909..1921 "evil_lincoln" |
1165 | PARAM_LIST@[1921; 1923) | 1165 | PARAM_LIST@1921..1923 |
1166 | L_PAREN@[1921; 1922) "(" | 1166 | L_PAREN@1921..1922 "(" |
1167 | R_PAREN@[1922; 1923) ")" | 1167 | R_PAREN@1922..1923 ")" |
1168 | WHITESPACE@[1923; 1924) " " | 1168 | WHITESPACE@1923..1924 " " |
1169 | BLOCK_EXPR@[1924; 1960) | 1169 | BLOCK_EXPR@1924..1960 |
1170 | BLOCK@[1924; 1960) | 1170 | BLOCK@1924..1960 |
1171 | L_CURLY@[1924; 1925) "{" | 1171 | L_CURLY@1924..1925 "{" |
1172 | WHITESPACE@[1925; 1926) " " | 1172 | WHITESPACE@1925..1926 " " |
1173 | LET_STMT@[1926; 1958) | 1173 | LET_STMT@1926..1958 |
1174 | LET_KW@[1926; 1929) "let" | 1174 | LET_KW@1926..1929 "let" |
1175 | WHITESPACE@[1929; 1930) " " | 1175 | WHITESPACE@1929..1930 " " |
1176 | BIND_PAT@[1930; 1935) | 1176 | BIND_PAT@1930..1935 |
1177 | NAME@[1930; 1935) | 1177 | NAME@1930..1935 |
1178 | IDENT@[1930; 1935) "_evil" | 1178 | IDENT@1930..1935 "_evil" |
1179 | WHITESPACE@[1935; 1936) " " | 1179 | WHITESPACE@1935..1936 " " |
1180 | EQ@[1936; 1937) "=" | 1180 | EQ@1936..1937 "=" |
1181 | WHITESPACE@[1937; 1938) " " | 1181 | WHITESPACE@1937..1938 " " |
1182 | MACRO_CALL@[1938; 1957) | 1182 | MACRO_CALL@1938..1957 |
1183 | PATH@[1938; 1945) | 1183 | PATH@1938..1945 |
1184 | PATH_SEGMENT@[1938; 1945) | 1184 | PATH_SEGMENT@1938..1945 |
1185 | NAME_REF@[1938; 1945) | 1185 | NAME_REF@1938..1945 |
1186 | IDENT@[1938; 1945) "println" | 1186 | IDENT@1938..1945 "println" |
1187 | BANG@[1945; 1946) "!" | 1187 | BANG@1945..1946 "!" |
1188 | TOKEN_TREE@[1946; 1957) | 1188 | TOKEN_TREE@1946..1957 |
1189 | L_PAREN@[1946; 1947) "(" | 1189 | L_PAREN@1946..1947 "(" |
1190 | STRING@[1947; 1956) "\"lincoln\"" | 1190 | STRING@1947..1956 "\"lincoln\"" |
1191 | R_PAREN@[1956; 1957) ")" | 1191 | R_PAREN@1956..1957 ")" |
1192 | SEMICOLON@[1957; 1958) ";" | 1192 | SEMICOLON@1957..1958 ";" |
1193 | WHITESPACE@[1958; 1959) " " | 1193 | WHITESPACE@1958..1959 " " |
1194 | R_CURLY@[1959; 1960) "}" | 1194 | R_CURLY@1959..1960 "}" |
1195 | WHITESPACE@[1960; 1962) "\n\n" | 1195 | WHITESPACE@1960..1962 "\n\n" |
1196 | FN_DEF@[1962; 2198) | 1196 | FN_DEF@1962..2198 |
1197 | FN_KW@[1962; 1964) "fn" | 1197 | FN_KW@1962..1964 "fn" |
1198 | WHITESPACE@[1964; 1965) " " | 1198 | WHITESPACE@1964..1965 " " |
1199 | NAME@[1965; 1969) | 1199 | NAME@1965..1969 |
1200 | IDENT@[1965; 1969) "dots" | 1200 | IDENT@1965..1969 "dots" |
1201 | PARAM_LIST@[1969; 1971) | 1201 | PARAM_LIST@1969..1971 |
1202 | L_PAREN@[1969; 1970) "(" | 1202 | L_PAREN@1969..1970 "(" |
1203 | R_PAREN@[1970; 1971) ")" | 1203 | R_PAREN@1970..1971 ")" |
1204 | WHITESPACE@[1971; 1972) " " | 1204 | WHITESPACE@1971..1972 " " |
1205 | BLOCK_EXPR@[1972; 2198) | 1205 | BLOCK_EXPR@1972..2198 |
1206 | BLOCK@[1972; 2198) | 1206 | BLOCK@1972..2198 |
1207 | L_CURLY@[1972; 1973) "{" | 1207 | L_CURLY@1972..1973 "{" |
1208 | WHITESPACE@[1973; 1978) "\n " | 1208 | WHITESPACE@1973..1978 "\n " |
1209 | EXPR_STMT@[1978; 2196) | 1209 | EXPR_STMT@1978..2196 |
1210 | MACRO_CALL@[1978; 2195) | 1210 | MACRO_CALL@1978..2195 |
1211 | PATH@[1978; 1987) | 1211 | PATH@1978..1987 |
1212 | PATH_SEGMENT@[1978; 1987) | 1212 | PATH_SEGMENT@1978..1987 |
1213 | NAME_REF@[1978; 1987) | 1213 | NAME_REF@1978..1987 |
1214 | IDENT@[1978; 1987) "assert_eq" | 1214 | IDENT@1978..1987 "assert_eq" |
1215 | BANG@[1987; 1988) "!" | 1215 | BANG@1987..1988 "!" |
1216 | TOKEN_TREE@[1988; 2195) | 1216 | TOKEN_TREE@1988..2195 |
1217 | L_PAREN@[1988; 1989) "(" | 1217 | L_PAREN@1988..1989 "(" |
1218 | IDENT@[1989; 1995) "String" | 1218 | IDENT@1989..1995 "String" |
1219 | COLON@[1995; 1996) ":" | 1219 | COLON@1995..1996 ":" |
1220 | COLON@[1996; 1997) ":" | 1220 | COLON@1996..1997 ":" |
1221 | IDENT@[1997; 2001) "from" | 1221 | IDENT@1997..2001 "from" |
1222 | TOKEN_TREE@[2001; 2055) | 1222 | TOKEN_TREE@2001..2055 |
1223 | L_PAREN@[2001; 2002) "(" | 1223 | L_PAREN@2001..2002 "(" |
1224 | STRING@[2002; 2054) "\".................... ..." | 1224 | STRING@2002..2054 "\".................... ..." |
1225 | R_PAREN@[2054; 2055) ")" | 1225 | R_PAREN@2054..2055 ")" |
1226 | COMMA@[2055; 2056) "," | 1226 | COMMA@2055..2056 "," |
1227 | WHITESPACE@[2056; 2072) "\n " | 1227 | WHITESPACE@2056..2072 "\n " |
1228 | IDENT@[2072; 2078) "format" | 1228 | IDENT@2072..2078 "format" |
1229 | BANG@[2078; 2079) "!" | 1229 | BANG@2078..2079 "!" |
1230 | TOKEN_TREE@[2079; 2194) | 1230 | TOKEN_TREE@2079..2194 |
1231 | L_PAREN@[2079; 2080) "(" | 1231 | L_PAREN@2079..2080 "(" |
1232 | STRING@[2080; 2086) "\"{:?}\"" | 1232 | STRING@2080..2086 "\"{:?}\"" |
1233 | COMMA@[2086; 2087) "," | 1233 | COMMA@2086..2087 "," |
1234 | WHITESPACE@[2087; 2088) " " | 1234 | WHITESPACE@2087..2088 " " |
1235 | DOT@[2088; 2089) "." | 1235 | DOT@2088..2089 "." |
1236 | DOT@[2089; 2090) "." | 1236 | DOT@2089..2090 "." |
1237 | WHITESPACE@[2090; 2091) " " | 1237 | WHITESPACE@2090..2091 " " |
1238 | DOT@[2091; 2092) "." | 1238 | DOT@2091..2092 "." |
1239 | DOT@[2092; 2093) "." | 1239 | DOT@2092..2093 "." |
1240 | WHITESPACE@[2093; 2094) " " | 1240 | WHITESPACE@2093..2094 " " |
1241 | DOT@[2094; 2095) "." | 1241 | DOT@2094..2095 "." |
1242 | DOT@[2095; 2096) "." | 1242 | DOT@2095..2096 "." |
1243 | WHITESPACE@[2096; 2097) " " | 1243 | WHITESPACE@2096..2097 " " |
1244 | DOT@[2097; 2098) "." | 1244 | DOT@2097..2098 "." |
1245 | DOT@[2098; 2099) "." | 1245 | DOT@2098..2099 "." |
1246 | WHITESPACE@[2099; 2100) " " | 1246 | WHITESPACE@2099..2100 " " |
1247 | DOT@[2100; 2101) "." | 1247 | DOT@2100..2101 "." |
1248 | DOT@[2101; 2102) "." | 1248 | DOT@2101..2102 "." |
1249 | WHITESPACE@[2102; 2103) " " | 1249 | WHITESPACE@2102..2103 " " |
1250 | DOT@[2103; 2104) "." | 1250 | DOT@2103..2104 "." |
1251 | DOT@[2104; 2105) "." | 1251 | DOT@2104..2105 "." |
1252 | WHITESPACE@[2105; 2106) " " | 1252 | WHITESPACE@2105..2106 " " |
1253 | DOT@[2106; 2107) "." | 1253 | DOT@2106..2107 "." |
1254 | DOT@[2107; 2108) "." | 1254 | DOT@2107..2108 "." |
1255 | WHITESPACE@[2108; 2109) " " | 1255 | WHITESPACE@2108..2109 " " |
1256 | DOT@[2109; 2110) "." | 1256 | DOT@2109..2110 "." |
1257 | DOT@[2110; 2111) "." | 1257 | DOT@2110..2111 "." |
1258 | WHITESPACE@[2111; 2112) " " | 1258 | WHITESPACE@2111..2112 " " |
1259 | DOT@[2112; 2113) "." | 1259 | DOT@2112..2113 "." |
1260 | DOT@[2113; 2114) "." | 1260 | DOT@2113..2114 "." |
1261 | WHITESPACE@[2114; 2115) " " | 1261 | WHITESPACE@2114..2115 " " |
1262 | DOT@[2115; 2116) "." | 1262 | DOT@2115..2116 "." |
1263 | DOT@[2116; 2117) "." | 1263 | DOT@2116..2117 "." |
1264 | WHITESPACE@[2117; 2118) " " | 1264 | WHITESPACE@2117..2118 " " |
1265 | DOT@[2118; 2119) "." | 1265 | DOT@2118..2119 "." |
1266 | DOT@[2119; 2120) "." | 1266 | DOT@2119..2120 "." |
1267 | WHITESPACE@[2120; 2121) " " | 1267 | WHITESPACE@2120..2121 " " |
1268 | DOT@[2121; 2122) "." | 1268 | DOT@2121..2122 "." |
1269 | DOT@[2122; 2123) "." | 1269 | DOT@2122..2123 "." |
1270 | WHITESPACE@[2123; 2124) " " | 1270 | WHITESPACE@2123..2124 " " |
1271 | DOT@[2124; 2125) "." | 1271 | DOT@2124..2125 "." |
1272 | DOT@[2125; 2126) "." | 1272 | DOT@2125..2126 "." |
1273 | WHITESPACE@[2126; 2158) "\n ..." | 1273 | WHITESPACE@2126..2158 "\n ..." |
1274 | DOT@[2158; 2159) "." | 1274 | DOT@2158..2159 "." |
1275 | DOT@[2159; 2160) "." | 1275 | DOT@2159..2160 "." |
1276 | WHITESPACE@[2160; 2161) " " | 1276 | WHITESPACE@2160..2161 " " |
1277 | DOT@[2161; 2162) "." | 1277 | DOT@2161..2162 "." |
1278 | DOT@[2162; 2163) "." | 1278 | DOT@2162..2163 "." |
1279 | WHITESPACE@[2163; 2164) " " | 1279 | WHITESPACE@2163..2164 " " |
1280 | DOT@[2164; 2165) "." | 1280 | DOT@2164..2165 "." |
1281 | DOT@[2165; 2166) "." | 1281 | DOT@2165..2166 "." |
1282 | WHITESPACE@[2166; 2167) " " | 1282 | WHITESPACE@2166..2167 " " |
1283 | DOT@[2167; 2168) "." | 1283 | DOT@2167..2168 "." |
1284 | DOT@[2168; 2169) "." | 1284 | DOT@2168..2169 "." |
1285 | WHITESPACE@[2169; 2170) " " | 1285 | WHITESPACE@2169..2170 " " |
1286 | DOT@[2170; 2171) "." | 1286 | DOT@2170..2171 "." |
1287 | DOT@[2171; 2172) "." | 1287 | DOT@2171..2172 "." |
1288 | WHITESPACE@[2172; 2173) " " | 1288 | WHITESPACE@2172..2173 " " |
1289 | DOT@[2173; 2174) "." | 1289 | DOT@2173..2174 "." |
1290 | DOT@[2174; 2175) "." | 1290 | DOT@2174..2175 "." |
1291 | WHITESPACE@[2175; 2176) " " | 1291 | WHITESPACE@2175..2176 " " |
1292 | DOT@[2176; 2177) "." | 1292 | DOT@2176..2177 "." |
1293 | DOT@[2177; 2178) "." | 1293 | DOT@2177..2178 "." |
1294 | WHITESPACE@[2178; 2179) " " | 1294 | WHITESPACE@2178..2179 " " |
1295 | DOT@[2179; 2180) "." | 1295 | DOT@2179..2180 "." |
1296 | DOT@[2180; 2181) "." | 1296 | DOT@2180..2181 "." |
1297 | WHITESPACE@[2181; 2182) " " | 1297 | WHITESPACE@2181..2182 " " |
1298 | DOT@[2182; 2183) "." | 1298 | DOT@2182..2183 "." |
1299 | DOT@[2183; 2184) "." | 1299 | DOT@2183..2184 "." |
1300 | WHITESPACE@[2184; 2185) " " | 1300 | WHITESPACE@2184..2185 " " |
1301 | DOT@[2185; 2186) "." | 1301 | DOT@2185..2186 "." |
1302 | DOT@[2186; 2187) "." | 1302 | DOT@2186..2187 "." |
1303 | WHITESPACE@[2187; 2188) " " | 1303 | WHITESPACE@2187..2188 " " |
1304 | DOT@[2188; 2189) "." | 1304 | DOT@2188..2189 "." |
1305 | DOT@[2189; 2190) "." | 1305 | DOT@2189..2190 "." |
1306 | WHITESPACE@[2190; 2191) " " | 1306 | WHITESPACE@2190..2191 " " |
1307 | DOT@[2191; 2192) "." | 1307 | DOT@2191..2192 "." |
1308 | DOT@[2192; 2193) "." | 1308 | DOT@2192..2193 "." |
1309 | R_PAREN@[2193; 2194) ")" | 1309 | R_PAREN@2193..2194 ")" |
1310 | R_PAREN@[2194; 2195) ")" | 1310 | R_PAREN@2194..2195 ")" |
1311 | SEMICOLON@[2195; 2196) ";" | 1311 | SEMICOLON@2195..2196 ";" |
1312 | WHITESPACE@[2196; 2197) "\n" | 1312 | WHITESPACE@2196..2197 "\n" |
1313 | R_CURLY@[2197; 2198) "}" | 1313 | R_CURLY@2197..2198 "}" |
1314 | WHITESPACE@[2198; 2200) "\n\n" | 1314 | WHITESPACE@2198..2200 "\n\n" |
1315 | FN_DEF@[2200; 2693) | 1315 | FN_DEF@2200..2693 |
1316 | FN_KW@[2200; 2202) "fn" | 1316 | FN_KW@2200..2202 "fn" |
1317 | WHITESPACE@[2202; 2203) " " | 1317 | WHITESPACE@2202..2203 " " |
1318 | NAME@[2203; 2205) | 1318 | NAME@2203..2205 |
1319 | IDENT@[2203; 2205) "u8" | 1319 | IDENT@2203..2205 "u8" |
1320 | PARAM_LIST@[2205; 2213) | 1320 | PARAM_LIST@2205..2213 |
1321 | L_PAREN@[2205; 2206) "(" | 1321 | L_PAREN@2205..2206 "(" |
1322 | PARAM@[2206; 2212) | 1322 | PARAM@2206..2212 |
1323 | BIND_PAT@[2206; 2208) | 1323 | BIND_PAT@2206..2208 |
1324 | NAME@[2206; 2208) | 1324 | NAME@2206..2208 |
1325 | IDENT@[2206; 2208) "u8" | 1325 | IDENT@2206..2208 "u8" |
1326 | COLON@[2208; 2209) ":" | 1326 | COLON@2208..2209 ":" |
1327 | WHITESPACE@[2209; 2210) " " | 1327 | WHITESPACE@2209..2210 " " |
1328 | PATH_TYPE@[2210; 2212) | 1328 | PATH_TYPE@2210..2212 |
1329 | PATH@[2210; 2212) | 1329 | PATH@2210..2212 |
1330 | PATH_SEGMENT@[2210; 2212) | 1330 | PATH_SEGMENT@2210..2212 |
1331 | NAME_REF@[2210; 2212) | 1331 | NAME_REF@2210..2212 |
1332 | IDENT@[2210; 2212) "u8" | 1332 | IDENT@2210..2212 "u8" |
1333 | R_PAREN@[2212; 2213) ")" | 1333 | R_PAREN@2212..2213 ")" |
1334 | WHITESPACE@[2213; 2214) " " | 1334 | WHITESPACE@2213..2214 " " |
1335 | BLOCK_EXPR@[2214; 2693) | 1335 | BLOCK_EXPR@2214..2693 |
1336 | BLOCK@[2214; 2693) | 1336 | BLOCK@2214..2693 |
1337 | L_CURLY@[2214; 2215) "{" | 1337 | L_CURLY@2214..2215 "{" |
1338 | WHITESPACE@[2215; 2220) "\n " | 1338 | WHITESPACE@2215..2220 "\n " |
1339 | IF_EXPR@[2220; 2691) | 1339 | IF_EXPR@2220..2691 |
1340 | IF_KW@[2220; 2222) "if" | 1340 | IF_KW@2220..2222 "if" |
1341 | WHITESPACE@[2222; 2223) " " | 1341 | WHITESPACE@2222..2223 " " |
1342 | CONDITION@[2223; 2232) | 1342 | CONDITION@2223..2232 |
1343 | BIN_EXPR@[2223; 2232) | 1343 | BIN_EXPR@2223..2232 |
1344 | PATH_EXPR@[2223; 2225) | 1344 | PATH_EXPR@2223..2225 |
1345 | PATH@[2223; 2225) | 1345 | PATH@2223..2225 |
1346 | PATH_SEGMENT@[2223; 2225) | 1346 | PATH_SEGMENT@2223..2225 |
1347 | NAME_REF@[2223; 2225) | 1347 | NAME_REF@2223..2225 |
1348 | IDENT@[2223; 2225) "u8" | 1348 | IDENT@2223..2225 "u8" |
1349 | WHITESPACE@[2225; 2226) " " | 1349 | WHITESPACE@2225..2226 " " |
1350 | NEQ@[2226; 2228) "!=" | 1350 | NEQ@2226..2228 "!=" |
1351 | WHITESPACE@[2228; 2229) " " | 1351 | WHITESPACE@2228..2229 " " |
1352 | LITERAL@[2229; 2232) | 1352 | LITERAL@2229..2232 |
1353 | INT_NUMBER@[2229; 2232) "0u8" | 1353 | INT_NUMBER@2229..2232 "0u8" |
1354 | WHITESPACE@[2232; 2233) " " | 1354 | WHITESPACE@2232..2233 " " |
1355 | BLOCK_EXPR@[2233; 2691) | 1355 | BLOCK_EXPR@2233..2691 |
1356 | BLOCK@[2233; 2691) | 1356 | BLOCK@2233..2691 |
1357 | L_CURLY@[2233; 2234) "{" | 1357 | L_CURLY@2233..2234 "{" |
1358 | WHITESPACE@[2234; 2243) "\n " | 1358 | WHITESPACE@2234..2243 "\n " |
1359 | EXPR_STMT@[2243; 2685) | 1359 | EXPR_STMT@2243..2685 |
1360 | MACRO_CALL@[2243; 2684) | 1360 | MACRO_CALL@2243..2684 |
1361 | PATH@[2243; 2252) | 1361 | PATH@2243..2252 |
1362 | PATH_SEGMENT@[2243; 2252) | 1362 | PATH_SEGMENT@2243..2252 |
1363 | NAME_REF@[2243; 2252) | 1363 | NAME_REF@2243..2252 |
1364 | IDENT@[2243; 2252) "assert_eq" | 1364 | IDENT@2243..2252 "assert_eq" |
1365 | BANG@[2252; 2253) "!" | 1365 | BANG@2252..2253 "!" |
1366 | TOKEN_TREE@[2253; 2684) | 1366 | TOKEN_TREE@2253..2684 |
1367 | L_PAREN@[2253; 2254) "(" | 1367 | L_PAREN@2253..2254 "(" |
1368 | INT_NUMBER@[2254; 2257) "8u8" | 1368 | INT_NUMBER@2254..2257 "8u8" |
1369 | COMMA@[2257; 2258) "," | 1369 | COMMA@2257..2258 "," |
1370 | WHITESPACE@[2258; 2259) " " | 1370 | WHITESPACE@2258..2259 " " |
1371 | TOKEN_TREE@[2259; 2683) | 1371 | TOKEN_TREE@2259..2683 |
1372 | L_CURLY@[2259; 2260) "{" | 1372 | L_CURLY@2259..2260 "{" |
1373 | WHITESPACE@[2260; 2273) "\n " | 1373 | WHITESPACE@2260..2273 "\n " |
1374 | IDENT@[2273; 2284) "macro_rules" | 1374 | IDENT@2273..2284 "macro_rules" |
1375 | BANG@[2284; 2285) "!" | 1375 | BANG@2284..2285 "!" |
1376 | WHITESPACE@[2285; 2286) " " | 1376 | WHITESPACE@2285..2286 " " |
1377 | IDENT@[2286; 2288) "u8" | 1377 | IDENT@2286..2288 "u8" |
1378 | WHITESPACE@[2288; 2289) " " | 1378 | WHITESPACE@2288..2289 " " |
1379 | TOKEN_TREE@[2289; 2567) | 1379 | TOKEN_TREE@2289..2567 |
1380 | L_CURLY@[2289; 2290) "{" | 1380 | L_CURLY@2289..2290 "{" |
1381 | WHITESPACE@[2290; 2307) "\n " | 1381 | WHITESPACE@2290..2307 "\n " |
1382 | TOKEN_TREE@[2307; 2311) | 1382 | TOKEN_TREE@2307..2311 |
1383 | L_PAREN@[2307; 2308) "(" | 1383 | L_PAREN@2307..2308 "(" |
1384 | IDENT@[2308; 2310) "u8" | 1384 | IDENT@2308..2310 "u8" |
1385 | R_PAREN@[2310; 2311) ")" | 1385 | R_PAREN@2310..2311 ")" |
1386 | WHITESPACE@[2311; 2312) " " | 1386 | WHITESPACE@2311..2312 " " |
1387 | EQ@[2312; 2313) "=" | 1387 | EQ@2312..2313 "=" |
1388 | R_ANGLE@[2313; 2314) ">" | 1388 | R_ANGLE@2313..2314 ">" |
1389 | WHITESPACE@[2314; 2315) " " | 1389 | WHITESPACE@2314..2315 " " |
1390 | TOKEN_TREE@[2315; 2552) | 1390 | TOKEN_TREE@2315..2552 |
1391 | L_CURLY@[2315; 2316) "{" | 1391 | L_CURLY@2315..2316 "{" |
1392 | WHITESPACE@[2316; 2337) "\n " | 1392 | WHITESPACE@2316..2337 "\n " |
1393 | MOD_KW@[2337; 2340) "mod" | 1393 | MOD_KW@2337..2340 "mod" |
1394 | WHITESPACE@[2340; 2341) " " | 1394 | WHITESPACE@2340..2341 " " |
1395 | IDENT@[2341; 2343) "u8" | 1395 | IDENT@2341..2343 "u8" |
1396 | WHITESPACE@[2343; 2344) " " | 1396 | WHITESPACE@2343..2344 " " |
1397 | TOKEN_TREE@[2344; 2534) | 1397 | TOKEN_TREE@2344..2534 |
1398 | L_CURLY@[2344; 2345) "{" | 1398 | L_CURLY@2344..2345 "{" |
1399 | WHITESPACE@[2345; 2370) "\n ..." | 1399 | WHITESPACE@2345..2370 "\n ..." |
1400 | PUB_KW@[2370; 2373) "pub" | 1400 | PUB_KW@2370..2373 "pub" |
1401 | WHITESPACE@[2373; 2374) " " | 1401 | WHITESPACE@2373..2374 " " |
1402 | FN_KW@[2374; 2376) "fn" | 1402 | FN_KW@2374..2376 "fn" |
1403 | WHITESPACE@[2376; 2377) " " | 1403 | WHITESPACE@2376..2377 " " |
1404 | IDENT@[2377; 2379) "u8" | 1404 | IDENT@2377..2379 "u8" |
1405 | L_ANGLE@[2379; 2380) "<" | 1405 | L_ANGLE@2379..2380 "<" |
1406 | LIFETIME@[2380; 2383) "\'u8" | 1406 | LIFETIME@2380..2383 "\'u8" |
1407 | COLON@[2383; 2384) ":" | 1407 | COLON@2383..2384 ":" |
1408 | WHITESPACE@[2384; 2385) " " | 1408 | WHITESPACE@2384..2385 " " |
1409 | LIFETIME@[2385; 2388) "\'u8" | 1409 | LIFETIME@2385..2388 "\'u8" |
1410 | WHITESPACE@[2388; 2389) " " | 1410 | WHITESPACE@2388..2389 " " |
1411 | PLUS@[2389; 2390) "+" | 1411 | PLUS@2389..2390 "+" |
1412 | WHITESPACE@[2390; 2391) " " | 1412 | WHITESPACE@2390..2391 " " |
1413 | LIFETIME@[2391; 2394) "\'u8" | 1413 | LIFETIME@2391..2394 "\'u8" |
1414 | R_ANGLE@[2394; 2395) ">" | 1414 | R_ANGLE@2394..2395 ">" |
1415 | TOKEN_TREE@[2395; 2408) | 1415 | TOKEN_TREE@2395..2408 |
1416 | L_PAREN@[2395; 2396) "(" | 1416 | L_PAREN@2395..2396 "(" |
1417 | IDENT@[2396; 2398) "u8" | 1417 | IDENT@2396..2398 "u8" |
1418 | COLON@[2398; 2399) ":" | 1418 | COLON@2398..2399 ":" |
1419 | WHITESPACE@[2399; 2400) " " | 1419 | WHITESPACE@2399..2400 " " |
1420 | AMP@[2400; 2401) "&" | 1420 | AMP@2400..2401 "&" |
1421 | LIFETIME@[2401; 2404) "\'u8" | 1421 | LIFETIME@2401..2404 "\'u8" |
1422 | WHITESPACE@[2404; 2405) " " | 1422 | WHITESPACE@2404..2405 " " |
1423 | IDENT@[2405; 2407) "u8" | 1423 | IDENT@2405..2407 "u8" |
1424 | R_PAREN@[2407; 2408) ")" | 1424 | R_PAREN@2407..2408 ")" |
1425 | WHITESPACE@[2408; 2409) " " | 1425 | WHITESPACE@2408..2409 " " |
1426 | MINUS@[2409; 2410) "-" | 1426 | MINUS@2409..2410 "-" |
1427 | R_ANGLE@[2410; 2411) ">" | 1427 | R_ANGLE@2410..2411 ">" |
1428 | WHITESPACE@[2411; 2412) " " | 1428 | WHITESPACE@2411..2412 " " |
1429 | AMP@[2412; 2413) "&" | 1429 | AMP@2412..2413 "&" |
1430 | LIFETIME@[2413; 2416) "\'u8" | 1430 | LIFETIME@2413..2416 "\'u8" |
1431 | WHITESPACE@[2416; 2417) " " | 1431 | WHITESPACE@2416..2417 " " |
1432 | IDENT@[2417; 2419) "u8" | 1432 | IDENT@2417..2419 "u8" |
1433 | WHITESPACE@[2419; 2420) " " | 1433 | WHITESPACE@2419..2420 " " |
1434 | TOKEN_TREE@[2420; 2512) | 1434 | TOKEN_TREE@2420..2512 |
1435 | L_CURLY@[2420; 2421) "{" | 1435 | L_CURLY@2420..2421 "{" |
1436 | WHITESPACE@[2421; 2450) "\n ..." | 1436 | WHITESPACE@2421..2450 "\n ..." |
1437 | STRING@[2450; 2454) "\"u8\"" | 1437 | STRING@2450..2454 "\"u8\"" |
1438 | SEMICOLON@[2454; 2455) ";" | 1438 | SEMICOLON@2454..2455 ";" |
1439 | WHITESPACE@[2455; 2484) "\n ..." | 1439 | WHITESPACE@2455..2484 "\n ..." |
1440 | IDENT@[2484; 2486) "u8" | 1440 | IDENT@2484..2486 "u8" |
1441 | WHITESPACE@[2486; 2511) "\n ..." | 1441 | WHITESPACE@2486..2511 "\n ..." |
1442 | R_CURLY@[2511; 2512) "}" | 1442 | R_CURLY@2511..2512 "}" |
1443 | WHITESPACE@[2512; 2533) "\n " | 1443 | WHITESPACE@2512..2533 "\n " |
1444 | R_CURLY@[2533; 2534) "}" | 1444 | R_CURLY@2533..2534 "}" |
1445 | WHITESPACE@[2534; 2551) "\n " | 1445 | WHITESPACE@2534..2551 "\n " |
1446 | R_CURLY@[2551; 2552) "}" | 1446 | R_CURLY@2551..2552 "}" |
1447 | SEMICOLON@[2552; 2553) ";" | 1447 | SEMICOLON@2552..2553 ";" |
1448 | WHITESPACE@[2553; 2566) "\n " | 1448 | WHITESPACE@2553..2566 "\n " |
1449 | R_CURLY@[2566; 2567) "}" | 1449 | R_CURLY@2566..2567 "}" |
1450 | WHITESPACE@[2567; 2581) "\n\n " | 1450 | WHITESPACE@2567..2581 "\n\n " |
1451 | IDENT@[2581; 2583) "u8" | 1451 | IDENT@2581..2583 "u8" |
1452 | BANG@[2583; 2584) "!" | 1452 | BANG@2583..2584 "!" |
1453 | TOKEN_TREE@[2584; 2588) | 1453 | TOKEN_TREE@2584..2588 |
1454 | L_PAREN@[2584; 2585) "(" | 1454 | L_PAREN@2584..2585 "(" |
1455 | IDENT@[2585; 2587) "u8" | 1455 | IDENT@2585..2587 "u8" |
1456 | R_PAREN@[2587; 2588) ")" | 1456 | R_PAREN@2587..2588 ")" |
1457 | SEMICOLON@[2588; 2589) ";" | 1457 | SEMICOLON@2588..2589 ";" |
1458 | WHITESPACE@[2589; 2602) "\n " | 1458 | WHITESPACE@2589..2602 "\n " |
1459 | LET_KW@[2602; 2605) "let" | 1459 | LET_KW@2602..2605 "let" |
1460 | WHITESPACE@[2605; 2606) " " | 1460 | WHITESPACE@2605..2606 " " |
1461 | AMP@[2606; 2607) "&" | 1461 | AMP@2606..2607 "&" |
1462 | IDENT@[2607; 2609) "u8" | 1462 | IDENT@2607..2609 "u8" |
1463 | COLON@[2609; 2610) ":" | 1463 | COLON@2609..2610 ":" |
1464 | WHITESPACE@[2610; 2611) " " | 1464 | WHITESPACE@2610..2611 " " |
1465 | AMP@[2611; 2612) "&" | 1465 | AMP@2611..2612 "&" |
1466 | IDENT@[2612; 2614) "u8" | 1466 | IDENT@2612..2614 "u8" |
1467 | WHITESPACE@[2614; 2615) " " | 1467 | WHITESPACE@2614..2615 " " |
1468 | EQ@[2615; 2616) "=" | 1468 | EQ@2615..2616 "=" |
1469 | WHITESPACE@[2616; 2617) " " | 1469 | WHITESPACE@2616..2617 " " |
1470 | IDENT@[2617; 2619) "u8" | 1470 | IDENT@2617..2619 "u8" |
1471 | COLON@[2619; 2620) ":" | 1471 | COLON@2619..2620 ":" |
1472 | COLON@[2620; 2621) ":" | 1472 | COLON@2620..2621 ":" |
1473 | IDENT@[2621; 2623) "u8" | 1473 | IDENT@2621..2623 "u8" |
1474 | TOKEN_TREE@[2623; 2629) | 1474 | TOKEN_TREE@2623..2629 |
1475 | L_PAREN@[2623; 2624) "(" | 1475 | L_PAREN@2623..2624 "(" |
1476 | AMP@[2624; 2625) "&" | 1476 | AMP@2624..2625 "&" |
1477 | INT_NUMBER@[2625; 2628) "8u8" | 1477 | INT_NUMBER@2625..2628 "8u8" |
1478 | R_PAREN@[2628; 2629) ")" | 1478 | R_PAREN@2628..2629 ")" |
1479 | SEMICOLON@[2629; 2630) ";" | 1479 | SEMICOLON@2629..2630 ";" |
1480 | WHITESPACE@[2630; 2643) "\n " | 1480 | WHITESPACE@2630..2643 "\n " |
1481 | CRATE_KW@[2643; 2648) "crate" | 1481 | CRATE_KW@2643..2648 "crate" |
1482 | COLON@[2648; 2649) ":" | 1482 | COLON@2648..2649 ":" |
1483 | COLON@[2649; 2650) ":" | 1483 | COLON@2649..2650 ":" |
1484 | IDENT@[2650; 2652) "u8" | 1484 | IDENT@2650..2652 "u8" |
1485 | TOKEN_TREE@[2652; 2657) | 1485 | TOKEN_TREE@2652..2657 |
1486 | L_PAREN@[2652; 2653) "(" | 1486 | L_PAREN@2652..2653 "(" |
1487 | INT_NUMBER@[2653; 2656) "0u8" | 1487 | INT_NUMBER@2653..2656 "0u8" |
1488 | R_PAREN@[2656; 2657) ")" | 1488 | R_PAREN@2656..2657 ")" |
1489 | SEMICOLON@[2657; 2658) ";" | 1489 | SEMICOLON@2657..2658 ";" |
1490 | WHITESPACE@[2658; 2671) "\n " | 1490 | WHITESPACE@2658..2671 "\n " |
1491 | IDENT@[2671; 2673) "u8" | 1491 | IDENT@2671..2673 "u8" |
1492 | WHITESPACE@[2673; 2682) "\n " | 1492 | WHITESPACE@2673..2682 "\n " |
1493 | R_CURLY@[2682; 2683) "}" | 1493 | R_CURLY@2682..2683 "}" |
1494 | R_PAREN@[2683; 2684) ")" | 1494 | R_PAREN@2683..2684 ")" |
1495 | SEMICOLON@[2684; 2685) ";" | 1495 | SEMICOLON@2684..2685 ";" |
1496 | WHITESPACE@[2685; 2690) "\n " | 1496 | WHITESPACE@2685..2690 "\n " |
1497 | R_CURLY@[2690; 2691) "}" | 1497 | R_CURLY@2690..2691 "}" |
1498 | WHITESPACE@[2691; 2692) "\n" | 1498 | WHITESPACE@2691..2692 "\n" |
1499 | R_CURLY@[2692; 2693) "}" | 1499 | R_CURLY@2692..2693 "}" |
1500 | WHITESPACE@[2693; 2695) "\n\n" | 1500 | WHITESPACE@2693..2695 "\n\n" |
1501 | FN_DEF@[2695; 2832) | 1501 | FN_DEF@2695..2832 |
1502 | FN_KW@[2695; 2697) "fn" | 1502 | FN_KW@2695..2697 "fn" |
1503 | WHITESPACE@[2697; 2698) " " | 1503 | WHITESPACE@2697..2698 " " |
1504 | NAME@[2698; 2703) | 1504 | NAME@2698..2703 |
1505 | IDENT@[2698; 2703) "fishy" | 1505 | IDENT@2698..2703 "fishy" |
1506 | PARAM_LIST@[2703; 2705) | 1506 | PARAM_LIST@2703..2705 |
1507 | L_PAREN@[2703; 2704) "(" | 1507 | L_PAREN@2703..2704 "(" |
1508 | R_PAREN@[2704; 2705) ")" | 1508 | R_PAREN@2704..2705 ")" |
1509 | WHITESPACE@[2705; 2706) " " | 1509 | WHITESPACE@2705..2706 " " |
1510 | BLOCK_EXPR@[2706; 2832) | 1510 | BLOCK_EXPR@2706..2832 |
1511 | BLOCK@[2706; 2832) | 1511 | BLOCK@2706..2832 |
1512 | L_CURLY@[2706; 2707) "{" | 1512 | L_CURLY@2706..2707 "{" |
1513 | WHITESPACE@[2707; 2712) "\n " | 1513 | WHITESPACE@2707..2712 "\n " |
1514 | EXPR_STMT@[2712; 2830) | 1514 | EXPR_STMT@2712..2830 |
1515 | MACRO_CALL@[2712; 2829) | 1515 | MACRO_CALL@2712..2829 |
1516 | PATH@[2712; 2721) | 1516 | PATH@2712..2721 |
1517 | PATH_SEGMENT@[2712; 2721) | 1517 | PATH_SEGMENT@2712..2721 |
1518 | NAME_REF@[2712; 2721) | 1518 | NAME_REF@2712..2721 |
1519 | IDENT@[2712; 2721) "assert_eq" | 1519 | IDENT@2712..2721 "assert_eq" |
1520 | BANG@[2721; 2722) "!" | 1520 | BANG@2721..2722 "!" |
1521 | TOKEN_TREE@[2722; 2829) | 1521 | TOKEN_TREE@2722..2829 |
1522 | L_PAREN@[2722; 2723) "(" | 1522 | L_PAREN@2722..2723 "(" |
1523 | IDENT@[2723; 2729) "String" | 1523 | IDENT@2723..2729 "String" |
1524 | COLON@[2729; 2730) ":" | 1524 | COLON@2729..2730 ":" |
1525 | COLON@[2730; 2731) ":" | 1525 | COLON@2730..2731 ":" |
1526 | IDENT@[2731; 2735) "from" | 1526 | IDENT@2731..2735 "from" |
1527 | TOKEN_TREE@[2735; 2742) | 1527 | TOKEN_TREE@2735..2742 |
1528 | L_PAREN@[2735; 2736) "(" | 1528 | L_PAREN@2735..2736 "(" |
1529 | STRING@[2736; 2741) "\"><>\"" | 1529 | STRING@2736..2741 "\"><>\"" |
1530 | R_PAREN@[2741; 2742) ")" | 1530 | R_PAREN@2741..2742 ")" |
1531 | COMMA@[2742; 2743) "," | 1531 | COMMA@2742..2743 "," |
1532 | WHITESPACE@[2743; 2759) "\n " | 1532 | WHITESPACE@2743..2759 "\n " |
1533 | IDENT@[2759; 2765) "String" | 1533 | IDENT@2759..2765 "String" |
1534 | COLON@[2765; 2766) ":" | 1534 | COLON@2765..2766 ":" |
1535 | COLON@[2766; 2767) ":" | 1535 | COLON@2766..2767 ":" |
1536 | L_ANGLE@[2767; 2768) "<" | 1536 | L_ANGLE@2767..2768 "<" |
1537 | R_ANGLE@[2768; 2769) ">" | 1537 | R_ANGLE@2768..2769 ">" |
1538 | COLON@[2769; 2770) ":" | 1538 | COLON@2769..2770 ":" |
1539 | COLON@[2770; 2771) ":" | 1539 | COLON@2770..2771 ":" |
1540 | IDENT@[2771; 2775) "from" | 1540 | IDENT@2771..2775 "from" |
1541 | COLON@[2775; 2776) ":" | 1541 | COLON@2775..2776 ":" |
1542 | COLON@[2776; 2777) ":" | 1542 | COLON@2776..2777 ":" |
1543 | L_ANGLE@[2777; 2778) "<" | 1543 | L_ANGLE@2777..2778 "<" |
1544 | R_ANGLE@[2778; 2779) ">" | 1544 | R_ANGLE@2778..2779 ">" |
1545 | TOKEN_TREE@[2779; 2786) | 1545 | TOKEN_TREE@2779..2786 |
1546 | L_PAREN@[2779; 2780) "(" | 1546 | L_PAREN@2779..2780 "(" |
1547 | STRING@[2780; 2785) "\"><>\"" | 1547 | STRING@2780..2785 "\"><>\"" |
1548 | R_PAREN@[2785; 2786) ")" | 1548 | R_PAREN@2785..2786 ")" |
1549 | DOT@[2786; 2787) "." | 1549 | DOT@2786..2787 "." |
1550 | IDENT@[2787; 2792) "chars" | 1550 | IDENT@2787..2792 "chars" |
1551 | COLON@[2792; 2793) ":" | 1551 | COLON@2792..2793 ":" |
1552 | COLON@[2793; 2794) ":" | 1552 | COLON@2793..2794 ":" |
1553 | L_ANGLE@[2794; 2795) "<" | 1553 | L_ANGLE@2794..2795 "<" |
1554 | R_ANGLE@[2795; 2796) ">" | 1554 | R_ANGLE@2795..2796 ">" |
1555 | TOKEN_TREE@[2796; 2798) | 1555 | TOKEN_TREE@2796..2798 |
1556 | L_PAREN@[2796; 2797) "(" | 1556 | L_PAREN@2796..2797 "(" |
1557 | R_PAREN@[2797; 2798) ")" | 1557 | R_PAREN@2797..2798 ")" |
1558 | DOT@[2798; 2799) "." | 1558 | DOT@2798..2799 "." |
1559 | IDENT@[2799; 2802) "rev" | 1559 | IDENT@2799..2802 "rev" |
1560 | COLON@[2802; 2803) ":" | 1560 | COLON@2802..2803 ":" |
1561 | COLON@[2803; 2804) ":" | 1561 | COLON@2803..2804 ":" |
1562 | L_ANGLE@[2804; 2805) "<" | 1562 | L_ANGLE@2804..2805 "<" |
1563 | R_ANGLE@[2805; 2806) ">" | 1563 | R_ANGLE@2805..2806 ">" |
1564 | TOKEN_TREE@[2806; 2808) | 1564 | TOKEN_TREE@2806..2808 |
1565 | L_PAREN@[2806; 2807) "(" | 1565 | L_PAREN@2806..2807 "(" |
1566 | R_PAREN@[2807; 2808) ")" | 1566 | R_PAREN@2807..2808 ")" |
1567 | DOT@[2808; 2809) "." | 1567 | DOT@2808..2809 "." |
1568 | IDENT@[2809; 2816) "collect" | 1568 | IDENT@2809..2816 "collect" |
1569 | COLON@[2816; 2817) ":" | 1569 | COLON@2816..2817 ":" |
1570 | COLON@[2817; 2818) ":" | 1570 | COLON@2817..2818 ":" |
1571 | L_ANGLE@[2818; 2819) "<" | 1571 | L_ANGLE@2818..2819 "<" |
1572 | IDENT@[2819; 2825) "String" | 1572 | IDENT@2819..2825 "String" |
1573 | R_ANGLE@[2825; 2826) ">" | 1573 | R_ANGLE@2825..2826 ">" |
1574 | TOKEN_TREE@[2826; 2828) | 1574 | TOKEN_TREE@2826..2828 |
1575 | L_PAREN@[2826; 2827) "(" | 1575 | L_PAREN@2826..2827 "(" |
1576 | R_PAREN@[2827; 2828) ")" | 1576 | R_PAREN@2827..2828 ")" |
1577 | R_PAREN@[2828; 2829) ")" | 1577 | R_PAREN@2828..2829 ")" |
1578 | SEMICOLON@[2829; 2830) ";" | 1578 | SEMICOLON@2829..2830 ";" |
1579 | WHITESPACE@[2830; 2831) "\n" | 1579 | WHITESPACE@2830..2831 "\n" |
1580 | R_CURLY@[2831; 2832) "}" | 1580 | R_CURLY@2831..2832 "}" |
1581 | WHITESPACE@[2832; 2834) "\n\n" | 1581 | WHITESPACE@2832..2834 "\n\n" |
1582 | FN_DEF@[2834; 2906) | 1582 | FN_DEF@2834..2906 |
1583 | FN_KW@[2834; 2836) "fn" | 1583 | FN_KW@2834..2836 "fn" |
1584 | WHITESPACE@[2836; 2837) " " | 1584 | WHITESPACE@2836..2837 " " |
1585 | NAME@[2837; 2842) | 1585 | NAME@2837..2842 |
1586 | IDENT@[2837; 2842) "union" | 1586 | IDENT@2837..2842 "union" |
1587 | PARAM_LIST@[2842; 2844) | 1587 | PARAM_LIST@2842..2844 |
1588 | L_PAREN@[2842; 2843) "(" | 1588 | L_PAREN@2842..2843 "(" |
1589 | R_PAREN@[2843; 2844) ")" | 1589 | R_PAREN@2843..2844 ")" |
1590 | WHITESPACE@[2844; 2845) " " | 1590 | WHITESPACE@2844..2845 " " |
1591 | BLOCK_EXPR@[2845; 2906) | 1591 | BLOCK_EXPR@2845..2906 |
1592 | BLOCK@[2845; 2906) | 1592 | BLOCK@2845..2906 |
1593 | L_CURLY@[2845; 2846) "{" | 1593 | L_CURLY@2845..2846 "{" |
1594 | WHITESPACE@[2846; 2851) "\n " | 1594 | WHITESPACE@2846..2851 "\n " |
1595 | UNION_DEF@[2851; 2904) | 1595 | UNION_DEF@2851..2904 |
1596 | UNION_KW@[2851; 2856) "union" | 1596 | UNION_KW@2851..2856 "union" |
1597 | WHITESPACE@[2856; 2857) " " | 1597 | WHITESPACE@2856..2857 " " |
1598 | NAME@[2857; 2862) | 1598 | NAME@2857..2862 |
1599 | IDENT@[2857; 2862) "union" | 1599 | IDENT@2857..2862 "union" |
1600 | TYPE_PARAM_LIST@[2862; 2870) | 1600 | TYPE_PARAM_LIST@2862..2870 |
1601 | L_ANGLE@[2862; 2863) "<" | 1601 | L_ANGLE@2862..2863 "<" |
1602 | LIFETIME_PARAM@[2863; 2869) | 1602 | LIFETIME_PARAM@2863..2869 |
1603 | LIFETIME@[2863; 2869) "\'union" | 1603 | LIFETIME@2863..2869 "\'union" |
1604 | R_ANGLE@[2869; 2870) ">" | 1604 | R_ANGLE@2869..2870 ">" |
1605 | WHITESPACE@[2870; 2871) " " | 1605 | WHITESPACE@2870..2871 " " |
1606 | RECORD_FIELD_DEF_LIST@[2871; 2904) | 1606 | RECORD_FIELD_DEF_LIST@2871..2904 |
1607 | L_CURLY@[2871; 2872) "{" | 1607 | L_CURLY@2871..2872 "{" |
1608 | WHITESPACE@[2872; 2873) " " | 1608 | WHITESPACE@2872..2873 " " |
1609 | RECORD_FIELD_DEF@[2873; 2901) | 1609 | RECORD_FIELD_DEF@2873..2901 |
1610 | NAME@[2873; 2878) | 1610 | NAME@2873..2878 |
1611 | IDENT@[2873; 2878) "union" | 1611 | IDENT@2873..2878 "union" |
1612 | COLON@[2878; 2879) ":" | 1612 | COLON@2878..2879 ":" |
1613 | WHITESPACE@[2879; 2880) " " | 1613 | WHITESPACE@2879..2880 " " |
1614 | REFERENCE_TYPE@[2880; 2901) | 1614 | REFERENCE_TYPE@2880..2901 |
1615 | AMP@[2880; 2881) "&" | 1615 | AMP@2880..2881 "&" |
1616 | LIFETIME@[2881; 2887) "\'union" | 1616 | LIFETIME@2881..2887 "\'union" |
1617 | WHITESPACE@[2887; 2888) " " | 1617 | WHITESPACE@2887..2888 " " |
1618 | PATH_TYPE@[2888; 2901) | 1618 | PATH_TYPE@2888..2901 |
1619 | PATH@[2888; 2901) | 1619 | PATH@2888..2901 |
1620 | PATH_SEGMENT@[2888; 2901) | 1620 | PATH_SEGMENT@2888..2901 |
1621 | NAME_REF@[2888; 2893) | 1621 | NAME_REF@2888..2893 |
1622 | IDENT@[2888; 2893) "union" | 1622 | IDENT@2888..2893 "union" |
1623 | TYPE_ARG_LIST@[2893; 2901) | 1623 | TYPE_ARG_LIST@2893..2901 |
1624 | L_ANGLE@[2893; 2894) "<" | 1624 | L_ANGLE@2893..2894 "<" |
1625 | LIFETIME_ARG@[2894; 2900) | 1625 | LIFETIME_ARG@2894..2900 |
1626 | LIFETIME@[2894; 2900) "\'union" | 1626 | LIFETIME@2894..2900 "\'union" |
1627 | R_ANGLE@[2900; 2901) ">" | 1627 | R_ANGLE@2900..2901 ">" |
1628 | COMMA@[2901; 2902) "," | 1628 | COMMA@2901..2902 "," |
1629 | WHITESPACE@[2902; 2903) " " | 1629 | WHITESPACE@2902..2903 " " |
1630 | R_CURLY@[2903; 2904) "}" | 1630 | R_CURLY@2903..2904 "}" |
1631 | WHITESPACE@[2904; 2905) "\n" | 1631 | WHITESPACE@2904..2905 "\n" |
1632 | R_CURLY@[2905; 2906) "}" | 1632 | R_CURLY@2905..2906 "}" |
1633 | WHITESPACE@[2906; 2908) "\n\n" | 1633 | WHITESPACE@2906..2908 "\n\n" |
1634 | FN_DEF@[2908; 3042) | 1634 | FN_DEF@2908..3042 |
1635 | FN_KW@[2908; 2910) "fn" | 1635 | FN_KW@2908..2910 "fn" |
1636 | WHITESPACE@[2910; 2911) " " | 1636 | WHITESPACE@2910..2911 " " |
1637 | NAME@[2911; 2929) | 1637 | NAME@2911..2929 |
1638 | IDENT@[2911; 2929) "special_characters" | 1638 | IDENT@2911..2929 "special_characters" |
1639 | PARAM_LIST@[2929; 2931) | 1639 | PARAM_LIST@2929..2931 |
1640 | L_PAREN@[2929; 2930) "(" | 1640 | L_PAREN@2929..2930 "(" |
1641 | R_PAREN@[2930; 2931) ")" | 1641 | R_PAREN@2930..2931 ")" |
1642 | WHITESPACE@[2931; 2932) " " | 1642 | WHITESPACE@2931..2932 " " |
1643 | BLOCK_EXPR@[2932; 3042) | 1643 | BLOCK_EXPR@2932..3042 |
1644 | BLOCK@[2932; 3042) | 1644 | BLOCK@2932..3042 |
1645 | L_CURLY@[2932; 2933) "{" | 1645 | L_CURLY@2932..2933 "{" |
1646 | WHITESPACE@[2933; 2938) "\n " | 1646 | WHITESPACE@2933..2938 "\n " |
1647 | LET_STMT@[2938; 3021) | 1647 | LET_STMT@2938..3021 |
1648 | LET_KW@[2938; 2941) "let" | 1648 | LET_KW@2938..2941 "let" |
1649 | WHITESPACE@[2941; 2942) " " | 1649 | WHITESPACE@2941..2942 " " |
1650 | BIND_PAT@[2942; 2945) | 1650 | BIND_PAT@2942..2945 |
1651 | NAME@[2942; 2945) | 1651 | NAME@2942..2945 |
1652 | IDENT@[2942; 2945) "val" | 1652 | IDENT@2942..2945 "val" |
1653 | WHITESPACE@[2945; 2946) " " | 1653 | WHITESPACE@2945..2946 " " |
1654 | EQ@[2946; 2947) "=" | 1654 | EQ@2946..2947 "=" |
1655 | WHITESPACE@[2947; 2948) " " | 1655 | WHITESPACE@2947..2948 " " |
1656 | PREFIX_EXPR@[2948; 3013) | 1656 | PREFIX_EXPR@2948..3013 |
1657 | BANG@[2948; 2949) "!" | 1657 | BANG@2948..2949 "!" |
1658 | PAREN_EXPR@[2949; 3013) | 1658 | PAREN_EXPR@2949..3013 |
1659 | L_PAREN@[2949; 2950) "(" | 1659 | L_PAREN@2949..2950 "(" |
1660 | BIN_EXPR@[2950; 3012) | 1660 | BIN_EXPR@2950..3012 |
1661 | CALL_EXPR@[2950; 2995) | 1661 | CALL_EXPR@2950..2995 |
1662 | PAREN_EXPR@[2950; 2971) | 1662 | PAREN_EXPR@2950..2971 |
1663 | L_PAREN@[2950; 2951) "(" | 1663 | L_PAREN@2950..2951 "(" |
1664 | LAMBDA_EXPR@[2951; 2970) | 1664 | LAMBDA_EXPR@2951..2970 |
1665 | PARAM_LIST@[2951; 2968) | 1665 | PARAM_LIST@2951..2968 |
1666 | PIPE@[2951; 2952) "|" | 1666 | PIPE@2951..2952 "|" |
1667 | PARAM@[2952; 2962) | 1667 | PARAM@2952..2962 |
1668 | TUPLE_PAT@[2952; 2956) | 1668 | TUPLE_PAT@2952..2956 |
1669 | L_PAREN@[2952; 2953) "(" | 1669 | L_PAREN@2952..2953 "(" |
1670 | DOT_DOT_PAT@[2953; 2955) | 1670 | DOT_DOT_PAT@2953..2955 |
1671 | DOT2@[2953; 2955) ".." | 1671 | DOT2@2953..2955 ".." |
1672 | R_PAREN@[2955; 2956) ")" | 1672 | R_PAREN@2955..2956 ")" |
1673 | COLON@[2956; 2957) ":" | 1673 | COLON@2956..2957 ":" |
1674 | TUPLE_TYPE@[2957; 2962) | 1674 | TUPLE_TYPE@2957..2962 |
1675 | L_PAREN@[2957; 2958) "(" | 1675 | L_PAREN@2957..2958 "(" |
1676 | PLACEHOLDER_TYPE@[2958; 2959) | 1676 | PLACEHOLDER_TYPE@2958..2959 |
1677 | UNDERSCORE@[2958; 2959) "_" | 1677 | UNDERSCORE@2958..2959 "_" |
1678 | COMMA@[2959; 2960) "," | 1678 | COMMA@2959..2960 "," |
1679 | PLACEHOLDER_TYPE@[2960; 2961) | 1679 | PLACEHOLDER_TYPE@2960..2961 |
1680 | UNDERSCORE@[2960; 2961) "_" | 1680 | UNDERSCORE@2960..2961 "_" |
1681 | R_PAREN@[2961; 2962) ")" | 1681 | R_PAREN@2961..2962 ")" |
1682 | COMMA@[2962; 2963) "," | 1682 | COMMA@2962..2963 "," |
1683 | PARAM@[2963; 2967) | 1683 | PARAM@2963..2967 |
1684 | BIND_PAT@[2963; 2967) | 1684 | BIND_PAT@2963..2967 |
1685 | NAME@[2963; 2965) | 1685 | NAME@2963..2965 |
1686 | IDENT@[2963; 2965) "__" | 1686 | IDENT@2963..2965 "__" |
1687 | AT@[2965; 2966) "@" | 1687 | AT@2965..2966 "@" |
1688 | PLACEHOLDER_PAT@[2966; 2967) | 1688 | PLACEHOLDER_PAT@2966..2967 |
1689 | UNDERSCORE@[2966; 2967) "_" | 1689 | UNDERSCORE@2966..2967 "_" |
1690 | PIPE@[2967; 2968) "|" | 1690 | PIPE@2967..2968 "|" |
1691 | PATH_EXPR@[2968; 2970) | 1691 | PATH_EXPR@2968..2970 |
1692 | PATH@[2968; 2970) | 1692 | PATH@2968..2970 |
1693 | PATH_SEGMENT@[2968; 2970) | 1693 | PATH_SEGMENT@2968..2970 |
1694 | NAME_REF@[2968; 2970) | 1694 | NAME_REF@2968..2970 |
1695 | IDENT@[2968; 2970) "__" | 1695 | IDENT@2968..2970 "__" |
1696 | R_PAREN@[2970; 2971) ")" | 1696 | R_PAREN@2970..2971 ")" |
1697 | ARG_LIST@[2971; 2995) | 1697 | ARG_LIST@2971..2995 |
1698 | L_PAREN@[2971; 2972) "(" | 1698 | L_PAREN@2971..2972 "(" |
1699 | TUPLE_EXPR@[2972; 2987) | 1699 | TUPLE_EXPR@2972..2987 |
1700 | L_PAREN@[2972; 2973) "(" | 1700 | L_PAREN@2972..2973 "(" |
1701 | REF_EXPR@[2973; 2979) | 1701 | REF_EXPR@2973..2979 |
1702 | AMP@[2973; 2974) "&" | 1702 | AMP@2973..2974 "&" |
1703 | PREFIX_EXPR@[2974; 2979) | 1703 | PREFIX_EXPR@2974..2979 |
1704 | STAR@[2974; 2975) "*" | 1704 | STAR@2974..2975 "*" |
1705 | LITERAL@[2975; 2979) | 1705 | LITERAL@2975..2979 |
1706 | STRING@[2975; 2979) "\"\\\\\"" | 1706 | STRING@2975..2979 "\"\\\\\"" |
1707 | COMMA@[2979; 2980) "," | 1707 | COMMA@2979..2980 "," |
1708 | LITERAL@[2980; 2986) | 1708 | LITERAL@2980..2986 |
1709 | CHAR@[2980; 2986) "\'🤔\'" | 1709 | CHAR@2980..2986 "\'🤔\'" |
1710 | R_PAREN@[2986; 2987) ")" | 1710 | R_PAREN@2986..2987 ")" |
1711 | COMMENT@[2987; 2991) "/**/" | 1711 | COMMENT@2987..2991 "/**/" |
1712 | COMMA@[2991; 2992) "," | 1712 | COMMA@2991..2992 "," |
1713 | BLOCK_EXPR@[2992; 2994) | 1713 | BLOCK_EXPR@2992..2994 |
1714 | BLOCK@[2992; 2994) | 1714 | BLOCK@2992..2994 |
1715 | L_CURLY@[2992; 2993) "{" | 1715 | L_CURLY@2992..2993 "{" |
1716 | R_CURLY@[2993; 2994) "}" | 1716 | R_CURLY@2993..2994 "}" |
1717 | R_PAREN@[2994; 2995) ")" | 1717 | R_PAREN@2994..2995 ")" |
1718 | EQ2@[2995; 2997) "==" | 1718 | EQ2@2995..2997 "==" |
1719 | BLOCK_EXPR@[2997; 3012) | 1719 | BLOCK_EXPR@2997..3012 |
1720 | BLOCK@[2997; 3012) | 1720 | BLOCK@2997..3012 |
1721 | L_CURLY@[2997; 2998) "{" | 1721 | L_CURLY@2997..2998 "{" |
1722 | EXPR_STMT@[2998; 3011) | 1722 | EXPR_STMT@2998..3011 |
1723 | REF_EXPR@[2998; 3010) | 1723 | REF_EXPR@2998..3010 |
1724 | AMP@[2998; 2999) "&" | 1724 | AMP@2998..2999 "&" |
1725 | INDEX_EXPR@[2999; 3010) | 1725 | INDEX_EXPR@2999..3010 |
1726 | ARRAY_EXPR@[2999; 3006) | 1726 | ARRAY_EXPR@2999..3006 |
1727 | L_BRACK@[2999; 3000) "[" | 1727 | L_BRACK@2999..3000 "[" |
1728 | RANGE_EXPR@[3000; 3005) | 1728 | RANGE_EXPR@3000..3005 |
1729 | DOT2EQ@[3000; 3003) "..=" | 1729 | DOT2EQ@3000..3003 "..=" |
1730 | RANGE_EXPR@[3003; 3005) | 1730 | RANGE_EXPR@3003..3005 |
1731 | DOT2@[3003; 3005) ".." | 1731 | DOT2@3003..3005 ".." |
1732 | R_BRACK@[3005; 3006) "]" | 1732 | R_BRACK@3005..3006 "]" |
1733 | L_BRACK@[3006; 3007) "[" | 1733 | L_BRACK@3006..3007 "[" |
1734 | RANGE_EXPR@[3007; 3009) | 1734 | RANGE_EXPR@3007..3009 |
1735 | DOT2@[3007; 3009) ".." | 1735 | DOT2@3007..3009 ".." |
1736 | R_BRACK@[3009; 3010) "]" | 1736 | R_BRACK@3009..3010 "]" |
1737 | SEMICOLON@[3010; 3011) ";" | 1737 | SEMICOLON@3010..3011 ";" |
1738 | R_CURLY@[3011; 3012) "}" | 1738 | R_CURLY@3011..3012 "}" |
1739 | R_PAREN@[3012; 3013) ")" | 1739 | R_PAREN@3012..3013 ")" |
1740 | COMMENT@[3013; 3015) "//" | 1740 | COMMENT@3013..3015 "//" |
1741 | WHITESPACE@[3015; 3020) "\n " | 1741 | WHITESPACE@3015..3020 "\n " |
1742 | SEMICOLON@[3020; 3021) ";" | 1742 | SEMICOLON@3020..3021 ";" |
1743 | WHITESPACE@[3021; 3026) "\n " | 1743 | WHITESPACE@3021..3026 "\n " |
1744 | EXPR_STMT@[3026; 3040) | 1744 | EXPR_STMT@3026..3040 |
1745 | MACRO_CALL@[3026; 3039) | 1745 | MACRO_CALL@3026..3039 |
1746 | PATH@[3026; 3032) | 1746 | PATH@3026..3032 |
1747 | PATH_SEGMENT@[3026; 3032) | 1747 | PATH_SEGMENT@3026..3032 |
1748 | NAME_REF@[3026; 3032) | 1748 | NAME_REF@3026..3032 |
1749 | IDENT@[3026; 3032) "assert" | 1749 | IDENT@3026..3032 "assert" |
1750 | BANG@[3032; 3033) "!" | 1750 | BANG@3032..3033 "!" |
1751 | TOKEN_TREE@[3033; 3039) | 1751 | TOKEN_TREE@3033..3039 |
1752 | L_PAREN@[3033; 3034) "(" | 1752 | L_PAREN@3033..3034 "(" |
1753 | BANG@[3034; 3035) "!" | 1753 | BANG@3034..3035 "!" |
1754 | IDENT@[3035; 3038) "val" | 1754 | IDENT@3035..3038 "val" |
1755 | R_PAREN@[3038; 3039) ")" | 1755 | R_PAREN@3038..3039 ")" |
1756 | SEMICOLON@[3039; 3040) ";" | 1756 | SEMICOLON@3039..3040 ";" |
1757 | WHITESPACE@[3040; 3041) "\n" | 1757 | WHITESPACE@3040..3041 "\n" |
1758 | R_CURLY@[3041; 3042) "}" | 1758 | R_CURLY@3041..3042 "}" |
1759 | WHITESPACE@[3042; 3044) "\n\n" | 1759 | WHITESPACE@3042..3044 "\n\n" |
1760 | FN_DEF@[3044; 3514) | 1760 | FN_DEF@3044..3514 |
1761 | FN_KW@[3044; 3046) "fn" | 1761 | FN_KW@3044..3046 "fn" |
1762 | WHITESPACE@[3046; 3047) " " | 1762 | WHITESPACE@3046..3047 " " |
1763 | NAME@[3047; 3057) | 1763 | NAME@3047..3057 |
1764 | IDENT@[3047; 3057) "punch_card" | 1764 | IDENT@3047..3057 "punch_card" |
1765 | PARAM_LIST@[3057; 3059) | 1765 | PARAM_LIST@3057..3059 |
1766 | L_PAREN@[3057; 3058) "(" | 1766 | L_PAREN@3057..3058 "(" |
1767 | R_PAREN@[3058; 3059) ")" | 1767 | R_PAREN@3058..3059 ")" |
1768 | WHITESPACE@[3059; 3060) " " | 1768 | WHITESPACE@3059..3060 " " |
1769 | RET_TYPE@[3060; 3083) | 1769 | RET_TYPE@3060..3083 |
1770 | THIN_ARROW@[3060; 3062) "->" | 1770 | THIN_ARROW@3060..3062 "->" |
1771 | WHITESPACE@[3062; 3063) " " | 1771 | WHITESPACE@3062..3063 " " |
1772 | IMPL_TRAIT_TYPE@[3063; 3083) | 1772 | IMPL_TRAIT_TYPE@3063..3083 |
1773 | IMPL_KW@[3063; 3067) "impl" | 1773 | IMPL_KW@3063..3067 "impl" |
1774 | WHITESPACE@[3067; 3068) " " | 1774 | WHITESPACE@3067..3068 " " |
1775 | TYPE_BOUND_LIST@[3068; 3083) | 1775 | TYPE_BOUND_LIST@3068..3083 |
1776 | TYPE_BOUND@[3068; 3083) | 1776 | TYPE_BOUND@3068..3083 |
1777 | PATH_TYPE@[3068; 3083) | 1777 | PATH_TYPE@3068..3083 |
1778 | PATH@[3068; 3083) | 1778 | PATH@3068..3083 |
1779 | PATH@[3068; 3076) | 1779 | PATH@3068..3076 |
1780 | PATH@[3068; 3071) | 1780 | PATH@3068..3071 |
1781 | PATH_SEGMENT@[3068; 3071) | 1781 | PATH_SEGMENT@3068..3071 |
1782 | NAME_REF@[3068; 3071) | 1782 | NAME_REF@3068..3071 |
1783 | IDENT@[3068; 3071) "std" | 1783 | IDENT@3068..3071 "std" |
1784 | COLON2@[3071; 3073) "::" | 1784 | COLON2@3071..3073 "::" |
1785 | PATH_SEGMENT@[3073; 3076) | 1785 | PATH_SEGMENT@3073..3076 |
1786 | NAME_REF@[3073; 3076) | 1786 | NAME_REF@3073..3076 |
1787 | IDENT@[3073; 3076) "fmt" | 1787 | IDENT@3073..3076 "fmt" |
1788 | COLON2@[3076; 3078) "::" | 1788 | COLON2@3076..3078 "::" |
1789 | PATH_SEGMENT@[3078; 3083) | 1789 | PATH_SEGMENT@3078..3083 |
1790 | NAME_REF@[3078; 3083) | 1790 | NAME_REF@3078..3083 |
1791 | IDENT@[3078; 3083) "Debug" | 1791 | IDENT@3078..3083 "Debug" |
1792 | WHITESPACE@[3083; 3084) " " | 1792 | WHITESPACE@3083..3084 " " |
1793 | BLOCK_EXPR@[3084; 3514) | 1793 | BLOCK_EXPR@3084..3514 |
1794 | BLOCK@[3084; 3514) | 1794 | BLOCK@3084..3514 |
1795 | L_CURLY@[3084; 3085) "{" | 1795 | L_CURLY@3084..3085 "{" |
1796 | WHITESPACE@[3085; 3090) "\n " | 1796 | WHITESPACE@3085..3090 "\n " |
1797 | RANGE_EXPR@[3090; 3512) | 1797 | RANGE_EXPR@3090..3512 |
1798 | DOT2EQ@[3090; 3093) "..=" | 1798 | DOT2EQ@3090..3093 "..=" |
1799 | RANGE_EXPR@[3093; 3512) | 1799 | RANGE_EXPR@3093..3512 |
1800 | DOT2EQ@[3093; 3096) "..=" | 1800 | DOT2EQ@3093..3096 "..=" |
1801 | RANGE_EXPR@[3096; 3512) | 1801 | RANGE_EXPR@3096..3512 |
1802 | DOT2@[3096; 3098) ".." | 1802 | DOT2@3096..3098 ".." |
1803 | WHITESPACE@[3098; 3099) " " | 1803 | WHITESPACE@3098..3099 " " |
1804 | RANGE_EXPR@[3099; 3512) | 1804 | RANGE_EXPR@3099..3512 |
1805 | DOT2@[3099; 3101) ".." | 1805 | DOT2@3099..3101 ".." |
1806 | WHITESPACE@[3101; 3105) " " | 1806 | WHITESPACE@3101..3105 " " |
1807 | RANGE_EXPR@[3105; 3512) | 1807 | RANGE_EXPR@3105..3512 |
1808 | DOT2@[3105; 3107) ".." | 1808 | DOT2@3105..3107 ".." |
1809 | WHITESPACE@[3107; 3108) " " | 1809 | WHITESPACE@3107..3108 " " |
1810 | RANGE_EXPR@[3108; 3512) | 1810 | RANGE_EXPR@3108..3512 |
1811 | DOT2@[3108; 3110) ".." | 1811 | DOT2@3108..3110 ".." |
1812 | WHITESPACE@[3110; 3111) " " | 1812 | WHITESPACE@3110..3111 " " |
1813 | RANGE_EXPR@[3111; 3512) | 1813 | RANGE_EXPR@3111..3512 |
1814 | DOT2@[3111; 3113) ".." | 1814 | DOT2@3111..3113 ".." |
1815 | WHITESPACE@[3113; 3114) " " | 1815 | WHITESPACE@3113..3114 " " |
1816 | RANGE_EXPR@[3114; 3512) | 1816 | RANGE_EXPR@3114..3512 |
1817 | DOT2@[3114; 3116) ".." | 1817 | DOT2@3114..3116 ".." |
1818 | WHITESPACE@[3116; 3120) " " | 1818 | WHITESPACE@3116..3120 " " |
1819 | RANGE_EXPR@[3120; 3512) | 1819 | RANGE_EXPR@3120..3512 |
1820 | DOT2@[3120; 3122) ".." | 1820 | DOT2@3120..3122 ".." |
1821 | WHITESPACE@[3122; 3123) " " | 1821 | WHITESPACE@3122..3123 " " |
1822 | RANGE_EXPR@[3123; 3512) | 1822 | RANGE_EXPR@3123..3512 |
1823 | DOT2@[3123; 3125) ".." | 1823 | DOT2@3123..3125 ".." |
1824 | WHITESPACE@[3125; 3126) " " | 1824 | WHITESPACE@3125..3126 " " |
1825 | RANGE_EXPR@[3126; 3512) | 1825 | RANGE_EXPR@3126..3512 |
1826 | DOT2@[3126; 3128) ".." | 1826 | DOT2@3126..3128 ".." |
1827 | WHITESPACE@[3128; 3129) " " | 1827 | WHITESPACE@3128..3129 " " |
1828 | RANGE_EXPR@[3129; 3512) | 1828 | RANGE_EXPR@3129..3512 |
1829 | DOT2@[3129; 3131) ".." | 1829 | DOT2@3129..3131 ".." |
1830 | WHITESPACE@[3131; 3135) " " | 1830 | WHITESPACE@3131..3135 " " |
1831 | RANGE_EXPR@[3135; 3512) | 1831 | RANGE_EXPR@3135..3512 |
1832 | DOT2@[3135; 3137) ".." | 1832 | DOT2@3135..3137 ".." |
1833 | WHITESPACE@[3137; 3138) " " | 1833 | WHITESPACE@3137..3138 " " |
1834 | RANGE_EXPR@[3138; 3512) | 1834 | RANGE_EXPR@3138..3512 |
1835 | DOT2EQ@[3138; 3141) "..=" | 1835 | DOT2EQ@3138..3141 "..=" |
1836 | RANGE_EXPR@[3141; 3512) | 1836 | RANGE_EXPR@3141..3512 |
1837 | DOT2@[3141; 3143) ".." | 1837 | DOT2@3141..3143 ".." |
1838 | WHITESPACE@[3143; 3144) " " | 1838 | WHITESPACE@3143..3144 " " |
1839 | RANGE_EXPR@[3144; 3512) | 1839 | RANGE_EXPR@3144..3512 |
1840 | DOT2@[3144; 3146) ".." | 1840 | DOT2@3144..3146 ".." |
1841 | WHITESPACE@[3146; 3151) "\n " | 1841 | WHITESPACE@3146..3151 "\n " |
1842 | RANGE_EXPR@[3151; 3512) | 1842 | RANGE_EXPR@3151..3512 |
1843 | DOT2EQ@[3151; 3154) "..=" | 1843 | DOT2EQ@3151..3154 "..=" |
1844 | RANGE_EXPR@[3154; 3512) | 1844 | RANGE_EXPR@3154..3512 |
1845 | DOT2@[3154; 3156) ".." | 1845 | DOT2@3154..3156 ".." |
1846 | WHITESPACE@[3156; 3157) " " | 1846 | WHITESPACE@3156..3157 " " |
1847 | RANGE_EXPR@[3157; 3512) | 1847 | RANGE_EXPR@3157..3512 |
1848 | DOT2EQ@[3157; 3160) "..=" | 1848 | DOT2EQ@3157..3160 "..=" |
1849 | RANGE_EXPR@[3160; 3512) | 1849 | RANGE_EXPR@3160..3512 |
1850 | DOT2@[3160; 3162) ".." | 1850 | DOT2@3160..3162 ".." |
1851 | WHITESPACE@[3162; 3166) " " | 1851 | WHITESPACE@3162..3166 " " |
1852 | RANGE_EXPR@[3166; 3512) | 1852 | RANGE_EXPR@3166..3512 |
1853 | DOT2@[3166; 3168) ".." | 1853 | DOT2@3166..3168 ".." |
1854 | WHITESPACE@[3168; 3169) " " | 1854 | WHITESPACE@3168..3169 " " |
1855 | RANGE_EXPR@[3169; 3512) | 1855 | RANGE_EXPR@3169..3512 |
1856 | DOT2@[3169; 3171) ".." | 1856 | DOT2@3169..3171 ".." |
1857 | WHITESPACE@[3171; 3172) " " | 1857 | WHITESPACE@3171..3172 " " |
1858 | RANGE_EXPR@[3172; 3512) | 1858 | RANGE_EXPR@3172..3512 |
1859 | DOT2@[3172; 3174) ".." | 1859 | DOT2@3172..3174 ".." |
1860 | WHITESPACE@[3174; 3175) " " | 1860 | WHITESPACE@3174..3175 " " |
1861 | RANGE_EXPR@[3175; 3512) | 1861 | RANGE_EXPR@3175..3512 |
1862 | DOT2@[3175; 3177) ".." | 1862 | DOT2@3175..3177 ".." |
1863 | WHITESPACE@[3177; 3181) " " | 1863 | WHITESPACE@3177..3181 " " |
1864 | RANGE_EXPR@[3181; 3512) | 1864 | RANGE_EXPR@3181..3512 |
1865 | DOT2@[3181; 3183) ".." | 1865 | DOT2@3181..3183 ".." |
1866 | WHITESPACE@[3183; 3184) " " | 1866 | WHITESPACE@3183..3184 " " |
1867 | RANGE_EXPR@[3184; 3512) | 1867 | RANGE_EXPR@3184..3512 |
1868 | DOT2@[3184; 3186) ".." | 1868 | DOT2@3184..3186 ".." |
1869 | WHITESPACE@[3186; 3187) " " | 1869 | WHITESPACE@3186..3187 " " |
1870 | RANGE_EXPR@[3187; 3512) | 1870 | RANGE_EXPR@3187..3512 |
1871 | DOT2@[3187; 3189) ".." | 1871 | DOT2@3187..3189 ".." |
1872 | WHITESPACE@[3189; 3190) " " | 1872 | WHITESPACE@3189..3190 " " |
1873 | RANGE_EXPR@[3190; 3512) | 1873 | RANGE_EXPR@3190..3512 |
1874 | DOT2@[3190; 3192) ".." | 1874 | DOT2@3190..3192 ".." |
1875 | WHITESPACE@[3192; 3196) " " | 1875 | WHITESPACE@3192..3196 " " |
1876 | RANGE_EXPR@[3196; 3512) | 1876 | RANGE_EXPR@3196..3512 |
1877 | DOT2EQ@[3196; 3199) "..=" | 1877 | DOT2EQ@3196..3199 "..=" |
1878 | RANGE_EXPR@[3199; 3512) | 1878 | RANGE_EXPR@3199..3512 |
1879 | DOT2EQ@[3199; 3202) "..=" | 1879 | DOT2EQ@3199..3202 "..=" |
1880 | RANGE_EXPR@[3202; 3512) | 1880 | RANGE_EXPR@3202..3512 |
1881 | DOT2EQ@[3202; 3205) "..=" | 1881 | DOT2EQ@3202..3205 "..=" |
1882 | RANGE_EXPR@[3205; 3512) | 1882 | RANGE_EXPR@3205..3512 |
1883 | DOT2@[3205; 3207) ".." | 1883 | DOT2@3205..3207 ".." |
1884 | WHITESPACE@[3207; 3212) "\n " | 1884 | WHITESPACE@3207..3212 "\n " |
1885 | RANGE_EXPR@[3212; 3512) | 1885 | RANGE_EXPR@3212..3512 |
1886 | DOT2EQ@[3212; 3215) "..=" | 1886 | DOT2EQ@3212..3215 "..=" |
1887 | RANGE_EXPR@[3215; 3512) | 1887 | RANGE_EXPR@3215..3512 |
1888 | DOT2@[3215; 3217) ".." | 1888 | DOT2@3215..3217 ".." |
1889 | WHITESPACE@[3217; 3218) " " | 1889 | WHITESPACE@3217..3218 " " |
1890 | RANGE_EXPR@[3218; 3512) | 1890 | RANGE_EXPR@3218..3512 |
1891 | DOT2EQ@[3218; 3221) "..=" | 1891 | DOT2EQ@3218..3221 "..=" |
1892 | RANGE_EXPR@[3221; 3512) | 1892 | RANGE_EXPR@3221..3512 |
1893 | DOT2@[3221; 3223) ".." | 1893 | DOT2@3221..3223 ".." |
1894 | WHITESPACE@[3223; 3227) " " | 1894 | WHITESPACE@3223..3227 " " |
1895 | RANGE_EXPR@[3227; 3512) | 1895 | RANGE_EXPR@3227..3512 |
1896 | DOT2EQ@[3227; 3230) "..=" | 1896 | DOT2EQ@3227..3230 "..=" |
1897 | RANGE_EXPR@[3230; 3512) | 1897 | RANGE_EXPR@3230..3512 |
1898 | DOT2@[3230; 3232) ".." | 1898 | DOT2@3230..3232 ".." |
1899 | WHITESPACE@[3232; 3233) " " | 1899 | WHITESPACE@3232..3233 " " |
1900 | RANGE_EXPR@[3233; 3512) | 1900 | RANGE_EXPR@3233..3512 |
1901 | DOT2EQ@[3233; 3236) "..=" | 1901 | DOT2EQ@3233..3236 "..=" |
1902 | RANGE_EXPR@[3236; 3512) | 1902 | RANGE_EXPR@3236..3512 |
1903 | DOT2@[3236; 3238) ".." | 1903 | DOT2@3236..3238 ".." |
1904 | WHITESPACE@[3238; 3242) " " | 1904 | WHITESPACE@3238..3242 " " |
1905 | RANGE_EXPR@[3242; 3512) | 1905 | RANGE_EXPR@3242..3512 |
1906 | DOT2@[3242; 3244) ".." | 1906 | DOT2@3242..3244 ".." |
1907 | WHITESPACE@[3244; 3245) " " | 1907 | WHITESPACE@3244..3245 " " |
1908 | RANGE_EXPR@[3245; 3512) | 1908 | RANGE_EXPR@3245..3512 |
1909 | DOT2EQ@[3245; 3248) "..=" | 1909 | DOT2EQ@3245..3248 "..=" |
1910 | RANGE_EXPR@[3248; 3512) | 1910 | RANGE_EXPR@3248..3512 |
1911 | DOT2EQ@[3248; 3251) "..=" | 1911 | DOT2EQ@3248..3251 "..=" |
1912 | RANGE_EXPR@[3251; 3512) | 1912 | RANGE_EXPR@3251..3512 |
1913 | DOT2@[3251; 3253) ".." | 1913 | DOT2@3251..3253 ".." |
1914 | WHITESPACE@[3253; 3257) " " | 1914 | WHITESPACE@3253..3257 " " |
1915 | RANGE_EXPR@[3257; 3512) | 1915 | RANGE_EXPR@3257..3512 |
1916 | DOT2@[3257; 3259) ".." | 1916 | DOT2@3257..3259 ".." |
1917 | WHITESPACE@[3259; 3260) " " | 1917 | WHITESPACE@3259..3260 " " |
1918 | RANGE_EXPR@[3260; 3512) | 1918 | RANGE_EXPR@3260..3512 |
1919 | DOT2EQ@[3260; 3263) "..=" | 1919 | DOT2EQ@3260..3263 "..=" |
1920 | RANGE_EXPR@[3263; 3512) | 1920 | RANGE_EXPR@3263..3512 |
1921 | DOT2@[3263; 3265) ".." | 1921 | DOT2@3263..3265 ".." |
1922 | WHITESPACE@[3265; 3266) " " | 1922 | [email protected] " " |
1923 | RANGE_EXPR@[3266; 3512) | 1923 | RANGE_EXPR@3266..3512 |
1924 | DOT2@[3266; 3268) ".." | 1924 | DOT2@3266..3268 ".." |
1925 | WHITESPACE@[3268; 3273) "\n " | 1925 | [email protected] "\n " |
1926 | RANGE_EXPR@[3273; 3512) | 1926 | RANGE_EXPR@3273..3512 |
1927 | DOT2EQ@[3273; 3276) "..=" | 1927 | [email protected] "..=" |
1928 | RANGE_EXPR@[3276; 3512) | 1928 | [email protected] |
1929 | DOT2EQ@[3276; 3279) "..=" | 1929 | [email protected] "..=" |
1930 | RANGE_EXPR@[3279; 3512) | 1930 | [email protected] |
1931 | DOT2@[3279; 3281) ".." | 1931 | [email protected] ".." |
1932 | WHITESPACE@[3281; 3282) " " | 1932 | [email protected] " " |
1933 | RANGE_EXPR@[3282; 3512) | 1933 | [email protected] |
1934 | DOT2@[3282; 3284) ".." | 1934 | [email protected] ".." |
1935 | WHITESPACE@[3284; 3288) " " | 1935 | [email protected] " " |
1936 | RANGE_EXPR@[3288; 3512) | 1936 | [email protected] |
1937 | DOT2EQ@[3288; 3291) "..=" | 1937 | [email protected] "..=" |
1938 | RANGE_EXPR@[3291; 3512) | 1938 | [email protected] |
1939 | DOT2@[3291; 3293) ".." | 1939 | [email protected] ".." |
1940 | WHITESPACE@[3293; 3294) " " | 1940 | [email protected] " " |
1941 | RANGE_EXPR@[3294; 3512) | 1941 | [email protected] |
1942 | DOT2EQ@[3294; 3297) "..=" | 1942 | [email protected] "..=" |
1943 | RANGE_EXPR@[3297; 3512) | 1943 | [email protected] |
1944 | DOT2@[3297; 3299) ".." | 1944 | [email protected] ".." |
1945 | WHITESPACE@[3299; 3303) " " | 1945 | [email protected] " " |
1946 | RANGE_EXPR@[3303; 3512) | 1946 | [email protected] |
1947 | DOT2EQ@[3303; 3306) "..=" | 1947 | [email protected] "..=" |
1948 | RANGE_EXPR@[3306; 3512) | 1948 | [email protected] |
1949 | DOT2@[3306; 3308) ".." | 1949 | [email protected] ".." |
1950 | WHITESPACE@[3308; 3309) " " | 1950 | [email protected] " " |
1951 | RANGE_EXPR@[3309; 3512) | 1951 | [email protected] |
1952 | DOT2@[3309; 3311) ".." | 1952 | [email protected] ".." |
1953 | WHITESPACE@[3311; 3312) " " | 1953 | [email protected] " " |
1954 | RANGE_EXPR@[3312; 3512) | 1954 | [email protected] |
1955 | DOT2@[3312; 3314) ".." | 1955 | [email protected] ".." |
1956 | WHITESPACE@[3314; 3318) " " | 1956 | [email protected] " " |
1957 | RANGE_EXPR@[3318; 3512) | 1957 | [email protected] |
1958 | DOT2@[3318; 3320) ".." | 1958 | [email protected] ".." |
1959 | WHITESPACE@[3320; 3321) " " | 1959 | [email protected] " " |
1960 | RANGE_EXPR@[3321; 3512) | 1960 | [email protected] |
1961 | DOT2EQ@[3321; 3324) "..=" | 1961 | [email protected] "..=" |
1962 | RANGE_EXPR@[3324; 3512) | 1962 | [email protected] |
1963 | DOT2@[3324; 3326) ".." | 1963 | [email protected] ".." |
1964 | WHITESPACE@[3326; 3327) " " | 1964 | [email protected] " " |
1965 | RANGE_EXPR@[3327; 3512) | 1965 | [email protected] |
1966 | DOT2@[3327; 3329) ".." | 1966 | [email protected] ".." |
1967 | WHITESPACE@[3329; 3334) "\n " | 1967 | [email protected] "\n " |
1968 | RANGE_EXPR@[3334; 3512) | 1968 | [email protected] |
1969 | DOT2EQ@[3334; 3337) "..=" | 1969 | [email protected] "..=" |
1970 | RANGE_EXPR@[3337; 3512) | 1970 | [email protected] |
1971 | DOT2@[3337; 3339) ".." | 1971 | [email protected] ".." |
1972 | WHITESPACE@[3339; 3340) " " | 1972 | [email protected] " " |
1973 | RANGE_EXPR@[3340; 3512) | 1973 | [email protected] |
1974 | DOT2EQ@[3340; 3343) "..=" | 1974 | [email protected] "..=" |
1975 | RANGE_EXPR@[3343; 3512) | 1975 | [email protected] |
1976 | DOT2@[3343; 3345) ".." | 1976 | [email protected] ".." |
1977 | WHITESPACE@[3345; 3349) " " | 1977 | [email protected] " " |
1978 | RANGE_EXPR@[3349; 3512) | 1978 | [email protected] |
1979 | DOT2EQ@[3349; 3352) "..=" | 1979 | [email protected] "..=" |
1980 | RANGE_EXPR@[3352; 3512) | 1980 | [email protected] |
1981 | DOT2@[3352; 3354) ".." | 1981 | [email protected] ".." |
1982 | WHITESPACE@[3354; 3355) " " | 1982 | [email protected] " " |
1983 | RANGE_EXPR@[3355; 3512) | 1983 | [email protected] |
1984 | DOT2EQ@[3355; 3358) "..=" | 1984 | [email protected] "..=" |
1985 | RANGE_EXPR@[3358; 3512) | 1985 | [email protected] |
1986 | DOT2@[3358; 3360) ".." | 1986 | [email protected] ".." |
1987 | WHITESPACE@[3360; 3364) " " | 1987 | [email protected] " " |
1988 | RANGE_EXPR@[3364; 3512) | 1988 | [email protected] |
1989 | DOT2@[3364; 3366) ".." | 1989 | [email protected] ".." |
1990 | WHITESPACE@[3366; 3367) " " | 1990 | [email protected] " " |
1991 | RANGE_EXPR@[3367; 3512) | 1991 | [email protected] |
1992 | DOT2EQ@[3367; 3370) "..=" | 1992 | [email protected] "..=" |
1993 | RANGE_EXPR@[3370; 3512) | 1993 | [email protected] |
1994 | DOT2@[3370; 3372) ".." | 1994 | [email protected] ".." |
1995 | WHITESPACE@[3372; 3373) " " | 1995 | [email protected] " " |
1996 | RANGE_EXPR@[3373; 3512) | 1996 | [email protected] |
1997 | DOT2@[3373; 3375) ".." | 1997 | [email protected] ".." |
1998 | WHITESPACE@[3375; 3379) " " | 1998 | [email protected] " " |
1999 | RANGE_EXPR@[3379; 3512) | 1999 | [email protected] |
2000 | DOT2@[3379; 3381) ".." | 2000 | [email protected] ".." |
2001 | WHITESPACE@[3381; 3382) " " | 2001 | [email protected] " " |
2002 | RANGE_EXPR@[3382; 3512) | 2002 | [email protected] |
2003 | DOT2EQ@[3382; 3385) "..=" | 2003 | [email protected] "..=" |
2004 | RANGE_EXPR@[3385; 3512) | 2004 | [email protected] |
2005 | DOT2@[3385; 3387) ".." | 2005 | [email protected] ".." |
2006 | WHITESPACE@[3387; 3388) " " | 2006 | [email protected] " " |
2007 | RANGE_EXPR@[3388; 3512) | 2007 | [email protected] |
2008 | DOT2@[3388; 3390) ".." | 2008 | [email protected] ".." |
2009 | WHITESPACE@[3390; 3395) "\n " | 2009 | [email protected] "\n " |
2010 | RANGE_EXPR@[3395; 3512) | 2010 | [email protected] |
2011 | DOT2EQ@[3395; 3398) "..=" | 2011 | [email protected] "..=" |
2012 | RANGE_EXPR@[3398; 3512) | 2012 | [email protected] |
2013 | DOT2@[3398; 3400) ".." | 2013 | [email protected] ".." |
2014 | WHITESPACE@[3400; 3401) " " | 2014 | [email protected] " " |
2015 | RANGE_EXPR@[3401; 3512) | 2015 | [email protected] |
2016 | DOT2EQ@[3401; 3404) "..=" | 2016 | [email protected] "..=" |
2017 | RANGE_EXPR@[3404; 3512) | 2017 | [email protected] |
2018 | DOT2@[3404; 3406) ".." | 2018 | [email protected] ".." |
2019 | WHITESPACE@[3406; 3410) " " | 2019 | [email protected] " " |
2020 | RANGE_EXPR@[3410; 3512) | 2020 | [email protected] |
2021 | DOT2EQ@[3410; 3413) "..=" | 2021 | [email protected] "..=" |
2022 | RANGE_EXPR@[3413; 3512) | 2022 | [email protected] |
2023 | DOT2@[3413; 3415) ".." | 2023 | [email protected] ".." |
2024 | WHITESPACE@[3415; 3416) " " | 2024 | [email protected] " " |
2025 | RANGE_EXPR@[3416; 3512) | 2025 | [email protected] |
2026 | DOT2EQ@[3416; 3419) "..=" | 2026 | [email protected] "..=" |
2027 | RANGE_EXPR@[3419; 3512) | 2027 | [email protected] |
2028 | DOT2@[3419; 3421) ".." | 2028 | [email protected] ".." |
2029 | WHITESPACE@[3421; 3425) " " | 2029 | [email protected] " " |
2030 | RANGE_EXPR@[3425; 3512) | 2030 | [email protected] |
2031 | DOT2@[3425; 3427) ".." | 2031 | [email protected] ".." |
2032 | WHITESPACE@[3427; 3428) " " | 2032 | [email protected] " " |
2033 | RANGE_EXPR@[3428; 3512) | 2033 | [email protected] |
2034 | DOT2@[3428; 3430) ".." | 2034 | [email protected] ".." |
2035 | WHITESPACE@[3430; 3431) " " | 2035 | [email protected] " " |
2036 | RANGE_EXPR@[3431; 3512) | 2036 | [email protected] |
2037 | DOT2EQ@[3431; 3434) "..=" | 2037 | [email protected] "..=" |
2038 | RANGE_EXPR@[3434; 3512) | 2038 | [email protected] |
2039 | DOT2@[3434; 3436) ".." | 2039 | [email protected] ".." |
2040 | WHITESPACE@[3436; 3440) " " | 2040 | [email protected] " " |
2041 | RANGE_EXPR@[3440; 3512) | 2041 | [email protected] |
2042 | DOT2@[3440; 3442) ".." | 2042 | [email protected] ".." |
2043 | WHITESPACE@[3442; 3443) " " | 2043 | [email protected] " " |
2044 | RANGE_EXPR@[3443; 3512) | 2044 | [email protected] |
2045 | DOT2EQ@[3443; 3446) "..=" | 2045 | [email protected] "..=" |
2046 | RANGE_EXPR@[3446; 3512) | 2046 | [email protected] |
2047 | DOT2@[3446; 3448) ".." | 2047 | [email protected] ".." |
2048 | WHITESPACE@[3448; 3449) " " | 2048 | [email protected] " " |
2049 | RANGE_EXPR@[3449; 3512) | 2049 | [email protected] |
2050 | DOT2@[3449; 3451) ".." | 2050 | [email protected] ".." |
2051 | WHITESPACE@[3451; 3456) "\n " | 2051 | [email protected] "\n " |
2052 | RANGE_EXPR@[3456; 3512) | 2052 | [email protected] |
2053 | DOT2EQ@[3456; 3459) "..=" | 2053 | [email protected] "..=" |
2054 | RANGE_EXPR@[3459; 3512) | 2054 | [email protected] |
2055 | DOT2@[3459; 3461) ".." | 2055 | [email protected] ".." |
2056 | WHITESPACE@[3461; 3462) " " | 2056 | [email protected] " " |
2057 | RANGE_EXPR@[3462; 3512) | 2057 | [email protected] |
2058 | DOT2EQ@[3462; 3465) "..=" | 2058 | [email protected] "..=" |
2059 | RANGE_EXPR@[3465; 3512) | 2059 | [email protected] |
2060 | DOT2@[3465; 3467) ".." | 2060 | [email protected] ".." |
2061 | WHITESPACE@[3467; 3471) " " | 2061 | [email protected] " " |
2062 | RANGE_EXPR@[3471; 3512) | 2062 | [email protected] |
2063 | DOT2@[3471; 3473) ".." | 2063 | [email protected] ".." |
2064 | WHITESPACE@[3473; 3474) " " | 2064 | [email protected] " " |
2065 | RANGE_EXPR@[3474; 3512) | 2065 | [email protected] |
2066 | DOT2EQ@[3474; 3477) "..=" | 2066 | [email protected] "..=" |
2067 | RANGE_EXPR@[3477; 3512) | 2067 | [email protected] |
2068 | DOT2EQ@[3477; 3480) "..=" | 2068 | [email protected] "..=" |
2069 | RANGE_EXPR@[3480; 3512) | 2069 | [email protected] |
2070 | DOT2@[3480; 3482) ".." | 2070 | [email protected] ".." |
2071 | WHITESPACE@[3482; 3486) " " | 2071 | [email protected] " " |
2072 | RANGE_EXPR@[3486; 3512) | 2072 | [email protected] |
2073 | DOT2EQ@[3486; 3489) "..=" | 2073 | [email protected] "..=" |
2074 | RANGE_EXPR@[3489; 3512) | 2074 | [email protected] |
2075 | DOT2EQ@[3489; 3492) "..=" | 2075 | [email protected] "..=" |
2076 | RANGE_EXPR@[3492; 3512) | 2076 | [email protected] |
2077 | DOT2@[3492; 3494) ".." | 2077 | [email protected] ".." |
2078 | WHITESPACE@[3494; 3495) " " | 2078 | [email protected] " " |
2079 | RANGE_EXPR@[3495; 3512) | 2079 | [email protected] |
2080 | DOT2@[3495; 3497) ".." | 2080 | [email protected] ".." |
2081 | WHITESPACE@[3497; 3501) " " | 2081 | [email protected] " " |
2082 | RANGE_EXPR@[3501; 3512) | 2082 | [email protected] |
2083 | DOT2@[3501; 3503) ".." | 2083 | [email protected] ".." |
2084 | WHITESPACE@[3503; 3504) " " | 2084 | [email protected] " " |
2085 | RANGE_EXPR@[3504; 3512) | 2085 | [email protected] |
2086 | DOT2EQ@[3504; 3507) "..=" | 2086 | [email protected] "..=" |
2087 | RANGE_EXPR@[3507; 3512) | 2087 | [email protected] |
2088 | DOT2@[3507; 3509) ".." | 2088 | [email protected] ".." |
2089 | WHITESPACE@[3509; 3510) " " | 2089 | [email protected] " " |
2090 | RANGE_EXPR@[3510; 3512) | 2090 | [email protected] |
2091 | DOT2@[3510; 3512) ".." | 2091 | [email protected] ".." |
2092 | WHITESPACE@[3512; 3513) "\n" | 2092 | WHITESPACE@3512..3513 "\n" |
2093 | R_CURLY@[3513; 3514) "}" | 2093 | R_CURLY@3513..3514 "}" |
2094 | WHITESPACE@[3514; 3516) "\n\n" | 2094 | WHITESPACE@3514..3516 "\n\n" |
2095 | FN_DEF@[3516; 3552) | 2095 | FN_DEF@3516..3552 |
2096 | FN_KW@[3516; 3518) "fn" | 2096 | FN_KW@3516..3518 "fn" |
2097 | WHITESPACE@[3518; 3519) " " | 2097 | WHITESPACE@3518..3519 " " |
2098 | NAME@[3519; 3525) | 2098 | NAME@3519..3525 |
2099 | IDENT@[3519; 3525) "ktulhu" | 2099 | IDENT@3519..3525 "ktulhu" |
2100 | PARAM_LIST@[3525; 3527) | 2100 | PARAM_LIST@3525..3527 |
2101 | L_PAREN@[3525; 3526) "(" | 2101 | L_PAREN@3525..3526 "(" |
2102 | R_PAREN@[3526; 3527) ")" | 2102 | R_PAREN@3526..3527 ")" |
2103 | WHITESPACE@[3527; 3528) " " | 2103 | WHITESPACE@3527..3528 " " |
2104 | BLOCK_EXPR@[3528; 3552) | 2104 | BLOCK_EXPR@3528..3552 |
2105 | BLOCK@[3528; 3552) | 2105 | BLOCK@3528..3552 |
2106 | L_CURLY@[3528; 3529) "{" | 2106 | L_CURLY@3528..3529 "{" |
2107 | WHITESPACE@[3529; 3534) "\n " | 2107 | WHITESPACE@3529..3534 "\n " |
2108 | SEMICOLON@[3534; 3535) ";" | 2108 | SEMICOLON@3534..3535 ";" |
2109 | SEMICOLON@[3535; 3536) ";" | 2109 | SEMICOLON@3535..3536 ";" |
2110 | SEMICOLON@[3536; 3537) ";" | 2110 | SEMICOLON@3536..3537 ";" |
2111 | EXPR_STMT@[3537; 3540) | 2111 | EXPR_STMT@3537..3540 |
2112 | TUPLE_EXPR@[3537; 3539) | 2112 | TUPLE_EXPR@3537..3539 |
2113 | L_PAREN@[3537; 3538) "(" | 2113 | L_PAREN@3537..3538 "(" |
2114 | R_PAREN@[3538; 3539) ")" | 2114 | R_PAREN@3538..3539 ")" |
2115 | SEMICOLON@[3539; 3540) ";" | 2115 | SEMICOLON@3539..3540 ";" |
2116 | SEMICOLON@[3540; 3541) ";" | 2116 | SEMICOLON@3540..3541 ";" |
2117 | SEMICOLON@[3541; 3542) ";" | 2117 | SEMICOLON@3541..3542 ";" |
2118 | SEMICOLON@[3542; 3543) ";" | 2118 | SEMICOLON@3542..3543 ";" |
2119 | SEMICOLON@[3543; 3544) ";" | 2119 | SEMICOLON@3543..3544 ";" |
2120 | SEMICOLON@[3544; 3545) ";" | 2120 | SEMICOLON@3544..3545 ";" |
2121 | SEMICOLON@[3545; 3546) ";" | 2121 | SEMICOLON@3545..3546 ";" |
2122 | SEMICOLON@[3546; 3547) ";" | 2122 | SEMICOLON@3546..3547 ";" |
2123 | SEMICOLON@[3547; 3548) ";" | 2123 | SEMICOLON@3547..3548 ";" |
2124 | TUPLE_EXPR@[3548; 3550) | 2124 | TUPLE_EXPR@3548..3550 |
2125 | L_PAREN@[3548; 3549) "(" | 2125 | L_PAREN@3548..3549 "(" |
2126 | R_PAREN@[3549; 3550) ")" | 2126 | R_PAREN@3549..3550 ")" |
2127 | WHITESPACE@[3550; 3551) "\n" | 2127 | WHITESPACE@3550..3551 "\n" |
2128 | R_CURLY@[3551; 3552) "}" | 2128 | R_CURLY@3551..3552 "}" |
2129 | WHITESPACE@[3552; 3554) "\n\n" | 2129 | WHITESPACE@3552..3554 "\n\n" |
2130 | FN_DEF@[3554; 3812) | 2130 | FN_DEF@3554..3812 |
2131 | VISIBILITY@[3554; 3557) | 2131 | VISIBILITY@3554..3557 |
2132 | PUB_KW@[3554; 3557) "pub" | 2132 | PUB_KW@3554..3557 "pub" |
2133 | WHITESPACE@[3557; 3558) " " | 2133 | WHITESPACE@3557..3558 " " |
2134 | FN_KW@[3558; 3560) "fn" | 2134 | FN_KW@3558..3560 "fn" |
2135 | WHITESPACE@[3560; 3561) " " | 2135 | WHITESPACE@3560..3561 " " |
2136 | NAME@[3561; 3565) | 2136 | NAME@3561..3565 |
2137 | IDENT@[3561; 3565) "main" | 2137 | IDENT@3561..3565 "main" |
2138 | PARAM_LIST@[3565; 3567) | 2138 | PARAM_LIST@3565..3567 |
2139 | L_PAREN@[3565; 3566) "(" | 2139 | L_PAREN@3565..3566 "(" |
2140 | R_PAREN@[3566; 3567) ")" | 2140 | R_PAREN@3566..3567 ")" |
2141 | WHITESPACE@[3567; 3568) " " | 2141 | WHITESPACE@3567..3568 " " |
2142 | BLOCK_EXPR@[3568; 3812) | 2142 | BLOCK_EXPR@3568..3812 |
2143 | BLOCK@[3568; 3812) | 2143 | BLOCK@3568..3812 |
2144 | L_CURLY@[3568; 3569) "{" | 2144 | L_CURLY@3568..3569 "{" |
2145 | WHITESPACE@[3569; 3574) "\n " | 2145 | WHITESPACE@3569..3574 "\n " |
2146 | EXPR_STMT@[3574; 3584) | 2146 | EXPR_STMT@3574..3584 |
2147 | CALL_EXPR@[3574; 3583) | 2147 | CALL_EXPR@3574..3583 |
2148 | PATH_EXPR@[3574; 3581) | 2148 | PATH_EXPR@3574..3581 |
2149 | PATH@[3574; 3581) | 2149 | PATH@3574..3581 |
2150 | PATH_SEGMENT@[3574; 3581) | 2150 | PATH_SEGMENT@3574..3581 |
2151 | NAME_REF@[3574; 3581) | 2151 | NAME_REF@3574..3581 |
2152 | IDENT@[3574; 3581) "strange" | 2152 | IDENT@3574..3581 "strange" |
2153 | ARG_LIST@[3581; 3583) | 2153 | ARG_LIST@3581..3583 |
2154 | L_PAREN@[3581; 3582) "(" | 2154 | L_PAREN@3581..3582 "(" |
2155 | R_PAREN@[3582; 3583) ")" | 2155 | R_PAREN@3582..3583 ")" |
2156 | SEMICOLON@[3583; 3584) ";" | 2156 | SEMICOLON@3583..3584 ";" |
2157 | WHITESPACE@[3584; 3589) "\n " | 2157 | WHITESPACE@3584..3589 "\n " |
2158 | EXPR_STMT@[3589; 3597) | 2158 | EXPR_STMT@3589..3597 |
2159 | CALL_EXPR@[3589; 3596) | 2159 | CALL_EXPR@3589..3596 |
2160 | PATH_EXPR@[3589; 3594) | 2160 | PATH_EXPR@3589..3594 |
2161 | PATH@[3589; 3594) | 2161 | PATH@3589..3594 |
2162 | PATH_SEGMENT@[3589; 3594) | 2162 | PATH_SEGMENT@3589..3594 |
2163 | NAME_REF@[3589; 3594) | 2163 | NAME_REF@3589..3594 |
2164 | IDENT@[3589; 3594) "funny" | 2164 | IDENT@3589..3594 "funny" |
2165 | ARG_LIST@[3594; 3596) | 2165 | ARG_LIST@3594..3596 |
2166 | L_PAREN@[3594; 3595) "(" | 2166 | L_PAREN@3594..3595 "(" |
2167 | R_PAREN@[3595; 3596) ")" | 2167 | R_PAREN@3595..3596 ")" |
2168 | SEMICOLON@[3596; 3597) ";" | 2168 | SEMICOLON@3596..3597 ";" |
2169 | WHITESPACE@[3597; 3602) "\n " | 2169 | WHITESPACE@3597..3602 "\n " |
2170 | EXPR_STMT@[3602; 3609) | 2170 | EXPR_STMT@3602..3609 |
2171 | CALL_EXPR@[3602; 3608) | 2171 | CALL_EXPR@3602..3608 |
2172 | PATH_EXPR@[3602; 3606) | 2172 | PATH_EXPR@3602..3606 |
2173 | PATH@[3602; 3606) | 2173 | PATH@3602..3606 |
2174 | PATH_SEGMENT@[3602; 3606) | 2174 | PATH_SEGMENT@3602..3606 |
2175 | NAME_REF@[3602; 3606) | 2175 | NAME_REF@3602..3606 |
2176 | IDENT@[3602; 3606) "what" | 2176 | IDENT@3602..3606 "what" |
2177 | ARG_LIST@[3606; 3608) | 2177 | ARG_LIST@3606..3608 |
2178 | L_PAREN@[3606; 3607) "(" | 2178 | L_PAREN@3606..3607 "(" |
2179 | R_PAREN@[3607; 3608) ")" | 2179 | R_PAREN@3607..3608 ")" |
2180 | SEMICOLON@[3608; 3609) ";" | 2180 | SEMICOLON@3608..3609 ";" |
2181 | WHITESPACE@[3609; 3614) "\n " | 2181 | WHITESPACE@3609..3614 "\n " |
2182 | EXPR_STMT@[3614; 3628) | 2182 | EXPR_STMT@3614..3628 |
2183 | CALL_EXPR@[3614; 3627) | 2183 | CALL_EXPR@3614..3627 |
2184 | PATH_EXPR@[3614; 3625) | 2184 | PATH_EXPR@3614..3625 |
2185 | PATH@[3614; 3625) | 2185 | PATH@3614..3625 |
2186 | PATH_SEGMENT@[3614; 3625) | 2186 | PATH_SEGMENT@3614..3625 |
2187 | NAME_REF@[3614; 3625) | 2187 | NAME_REF@3614..3625 |
2188 | IDENT@[3614; 3625) "zombiejesus" | 2188 | IDENT@3614..3625 "zombiejesus" |
2189 | ARG_LIST@[3625; 3627) | 2189 | ARG_LIST@3625..3627 |
2190 | L_PAREN@[3625; 3626) "(" | 2190 | L_PAREN@3625..3626 "(" |
2191 | R_PAREN@[3626; 3627) ")" | 2191 | R_PAREN@3626..3627 ")" |
2192 | SEMICOLON@[3627; 3628) ";" | 2192 | SEMICOLON@3627..3628 ";" |
2193 | WHITESPACE@[3628; 3633) "\n " | 2193 | WHITESPACE@3628..3633 "\n " |
2194 | EXPR_STMT@[3633; 3643) | 2194 | EXPR_STMT@3633..3643 |
2195 | CALL_EXPR@[3633; 3642) | 2195 | CALL_EXPR@3633..3642 |
2196 | PATH_EXPR@[3633; 3640) | 2196 | PATH_EXPR@3633..3640 |
2197 | PATH@[3633; 3640) | 2197 | PATH@3633..3640 |
2198 | PATH_SEGMENT@[3633; 3640) | 2198 | PATH_SEGMENT@3633..3640 |
2199 | NAME_REF@[3633; 3640) | 2199 | NAME_REF@3633..3640 |
2200 | IDENT@[3633; 3640) "notsure" | 2200 | IDENT@3633..3640 "notsure" |
2201 | ARG_LIST@[3640; 3642) | 2201 | ARG_LIST@3640..3642 |
2202 | L_PAREN@[3640; 3641) "(" | 2202 | L_PAREN@3640..3641 "(" |
2203 | R_PAREN@[3641; 3642) ")" | 2203 | R_PAREN@3641..3642 ")" |
2204 | SEMICOLON@[3642; 3643) ";" | 2204 | SEMICOLON@3642..3643 ";" |
2205 | WHITESPACE@[3643; 3648) "\n " | 2205 | WHITESPACE@3643..3648 "\n " |
2206 | EXPR_STMT@[3648; 3664) | 2206 | EXPR_STMT@3648..3664 |
2207 | CALL_EXPR@[3648; 3663) | 2207 | CALL_EXPR@3648..3663 |
2208 | PATH_EXPR@[3648; 3661) | 2208 | PATH_EXPR@3648..3661 |
2209 | PATH@[3648; 3661) | 2209 | PATH@3648..3661 |
2210 | PATH_SEGMENT@[3648; 3661) | 2210 | PATH_SEGMENT@3648..3661 |
2211 | NAME_REF@[3648; 3661) | 2211 | NAME_REF@3648..3661 |
2212 | IDENT@[3648; 3661) "canttouchthis" | 2212 | IDENT@3648..3661 "canttouchthis" |
2213 | ARG_LIST@[3661; 3663) | 2213 | ARG_LIST@3661..3663 |
2214 | L_PAREN@[3661; 3662) "(" | 2214 | L_PAREN@3661..3662 "(" |
2215 | R_PAREN@[3662; 3663) ")" | 2215 | R_PAREN@3662..3663 ")" |
2216 | SEMICOLON@[3663; 3664) ";" | 2216 | SEMICOLON@3663..3664 ";" |
2217 | WHITESPACE@[3664; 3669) "\n " | 2217 | WHITESPACE@3664..3669 "\n " |
2218 | EXPR_STMT@[3669; 3681) | 2218 | EXPR_STMT@3669..3681 |
2219 | CALL_EXPR@[3669; 3680) | 2219 | CALL_EXPR@3669..3680 |
2220 | PATH_EXPR@[3669; 3678) | 2220 | PATH_EXPR@3669..3678 |
2221 | PATH@[3669; 3678) | 2221 | PATH@3669..3678 |
2222 | PATH_SEGMENT@[3669; 3678) | 2222 | PATH_SEGMENT@3669..3678 |
2223 | NAME_REF@[3669; 3678) | 2223 | NAME_REF@3669..3678 |
2224 | IDENT@[3669; 3678) "angrydome" | 2224 | IDENT@3669..3678 "angrydome" |
2225 | ARG_LIST@[3678; 3680) | 2225 | ARG_LIST@3678..3680 |
2226 | L_PAREN@[3678; 3679) "(" | 2226 | L_PAREN@3678..3679 "(" |
2227 | R_PAREN@[3679; 3680) ")" | 2227 | R_PAREN@3679..3680 ")" |
2228 | SEMICOLON@[3680; 3681) ";" | 2228 | SEMICOLON@3680..3681 ";" |
2229 | WHITESPACE@[3681; 3686) "\n " | 2229 | WHITESPACE@3681..3686 "\n " |
2230 | EXPR_STMT@[3686; 3701) | 2230 | EXPR_STMT@3686..3701 |
2231 | CALL_EXPR@[3686; 3700) | 2231 | CALL_EXPR@3686..3700 |
2232 | PATH_EXPR@[3686; 3698) | 2232 | PATH_EXPR@3686..3698 |
2233 | PATH@[3686; 3698) | 2233 | PATH@3686..3698 |
2234 | PATH_SEGMENT@[3686; 3698) | 2234 | PATH_SEGMENT@3686..3698 |
2235 | NAME_REF@[3686; 3698) | 2235 | NAME_REF@3686..3698 |
2236 | IDENT@[3686; 3698) "evil_lincoln" | 2236 | IDENT@3686..3698 "evil_lincoln" |
2237 | ARG_LIST@[3698; 3700) | 2237 | ARG_LIST@3698..3700 |
2238 | L_PAREN@[3698; 3699) "(" | 2238 | L_PAREN@3698..3699 "(" |
2239 | R_PAREN@[3699; 3700) ")" | 2239 | R_PAREN@3699..3700 ")" |
2240 | SEMICOLON@[3700; 3701) ";" | 2240 | SEMICOLON@3700..3701 ";" |
2241 | WHITESPACE@[3701; 3706) "\n " | 2241 | WHITESPACE@3701..3706 "\n " |
2242 | EXPR_STMT@[3706; 3713) | 2242 | EXPR_STMT@3706..3713 |
2243 | CALL_EXPR@[3706; 3712) | 2243 | CALL_EXPR@3706..3712 |
2244 | PATH_EXPR@[3706; 3710) | 2244 | PATH_EXPR@3706..3710 |
2245 | PATH@[3706; 3710) | 2245 | PATH@3706..3710 |
2246 | PATH_SEGMENT@[3706; 3710) | 2246 | PATH_SEGMENT@3706..3710 |
2247 | NAME_REF@[3706; 3710) | 2247 | NAME_REF@3706..3710 |
2248 | IDENT@[3706; 3710) "dots" | 2248 | IDENT@3706..3710 "dots" |
2249 | ARG_LIST@[3710; 3712) | 2249 | ARG_LIST@3710..3712 |
2250 | L_PAREN@[3710; 3711) "(" | 2250 | L_PAREN@3710..3711 "(" |
2251 | R_PAREN@[3711; 3712) ")" | 2251 | R_PAREN@3711..3712 ")" |
2252 | SEMICOLON@[3712; 3713) ";" | 2252 | SEMICOLON@3712..3713 ";" |
2253 | WHITESPACE@[3713; 3718) "\n " | 2253 | WHITESPACE@3713..3718 "\n " |
2254 | EXPR_STMT@[3718; 3726) | 2254 | EXPR_STMT@3718..3726 |
2255 | CALL_EXPR@[3718; 3725) | 2255 | CALL_EXPR@3718..3725 |
2256 | PATH_EXPR@[3718; 3720) | 2256 | PATH_EXPR@3718..3720 |
2257 | PATH@[3718; 3720) | 2257 | PATH@3718..3720 |
2258 | PATH_SEGMENT@[3718; 3720) | 2258 | PATH_SEGMENT@3718..3720 |
2259 | NAME_REF@[3718; 3720) | 2259 | NAME_REF@3718..3720 |
2260 | IDENT@[3718; 3720) "u8" | 2260 | IDENT@3718..3720 "u8" |
2261 | ARG_LIST@[3720; 3725) | 2261 | ARG_LIST@3720..3725 |
2262 | L_PAREN@[3720; 3721) "(" | 2262 | L_PAREN@3720..3721 "(" |
2263 | LITERAL@[3721; 3724) | 2263 | LITERAL@3721..3724 |
2264 | INT_NUMBER@[3721; 3724) "8u8" | 2264 | INT_NUMBER@3721..3724 "8u8" |
2265 | R_PAREN@[3724; 3725) ")" | 2265 | R_PAREN@3724..3725 ")" |
2266 | SEMICOLON@[3725; 3726) ";" | 2266 | SEMICOLON@3725..3726 ";" |
2267 | WHITESPACE@[3726; 3731) "\n " | 2267 | WHITESPACE@3726..3731 "\n " |
2268 | EXPR_STMT@[3731; 3739) | 2268 | EXPR_STMT@3731..3739 |
2269 | CALL_EXPR@[3731; 3738) | 2269 | CALL_EXPR@3731..3738 |
2270 | PATH_EXPR@[3731; 3736) | 2270 | PATH_EXPR@3731..3736 |
2271 | PATH@[3731; 3736) | 2271 | PATH@3731..3736 |
2272 | PATH_SEGMENT@[3731; 3736) | 2272 | PATH_SEGMENT@3731..3736 |
2273 | NAME_REF@[3731; 3736) | 2273 | NAME_REF@3731..3736 |
2274 | IDENT@[3731; 3736) "fishy" | 2274 | IDENT@3731..3736 "fishy" |
2275 | ARG_LIST@[3736; 3738) | 2275 | ARG_LIST@3736..3738 |
2276 | L_PAREN@[3736; 3737) "(" | 2276 | L_PAREN@3736..3737 "(" |
2277 | R_PAREN@[3737; 3738) ")" | 2277 | R_PAREN@3737..3738 ")" |
2278 | SEMICOLON@[3738; 3739) ";" | 2278 | SEMICOLON@3738..3739 ";" |
2279 | WHITESPACE@[3739; 3744) "\n " | 2279 | WHITESPACE@3739..3744 "\n " |
2280 | EXPR_STMT@[3744; 3752) | 2280 | EXPR_STMT@3744..3752 |
2281 | CALL_EXPR@[3744; 3751) | 2281 | CALL_EXPR@3744..3751 |
2282 | PATH_EXPR@[3744; 3749) | 2282 | PATH_EXPR@3744..3749 |
2283 | PATH@[3744; 3749) | 2283 | PATH@3744..3749 |
2284 | PATH_SEGMENT@[3744; 3749) | 2284 | PATH_SEGMENT@3744..3749 |
2285 | NAME_REF@[3744; 3749) | 2285 | NAME_REF@3744..3749 |
2286 | IDENT@[3744; 3749) "union" | 2286 | IDENT@3744..3749 "union" |
2287 | ARG_LIST@[3749; 3751) | 2287 | ARG_LIST@3749..3751 |
2288 | L_PAREN@[3749; 3750) "(" | 2288 | L_PAREN@3749..3750 "(" |
2289 | R_PAREN@[3750; 3751) ")" | 2289 | R_PAREN@3750..3751 ")" |
2290 | SEMICOLON@[3751; 3752) ";" | 2290 | SEMICOLON@3751..3752 ";" |
2291 | WHITESPACE@[3752; 3757) "\n " | 2291 | WHITESPACE@3752..3757 "\n " |
2292 | EXPR_STMT@[3757; 3778) | 2292 | EXPR_STMT@3757..3778 |
2293 | CALL_EXPR@[3757; 3777) | 2293 | CALL_EXPR@3757..3777 |
2294 | PATH_EXPR@[3757; 3775) | 2294 | PATH_EXPR@3757..3775 |
2295 | PATH@[3757; 3775) | 2295 | PATH@3757..3775 |
2296 | PATH_SEGMENT@[3757; 3775) | 2296 | PATH_SEGMENT@3757..3775 |
2297 | NAME_REF@[3757; 3775) | 2297 | NAME_REF@3757..3775 |
2298 | IDENT@[3757; 3775) "special_characters" | 2298 | IDENT@3757..3775 "special_characters" |
2299 | ARG_LIST@[3775; 3777) | 2299 | ARG_LIST@3775..3777 |
2300 | L_PAREN@[3775; 3776) "(" | 2300 | L_PAREN@3775..3776 "(" |
2301 | R_PAREN@[3776; 3777) ")" | 2301 | R_PAREN@3776..3777 ")" |
2302 | SEMICOLON@[3777; 3778) ";" | 2302 | SEMICOLON@3777..3778 ";" |
2303 | WHITESPACE@[3778; 3783) "\n " | 2303 | WHITESPACE@3778..3783 "\n " |
2304 | EXPR_STMT@[3783; 3796) | 2304 | EXPR_STMT@3783..3796 |
2305 | CALL_EXPR@[3783; 3795) | 2305 | CALL_EXPR@3783..3795 |
2306 | PATH_EXPR@[3783; 3793) | 2306 | PATH_EXPR@3783..3793 |
2307 | PATH@[3783; 3793) | 2307 | PATH@3783..3793 |
2308 | PATH_SEGMENT@[3783; 3793) | 2308 | PATH_SEGMENT@3783..3793 |
2309 | NAME_REF@[3783; 3793) | 2309 | NAME_REF@3783..3793 |
2310 | IDENT@[3783; 3793) "punch_card" | 2310 | IDENT@3783..3793 "punch_card" |
2311 | ARG_LIST@[3793; 3795) | 2311 | ARG_LIST@3793..3795 |
2312 | L_PAREN@[3793; 3794) "(" | 2312 | L_PAREN@3793..3794 "(" |
2313 | R_PAREN@[3794; 3795) ")" | 2313 | R_PAREN@3794..3795 ")" |
2314 | SEMICOLON@[3795; 3796) ";" | 2314 | SEMICOLON@3795..3796 ";" |
2315 | WHITESPACE@[3796; 3801) "\n " | 2315 | WHITESPACE@3796..3801 "\n " |
2316 | EXPR_STMT@[3801; 3810) | 2316 | EXPR_STMT@3801..3810 |
2317 | CALL_EXPR@[3801; 3809) | 2317 | CALL_EXPR@3801..3809 |
2318 | PATH_EXPR@[3801; 3807) | 2318 | PATH_EXPR@3801..3807 |
2319 | PATH@[3801; 3807) | 2319 | PATH@3801..3807 |
2320 | PATH_SEGMENT@[3801; 3807) | 2320 | PATH_SEGMENT@3801..3807 |
2321 | NAME_REF@[3801; 3807) | 2321 | NAME_REF@3801..3807 |
2322 | IDENT@[3801; 3807) "ktulhu" | 2322 | IDENT@3801..3807 "ktulhu" |
2323 | ARG_LIST@[3807; 3809) | 2323 | ARG_LIST@3807..3809 |
2324 | L_PAREN@[3807; 3808) "(" | 2324 | L_PAREN@3807..3808 "(" |
2325 | R_PAREN@[3808; 3809) ")" | 2325 | R_PAREN@3808..3809 ")" |
2326 | SEMICOLON@[3809; 3810) ";" | 2326 | SEMICOLON@3809..3810 ";" |
2327 | WHITESPACE@[3810; 3811) "\n" | 2327 | WHITESPACE@3810..3811 "\n" |
2328 | R_CURLY@[3811; 3812) "}" | 2328 | R_CURLY@3811..3812 "}" |
2329 | WHITESPACE@[3812; 3813) "\n" | 2329 | WHITESPACE@3812..3813 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast index 4df6703f4..8f616623b 100644 --- a/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast +++ b/crates/ra_syntax/test_data/parser/ok/0036_fully_qualified.rast | |||
@@ -1,93 +1,93 @@ | |||
1 | SOURCE_FILE@[0; 157) | 1 | SOURCE_FILE@0..157 |
2 | COMMENT@[0; 60) "// https://github.com ..." | 2 | COMMENT@0..60 "// https://github.com ..." |
3 | WHITESPACE@[60; 62) "\n\n" | 3 | WHITESPACE@60..62 "\n\n" |
4 | FN_DEF@[62; 156) | 4 | FN_DEF@62..156 |
5 | VISIBILITY@[62; 65) | 5 | VISIBILITY@62..65 |
6 | PUB_KW@[62; 65) "pub" | 6 | PUB_KW@62..65 "pub" |
7 | WHITESPACE@[65; 66) " " | 7 | WHITESPACE@65..66 " " |
8 | FN_KW@[66; 68) "fn" | 8 | FN_KW@66..68 "fn" |
9 | WHITESPACE@[68; 69) " " | 9 | WHITESPACE@68..69 " " |
10 | NAME@[69; 72) | 10 | NAME@69..72 |
11 | IDENT@[69; 72) "foo" | 11 | IDENT@69..72 "foo" |
12 | TYPE_PARAM_LIST@[72; 85) | 12 | TYPE_PARAM_LIST@72..85 |
13 | L_ANGLE@[72; 73) "<" | 13 | L_ANGLE@72..73 "<" |
14 | TYPE_PARAM@[73; 84) | 14 | TYPE_PARAM@73..84 |
15 | NAME@[73; 74) | 15 | NAME@73..74 |
16 | IDENT@[73; 74) "S" | 16 | IDENT@73..74 "S" |
17 | COLON@[74; 75) ":" | 17 | COLON@74..75 ":" |
18 | WHITESPACE@[75; 76) " " | 18 | WHITESPACE@75..76 " " |
19 | TYPE_BOUND_LIST@[76; 84) | 19 | TYPE_BOUND_LIST@76..84 |
20 | TYPE_BOUND@[76; 84) | 20 | TYPE_BOUND@76..84 |
21 | PATH_TYPE@[76; 84) | 21 | PATH_TYPE@76..84 |
22 | PATH@[76; 84) | 22 | PATH@76..84 |
23 | PATH_SEGMENT@[76; 84) | 23 | PATH_SEGMENT@76..84 |
24 | NAME_REF@[76; 84) | 24 | NAME_REF@76..84 |
25 | IDENT@[76; 84) "Iterator" | 25 | IDENT@76..84 "Iterator" |
26 | R_ANGLE@[84; 85) ">" | 26 | R_ANGLE@84..85 ">" |
27 | PARAM_LIST@[85; 87) | 27 | PARAM_LIST@85..87 |
28 | L_PAREN@[85; 86) "(" | 28 | L_PAREN@85..86 "(" |
29 | R_PAREN@[86; 87) ")" | 29 | R_PAREN@86..87 ")" |
30 | WHITESPACE@[87; 88) " " | 30 | WHITESPACE@87..88 " " |
31 | RET_TYPE@[88; 97) | 31 | RET_TYPE@88..97 |
32 | THIN_ARROW@[88; 90) "->" | 32 | THIN_ARROW@88..90 "->" |
33 | WHITESPACE@[90; 91) " " | 33 | WHITESPACE@90..91 " " |
34 | PATH_TYPE@[91; 97) | 34 | PATH_TYPE@91..97 |
35 | PATH@[91; 97) | 35 | PATH@91..97 |
36 | PATH_SEGMENT@[91; 97) | 36 | PATH_SEGMENT@91..97 |
37 | NAME_REF@[91; 97) | 37 | NAME_REF@91..97 |
38 | IDENT@[91; 97) "String" | 38 | IDENT@91..97 "String" |
39 | WHITESPACE@[97; 98) "\n" | 39 | WHITESPACE@97..98 "\n" |
40 | WHERE_CLAUSE@[98; 134) | 40 | WHERE_CLAUSE@98..134 |
41 | WHERE_KW@[98; 103) "where" | 41 | WHERE_KW@98..103 "where" |
42 | WHITESPACE@[103; 108) "\n " | 42 | WHITESPACE@103..108 "\n " |
43 | WHERE_PRED@[108; 133) | 43 | WHERE_PRED@108..133 |
44 | PATH_TYPE@[108; 129) | 44 | PATH_TYPE@108..129 |
45 | PATH@[108; 129) | 45 | PATH@108..129 |
46 | PATH@[108; 123) | 46 | PATH@108..123 |
47 | PATH_SEGMENT@[108; 123) | 47 | PATH_SEGMENT@108..123 |
48 | L_ANGLE@[108; 109) "<" | 48 | L_ANGLE@108..109 "<" |
49 | PATH_TYPE@[109; 110) | 49 | PATH_TYPE@109..110 |
50 | PATH@[109; 110) | 50 | PATH@109..110 |
51 | PATH_SEGMENT@[109; 110) | 51 | PATH_SEGMENT@109..110 |
52 | NAME_REF@[109; 110) | 52 | NAME_REF@109..110 |
53 | IDENT@[109; 110) "S" | 53 | IDENT@109..110 "S" |
54 | WHITESPACE@[110; 111) " " | 54 | WHITESPACE@110..111 " " |
55 | AS_KW@[111; 113) "as" | 55 | AS_KW@111..113 "as" |
56 | WHITESPACE@[113; 114) " " | 56 | WHITESPACE@113..114 " " |
57 | PATH_TYPE@[114; 122) | 57 | PATH_TYPE@114..122 |
58 | PATH@[114; 122) | 58 | PATH@114..122 |
59 | PATH_SEGMENT@[114; 122) | 59 | PATH_SEGMENT@114..122 |
60 | NAME_REF@[114; 122) | 60 | NAME_REF@114..122 |
61 | IDENT@[114; 122) "Iterator" | 61 | IDENT@114..122 "Iterator" |
62 | R_ANGLE@[122; 123) ">" | 62 | R_ANGLE@122..123 ">" |
63 | COLON2@[123; 125) "::" | 63 | COLON2@123..125 "::" |
64 | PATH_SEGMENT@[125; 129) | 64 | PATH_SEGMENT@125..129 |
65 | NAME_REF@[125; 129) | 65 | NAME_REF@125..129 |
66 | IDENT@[125; 129) "Item" | 66 | IDENT@125..129 "Item" |
67 | COLON@[129; 130) ":" | 67 | COLON@129..130 ":" |
68 | WHITESPACE@[130; 131) " " | 68 | WHITESPACE@130..131 " " |
69 | TYPE_BOUND_LIST@[131; 133) | 69 | TYPE_BOUND_LIST@131..133 |
70 | TYPE_BOUND@[131; 133) | 70 | TYPE_BOUND@131..133 |
71 | PATH_TYPE@[131; 133) | 71 | PATH_TYPE@131..133 |
72 | PATH@[131; 133) | 72 | PATH@131..133 |
73 | PATH_SEGMENT@[131; 133) | 73 | PATH_SEGMENT@131..133 |
74 | NAME_REF@[131; 133) | 74 | NAME_REF@131..133 |
75 | IDENT@[131; 133) "Eq" | 75 | IDENT@131..133 "Eq" |
76 | COMMA@[133; 134) "," | 76 | COMMA@133..134 "," |
77 | WHITESPACE@[134; 135) "\n" | 77 | WHITESPACE@134..135 "\n" |
78 | BLOCK_EXPR@[135; 156) | 78 | BLOCK_EXPR@135..156 |
79 | BLOCK@[135; 156) | 79 | BLOCK@135..156 |
80 | L_CURLY@[135; 136) "{" | 80 | L_CURLY@135..136 "{" |
81 | WHITESPACE@[136; 141) "\n " | 81 | WHITESPACE@136..141 "\n " |
82 | METHOD_CALL_EXPR@[141; 154) | 82 | METHOD_CALL_EXPR@141..154 |
83 | LITERAL@[141; 143) | 83 | LITERAL@141..143 |
84 | STRING@[141; 143) "\"\"" | 84 | STRING@141..143 "\"\"" |
85 | DOT@[143; 144) "." | 85 | DOT@143..144 "." |
86 | NAME_REF@[144; 152) | 86 | NAME_REF@144..152 |
87 | IDENT@[144; 152) "to_owned" | 87 | IDENT@144..152 "to_owned" |
88 | ARG_LIST@[152; 154) | 88 | ARG_LIST@152..154 |
89 | L_PAREN@[152; 153) "(" | 89 | L_PAREN@152..153 "(" |
90 | R_PAREN@[153; 154) ")" | 90 | R_PAREN@153..154 ")" |
91 | WHITESPACE@[154; 155) "\n" | 91 | WHITESPACE@154..155 "\n" |
92 | R_CURLY@[155; 156) "}" | 92 | R_CURLY@155..156 "}" |
93 | WHITESPACE@[156; 157) "\n" | 93 | WHITESPACE@156..157 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0037_mod.rast b/crates/ra_syntax/test_data/parser/ok/0037_mod.rast index 3af40a104..1d5d94bde 100644 --- a/crates/ra_syntax/test_data/parser/ok/0037_mod.rast +++ b/crates/ra_syntax/test_data/parser/ok/0037_mod.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 93) | 1 | SOURCE_FILE@0..93 |
2 | COMMENT@[0; 60) "// https://github.com ..." | 2 | COMMENT@0..60 "// https://github.com ..." |
3 | WHITESPACE@[60; 62) "\n\n" | 3 | WHITESPACE@60..62 "\n\n" |
4 | MODULE@[62; 93) | 4 | MODULE@62..93 |
5 | COMMENT@[62; 70) "//! docs" | 5 | COMMENT@62..70 "//! docs" |
6 | WHITESPACE@[70; 71) "\n" | 6 | WHITESPACE@70..71 "\n" |
7 | COMMENT@[71; 82) "// non-docs" | 7 | COMMENT@71..82 "// non-docs" |
8 | WHITESPACE@[82; 83) "\n" | 8 | WHITESPACE@82..83 "\n" |
9 | MOD_KW@[83; 86) "mod" | 9 | MOD_KW@83..86 "mod" |
10 | WHITESPACE@[86; 87) " " | 10 | WHITESPACE@86..87 " " |
11 | NAME@[87; 90) | 11 | NAME@87..90 |
12 | IDENT@[87; 90) "foo" | 12 | IDENT@87..90 "foo" |
13 | WHITESPACE@[90; 91) " " | 13 | WHITESPACE@90..91 " " |
14 | ITEM_LIST@[91; 93) | 14 | ITEM_LIST@91..93 |
15 | L_CURLY@[91; 92) "{" | 15 | L_CURLY@91..92 "{" |
16 | R_CURLY@[92; 93) "}" | 16 | R_CURLY@92..93 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast index 377367914..14d82feb0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast +++ b/crates/ra_syntax/test_data/parser/ok/0038_where_pred_type.rast | |||
@@ -1,43 +1,43 @@ | |||
1 | SOURCE_FILE@[0; 34) | 1 | SOURCE_FILE@0..34 |
2 | FN_DEF@[0; 34) | 2 | FN_DEF@0..34 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "test" | 6 | IDENT@3..7 "test" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | WHERE_CLAUSE@[10; 31) | 11 | WHERE_CLAUSE@10..31 |
12 | WHERE_KW@[10; 15) "where" | 12 | WHERE_KW@10..15 "where" |
13 | WHITESPACE@[15; 16) " " | 13 | WHITESPACE@15..16 " " |
14 | WHERE_PRED@[16; 31) | 14 | WHERE_PRED@16..31 |
15 | TUPLE_TYPE@[16; 26) | 15 | TUPLE_TYPE@16..26 |
16 | L_PAREN@[16; 17) "(" | 16 | L_PAREN@16..17 "(" |
17 | PATH_TYPE@[17; 20) | 17 | PATH_TYPE@17..20 |
18 | PATH@[17; 20) | 18 | PATH@17..20 |
19 | PATH_SEGMENT@[17; 20) | 19 | PATH_SEGMENT@17..20 |
20 | NAME_REF@[17; 20) | 20 | NAME_REF@17..20 |
21 | IDENT@[17; 20) "u64" | 21 | IDENT@17..20 "u64" |
22 | COMMA@[20; 21) "," | 22 | COMMA@20..21 "," |
23 | WHITESPACE@[21; 22) " " | 23 | WHITESPACE@21..22 " " |
24 | PATH_TYPE@[22; 25) | 24 | PATH_TYPE@22..25 |
25 | PATH@[22; 25) | 25 | PATH@22..25 |
26 | PATH_SEGMENT@[22; 25) | 26 | PATH_SEGMENT@22..25 |
27 | NAME_REF@[22; 25) | 27 | NAME_REF@22..25 |
28 | IDENT@[22; 25) "u64" | 28 | IDENT@22..25 "u64" |
29 | R_PAREN@[25; 26) ")" | 29 | R_PAREN@25..26 ")" |
30 | COLON@[26; 27) ":" | 30 | COLON@26..27 ":" |
31 | WHITESPACE@[27; 28) " " | 31 | WHITESPACE@27..28 " " |
32 | TYPE_BOUND_LIST@[28; 31) | 32 | TYPE_BOUND_LIST@28..31 |
33 | TYPE_BOUND@[28; 31) | 33 | TYPE_BOUND@28..31 |
34 | PATH_TYPE@[28; 31) | 34 | PATH_TYPE@28..31 |
35 | PATH@[28; 31) | 35 | PATH@28..31 |
36 | PATH_SEGMENT@[28; 31) | 36 | PATH_SEGMENT@28..31 |
37 | NAME_REF@[28; 31) | 37 | NAME_REF@28..31 |
38 | IDENT@[28; 31) "Foo" | 38 | IDENT@28..31 "Foo" |
39 | WHITESPACE@[31; 32) " " | 39 | WHITESPACE@31..32 " " |
40 | BLOCK_EXPR@[32; 34) | 40 | BLOCK_EXPR@32..34 |
41 | BLOCK@[32; 34) | 41 | BLOCK@32..34 |
42 | L_CURLY@[32; 33) "{" | 42 | L_CURLY@32..33 "{" |
43 | R_CURLY@[33; 34) "}" | 43 | R_CURLY@33..34 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast index 9936892e9..d38a60665 100644 --- a/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0039_raw_fn_item.rast | |||
@@ -1,16 +1,16 @@ | |||
1 | SOURCE_FILE@[0; 15) | 1 | SOURCE_FILE@0..15 |
2 | FN_DEF@[0; 14) | 2 | FN_DEF@0..14 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 8) | 5 | NAME@3..8 |
6 | IDENT@[3; 8) "r#foo" | 6 | IDENT@3..8 "r#foo" |
7 | PARAM_LIST@[8; 10) | 7 | PARAM_LIST@8..10 |
8 | L_PAREN@[8; 9) "(" | 8 | L_PAREN@8..9 "(" |
9 | R_PAREN@[9; 10) ")" | 9 | R_PAREN@9..10 ")" |
10 | WHITESPACE@[10; 11) " " | 10 | WHITESPACE@10..11 " " |
11 | BLOCK_EXPR@[11; 14) | 11 | BLOCK_EXPR@11..14 |
12 | BLOCK@[11; 14) | 12 | BLOCK@11..14 |
13 | L_CURLY@[11; 12) "{" | 13 | L_CURLY@11..12 "{" |
14 | WHITESPACE@[12; 13) "\n" | 14 | WHITESPACE@12..13 "\n" |
15 | R_CURLY@[13; 14) "}" | 15 | R_CURLY@13..14 "}" |
16 | WHITESPACE@[14; 15) "\n" | 16 | WHITESPACE@14..15 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0040_raw_struct_item_field.rast b/crates/ra_syntax/test_data/parser/ok/0040_raw_struct_item_field.rast index 05f2c656f..5640bae0a 100644 --- a/crates/ra_syntax/test_data/parser/ok/0040_raw_struct_item_field.rast +++ b/crates/ra_syntax/test_data/parser/ok/0040_raw_struct_item_field.rast | |||
@@ -1,22 +1,22 @@ | |||
1 | SOURCE_FILE@[0; 27) | 1 | SOURCE_FILE@0..27 |
2 | STRUCT_DEF@[0; 27) | 2 | STRUCT_DEF@0..27 |
3 | STRUCT_KW@[0; 6) "struct" | 3 | STRUCT_KW@0..6 "struct" |
4 | WHITESPACE@[6; 7) " " | 4 | WHITESPACE@6..7 " " |
5 | NAME@[7; 8) | 5 | NAME@7..8 |
6 | IDENT@[7; 8) "S" | 6 | IDENT@7..8 "S" |
7 | WHITESPACE@[8; 9) " " | 7 | WHITESPACE@8..9 " " |
8 | RECORD_FIELD_DEF_LIST@[9; 27) | 8 | RECORD_FIELD_DEF_LIST@9..27 |
9 | L_CURLY@[9; 10) "{" | 9 | L_CURLY@9..10 "{" |
10 | WHITESPACE@[10; 15) "\n " | 10 | WHITESPACE@10..15 "\n " |
11 | RECORD_FIELD_DEF@[15; 25) | 11 | RECORD_FIELD_DEF@15..25 |
12 | NAME@[15; 20) | 12 | NAME@15..20 |
13 | IDENT@[15; 20) "r#foo" | 13 | IDENT@15..20 "r#foo" |
14 | COLON@[20; 21) ":" | 14 | COLON@20..21 ":" |
15 | WHITESPACE@[21; 22) " " | 15 | WHITESPACE@21..22 " " |
16 | PATH_TYPE@[22; 25) | 16 | PATH_TYPE@22..25 |
17 | PATH@[22; 25) | 17 | PATH@22..25 |
18 | PATH_SEGMENT@[22; 25) | 18 | PATH_SEGMENT@22..25 |
19 | NAME_REF@[22; 25) | 19 | NAME_REF@22..25 |
20 | IDENT@[22; 25) "u32" | 20 | IDENT@22..25 "u32" |
21 | WHITESPACE@[25; 26) "\n" | 21 | WHITESPACE@25..26 "\n" |
22 | R_CURLY@[26; 27) "}" | 22 | R_CURLY@26..27 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast index 825518eda..db25bc2b8 100644 --- a/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast +++ b/crates/ra_syntax/test_data/parser/ok/0041_raw_keywords.rast | |||
@@ -1,50 +1,50 @@ | |||
1 | SOURCE_FILE@[0; 59) | 1 | SOURCE_FILE@0..59 |
2 | FN_DEF@[0; 59) | 2 | FN_DEF@0..59 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 59) | 11 | BLOCK_EXPR@9..59 |
12 | BLOCK@[9; 59) | 12 | BLOCK@9..59 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 11) " " | 14 | WHITESPACE@10..11 " " |
15 | LET_STMT@[11; 29) | 15 | LET_STMT@11..29 |
16 | LET_KW@[11; 14) "let" | 16 | LET_KW@11..14 "let" |
17 | WHITESPACE@[14; 15) " " | 17 | WHITESPACE@14..15 " " |
18 | BIND_PAT@[15; 23) | 18 | BIND_PAT@15..23 |
19 | NAME@[15; 23) | 19 | NAME@15..23 |
20 | IDENT@[15; 23) "r#struct" | 20 | IDENT@15..23 "r#struct" |
21 | WHITESPACE@[23; 24) " " | 21 | WHITESPACE@23..24 " " |
22 | EQ@[24; 25) "=" | 22 | EQ@24..25 "=" |
23 | WHITESPACE@[25; 26) " " | 23 | WHITESPACE@25..26 " " |
24 | LITERAL@[26; 28) | 24 | LITERAL@26..28 |
25 | INT_NUMBER@[26; 28) "92" | 25 | INT_NUMBER@26..28 "92" |
26 | SEMICOLON@[28; 29) ";" | 26 | SEMICOLON@28..29 ";" |
27 | WHITESPACE@[29; 30) " " | 27 | WHITESPACE@29..30 " " |
28 | LET_STMT@[30; 57) | 28 | LET_STMT@30..57 |
29 | LET_KW@[30; 33) "let" | 29 | LET_KW@30..33 "let" |
30 | WHITESPACE@[33; 34) " " | 30 | WHITESPACE@33..34 " " |
31 | BIND_PAT@[34; 41) | 31 | BIND_PAT@34..41 |
32 | NAME@[34; 41) | 32 | NAME@34..41 |
33 | IDENT@[34; 41) "r#trait" | 33 | IDENT@34..41 "r#trait" |
34 | WHITESPACE@[41; 42) " " | 34 | WHITESPACE@41..42 " " |
35 | EQ@[42; 43) "=" | 35 | EQ@42..43 "=" |
36 | WHITESPACE@[43; 44) " " | 36 | WHITESPACE@43..44 " " |
37 | BIN_EXPR@[44; 56) | 37 | BIN_EXPR@44..56 |
38 | PATH_EXPR@[44; 52) | 38 | PATH_EXPR@44..52 |
39 | PATH@[44; 52) | 39 | PATH@44..52 |
40 | PATH_SEGMENT@[44; 52) | 40 | PATH_SEGMENT@44..52 |
41 | NAME_REF@[44; 52) | 41 | NAME_REF@44..52 |
42 | IDENT@[44; 52) "r#struct" | 42 | IDENT@44..52 "r#struct" |
43 | WHITESPACE@[52; 53) " " | 43 | WHITESPACE@52..53 " " |
44 | STAR@[53; 54) "*" | 44 | STAR@53..54 "*" |
45 | WHITESPACE@[54; 55) " " | 45 | WHITESPACE@54..55 " " |
46 | LITERAL@[55; 56) | 46 | LITERAL@55..56 |
47 | INT_NUMBER@[55; 56) "2" | 47 | INT_NUMBER@55..56 "2" |
48 | SEMICOLON@[56; 57) ";" | 48 | SEMICOLON@56..57 ";" |
49 | WHITESPACE@[57; 58) " " | 49 | WHITESPACE@57..58 " " |
50 | R_CURLY@[58; 59) "}" | 50 | R_CURLY@58..59 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast index 420a62639..9704bea95 100644 --- a/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast +++ b/crates/ra_syntax/test_data/parser/ok/0042_ufcs_call_list.rast | |||
@@ -1,126 +1,126 @@ | |||
1 | SOURCE_FILE@[0; 199) | 1 | SOURCE_FILE@0..199 |
2 | COMMENT@[0; 60) "// https://github.com ..." | 2 | COMMENT@0..60 "// https://github.com ..." |
3 | WHITESPACE@[60; 62) "\n\n" | 3 | WHITESPACE@60..62 "\n\n" |
4 | STRUCT_DEF@[62; 73) | 4 | STRUCT_DEF@62..73 |
5 | STRUCT_KW@[62; 68) "struct" | 5 | STRUCT_KW@62..68 "struct" |
6 | WHITESPACE@[68; 69) " " | 6 | WHITESPACE@68..69 " " |
7 | NAME@[69; 72) | 7 | NAME@69..72 |
8 | IDENT@[69; 72) "Foo" | 8 | IDENT@69..72 "Foo" |
9 | SEMICOLON@[72; 73) ";" | 9 | SEMICOLON@72..73 ";" |
10 | WHITESPACE@[73; 75) "\n\n" | 10 | WHITESPACE@73..75 "\n\n" |
11 | IMPL_DEF@[75; 141) | 11 | IMPL_DEF@75..141 |
12 | IMPL_KW@[75; 79) "impl" | 12 | IMPL_KW@75..79 "impl" |
13 | WHITESPACE@[79; 80) " " | 13 | WHITESPACE@79..80 " " |
14 | PATH_TYPE@[80; 83) | 14 | PATH_TYPE@80..83 |
15 | PATH@[80; 83) | 15 | PATH@80..83 |
16 | PATH_SEGMENT@[80; 83) | 16 | PATH_SEGMENT@80..83 |
17 | NAME_REF@[80; 83) | 17 | NAME_REF@80..83 |
18 | IDENT@[80; 83) "Foo" | 18 | IDENT@80..83 "Foo" |
19 | WHITESPACE@[83; 84) " " | 19 | WHITESPACE@83..84 " " |
20 | ITEM_LIST@[84; 141) | 20 | ITEM_LIST@84..141 |
21 | L_CURLY@[84; 85) "{" | 21 | L_CURLY@84..85 "{" |
22 | WHITESPACE@[85; 90) "\n " | 22 | WHITESPACE@85..90 "\n " |
23 | FN_DEF@[90; 139) | 23 | FN_DEF@90..139 |
24 | FN_KW@[90; 92) "fn" | 24 | FN_KW@90..92 "fn" |
25 | WHITESPACE@[92; 93) " " | 25 | WHITESPACE@92..93 " " |
26 | NAME@[93; 96) | 26 | NAME@93..96 |
27 | IDENT@[93; 96) "bar" | 27 | IDENT@93..96 "bar" |
28 | PARAM_LIST@[96; 98) | 28 | PARAM_LIST@96..98 |
29 | L_PAREN@[96; 97) "(" | 29 | L_PAREN@96..97 "(" |
30 | R_PAREN@[97; 98) ")" | 30 | R_PAREN@97..98 ")" |
31 | WHITESPACE@[98; 99) " " | 31 | WHITESPACE@98..99 " " |
32 | RET_TYPE@[99; 106) | 32 | RET_TYPE@99..106 |
33 | THIN_ARROW@[99; 101) "->" | 33 | THIN_ARROW@99..101 "->" |
34 | WHITESPACE@[101; 102) " " | 34 | WHITESPACE@101..102 " " |
35 | PATH_TYPE@[102; 106) | 35 | PATH_TYPE@102..106 |
36 | PATH@[102; 106) | 36 | PATH@102..106 |
37 | PATH_SEGMENT@[102; 106) | 37 | PATH_SEGMENT@102..106 |
38 | NAME_REF@[102; 106) | 38 | NAME_REF@102..106 |
39 | IDENT@[102; 106) "bool" | 39 | IDENT@102..106 "bool" |
40 | WHITESPACE@[106; 107) " " | 40 | WHITESPACE@106..107 " " |
41 | BLOCK_EXPR@[107; 139) | 41 | BLOCK_EXPR@107..139 |
42 | BLOCK@[107; 139) | 42 | BLOCK@107..139 |
43 | L_CURLY@[107; 108) "{" | 43 | L_CURLY@107..108 "{" |
44 | WHITESPACE@[108; 117) "\n " | 44 | WHITESPACE@108..117 "\n " |
45 | MACRO_CALL@[117; 133) | 45 | MACRO_CALL@117..133 |
46 | PATH@[117; 130) | 46 | PATH@117..130 |
47 | PATH_SEGMENT@[117; 130) | 47 | PATH_SEGMENT@117..130 |
48 | NAME_REF@[117; 130) | 48 | NAME_REF@117..130 |
49 | IDENT@[117; 130) "unimplemented" | 49 | IDENT@117..130 "unimplemented" |
50 | BANG@[130; 131) "!" | 50 | BANG@130..131 "!" |
51 | TOKEN_TREE@[131; 133) | 51 | TOKEN_TREE@131..133 |
52 | L_PAREN@[131; 132) "(" | 52 | L_PAREN@131..132 "(" |
53 | R_PAREN@[132; 133) ")" | 53 | R_PAREN@132..133 ")" |
54 | WHITESPACE@[133; 138) "\n " | 54 | WHITESPACE@133..138 "\n " |
55 | R_CURLY@[138; 139) "}" | 55 | R_CURLY@138..139 "}" |
56 | WHITESPACE@[139; 140) "\n" | 56 | WHITESPACE@139..140 "\n" |
57 | R_CURLY@[140; 141) "}" | 57 | R_CURLY@140..141 "}" |
58 | WHITESPACE@[141; 143) "\n\n" | 58 | WHITESPACE@141..143 "\n\n" |
59 | FN_DEF@[143; 161) | 59 | FN_DEF@143..161 |
60 | FN_KW@[143; 145) "fn" | 60 | FN_KW@143..145 "fn" |
61 | WHITESPACE@[145; 146) " " | 61 | WHITESPACE@145..146 " " |
62 | NAME@[146; 149) | 62 | NAME@146..149 |
63 | IDENT@[146; 149) "baz" | 63 | IDENT@146..149 "baz" |
64 | PARAM_LIST@[149; 158) | 64 | PARAM_LIST@149..158 |
65 | L_PAREN@[149; 150) "(" | 65 | L_PAREN@149..150 "(" |
66 | PARAM@[150; 157) | 66 | PARAM@150..157 |
67 | PLACEHOLDER_PAT@[150; 151) | 67 | PLACEHOLDER_PAT@150..151 |
68 | UNDERSCORE@[150; 151) "_" | 68 | UNDERSCORE@150..151 "_" |
69 | COLON@[151; 152) ":" | 69 | COLON@151..152 ":" |
70 | WHITESPACE@[152; 153) " " | 70 | WHITESPACE@152..153 " " |
71 | PATH_TYPE@[153; 157) | 71 | PATH_TYPE@153..157 |
72 | PATH@[153; 157) | 72 | PATH@153..157 |
73 | PATH_SEGMENT@[153; 157) | 73 | PATH_SEGMENT@153..157 |
74 | NAME_REF@[153; 157) | 74 | NAME_REF@153..157 |
75 | IDENT@[153; 157) "bool" | 75 | IDENT@153..157 "bool" |
76 | R_PAREN@[157; 158) ")" | 76 | R_PAREN@157..158 ")" |
77 | WHITESPACE@[158; 159) " " | 77 | WHITESPACE@158..159 " " |
78 | BLOCK_EXPR@[159; 161) | 78 | BLOCK_EXPR@159..161 |
79 | BLOCK@[159; 161) | 79 | BLOCK@159..161 |
80 | L_CURLY@[159; 160) "{" | 80 | L_CURLY@159..160 "{" |
81 | R_CURLY@[160; 161) "}" | 81 | R_CURLY@160..161 "}" |
82 | WHITESPACE@[161; 163) "\n\n" | 82 | WHITESPACE@161..163 "\n\n" |
83 | FN_DEF@[163; 198) | 83 | FN_DEF@163..198 |
84 | FN_KW@[163; 165) "fn" | 84 | FN_KW@163..165 "fn" |
85 | WHITESPACE@[165; 166) " " | 85 | WHITESPACE@165..166 " " |
86 | NAME@[166; 170) | 86 | NAME@166..170 |
87 | IDENT@[166; 170) "main" | 87 | IDENT@166..170 "main" |
88 | PARAM_LIST@[170; 172) | 88 | PARAM_LIST@170..172 |
89 | L_PAREN@[170; 171) "(" | 89 | L_PAREN@170..171 "(" |
90 | R_PAREN@[171; 172) ")" | 90 | R_PAREN@171..172 ")" |
91 | WHITESPACE@[172; 173) " " | 91 | WHITESPACE@172..173 " " |
92 | BLOCK_EXPR@[173; 198) | 92 | BLOCK_EXPR@173..198 |
93 | BLOCK@[173; 198) | 93 | BLOCK@173..198 |
94 | L_CURLY@[173; 174) "{" | 94 | L_CURLY@173..174 "{" |
95 | WHITESPACE@[174; 179) "\n " | 95 | WHITESPACE@174..179 "\n " |
96 | CALL_EXPR@[179; 196) | 96 | CALL_EXPR@179..196 |
97 | PATH_EXPR@[179; 182) | 97 | PATH_EXPR@179..182 |
98 | PATH@[179; 182) | 98 | PATH@179..182 |
99 | PATH_SEGMENT@[179; 182) | 99 | PATH_SEGMENT@179..182 |
100 | NAME_REF@[179; 182) | 100 | NAME_REF@179..182 |
101 | IDENT@[179; 182) "baz" | 101 | IDENT@179..182 "baz" |
102 | ARG_LIST@[182; 196) | 102 | ARG_LIST@182..196 |
103 | L_PAREN@[182; 183) "(" | 103 | L_PAREN@182..183 "(" |
104 | CALL_EXPR@[183; 195) | 104 | CALL_EXPR@183..195 |
105 | PATH_EXPR@[183; 193) | 105 | PATH_EXPR@183..193 |
106 | PATH@[183; 193) | 106 | PATH@183..193 |
107 | PATH@[183; 188) | 107 | PATH@183..188 |
108 | PATH_SEGMENT@[183; 188) | 108 | PATH_SEGMENT@183..188 |
109 | L_ANGLE@[183; 184) "<" | 109 | L_ANGLE@183..184 "<" |
110 | PATH_TYPE@[184; 187) | 110 | PATH_TYPE@184..187 |
111 | PATH@[184; 187) | 111 | PATH@184..187 |
112 | PATH_SEGMENT@[184; 187) | 112 | PATH_SEGMENT@184..187 |
113 | NAME_REF@[184; 187) | 113 | NAME_REF@184..187 |
114 | IDENT@[184; 187) "Foo" | 114 | IDENT@184..187 "Foo" |
115 | R_ANGLE@[187; 188) ">" | 115 | R_ANGLE@187..188 ">" |
116 | COLON2@[188; 190) "::" | 116 | COLON2@188..190 "::" |
117 | PATH_SEGMENT@[190; 193) | 117 | PATH_SEGMENT@190..193 |
118 | NAME_REF@[190; 193) | 118 | NAME_REF@190..193 |
119 | IDENT@[190; 193) "bar" | 119 | IDENT@190..193 "bar" |
120 | ARG_LIST@[193; 195) | 120 | ARG_LIST@193..195 |
121 | L_PAREN@[193; 194) "(" | 121 | L_PAREN@193..194 "(" |
122 | R_PAREN@[194; 195) ")" | 122 | R_PAREN@194..195 ")" |
123 | R_PAREN@[195; 196) ")" | 123 | R_PAREN@195..196 ")" |
124 | WHITESPACE@[196; 197) "\n" | 124 | WHITESPACE@196..197 "\n" |
125 | R_CURLY@[197; 198) "}" | 125 | R_CURLY@197..198 "}" |
126 | WHITESPACE@[198; 199) "\n" | 126 | WHITESPACE@198..199 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast index 3bc0ddbde..6e5b25748 100644 --- a/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast +++ b/crates/ra_syntax/test_data/parser/ok/0043_complex_assignment.rast | |||
@@ -1,110 +1,110 @@ | |||
1 | SOURCE_FILE@[0; 160) | 1 | SOURCE_FILE@0..160 |
2 | COMMENT@[0; 60) "// https://github.com ..." | 2 | COMMENT@0..60 "// https://github.com ..." |
3 | WHITESPACE@[60; 62) "\n\n" | 3 | WHITESPACE@60..62 "\n\n" |
4 | STRUCT_DEF@[62; 90) | 4 | STRUCT_DEF@62..90 |
5 | STRUCT_KW@[62; 68) "struct" | 5 | STRUCT_KW@62..68 "struct" |
6 | WHITESPACE@[68; 69) " " | 6 | WHITESPACE@68..69 " " |
7 | NAME@[69; 73) | 7 | NAME@69..73 |
8 | IDENT@[69; 73) "Repr" | 8 | IDENT@69..73 "Repr" |
9 | WHITESPACE@[73; 74) " " | 9 | WHITESPACE@73..74 " " |
10 | RECORD_FIELD_DEF_LIST@[74; 90) | 10 | RECORD_FIELD_DEF_LIST@74..90 |
11 | L_CURLY@[74; 75) "{" | 11 | L_CURLY@74..75 "{" |
12 | WHITESPACE@[75; 76) " " | 12 | WHITESPACE@75..76 " " |
13 | RECORD_FIELD_DEF@[76; 88) | 13 | RECORD_FIELD_DEF@76..88 |
14 | NAME@[76; 79) | 14 | NAME@76..79 |
15 | IDENT@[76; 79) "raw" | 15 | IDENT@76..79 "raw" |
16 | COLON@[79; 80) ":" | 16 | COLON@79..80 ":" |
17 | WHITESPACE@[80; 81) " " | 17 | WHITESPACE@80..81 " " |
18 | ARRAY_TYPE@[81; 88) | 18 | ARRAY_TYPE@81..88 |
19 | L_BRACK@[81; 82) "[" | 19 | L_BRACK@81..82 "[" |
20 | PATH_TYPE@[82; 84) | 20 | PATH_TYPE@82..84 |
21 | PATH@[82; 84) | 21 | PATH@82..84 |
22 | PATH_SEGMENT@[82; 84) | 22 | PATH_SEGMENT@82..84 |
23 | NAME_REF@[82; 84) | 23 | NAME_REF@82..84 |
24 | IDENT@[82; 84) "u8" | 24 | IDENT@82..84 "u8" |
25 | SEMICOLON@[84; 85) ";" | 25 | SEMICOLON@84..85 ";" |
26 | WHITESPACE@[85; 86) " " | 26 | WHITESPACE@85..86 " " |
27 | LITERAL@[86; 87) | 27 | LITERAL@86..87 |
28 | INT_NUMBER@[86; 87) "1" | 28 | INT_NUMBER@86..87 "1" |
29 | R_BRACK@[87; 88) "]" | 29 | R_BRACK@87..88 "]" |
30 | WHITESPACE@[88; 89) " " | 30 | WHITESPACE@88..89 " " |
31 | R_CURLY@[89; 90) "}" | 31 | R_CURLY@89..90 "}" |
32 | WHITESPACE@[90; 92) "\n\n" | 32 | WHITESPACE@90..92 "\n\n" |
33 | FN_DEF@[92; 159) | 33 | FN_DEF@92..159 |
34 | FN_KW@[92; 94) "fn" | 34 | FN_KW@92..94 "fn" |
35 | WHITESPACE@[94; 95) " " | 35 | WHITESPACE@94..95 " " |
36 | NAME@[95; 98) | 36 | NAME@95..98 |
37 | IDENT@[95; 98) "abc" | 37 | IDENT@95..98 "abc" |
38 | PARAM_LIST@[98; 100) | 38 | PARAM_LIST@98..100 |
39 | L_PAREN@[98; 99) "(" | 39 | L_PAREN@98..99 "(" |
40 | R_PAREN@[99; 100) ")" | 40 | R_PAREN@99..100 ")" |
41 | WHITESPACE@[100; 101) " " | 41 | WHITESPACE@100..101 " " |
42 | BLOCK_EXPR@[101; 159) | 42 | BLOCK_EXPR@101..159 |
43 | BLOCK@[101; 159) | 43 | BLOCK@101..159 |
44 | L_CURLY@[101; 102) "{" | 44 | L_CURLY@101..102 "{" |
45 | WHITESPACE@[102; 107) "\n " | 45 | WHITESPACE@102..107 "\n " |
46 | EXPR_STMT@[107; 136) | 46 | EXPR_STMT@107..136 |
47 | BIN_EXPR@[107; 135) | 47 | BIN_EXPR@107..135 |
48 | INDEX_EXPR@[107; 131) | 48 | INDEX_EXPR@107..131 |
49 | FIELD_EXPR@[107; 128) | 49 | FIELD_EXPR@107..128 |
50 | RECORD_LIT@[107; 124) | 50 | RECORD_LIT@107..124 |
51 | PATH@[107; 111) | 51 | PATH@107..111 |
52 | PATH_SEGMENT@[107; 111) | 52 | PATH_SEGMENT@107..111 |
53 | NAME_REF@[107; 111) | 53 | NAME_REF@107..111 |
54 | IDENT@[107; 111) "Repr" | 54 | IDENT@107..111 "Repr" |
55 | WHITESPACE@[111; 112) " " | 55 | WHITESPACE@111..112 " " |
56 | RECORD_FIELD_LIST@[112; 124) | 56 | RECORD_FIELD_LIST@112..124 |
57 | L_CURLY@[112; 113) "{" | 57 | L_CURLY@112..113 "{" |
58 | WHITESPACE@[113; 114) " " | 58 | WHITESPACE@113..114 " " |
59 | RECORD_FIELD@[114; 122) | 59 | RECORD_FIELD@114..122 |
60 | NAME_REF@[114; 117) | 60 | NAME_REF@114..117 |
61 | IDENT@[114; 117) "raw" | 61 | IDENT@114..117 "raw" |
62 | COLON@[117; 118) ":" | 62 | COLON@117..118 ":" |
63 | WHITESPACE@[118; 119) " " | 63 | WHITESPACE@118..119 " " |
64 | ARRAY_EXPR@[119; 122) | 64 | ARRAY_EXPR@119..122 |
65 | L_BRACK@[119; 120) "[" | 65 | L_BRACK@119..120 "[" |
66 | LITERAL@[120; 121) | 66 | LITERAL@120..121 |
67 | INT_NUMBER@[120; 121) "0" | 67 | INT_NUMBER@120..121 "0" |
68 | R_BRACK@[121; 122) "]" | 68 | R_BRACK@121..122 "]" |
69 | WHITESPACE@[122; 123) " " | 69 | WHITESPACE@122..123 " " |
70 | R_CURLY@[123; 124) "}" | 70 | R_CURLY@123..124 "}" |
71 | DOT@[124; 125) "." | 71 | DOT@124..125 "." |
72 | NAME_REF@[125; 128) | 72 | NAME_REF@125..128 |
73 | IDENT@[125; 128) "raw" | 73 | IDENT@125..128 "raw" |
74 | L_BRACK@[128; 129) "[" | 74 | L_BRACK@128..129 "[" |
75 | LITERAL@[129; 130) | 75 | LITERAL@129..130 |
76 | INT_NUMBER@[129; 130) "0" | 76 | INT_NUMBER@129..130 "0" |
77 | R_BRACK@[130; 131) "]" | 77 | R_BRACK@130..131 "]" |
78 | WHITESPACE@[131; 132) " " | 78 | WHITESPACE@131..132 " " |
79 | EQ@[132; 133) "=" | 79 | EQ@132..133 "=" |
80 | WHITESPACE@[133; 134) " " | 80 | WHITESPACE@133..134 " " |
81 | LITERAL@[134; 135) | 81 | LITERAL@134..135 |
82 | INT_NUMBER@[134; 135) "0" | 82 | INT_NUMBER@134..135 "0" |
83 | SEMICOLON@[135; 136) ";" | 83 | SEMICOLON@135..136 ";" |
84 | WHITESPACE@[136; 141) "\n " | 84 | WHITESPACE@136..141 "\n " |
85 | EXPR_STMT@[141; 157) | 85 | EXPR_STMT@141..157 |
86 | CALL_EXPR@[141; 156) | 86 | CALL_EXPR@141..156 |
87 | RECORD_LIT@[141; 154) | 87 | RECORD_LIT@141..154 |
88 | PATH@[141; 145) | 88 | PATH@141..145 |
89 | PATH_SEGMENT@[141; 145) | 89 | PATH_SEGMENT@141..145 |
90 | NAME_REF@[141; 145) | 90 | NAME_REF@141..145 |
91 | IDENT@[141; 145) "Repr" | 91 | IDENT@141..145 "Repr" |
92 | RECORD_FIELD_LIST@[145; 154) | 92 | RECORD_FIELD_LIST@145..154 |
93 | L_CURLY@[145; 146) "{" | 93 | L_CURLY@145..146 "{" |
94 | RECORD_FIELD@[146; 153) | 94 | RECORD_FIELD@146..153 |
95 | NAME_REF@[146; 149) | 95 | NAME_REF@146..149 |
96 | IDENT@[146; 149) "raw" | 96 | IDENT@146..149 "raw" |
97 | COLON@[149; 150) ":" | 97 | COLON@149..150 ":" |
98 | ARRAY_EXPR@[150; 153) | 98 | ARRAY_EXPR@150..153 |
99 | L_BRACK@[150; 151) "[" | 99 | L_BRACK@150..151 "[" |
100 | LITERAL@[151; 152) | 100 | LITERAL@151..152 |
101 | INT_NUMBER@[151; 152) "0" | 101 | INT_NUMBER@151..152 "0" |
102 | R_BRACK@[152; 153) "]" | 102 | R_BRACK@152..153 "]" |
103 | R_CURLY@[153; 154) "}" | 103 | R_CURLY@153..154 "}" |
104 | ARG_LIST@[154; 156) | 104 | ARG_LIST@154..156 |
105 | L_PAREN@[154; 155) "(" | 105 | L_PAREN@154..155 "(" |
106 | R_PAREN@[155; 156) ")" | 106 | R_PAREN@155..156 ")" |
107 | SEMICOLON@[156; 157) ";" | 107 | SEMICOLON@156..157 ";" |
108 | WHITESPACE@[157; 158) "\n" | 108 | WHITESPACE@157..158 "\n" |
109 | R_CURLY@[158; 159) "}" | 109 | R_CURLY@158..159 "}" |
110 | WHITESPACE@[159; 160) "\n" | 110 | WHITESPACE@159..160 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast index 4b2593147..f1eef3be0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0044_let_attrs.rast | |||
@@ -1,76 +1,76 @@ | |||
1 | SOURCE_FILE@[0; 166) | 1 | SOURCE_FILE@0..166 |
2 | FN_DEF@[0; 165) | 2 | FN_DEF@0..165 |
3 | COMMENT@[0; 60) "// https://github.com ..." | 3 | COMMENT@0..60 "// https://github.com ..." |
4 | WHITESPACE@[60; 61) "\n" | 4 | WHITESPACE@60..61 "\n" |
5 | FN_KW@[61; 63) "fn" | 5 | FN_KW@61..63 "fn" |
6 | WHITESPACE@[63; 64) " " | 6 | WHITESPACE@63..64 " " |
7 | NAME@[64; 68) | 7 | NAME@64..68 |
8 | IDENT@[64; 68) "main" | 8 | IDENT@64..68 "main" |
9 | PARAM_LIST@[68; 70) | 9 | PARAM_LIST@68..70 |
10 | L_PAREN@[68; 69) "(" | 10 | L_PAREN@68..69 "(" |
11 | R_PAREN@[69; 70) ")" | 11 | R_PAREN@69..70 ")" |
12 | WHITESPACE@[70; 71) " " | 12 | WHITESPACE@70..71 " " |
13 | BLOCK_EXPR@[71; 165) | 13 | BLOCK_EXPR@71..165 |
14 | BLOCK@[71; 165) | 14 | BLOCK@71..165 |
15 | L_CURLY@[71; 72) "{" | 15 | L_CURLY@71..72 "{" |
16 | WHITESPACE@[72; 77) "\n " | 16 | WHITESPACE@72..77 "\n " |
17 | LET_STMT@[77; 163) | 17 | LET_STMT@77..163 |
18 | ATTR@[77; 106) | 18 | ATTR@77..106 |
19 | POUND@[77; 78) "#" | 19 | POUND@77..78 "#" |
20 | L_BRACK@[78; 79) "[" | 20 | L_BRACK@78..79 "[" |
21 | PATH@[79; 82) | 21 | PATH@79..82 |
22 | PATH_SEGMENT@[79; 82) | 22 | PATH_SEGMENT@79..82 |
23 | NAME_REF@[79; 82) | 23 | NAME_REF@79..82 |
24 | IDENT@[79; 82) "cfg" | 24 | IDENT@79..82 "cfg" |
25 | TOKEN_TREE@[82; 105) | 25 | TOKEN_TREE@82..105 |
26 | L_PAREN@[82; 83) "(" | 26 | L_PAREN@82..83 "(" |
27 | IDENT@[83; 90) "feature" | 27 | IDENT@83..90 "feature" |
28 | WHITESPACE@[90; 91) " " | 28 | WHITESPACE@90..91 " " |
29 | EQ@[91; 92) "=" | 29 | EQ@91..92 "=" |
30 | WHITESPACE@[92; 93) " " | 30 | WHITESPACE@92..93 " " |
31 | STRING@[93; 104) "\"backtrace\"" | 31 | STRING@93..104 "\"backtrace\"" |
32 | R_PAREN@[104; 105) ")" | 32 | R_PAREN@104..105 ")" |
33 | R_BRACK@[105; 106) "]" | 33 | R_BRACK@105..106 "]" |
34 | WHITESPACE@[106; 111) "\n " | 34 | WHITESPACE@106..111 "\n " |
35 | LET_KW@[111; 114) "let" | 35 | LET_KW@111..114 "let" |
36 | WHITESPACE@[114; 115) " " | 36 | WHITESPACE@114..115 " " |
37 | BIND_PAT@[115; 124) | 37 | BIND_PAT@115..124 |
38 | NAME@[115; 124) | 38 | NAME@115..124 |
39 | IDENT@[115; 124) "exit_code" | 39 | IDENT@115..124 "exit_code" |
40 | WHITESPACE@[124; 125) " " | 40 | WHITESPACE@124..125 " " |
41 | EQ@[125; 126) "=" | 41 | EQ@125..126 "=" |
42 | WHITESPACE@[126; 127) " " | 42 | WHITESPACE@126..127 " " |
43 | CALL_EXPR@[127; 162) | 43 | CALL_EXPR@127..162 |
44 | PATH_EXPR@[127; 146) | 44 | PATH_EXPR@127..146 |
45 | PATH@[127; 146) | 45 | PATH@127..146 |
46 | PATH@[127; 132) | 46 | PATH@127..132 |
47 | PATH_SEGMENT@[127; 132) | 47 | PATH_SEGMENT@127..132 |
48 | NAME_REF@[127; 132) | 48 | NAME_REF@127..132 |
49 | IDENT@[127; 132) "panic" | 49 | IDENT@127..132 "panic" |
50 | COLON2@[132; 134) "::" | 50 | COLON2@132..134 "::" |
51 | PATH_SEGMENT@[134; 146) | 51 | PATH_SEGMENT@134..146 |
52 | NAME_REF@[134; 146) | 52 | NAME_REF@134..146 |
53 | IDENT@[134; 146) "catch_unwind" | 53 | IDENT@134..146 "catch_unwind" |
54 | ARG_LIST@[146; 162) | 54 | ARG_LIST@146..162 |
55 | L_PAREN@[146; 147) "(" | 55 | L_PAREN@146..147 "(" |
56 | LAMBDA_EXPR@[147; 161) | 56 | LAMBDA_EXPR@147..161 |
57 | MOVE_KW@[147; 151) "move" | 57 | MOVE_KW@147..151 "move" |
58 | WHITESPACE@[151; 152) " " | 58 | WHITESPACE@151..152 " " |
59 | PARAM_LIST@[152; 154) | 59 | PARAM_LIST@152..154 |
60 | PIPE@[152; 153) "|" | 60 | PIPE@152..153 "|" |
61 | PIPE@[153; 154) "|" | 61 | PIPE@153..154 "|" |
62 | WHITESPACE@[154; 155) " " | 62 | WHITESPACE@154..155 " " |
63 | CALL_EXPR@[155; 161) | 63 | CALL_EXPR@155..161 |
64 | PATH_EXPR@[155; 159) | 64 | PATH_EXPR@155..159 |
65 | PATH@[155; 159) | 65 | PATH@155..159 |
66 | PATH_SEGMENT@[155; 159) | 66 | PATH_SEGMENT@155..159 |
67 | NAME_REF@[155; 159) | 67 | NAME_REF@155..159 |
68 | IDENT@[155; 159) "main" | 68 | IDENT@155..159 "main" |
69 | ARG_LIST@[159; 161) | 69 | ARG_LIST@159..161 |
70 | L_PAREN@[159; 160) "(" | 70 | L_PAREN@159..160 "(" |
71 | R_PAREN@[160; 161) ")" | 71 | R_PAREN@160..161 ")" |
72 | R_PAREN@[161; 162) ")" | 72 | R_PAREN@161..162 ")" |
73 | SEMICOLON@[162; 163) ";" | 73 | SEMICOLON@162..163 ";" |
74 | WHITESPACE@[163; 164) "\n" | 74 | WHITESPACE@163..164 "\n" |
75 | R_CURLY@[164; 165) "}" | 75 | R_CURLY@164..165 "}" |
76 | WHITESPACE@[165; 166) "\n" | 76 | WHITESPACE@165..166 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast index 954b3bc2a..f79feec19 100644 --- a/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0045_block_inner_attrs.rast | |||
@@ -1,181 +1,181 @@ | |||
1 | SOURCE_FILE@[0; 686) | 1 | SOURCE_FILE@0..686 |
2 | FN_DEF@[0; 461) | 2 | FN_DEF@0..461 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 8) | 5 | NAME@3..8 |
6 | IDENT@[3; 8) "block" | 6 | IDENT@3..8 "block" |
7 | PARAM_LIST@[8; 10) | 7 | PARAM_LIST@8..10 |
8 | L_PAREN@[8; 9) "(" | 8 | L_PAREN@8..9 "(" |
9 | R_PAREN@[9; 10) ")" | 9 | R_PAREN@9..10 ")" |
10 | WHITESPACE@[10; 11) " " | 10 | WHITESPACE@10..11 " " |
11 | BLOCK_EXPR@[11; 461) | 11 | BLOCK_EXPR@11..461 |
12 | BLOCK@[11; 461) | 12 | BLOCK@11..461 |
13 | L_CURLY@[11; 12) "{" | 13 | L_CURLY@11..12 "{" |
14 | WHITESPACE@[12; 17) "\n " | 14 | WHITESPACE@12..17 "\n " |
15 | ATTR@[17; 57) | 15 | ATTR@17..57 |
16 | POUND@[17; 18) "#" | 16 | POUND@17..18 "#" |
17 | BANG@[18; 19) "!" | 17 | BANG@18..19 "!" |
18 | L_BRACK@[19; 20) "[" | 18 | L_BRACK@19..20 "[" |
19 | PATH@[20; 23) | 19 | PATH@20..23 |
20 | PATH_SEGMENT@[20; 23) | 20 | PATH_SEGMENT@20..23 |
21 | NAME_REF@[20; 23) | 21 | NAME_REF@20..23 |
22 | IDENT@[20; 23) "doc" | 22 | IDENT@20..23 "doc" |
23 | TOKEN_TREE@[23; 56) | 23 | TOKEN_TREE@23..56 |
24 | L_PAREN@[23; 24) "(" | 24 | L_PAREN@23..24 "(" |
25 | STRING@[24; 55) "\"Inner attributes all ..." | 25 | STRING@24..55 "\"Inner attributes all ..." |
26 | R_PAREN@[55; 56) ")" | 26 | R_PAREN@55..56 ")" |
27 | R_BRACK@[56; 57) "]" | 27 | R_BRACK@56..57 "]" |
28 | WHITESPACE@[57; 62) "\n " | 28 | WHITESPACE@57..62 "\n " |
29 | COMMENT@[62; 97) "//! As are ModuleDoc ..." | 29 | COMMENT@62..97 "//! As are ModuleDoc ..." |
30 | WHITESPACE@[97; 102) "\n " | 30 | WHITESPACE@97..102 "\n " |
31 | EXPR_STMT@[102; 295) | 31 | EXPR_STMT@102..295 |
32 | BLOCK_EXPR@[102; 294) | 32 | BLOCK_EXPR@102..294 |
33 | BLOCK@[102; 294) | 33 | BLOCK@102..294 |
34 | L_CURLY@[102; 103) "{" | 34 | L_CURLY@102..103 "{" |
35 | WHITESPACE@[103; 112) "\n " | 35 | WHITESPACE@103..112 "\n " |
36 | ATTR@[112; 180) | 36 | ATTR@112..180 |
37 | POUND@[112; 113) "#" | 37 | POUND@112..113 "#" |
38 | BANG@[113; 114) "!" | 38 | BANG@113..114 "!" |
39 | L_BRACK@[114; 115) "[" | 39 | L_BRACK@114..115 "[" |
40 | PATH@[115; 118) | 40 | PATH@115..118 |
41 | PATH_SEGMENT@[115; 118) | 41 | PATH_SEGMENT@115..118 |
42 | NAME_REF@[115; 118) | 42 | NAME_REF@115..118 |
43 | IDENT@[115; 118) "doc" | 43 | IDENT@115..118 "doc" |
44 | TOKEN_TREE@[118; 179) | 44 | TOKEN_TREE@118..179 |
45 | L_PAREN@[118; 119) "(" | 45 | L_PAREN@118..119 "(" |
46 | STRING@[119; 178) "\"Inner attributes are ..." | 46 | STRING@119..178 "\"Inner attributes are ..." |
47 | R_PAREN@[178; 179) ")" | 47 | R_PAREN@178..179 ")" |
48 | R_BRACK@[179; 180) "]" | 48 | R_BRACK@179..180 "]" |
49 | WHITESPACE@[180; 189) "\n " | 49 | WHITESPACE@180..189 "\n " |
50 | ATTR@[189; 244) | 50 | ATTR@189..244 |
51 | POUND@[189; 190) "#" | 51 | POUND@189..190 "#" |
52 | BANG@[190; 191) "!" | 52 | BANG@190..191 "!" |
53 | L_BRACK@[191; 192) "[" | 53 | L_BRACK@191..192 "[" |
54 | PATH@[192; 195) | 54 | PATH@192..195 |
55 | PATH_SEGMENT@[192; 195) | 55 | PATH_SEGMENT@192..195 |
56 | NAME_REF@[192; 195) | 56 | NAME_REF@192..195 |
57 | IDENT@[192; 195) "doc" | 57 | IDENT@192..195 "doc" |
58 | TOKEN_TREE@[195; 243) | 58 | TOKEN_TREE@195..243 |
59 | L_PAREN@[195; 196) "(" | 59 | L_PAREN@195..196 "(" |
60 | STRING@[196; 242) "\"Being validated is n ..." | 60 | STRING@196..242 "\"Being validated is n ..." |
61 | R_PAREN@[242; 243) ")" | 61 | R_PAREN@242..243 ")" |
62 | R_BRACK@[243; 244) "]" | 62 | R_BRACK@243..244 "]" |
63 | WHITESPACE@[244; 253) "\n " | 63 | WHITESPACE@244..253 "\n " |
64 | COMMENT@[253; 288) "//! As are ModuleDoc ..." | 64 | COMMENT@253..288 "//! As are ModuleDoc ..." |
65 | WHITESPACE@[288; 293) "\n " | 65 | WHITESPACE@288..293 "\n " |
66 | R_CURLY@[293; 294) "}" | 66 | R_CURLY@293..294 "}" |
67 | SEMICOLON@[294; 295) ";" | 67 | SEMICOLON@294..295 ";" |
68 | WHITESPACE@[295; 300) "\n " | 68 | WHITESPACE@295..300 "\n " |
69 | BLOCK_EXPR@[300; 459) | 69 | BLOCK_EXPR@300..459 |
70 | BLOCK@[300; 459) | 70 | BLOCK@300..459 |
71 | L_CURLY@[300; 301) "{" | 71 | L_CURLY@300..301 "{" |
72 | WHITESPACE@[301; 310) "\n " | 72 | WHITESPACE@301..310 "\n " |
73 | ATTR@[310; 409) | 73 | ATTR@310..409 |
74 | POUND@[310; 311) "#" | 74 | POUND@310..311 "#" |
75 | BANG@[311; 312) "!" | 75 | BANG@311..312 "!" |
76 | L_BRACK@[312; 313) "[" | 76 | L_BRACK@312..313 "[" |
77 | PATH@[313; 316) | 77 | PATH@313..316 |
78 | PATH_SEGMENT@[313; 316) | 78 | PATH_SEGMENT@313..316 |
79 | NAME_REF@[313; 316) | 79 | NAME_REF@313..316 |
80 | IDENT@[313; 316) "doc" | 80 | IDENT@313..316 "doc" |
81 | TOKEN_TREE@[316; 408) | 81 | TOKEN_TREE@316..408 |
82 | L_PAREN@[316; 317) "(" | 82 | L_PAREN@316..317 "(" |
83 | STRING@[317; 407) "\"Inner attributes are ..." | 83 | STRING@317..407 "\"Inner attributes are ..." |
84 | R_PAREN@[407; 408) ")" | 84 | R_PAREN@407..408 ")" |
85 | R_BRACK@[408; 409) "]" | 85 | R_BRACK@408..409 "]" |
86 | WHITESPACE@[409; 418) "\n " | 86 | WHITESPACE@409..418 "\n " |
87 | COMMENT@[418; 453) "//! As are ModuleDoc ..." | 87 | COMMENT@418..453 "//! As are ModuleDoc ..." |
88 | WHITESPACE@[453; 458) "\n " | 88 | WHITESPACE@453..458 "\n " |
89 | R_CURLY@[458; 459) "}" | 89 | R_CURLY@458..459 "}" |
90 | WHITESPACE@[459; 460) "\n" | 90 | WHITESPACE@459..460 "\n" |
91 | R_CURLY@[460; 461) "}" | 91 | R_CURLY@460..461 "}" |
92 | WHITESPACE@[461; 463) "\n\n" | 92 | WHITESPACE@461..463 "\n\n" |
93 | COMMENT@[463; 523) "// https://github.com ..." | 93 | COMMENT@463..523 "// https://github.com ..." |
94 | WHITESPACE@[523; 524) "\n" | 94 | WHITESPACE@523..524 "\n" |
95 | IMPL_DEF@[524; 685) | 95 | IMPL_DEF@524..685 |
96 | IMPL_KW@[524; 528) "impl" | 96 | IMPL_KW@524..528 "impl" |
97 | WHITESPACE@[528; 529) " " | 97 | WHITESPACE@528..529 " " |
98 | PATH_TYPE@[529; 537) | 98 | PATH_TYPE@529..537 |
99 | PATH@[529; 537) | 99 | PATH@529..537 |
100 | PATH_SEGMENT@[529; 537) | 100 | PATH_SEGMENT@529..537 |
101 | NAME_REF@[529; 537) | 101 | NAME_REF@529..537 |
102 | IDENT@[529; 537) "Whatever" | 102 | IDENT@529..537 "Whatever" |
103 | WHITESPACE@[537; 538) " " | 103 | WHITESPACE@537..538 " " |
104 | ITEM_LIST@[538; 685) | 104 | ITEM_LIST@538..685 |
105 | L_CURLY@[538; 539) "{" | 105 | L_CURLY@538..539 "{" |
106 | WHITESPACE@[539; 544) "\n " | 106 | WHITESPACE@539..544 "\n " |
107 | FN_DEF@[544; 683) | 107 | FN_DEF@544..683 |
108 | FN_KW@[544; 546) "fn" | 108 | FN_KW@544..546 "fn" |
109 | WHITESPACE@[546; 547) " " | 109 | WHITESPACE@546..547 " " |
110 | NAME@[547; 558) | 110 | NAME@547..558 |
111 | IDENT@[547; 558) "salsa_event" | 111 | IDENT@547..558 "salsa_event" |
112 | PARAM_LIST@[558; 601) | 112 | PARAM_LIST@558..601 |
113 | L_PAREN@[558; 559) "(" | 113 | L_PAREN@558..559 "(" |
114 | SELF_PARAM@[559; 564) | 114 | SELF_PARAM@559..564 |
115 | AMP@[559; 560) "&" | 115 | AMP@559..560 "&" |
116 | SELF_KW@[560; 564) "self" | 116 | SELF_KW@560..564 "self" |
117 | COMMA@[564; 565) "," | 117 | COMMA@564..565 "," |
118 | WHITESPACE@[565; 566) " " | 118 | WHITESPACE@565..566 " " |
119 | PARAM@[566; 600) | 119 | PARAM@566..600 |
120 | BIND_PAT@[566; 574) | 120 | BIND_PAT@566..574 |
121 | NAME@[566; 574) | 121 | NAME@566..574 |
122 | IDENT@[566; 574) "event_fn" | 122 | IDENT@566..574 "event_fn" |
123 | COLON@[574; 575) ":" | 123 | COLON@574..575 ":" |
124 | WHITESPACE@[575; 576) " " | 124 | WHITESPACE@575..576 " " |
125 | IMPL_TRAIT_TYPE@[576; 600) | 125 | IMPL_TRAIT_TYPE@576..600 |
126 | IMPL_KW@[576; 580) "impl" | 126 | IMPL_KW@576..580 "impl" |
127 | WHITESPACE@[580; 581) " " | 127 | WHITESPACE@580..581 " " |
128 | TYPE_BOUND_LIST@[581; 600) | 128 | TYPE_BOUND_LIST@581..600 |
129 | TYPE_BOUND@[581; 600) | 129 | TYPE_BOUND@581..600 |
130 | PATH_TYPE@[581; 600) | 130 | PATH_TYPE@581..600 |
131 | PATH@[581; 600) | 131 | PATH@581..600 |
132 | PATH_SEGMENT@[581; 600) | 132 | PATH_SEGMENT@581..600 |
133 | NAME_REF@[581; 583) | 133 | NAME_REF@581..583 |
134 | IDENT@[581; 583) "Fn" | 134 | IDENT@581..583 "Fn" |
135 | PARAM_LIST@[583; 585) | 135 | PARAM_LIST@583..585 |
136 | L_PAREN@[583; 584) "(" | 136 | L_PAREN@583..584 "(" |
137 | R_PAREN@[584; 585) ")" | 137 | R_PAREN@584..585 ")" |
138 | WHITESPACE@[585; 586) " " | 138 | WHITESPACE@585..586 " " |
139 | RET_TYPE@[586; 600) | 139 | RET_TYPE@586..600 |
140 | THIN_ARROW@[586; 588) "->" | 140 | THIN_ARROW@586..588 "->" |
141 | WHITESPACE@[588; 589) " " | 141 | WHITESPACE@588..589 " " |
142 | PATH_TYPE@[589; 600) | 142 | PATH_TYPE@589..600 |
143 | PATH@[589; 600) | 143 | PATH@589..600 |
144 | PATH_SEGMENT@[589; 600) | 144 | PATH_SEGMENT@589..600 |
145 | NAME_REF@[589; 594) | 145 | NAME_REF@589..594 |
146 | IDENT@[589; 594) "Event" | 146 | IDENT@589..594 "Event" |
147 | TYPE_ARG_LIST@[594; 600) | 147 | TYPE_ARG_LIST@594..600 |
148 | L_ANGLE@[594; 595) "<" | 148 | L_ANGLE@594..595 "<" |
149 | TYPE_ARG@[595; 599) | 149 | TYPE_ARG@595..599 |
150 | PATH_TYPE@[595; 599) | 150 | PATH_TYPE@595..599 |
151 | PATH@[595; 599) | 151 | PATH@595..599 |
152 | PATH_SEGMENT@[595; 599) | 152 | PATH_SEGMENT@595..599 |
153 | NAME_REF@[595; 599) | 153 | NAME_REF@595..599 |
154 | IDENT@[595; 599) "Self" | 154 | IDENT@595..599 "Self" |
155 | R_ANGLE@[599; 600) ">" | 155 | R_ANGLE@599..600 ">" |
156 | R_PAREN@[600; 601) ")" | 156 | R_PAREN@600..601 ")" |
157 | WHITESPACE@[601; 602) " " | 157 | WHITESPACE@601..602 " " |
158 | BLOCK_EXPR@[602; 683) | 158 | BLOCK_EXPR@602..683 |
159 | BLOCK@[602; 683) | 159 | BLOCK@602..683 |
160 | L_CURLY@[602; 603) "{" | 160 | L_CURLY@602..603 "{" |
161 | WHITESPACE@[603; 612) "\n " | 161 | WHITESPACE@603..612 "\n " |
162 | ATTR@[612; 639) | 162 | ATTR@612..639 |
163 | POUND@[612; 613) "#" | 163 | POUND@612..613 "#" |
164 | BANG@[613; 614) "!" | 164 | BANG@613..614 "!" |
165 | L_BRACK@[614; 615) "[" | 165 | L_BRACK@614..615 "[" |
166 | PATH@[615; 620) | 166 | PATH@615..620 |
167 | PATH_SEGMENT@[615; 620) | 167 | PATH_SEGMENT@615..620 |
168 | NAME_REF@[615; 620) | 168 | NAME_REF@615..620 |
169 | IDENT@[615; 620) "allow" | 169 | IDENT@615..620 "allow" |
170 | TOKEN_TREE@[620; 638) | 170 | TOKEN_TREE@620..638 |
171 | L_PAREN@[620; 621) "(" | 171 | L_PAREN@620..621 "(" |
172 | IDENT@[621; 637) "unused_variables" | 172 | IDENT@621..637 "unused_variables" |
173 | R_PAREN@[637; 638) ")" | 173 | R_PAREN@637..638 ")" |
174 | R_BRACK@[638; 639) "]" | 174 | R_BRACK@638..639 "]" |
175 | WHITESPACE@[639; 640) " " | 175 | WHITESPACE@639..640 " " |
176 | COMMENT@[640; 677) "// this is `inner_at ..." | 176 | COMMENT@640..677 "// this is `inner_at ..." |
177 | WHITESPACE@[677; 682) "\n " | 177 | WHITESPACE@677..682 "\n " |
178 | R_CURLY@[682; 683) "}" | 178 | R_CURLY@682..683 "}" |
179 | WHITESPACE@[683; 684) "\n" | 179 | WHITESPACE@683..684 "\n" |
180 | R_CURLY@[684; 685) "}" | 180 | R_CURLY@684..685 "}" |
181 | WHITESPACE@[685; 686) "\n" | 181 | WHITESPACE@685..686 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.rast b/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.rast index 92c8df2d6..37594769a 100644 --- a/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.rast +++ b/crates/ra_syntax/test_data/parser/ok/0046_extern_inner_attributes.rast | |||
@@ -1,28 +1,28 @@ | |||
1 | SOURCE_FILE@[0; 87) | 1 | SOURCE_FILE@0..87 |
2 | EXTERN_BLOCK@[0; 86) | 2 | EXTERN_BLOCK@0..86 |
3 | ABI@[0; 10) | 3 | ABI@0..10 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | STRING@[7; 10) "\"C\"" | 6 | STRING@7..10 "\"C\"" |
7 | WHITESPACE@[10; 11) " " | 7 | WHITESPACE@10..11 " " |
8 | EXTERN_ITEM_LIST@[11; 86) | 8 | EXTERN_ITEM_LIST@11..86 |
9 | L_CURLY@[11; 12) "{" | 9 | L_CURLY@11..12 "{" |
10 | WHITESPACE@[12; 17) "\n " | 10 | WHITESPACE@12..17 "\n " |
11 | COMMENT@[17; 42) "//! This is a doc com ..." | 11 | COMMENT@17..42 "//! This is a doc com ..." |
12 | WHITESPACE@[42; 47) "\n " | 12 | WHITESPACE@42..47 "\n " |
13 | ATTR@[47; 84) | 13 | ATTR@47..84 |
14 | POUND@[47; 48) "#" | 14 | POUND@47..48 "#" |
15 | BANG@[48; 49) "!" | 15 | BANG@48..49 "!" |
16 | L_BRACK@[49; 50) "[" | 16 | L_BRACK@49..50 "[" |
17 | PATH@[50; 53) | 17 | PATH@50..53 |
18 | PATH_SEGMENT@[50; 53) | 18 | PATH_SEGMENT@50..53 |
19 | NAME_REF@[50; 53) | 19 | NAME_REF@50..53 |
20 | IDENT@[50; 53) "doc" | 20 | IDENT@50..53 "doc" |
21 | TOKEN_TREE@[53; 83) | 21 | TOKEN_TREE@53..83 |
22 | L_PAREN@[53; 54) "(" | 22 | L_PAREN@53..54 "(" |
23 | STRING@[54; 82) "\"This is also a doc c ..." | 23 | STRING@54..82 "\"This is also a doc c ..." |
24 | R_PAREN@[82; 83) ")" | 24 | R_PAREN@82..83 ")" |
25 | R_BRACK@[83; 84) "]" | 25 | R_BRACK@83..84 "]" |
26 | WHITESPACE@[84; 85) "\n" | 26 | WHITESPACE@84..85 "\n" |
27 | R_CURLY@[85; 86) "}" | 27 | R_CURLY@85..86 "}" |
28 | WHITESPACE@[86; 87) "\n" | 28 | WHITESPACE@86..87 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast index de703328a..1cf12d670 100644 --- a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast +++ b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast | |||
@@ -1,323 +1,323 @@ | |||
1 | SOURCE_FILE@[0; 395) | 1 | SOURCE_FILE@0..395 |
2 | COMMENT@[0; 60) "// https://github.com ..." | 2 | COMMENT@0..60 "// https://github.com ..." |
3 | WHITESPACE@[60; 62) "\n\n" | 3 | WHITESPACE@60..62 "\n\n" |
4 | FN_DEF@[62; 341) | 4 | FN_DEF@62..341 |
5 | FN_KW@[62; 64) "fn" | 5 | FN_KW@62..64 "fn" |
6 | WHITESPACE@[64; 65) " " | 6 | WHITESPACE@64..65 " " |
7 | NAME@[65; 69) | 7 | NAME@65..69 |
8 | IDENT@[65; 69) "main" | 8 | IDENT@65..69 "main" |
9 | PARAM_LIST@[69; 71) | 9 | PARAM_LIST@69..71 |
10 | L_PAREN@[69; 70) "(" | 10 | L_PAREN@69..70 "(" |
11 | R_PAREN@[70; 71) ")" | 11 | R_PAREN@70..71 ")" |
12 | WHITESPACE@[71; 72) " " | 12 | WHITESPACE@71..72 " " |
13 | BLOCK_EXPR@[72; 341) | 13 | BLOCK_EXPR@72..341 |
14 | BLOCK@[72; 341) | 14 | BLOCK@72..341 |
15 | L_CURLY@[72; 73) "{" | 15 | L_CURLY@72..73 "{" |
16 | WHITESPACE@[73; 78) "\n " | 16 | WHITESPACE@73..78 "\n " |
17 | EXPR_STMT@[78; 141) | 17 | EXPR_STMT@78..141 |
18 | MATCH_EXPR@[78; 141) | 18 | MATCH_EXPR@78..141 |
19 | MATCH_KW@[78; 83) "match" | 19 | MATCH_KW@78..83 "match" |
20 | WHITESPACE@[83; 84) " " | 20 | WHITESPACE@83..84 " " |
21 | CALL_EXPR@[84; 92) | 21 | CALL_EXPR@84..92 |
22 | PATH_EXPR@[84; 88) | 22 | PATH_EXPR@84..88 |
23 | PATH@[84; 88) | 23 | PATH@84..88 |
24 | PATH_SEGMENT@[84; 88) | 24 | PATH_SEGMENT@84..88 |
25 | NAME_REF@[84; 88) | 25 | NAME_REF@84..88 |
26 | IDENT@[84; 88) "Some" | 26 | IDENT@84..88 "Some" |
27 | ARG_LIST@[88; 92) | 27 | ARG_LIST@88..92 |
28 | L_PAREN@[88; 89) "(" | 28 | L_PAREN@88..89 "(" |
29 | PREFIX_EXPR@[89; 91) | 29 | PREFIX_EXPR@89..91 |
30 | MINUS@[89; 90) "-" | 30 | MINUS@89..90 "-" |
31 | LITERAL@[90; 91) | 31 | LITERAL@90..91 |
32 | INT_NUMBER@[90; 91) "1" | 32 | INT_NUMBER@90..91 "1" |
33 | R_PAREN@[91; 92) ")" | 33 | R_PAREN@91..92 ")" |
34 | WHITESPACE@[92; 93) " " | 34 | WHITESPACE@92..93 " " |
35 | MATCH_ARM_LIST@[93; 141) | 35 | MATCH_ARM_LIST@93..141 |
36 | L_CURLY@[93; 94) "{" | 36 | L_CURLY@93..94 "{" |
37 | WHITESPACE@[94; 103) "\n " | 37 | WHITESPACE@94..103 "\n " |
38 | MATCH_ARM@[103; 117) | 38 | MATCH_ARM@103..117 |
39 | TUPLE_STRUCT_PAT@[103; 111) | 39 | TUPLE_STRUCT_PAT@103..111 |
40 | PATH@[103; 107) | 40 | PATH@103..107 |
41 | PATH_SEGMENT@[103; 107) | 41 | PATH_SEGMENT@103..107 |
42 | NAME_REF@[103; 107) | 42 | NAME_REF@103..107 |
43 | IDENT@[103; 107) "Some" | 43 | IDENT@103..107 "Some" |
44 | L_PAREN@[107; 108) "(" | 44 | L_PAREN@107..108 "(" |
45 | LITERAL_PAT@[108; 110) | 45 | LITERAL_PAT@108..110 |
46 | MINUS@[108; 109) "-" | 46 | MINUS@108..109 "-" |
47 | LITERAL@[109; 110) | 47 | LITERAL@109..110 |
48 | INT_NUMBER@[109; 110) "1" | 48 | INT_NUMBER@109..110 "1" |
49 | R_PAREN@[110; 111) ")" | 49 | R_PAREN@110..111 ")" |
50 | WHITESPACE@[111; 112) " " | 50 | WHITESPACE@111..112 " " |
51 | FAT_ARROW@[112; 114) "=>" | 51 | FAT_ARROW@112..114 "=>" |
52 | WHITESPACE@[114; 115) " " | 52 | WHITESPACE@114..115 " " |
53 | TUPLE_EXPR@[115; 117) | 53 | TUPLE_EXPR@115..117 |
54 | L_PAREN@[115; 116) "(" | 54 | L_PAREN@115..116 "(" |
55 | R_PAREN@[116; 117) ")" | 55 | R_PAREN@116..117 ")" |
56 | COMMA@[117; 118) "," | 56 | COMMA@117..118 "," |
57 | WHITESPACE@[118; 127) "\n " | 57 | WHITESPACE@118..127 "\n " |
58 | MATCH_ARM@[127; 134) | 58 | MATCH_ARM@127..134 |
59 | PLACEHOLDER_PAT@[127; 128) | 59 | PLACEHOLDER_PAT@127..128 |
60 | UNDERSCORE@[127; 128) "_" | 60 | UNDERSCORE@127..128 "_" |
61 | WHITESPACE@[128; 129) " " | 61 | WHITESPACE@128..129 " " |
62 | FAT_ARROW@[129; 131) "=>" | 62 | FAT_ARROW@129..131 "=>" |
63 | WHITESPACE@[131; 132) " " | 63 | WHITESPACE@131..132 " " |
64 | TUPLE_EXPR@[132; 134) | 64 | TUPLE_EXPR@132..134 |
65 | L_PAREN@[132; 133) "(" | 65 | L_PAREN@132..133 "(" |
66 | R_PAREN@[133; 134) ")" | 66 | R_PAREN@133..134 ")" |
67 | COMMA@[134; 135) "," | 67 | COMMA@134..135 "," |
68 | WHITESPACE@[135; 140) "\n " | 68 | WHITESPACE@135..140 "\n " |
69 | R_CURLY@[140; 141) "}" | 69 | R_CURLY@140..141 "}" |
70 | WHITESPACE@[141; 147) "\n\n " | 70 | WHITESPACE@141..147 "\n\n " |
71 | EXPR_STMT@[147; 222) | 71 | EXPR_STMT@147..222 |
72 | MATCH_EXPR@[147; 222) | 72 | MATCH_EXPR@147..222 |
73 | MATCH_KW@[147; 152) "match" | 73 | MATCH_KW@147..152 "match" |
74 | WHITESPACE@[152; 153) " " | 74 | WHITESPACE@152..153 " " |
75 | CALL_EXPR@[153; 167) | 75 | CALL_EXPR@153..167 |
76 | PATH_EXPR@[153; 157) | 76 | PATH_EXPR@153..157 |
77 | PATH@[153; 157) | 77 | PATH@153..157 |
78 | PATH_SEGMENT@[153; 157) | 78 | PATH_SEGMENT@153..157 |
79 | NAME_REF@[153; 157) | 79 | NAME_REF@153..157 |
80 | IDENT@[153; 157) "Some" | 80 | IDENT@153..157 "Some" |
81 | ARG_LIST@[157; 167) | 81 | ARG_LIST@157..167 |
82 | L_PAREN@[157; 158) "(" | 82 | L_PAREN@157..158 "(" |
83 | TUPLE_EXPR@[158; 166) | 83 | TUPLE_EXPR@158..166 |
84 | L_PAREN@[158; 159) "(" | 84 | L_PAREN@158..159 "(" |
85 | PREFIX_EXPR@[159; 161) | 85 | PREFIX_EXPR@159..161 |
86 | MINUS@[159; 160) "-" | 86 | MINUS@159..160 "-" |
87 | LITERAL@[160; 161) | 87 | LITERAL@160..161 |
88 | INT_NUMBER@[160; 161) "1" | 88 | INT_NUMBER@160..161 "1" |
89 | COMMA@[161; 162) "," | 89 | COMMA@161..162 "," |
90 | WHITESPACE@[162; 163) " " | 90 | WHITESPACE@162..163 " " |
91 | PREFIX_EXPR@[163; 165) | 91 | PREFIX_EXPR@163..165 |
92 | MINUS@[163; 164) "-" | 92 | MINUS@163..164 "-" |
93 | LITERAL@[164; 165) | 93 | LITERAL@164..165 |
94 | INT_NUMBER@[164; 165) "1" | 94 | INT_NUMBER@164..165 "1" |
95 | R_PAREN@[165; 166) ")" | 95 | R_PAREN@165..166 ")" |
96 | R_PAREN@[166; 167) ")" | 96 | R_PAREN@166..167 ")" |
97 | WHITESPACE@[167; 168) " " | 97 | WHITESPACE@167..168 " " |
98 | MATCH_ARM_LIST@[168; 222) | 98 | MATCH_ARM_LIST@168..222 |
99 | L_CURLY@[168; 169) "{" | 99 | L_CURLY@168..169 "{" |
100 | WHITESPACE@[169; 178) "\n " | 100 | WHITESPACE@169..178 "\n " |
101 | MATCH_ARM@[178; 198) | 101 | MATCH_ARM@178..198 |
102 | TUPLE_STRUCT_PAT@[178; 192) | 102 | TUPLE_STRUCT_PAT@178..192 |
103 | PATH@[178; 182) | 103 | PATH@178..182 |
104 | PATH_SEGMENT@[178; 182) | 104 | PATH_SEGMENT@178..182 |
105 | NAME_REF@[178; 182) | 105 | NAME_REF@178..182 |
106 | IDENT@[178; 182) "Some" | 106 | IDENT@178..182 "Some" |
107 | L_PAREN@[182; 183) "(" | 107 | L_PAREN@182..183 "(" |
108 | TUPLE_PAT@[183; 191) | 108 | TUPLE_PAT@183..191 |
109 | L_PAREN@[183; 184) "(" | 109 | L_PAREN@183..184 "(" |
110 | LITERAL_PAT@[184; 186) | 110 | LITERAL_PAT@184..186 |
111 | MINUS@[184; 185) "-" | 111 | MINUS@184..185 "-" |
112 | LITERAL@[185; 186) | 112 | LITERAL@185..186 |
113 | INT_NUMBER@[185; 186) "1" | 113 | INT_NUMBER@185..186 "1" |
114 | COMMA@[186; 187) "," | 114 | COMMA@186..187 "," |
115 | WHITESPACE@[187; 188) " " | 115 | WHITESPACE@187..188 " " |
116 | LITERAL_PAT@[188; 190) | 116 | LITERAL_PAT@188..190 |
117 | MINUS@[188; 189) "-" | 117 | MINUS@188..189 "-" |
118 | LITERAL@[189; 190) | 118 | LITERAL@189..190 |
119 | INT_NUMBER@[189; 190) "1" | 119 | INT_NUMBER@189..190 "1" |
120 | R_PAREN@[190; 191) ")" | 120 | R_PAREN@190..191 ")" |
121 | R_PAREN@[191; 192) ")" | 121 | R_PAREN@191..192 ")" |
122 | WHITESPACE@[192; 193) " " | 122 | WHITESPACE@192..193 " " |
123 | FAT_ARROW@[193; 195) "=>" | 123 | FAT_ARROW@193..195 "=>" |
124 | WHITESPACE@[195; 196) " " | 124 | WHITESPACE@195..196 " " |
125 | TUPLE_EXPR@[196; 198) | 125 | TUPLE_EXPR@196..198 |
126 | L_PAREN@[196; 197) "(" | 126 | L_PAREN@196..197 "(" |
127 | R_PAREN@[197; 198) ")" | 127 | R_PAREN@197..198 ")" |
128 | COMMA@[198; 199) "," | 128 | COMMA@198..199 "," |
129 | WHITESPACE@[199; 208) "\n " | 129 | WHITESPACE@199..208 "\n " |
130 | MATCH_ARM@[208; 215) | 130 | MATCH_ARM@208..215 |
131 | PLACEHOLDER_PAT@[208; 209) | 131 | PLACEHOLDER_PAT@208..209 |
132 | UNDERSCORE@[208; 209) "_" | 132 | UNDERSCORE@208..209 "_" |
133 | WHITESPACE@[209; 210) " " | 133 | WHITESPACE@209..210 " " |
134 | FAT_ARROW@[210; 212) "=>" | 134 | FAT_ARROW@210..212 "=>" |
135 | WHITESPACE@[212; 213) " " | 135 | WHITESPACE@212..213 " " |
136 | TUPLE_EXPR@[213; 215) | 136 | TUPLE_EXPR@213..215 |
137 | L_PAREN@[213; 214) "(" | 137 | L_PAREN@213..214 "(" |
138 | R_PAREN@[214; 215) ")" | 138 | R_PAREN@214..215 ")" |
139 | COMMA@[215; 216) "," | 139 | COMMA@215..216 "," |
140 | WHITESPACE@[216; 221) "\n " | 140 | WHITESPACE@216..221 "\n " |
141 | R_CURLY@[221; 222) "}" | 141 | R_CURLY@221..222 "}" |
142 | WHITESPACE@[222; 228) "\n\n " | 142 | WHITESPACE@222..228 "\n\n " |
143 | EXPR_STMT@[228; 299) | 143 | EXPR_STMT@228..299 |
144 | MATCH_EXPR@[228; 299) | 144 | MATCH_EXPR@228..299 |
145 | MATCH_KW@[228; 233) "match" | 145 | MATCH_KW@228..233 "match" |
146 | WHITESPACE@[233; 234) " " | 146 | WHITESPACE@233..234 " " |
147 | CALL_EXPR@[234; 246) | 147 | CALL_EXPR@234..246 |
148 | PATH_EXPR@[234; 238) | 148 | PATH_EXPR@234..238 |
149 | PATH@[234; 238) | 149 | PATH@234..238 |
150 | PATH@[234; 235) | 150 | PATH@234..235 |
151 | PATH_SEGMENT@[234; 235) | 151 | PATH_SEGMENT@234..235 |
152 | NAME_REF@[234; 235) | 152 | NAME_REF@234..235 |
153 | IDENT@[234; 235) "A" | 153 | IDENT@234..235 "A" |
154 | COLON2@[235; 237) "::" | 154 | COLON2@235..237 "::" |
155 | PATH_SEGMENT@[237; 238) | 155 | PATH_SEGMENT@237..238 |
156 | NAME_REF@[237; 238) | 156 | NAME_REF@237..238 |
157 | IDENT@[237; 238) "B" | 157 | IDENT@237..238 "B" |
158 | ARG_LIST@[238; 246) | 158 | ARG_LIST@238..246 |
159 | L_PAREN@[238; 239) "(" | 159 | L_PAREN@238..239 "(" |
160 | PREFIX_EXPR@[239; 241) | 160 | PREFIX_EXPR@239..241 |
161 | MINUS@[239; 240) "-" | 161 | MINUS@239..240 "-" |
162 | LITERAL@[240; 241) | 162 | LITERAL@240..241 |
163 | INT_NUMBER@[240; 241) "1" | 163 | INT_NUMBER@240..241 "1" |
164 | COMMA@[241; 242) "," | 164 | COMMA@241..242 "," |
165 | WHITESPACE@[242; 243) " " | 165 | WHITESPACE@242..243 " " |
166 | PREFIX_EXPR@[243; 245) | 166 | PREFIX_EXPR@243..245 |
167 | MINUS@[243; 244) "-" | 167 | MINUS@243..244 "-" |
168 | LITERAL@[244; 245) | 168 | LITERAL@244..245 |
169 | INT_NUMBER@[244; 245) "1" | 169 | INT_NUMBER@244..245 "1" |
170 | R_PAREN@[245; 246) ")" | 170 | R_PAREN@245..246 ")" |
171 | WHITESPACE@[246; 247) " " | 171 | WHITESPACE@246..247 " " |
172 | MATCH_ARM_LIST@[247; 299) | 172 | MATCH_ARM_LIST@247..299 |
173 | L_CURLY@[247; 248) "{" | 173 | L_CURLY@247..248 "{" |
174 | WHITESPACE@[248; 257) "\n " | 174 | WHITESPACE@248..257 "\n " |
175 | MATCH_ARM@[257; 275) | 175 | MATCH_ARM@257..275 |
176 | TUPLE_STRUCT_PAT@[257; 269) | 176 | TUPLE_STRUCT_PAT@257..269 |
177 | PATH@[257; 261) | 177 | PATH@257..261 |
178 | PATH@[257; 258) | 178 | PATH@257..258 |
179 | PATH_SEGMENT@[257; 258) | 179 | PATH_SEGMENT@257..258 |
180 | NAME_REF@[257; 258) | 180 | NAME_REF@257..258 |
181 | IDENT@[257; 258) "A" | 181 | IDENT@257..258 "A" |
182 | COLON2@[258; 260) "::" | 182 | COLON2@258..260 "::" |
183 | PATH_SEGMENT@[260; 261) | 183 | PATH_SEGMENT@260..261 |
184 | NAME_REF@[260; 261) | 184 | NAME_REF@260..261 |
185 | IDENT@[260; 261) "B" | 185 | IDENT@260..261 "B" |
186 | L_PAREN@[261; 262) "(" | 186 | L_PAREN@261..262 "(" |
187 | LITERAL_PAT@[262; 264) | 187 | LITERAL_PAT@262..264 |
188 | MINUS@[262; 263) "-" | 188 | MINUS@262..263 "-" |
189 | LITERAL@[263; 264) | 189 | LITERAL@263..264 |
190 | INT_NUMBER@[263; 264) "1" | 190 | INT_NUMBER@263..264 "1" |
191 | COMMA@[264; 265) "," | 191 | COMMA@264..265 "," |
192 | WHITESPACE@[265; 266) " " | 192 | WHITESPACE@265..266 " " |
193 | LITERAL_PAT@[266; 268) | 193 | LITERAL_PAT@266..268 |
194 | MINUS@[266; 267) "-" | 194 | MINUS@266..267 "-" |
195 | LITERAL@[267; 268) | 195 | LITERAL@267..268 |
196 | INT_NUMBER@[267; 268) "1" | 196 | INT_NUMBER@267..268 "1" |
197 | R_PAREN@[268; 269) ")" | 197 | R_PAREN@268..269 ")" |
198 | WHITESPACE@[269; 270) " " | 198 | WHITESPACE@269..270 " " |
199 | FAT_ARROW@[270; 272) "=>" | 199 | FAT_ARROW@270..272 "=>" |
200 | WHITESPACE@[272; 273) " " | 200 | WHITESPACE@272..273 " " |
201 | TUPLE_EXPR@[273; 275) | 201 | TUPLE_EXPR@273..275 |
202 | L_PAREN@[273; 274) "(" | 202 | L_PAREN@273..274 "(" |
203 | R_PAREN@[274; 275) ")" | 203 | R_PAREN@274..275 ")" |
204 | COMMA@[275; 276) "," | 204 | COMMA@275..276 "," |
205 | WHITESPACE@[276; 285) "\n " | 205 | WHITESPACE@276..285 "\n " |
206 | MATCH_ARM@[285; 292) | 206 | MATCH_ARM@285..292 |
207 | PLACEHOLDER_PAT@[285; 286) | 207 | PLACEHOLDER_PAT@285..286 |
208 | UNDERSCORE@[285; 286) "_" | 208 | UNDERSCORE@285..286 "_" |
209 | WHITESPACE@[286; 287) " " | 209 | WHITESPACE@286..287 " " |
210 | FAT_ARROW@[287; 289) "=>" | 210 | FAT_ARROW@287..289 "=>" |
211 | WHITESPACE@[289; 290) " " | 211 | WHITESPACE@289..290 " " |
212 | TUPLE_EXPR@[290; 292) | 212 | TUPLE_EXPR@290..292 |
213 | L_PAREN@[290; 291) "(" | 213 | L_PAREN@290..291 "(" |
214 | R_PAREN@[291; 292) ")" | 214 | R_PAREN@291..292 ")" |
215 | COMMA@[292; 293) "," | 215 | COMMA@292..293 "," |
216 | WHITESPACE@[293; 298) "\n " | 216 | WHITESPACE@293..298 "\n " |
217 | R_CURLY@[298; 299) "}" | 217 | R_CURLY@298..299 "}" |
218 | WHITESPACE@[299; 305) "\n\n " | 218 | WHITESPACE@299..305 "\n\n " |
219 | IF_EXPR@[305; 339) | 219 | IF_EXPR@305..339 |
220 | IF_KW@[305; 307) "if" | 220 | IF_KW@305..307 "if" |
221 | WHITESPACE@[307; 308) " " | 221 | WHITESPACE@307..308 " " |
222 | CONDITION@[308; 331) | 222 | CONDITION@308..331 |
223 | LET_KW@[308; 311) "let" | 223 | LET_KW@308..311 "let" |
224 | WHITESPACE@[311; 312) " " | 224 | WHITESPACE@311..312 " " |
225 | TUPLE_STRUCT_PAT@[312; 320) | 225 | TUPLE_STRUCT_PAT@312..320 |
226 | PATH@[312; 316) | 226 | PATH@312..316 |
227 | PATH_SEGMENT@[312; 316) | 227 | PATH_SEGMENT@312..316 |
228 | NAME_REF@[312; 316) | 228 | NAME_REF@312..316 |
229 | IDENT@[312; 316) "Some" | 229 | IDENT@312..316 "Some" |
230 | L_PAREN@[316; 317) "(" | 230 | L_PAREN@316..317 "(" |
231 | LITERAL_PAT@[317; 319) | 231 | LITERAL_PAT@317..319 |
232 | MINUS@[317; 318) "-" | 232 | MINUS@317..318 "-" |
233 | LITERAL@[318; 319) | 233 | LITERAL@318..319 |
234 | INT_NUMBER@[318; 319) "1" | 234 | INT_NUMBER@318..319 "1" |
235 | R_PAREN@[319; 320) ")" | 235 | R_PAREN@319..320 ")" |
236 | WHITESPACE@[320; 321) " " | 236 | WHITESPACE@320..321 " " |
237 | EQ@[321; 322) "=" | 237 | EQ@321..322 "=" |
238 | WHITESPACE@[322; 323) " " | 238 | WHITESPACE@322..323 " " |
239 | CALL_EXPR@[323; 331) | 239 | CALL_EXPR@323..331 |
240 | PATH_EXPR@[323; 327) | 240 | PATH_EXPR@323..327 |
241 | PATH@[323; 327) | 241 | PATH@323..327 |
242 | PATH_SEGMENT@[323; 327) | 242 | PATH_SEGMENT@323..327 |
243 | NAME_REF@[323; 327) | 243 | NAME_REF@323..327 |
244 | IDENT@[323; 327) "Some" | 244 | IDENT@323..327 "Some" |
245 | ARG_LIST@[327; 331) | 245 | ARG_LIST@327..331 |
246 | L_PAREN@[327; 328) "(" | 246 | L_PAREN@327..328 "(" |
247 | PREFIX_EXPR@[328; 330) | 247 | PREFIX_EXPR@328..330 |
248 | MINUS@[328; 329) "-" | 248 | MINUS@328..329 "-" |
249 | LITERAL@[329; 330) | 249 | LITERAL@329..330 |
250 | INT_NUMBER@[329; 330) "1" | 250 | INT_NUMBER@329..330 "1" |
251 | R_PAREN@[330; 331) ")" | 251 | R_PAREN@330..331 ")" |
252 | WHITESPACE@[331; 332) " " | 252 | WHITESPACE@331..332 " " |
253 | BLOCK_EXPR@[332; 339) | 253 | BLOCK_EXPR@332..339 |
254 | BLOCK@[332; 339) | 254 | BLOCK@332..339 |
255 | L_CURLY@[332; 333) "{" | 255 | L_CURLY@332..333 "{" |
256 | WHITESPACE@[333; 338) "\n " | 256 | WHITESPACE@333..338 "\n " |
257 | R_CURLY@[338; 339) "}" | 257 | R_CURLY@338..339 "}" |
258 | WHITESPACE@[339; 340) "\n" | 258 | WHITESPACE@339..340 "\n" |
259 | R_CURLY@[340; 341) "}" | 259 | R_CURLY@340..341 "}" |
260 | WHITESPACE@[341; 343) "\n\n" | 260 | WHITESPACE@341..343 "\n\n" |
261 | ENUM_DEF@[343; 367) | 261 | ENUM_DEF@343..367 |
262 | ENUM_KW@[343; 347) "enum" | 262 | ENUM_KW@343..347 "enum" |
263 | WHITESPACE@[347; 348) " " | 263 | WHITESPACE@347..348 " " |
264 | NAME@[348; 349) | 264 | NAME@348..349 |
265 | IDENT@[348; 349) "A" | 265 | IDENT@348..349 "A" |
266 | WHITESPACE@[349; 350) " " | 266 | WHITESPACE@349..350 " " |
267 | ENUM_VARIANT_LIST@[350; 367) | 267 | ENUM_VARIANT_LIST@350..367 |
268 | L_CURLY@[350; 351) "{" | 268 | L_CURLY@350..351 "{" |
269 | WHITESPACE@[351; 356) "\n " | 269 | WHITESPACE@351..356 "\n " |
270 | ENUM_VARIANT@[356; 365) | 270 | ENUM_VARIANT@356..365 |
271 | NAME@[356; 357) | 271 | NAME@356..357 |
272 | IDENT@[356; 357) "B" | 272 | IDENT@356..357 "B" |
273 | TUPLE_FIELD_DEF_LIST@[357; 365) | 273 | TUPLE_FIELD_DEF_LIST@357..365 |
274 | L_PAREN@[357; 358) "(" | 274 | L_PAREN@357..358 "(" |
275 | TUPLE_FIELD_DEF@[358; 360) | 275 | TUPLE_FIELD_DEF@358..360 |
276 | PATH_TYPE@[358; 360) | 276 | PATH_TYPE@358..360 |
277 | PATH@[358; 360) | 277 | PATH@358..360 |
278 | PATH_SEGMENT@[358; 360) | 278 | PATH_SEGMENT@358..360 |
279 | NAME_REF@[358; 360) | 279 | NAME_REF@358..360 |
280 | IDENT@[358; 360) "i8" | 280 | IDENT@358..360 "i8" |
281 | COMMA@[360; 361) "," | 281 | COMMA@360..361 "," |
282 | WHITESPACE@[361; 362) " " | 282 | WHITESPACE@361..362 " " |
283 | TUPLE_FIELD_DEF@[362; 364) | 283 | TUPLE_FIELD_DEF@362..364 |
284 | PATH_TYPE@[362; 364) | 284 | PATH_TYPE@362..364 |
285 | PATH@[362; 364) | 285 | PATH@362..364 |
286 | PATH_SEGMENT@[362; 364) | 286 | PATH_SEGMENT@362..364 |
287 | NAME_REF@[362; 364) | 287 | NAME_REF@362..364 |
288 | IDENT@[362; 364) "i8" | 288 | IDENT@362..364 "i8" |
289 | R_PAREN@[364; 365) ")" | 289 | R_PAREN@364..365 ")" |
290 | WHITESPACE@[365; 366) "\n" | 290 | WHITESPACE@365..366 "\n" |
291 | R_CURLY@[366; 367) "}" | 291 | R_CURLY@366..367 "}" |
292 | WHITESPACE@[367; 369) "\n\n" | 292 | WHITESPACE@367..369 "\n\n" |
293 | FN_DEF@[369; 394) | 293 | FN_DEF@369..394 |
294 | FN_KW@[369; 371) "fn" | 294 | FN_KW@369..371 "fn" |
295 | WHITESPACE@[371; 372) " " | 295 | WHITESPACE@371..372 " " |
296 | NAME@[372; 375) | 296 | NAME@372..375 |
297 | IDENT@[372; 375) "foo" | 297 | IDENT@372..375 "foo" |
298 | PARAM_LIST@[375; 391) | 298 | PARAM_LIST@375..391 |
299 | L_PAREN@[375; 376) "(" | 299 | L_PAREN@375..376 "(" |
300 | PARAM@[376; 390) | 300 | PARAM@376..390 |
301 | RANGE_PAT@[376; 386) | 301 | RANGE_PAT@376..386 |
302 | LITERAL_PAT@[376; 380) | 302 | LITERAL_PAT@376..380 |
303 | MINUS@[376; 377) "-" | 303 | MINUS@376..377 "-" |
304 | LITERAL@[377; 380) | 304 | LITERAL@377..380 |
305 | INT_NUMBER@[377; 380) "128" | 305 | INT_NUMBER@377..380 "128" |
306 | DOT2EQ@[380; 383) "..=" | 306 | DOT2EQ@380..383 "..=" |
307 | LITERAL_PAT@[383; 386) | 307 | LITERAL_PAT@383..386 |
308 | LITERAL@[383; 386) | 308 | LITERAL@383..386 |
309 | INT_NUMBER@[383; 386) "127" | 309 | INT_NUMBER@383..386 "127" |
310 | COLON@[386; 387) ":" | 310 | COLON@386..387 ":" |
311 | WHITESPACE@[387; 388) " " | 311 | WHITESPACE@387..388 " " |
312 | PATH_TYPE@[388; 390) | 312 | PATH_TYPE@388..390 |
313 | PATH@[388; 390) | 313 | PATH@388..390 |
314 | PATH_SEGMENT@[388; 390) | 314 | PATH_SEGMENT@388..390 |
315 | NAME_REF@[388; 390) | 315 | NAME_REF@388..390 |
316 | IDENT@[388; 390) "i8" | 316 | IDENT@388..390 "i8" |
317 | R_PAREN@[390; 391) ")" | 317 | R_PAREN@390..391 ")" |
318 | WHITESPACE@[391; 392) " " | 318 | WHITESPACE@391..392 " " |
319 | BLOCK_EXPR@[392; 394) | 319 | BLOCK_EXPR@392..394 |
320 | BLOCK@[392; 394) | 320 | BLOCK@392..394 |
321 | L_CURLY@[392; 393) "{" | 321 | L_CURLY@392..393 "{" |
322 | R_CURLY@[393; 394) "}" | 322 | R_CURLY@393..394 "}" |
323 | WHITESPACE@[394; 395) "\n" | 323 | WHITESPACE@394..395 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast index 849d8a445..9c2701bf7 100644 --- a/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast +++ b/crates/ra_syntax/test_data/parser/ok/0048_compound_assignment.rast | |||
@@ -1,201 +1,201 @@ | |||
1 | SOURCE_FILE@[0; 257) | 1 | SOURCE_FILE@0..257 |
2 | COMMENT@[0; 58) "// https://github.com ..." | 2 | COMMENT@0..58 "// https://github.com ..." |
3 | WHITESPACE@[58; 60) "\n\n" | 3 | WHITESPACE@58..60 "\n\n" |
4 | FN_DEF@[60; 256) | 4 | FN_DEF@60..256 |
5 | FN_KW@[60; 62) "fn" | 5 | FN_KW@60..62 "fn" |
6 | WHITESPACE@[62; 63) " " | 6 | WHITESPACE@62..63 " " |
7 | NAME@[63; 82) | 7 | NAME@63..82 |
8 | IDENT@[63; 82) "compound_assignment" | 8 | IDENT@63..82 "compound_assignment" |
9 | PARAM_LIST@[82; 84) | 9 | PARAM_LIST@82..84 |
10 | L_PAREN@[82; 83) "(" | 10 | L_PAREN@82..83 "(" |
11 | R_PAREN@[83; 84) ")" | 11 | R_PAREN@83..84 ")" |
12 | WHITESPACE@[84; 85) " " | 12 | WHITESPACE@84..85 " " |
13 | BLOCK_EXPR@[85; 256) | 13 | BLOCK_EXPR@85..256 |
14 | BLOCK@[85; 256) | 14 | BLOCK@85..256 |
15 | L_CURLY@[85; 86) "{" | 15 | L_CURLY@85..86 "{" |
16 | WHITESPACE@[86; 91) "\n " | 16 | WHITESPACE@86..91 "\n " |
17 | LET_STMT@[91; 105) | 17 | LET_STMT@91..105 |
18 | LET_KW@[91; 94) "let" | 18 | LET_KW@91..94 "let" |
19 | WHITESPACE@[94; 95) " " | 19 | WHITESPACE@94..95 " " |
20 | BIND_PAT@[95; 100) | 20 | BIND_PAT@95..100 |
21 | MUT_KW@[95; 98) "mut" | 21 | MUT_KW@95..98 "mut" |
22 | WHITESPACE@[98; 99) " " | 22 | WHITESPACE@98..99 " " |
23 | NAME@[99; 100) | 23 | NAME@99..100 |
24 | IDENT@[99; 100) "a" | 24 | IDENT@99..100 "a" |
25 | WHITESPACE@[100; 101) " " | 25 | WHITESPACE@100..101 " " |
26 | EQ@[101; 102) "=" | 26 | EQ@101..102 "=" |
27 | WHITESPACE@[102; 103) " " | 27 | WHITESPACE@102..103 " " |
28 | LITERAL@[103; 104) | 28 | LITERAL@103..104 |
29 | INT_NUMBER@[103; 104) "0" | 29 | INT_NUMBER@103..104 "0" |
30 | SEMICOLON@[104; 105) ";" | 30 | SEMICOLON@104..105 ";" |
31 | WHITESPACE@[105; 110) "\n " | 31 | WHITESPACE@105..110 "\n " |
32 | EXPR_STMT@[110; 117) | 32 | EXPR_STMT@110..117 |
33 | BIN_EXPR@[110; 116) | 33 | BIN_EXPR@110..116 |
34 | PATH_EXPR@[110; 111) | 34 | PATH_EXPR@110..111 |
35 | PATH@[110; 111) | 35 | PATH@110..111 |
36 | PATH_SEGMENT@[110; 111) | 36 | PATH_SEGMENT@110..111 |
37 | NAME_REF@[110; 111) | 37 | NAME_REF@110..111 |
38 | IDENT@[110; 111) "a" | 38 | IDENT@110..111 "a" |
39 | WHITESPACE@[111; 112) " " | 39 | WHITESPACE@111..112 " " |
40 | PLUSEQ@[112; 114) "+=" | 40 | PLUSEQ@112..114 "+=" |
41 | WHITESPACE@[114; 115) " " | 41 | WHITESPACE@114..115 " " |
42 | LITERAL@[115; 116) | 42 | LITERAL@115..116 |
43 | INT_NUMBER@[115; 116) "1" | 43 | INT_NUMBER@115..116 "1" |
44 | SEMICOLON@[116; 117) ";" | 44 | SEMICOLON@116..117 ";" |
45 | WHITESPACE@[117; 122) "\n " | 45 | WHITESPACE@117..122 "\n " |
46 | EXPR_STMT@[122; 129) | 46 | EXPR_STMT@122..129 |
47 | BIN_EXPR@[122; 128) | 47 | BIN_EXPR@122..128 |
48 | PATH_EXPR@[122; 123) | 48 | PATH_EXPR@122..123 |
49 | PATH@[122; 123) | 49 | PATH@122..123 |
50 | PATH_SEGMENT@[122; 123) | 50 | PATH_SEGMENT@122..123 |
51 | NAME_REF@[122; 123) | 51 | NAME_REF@122..123 |
52 | IDENT@[122; 123) "a" | 52 | IDENT@122..123 "a" |
53 | WHITESPACE@[123; 124) " " | 53 | WHITESPACE@123..124 " " |
54 | MINUSEQ@[124; 126) "-=" | 54 | MINUSEQ@124..126 "-=" |
55 | WHITESPACE@[126; 127) " " | 55 | WHITESPACE@126..127 " " |
56 | LITERAL@[127; 128) | 56 | LITERAL@127..128 |
57 | INT_NUMBER@[127; 128) "2" | 57 | INT_NUMBER@127..128 "2" |
58 | SEMICOLON@[128; 129) ";" | 58 | SEMICOLON@128..129 ";" |
59 | WHITESPACE@[129; 134) "\n " | 59 | WHITESPACE@129..134 "\n " |
60 | EXPR_STMT@[134; 141) | 60 | EXPR_STMT@134..141 |
61 | BIN_EXPR@[134; 140) | 61 | BIN_EXPR@134..140 |
62 | PATH_EXPR@[134; 135) | 62 | PATH_EXPR@134..135 |
63 | PATH@[134; 135) | 63 | PATH@134..135 |
64 | PATH_SEGMENT@[134; 135) | 64 | PATH_SEGMENT@134..135 |
65 | NAME_REF@[134; 135) | 65 | NAME_REF@134..135 |
66 | IDENT@[134; 135) "a" | 66 | IDENT@134..135 "a" |
67 | WHITESPACE@[135; 136) " " | 67 | WHITESPACE@135..136 " " |
68 | STAREQ@[136; 138) "*=" | 68 | STAREQ@136..138 "*=" |
69 | WHITESPACE@[138; 139) " " | 69 | WHITESPACE@138..139 " " |
70 | LITERAL@[139; 140) | 70 | LITERAL@139..140 |
71 | INT_NUMBER@[139; 140) "3" | 71 | INT_NUMBER@139..140 "3" |
72 | SEMICOLON@[140; 141) ";" | 72 | SEMICOLON@140..141 ";" |
73 | WHITESPACE@[141; 146) "\n " | 73 | WHITESPACE@141..146 "\n " |
74 | EXPR_STMT@[146; 153) | 74 | EXPR_STMT@146..153 |
75 | BIN_EXPR@[146; 152) | 75 | BIN_EXPR@146..152 |
76 | PATH_EXPR@[146; 147) | 76 | PATH_EXPR@146..147 |
77 | PATH@[146; 147) | 77 | PATH@146..147 |
78 | PATH_SEGMENT@[146; 147) | 78 | PATH_SEGMENT@146..147 |
79 | NAME_REF@[146; 147) | 79 | NAME_REF@146..147 |
80 | IDENT@[146; 147) "a" | 80 | IDENT@146..147 "a" |
81 | WHITESPACE@[147; 148) " " | 81 | WHITESPACE@147..148 " " |
82 | PERCENTEQ@[148; 150) "%=" | 82 | PERCENTEQ@148..150 "%=" |
83 | WHITESPACE@[150; 151) " " | 83 | WHITESPACE@150..151 " " |
84 | LITERAL@[151; 152) | 84 | LITERAL@151..152 |
85 | INT_NUMBER@[151; 152) "4" | 85 | INT_NUMBER@151..152 "4" |
86 | SEMICOLON@[152; 153) ";" | 86 | SEMICOLON@152..153 ";" |
87 | WHITESPACE@[153; 158) "\n " | 87 | WHITESPACE@153..158 "\n " |
88 | EXPR_STMT@[158; 165) | 88 | EXPR_STMT@158..165 |
89 | BIN_EXPR@[158; 164) | 89 | BIN_EXPR@158..164 |
90 | PATH_EXPR@[158; 159) | 90 | PATH_EXPR@158..159 |
91 | PATH@[158; 159) | 91 | PATH@158..159 |
92 | PATH_SEGMENT@[158; 159) | 92 | PATH_SEGMENT@158..159 |
93 | NAME_REF@[158; 159) | 93 | NAME_REF@158..159 |
94 | IDENT@[158; 159) "a" | 94 | IDENT@158..159 "a" |
95 | WHITESPACE@[159; 160) " " | 95 | WHITESPACE@159..160 " " |
96 | SLASHEQ@[160; 162) "/=" | 96 | SLASHEQ@160..162 "/=" |
97 | WHITESPACE@[162; 163) " " | 97 | WHITESPACE@162..163 " " |
98 | LITERAL@[163; 164) | 98 | LITERAL@163..164 |
99 | INT_NUMBER@[163; 164) "5" | 99 | INT_NUMBER@163..164 "5" |
100 | SEMICOLON@[164; 165) ";" | 100 | SEMICOLON@164..165 ";" |
101 | WHITESPACE@[165; 170) "\n " | 101 | WHITESPACE@165..170 "\n " |
102 | EXPR_STMT@[170; 177) | 102 | EXPR_STMT@170..177 |
103 | BIN_EXPR@[170; 176) | 103 | BIN_EXPR@170..176 |
104 | PATH_EXPR@[170; 171) | 104 | PATH_EXPR@170..171 |
105 | PATH@[170; 171) | 105 | PATH@170..171 |
106 | PATH_SEGMENT@[170; 171) | 106 | PATH_SEGMENT@170..171 |
107 | NAME_REF@[170; 171) | 107 | NAME_REF@170..171 |
108 | IDENT@[170; 171) "a" | 108 | IDENT@170..171 "a" |
109 | WHITESPACE@[171; 172) " " | 109 | WHITESPACE@171..172 " " |
110 | PIPEEQ@[172; 174) "|=" | 110 | PIPEEQ@172..174 "|=" |
111 | WHITESPACE@[174; 175) " " | 111 | WHITESPACE@174..175 " " |
112 | LITERAL@[175; 176) | 112 | LITERAL@175..176 |
113 | INT_NUMBER@[175; 176) "6" | 113 | INT_NUMBER@175..176 "6" |
114 | SEMICOLON@[176; 177) ";" | 114 | SEMICOLON@176..177 ";" |
115 | WHITESPACE@[177; 182) "\n " | 115 | WHITESPACE@177..182 "\n " |
116 | EXPR_STMT@[182; 189) | 116 | EXPR_STMT@182..189 |
117 | BIN_EXPR@[182; 188) | 117 | BIN_EXPR@182..188 |
118 | PATH_EXPR@[182; 183) | 118 | PATH_EXPR@182..183 |
119 | PATH@[182; 183) | 119 | PATH@182..183 |
120 | PATH_SEGMENT@[182; 183) | 120 | PATH_SEGMENT@182..183 |
121 | NAME_REF@[182; 183) | 121 | NAME_REF@182..183 |
122 | IDENT@[182; 183) "a" | 122 | IDENT@182..183 "a" |
123 | WHITESPACE@[183; 184) " " | 123 | WHITESPACE@183..184 " " |
124 | AMPEQ@[184; 186) "&=" | 124 | AMPEQ@184..186 "&=" |
125 | WHITESPACE@[186; 187) " " | 125 | WHITESPACE@186..187 " " |
126 | LITERAL@[187; 188) | 126 | LITERAL@187..188 |
127 | INT_NUMBER@[187; 188) "7" | 127 | INT_NUMBER@187..188 "7" |
128 | SEMICOLON@[188; 189) ";" | 128 | SEMICOLON@188..189 ";" |
129 | WHITESPACE@[189; 194) "\n " | 129 | WHITESPACE@189..194 "\n " |
130 | EXPR_STMT@[194; 201) | 130 | EXPR_STMT@194..201 |
131 | BIN_EXPR@[194; 200) | 131 | BIN_EXPR@194..200 |
132 | PATH_EXPR@[194; 195) | 132 | PATH_EXPR@194..195 |
133 | PATH@[194; 195) | 133 | PATH@194..195 |
134 | PATH_SEGMENT@[194; 195) | 134 | PATH_SEGMENT@194..195 |
135 | NAME_REF@[194; 195) | 135 | NAME_REF@194..195 |
136 | IDENT@[194; 195) "a" | 136 | IDENT@194..195 "a" |
137 | WHITESPACE@[195; 196) " " | 137 | WHITESPACE@195..196 " " |
138 | CARETEQ@[196; 198) "^=" | 138 | CARETEQ@196..198 "^=" |
139 | WHITESPACE@[198; 199) " " | 139 | WHITESPACE@198..199 " " |
140 | LITERAL@[199; 200) | 140 | LITERAL@199..200 |
141 | INT_NUMBER@[199; 200) "8" | 141 | INT_NUMBER@199..200 "8" |
142 | SEMICOLON@[200; 201) ";" | 142 | SEMICOLON@200..201 ";" |
143 | WHITESPACE@[201; 206) "\n " | 143 | WHITESPACE@201..206 "\n " |
144 | EXPR_STMT@[206; 213) | 144 | EXPR_STMT@206..213 |
145 | BIN_EXPR@[206; 212) | 145 | BIN_EXPR@206..212 |
146 | PATH_EXPR@[206; 207) | 146 | PATH_EXPR@206..207 |
147 | PATH@[206; 207) | 147 | PATH@206..207 |
148 | PATH_SEGMENT@[206; 207) | 148 | PATH_SEGMENT@206..207 |
149 | NAME_REF@[206; 207) | 149 | NAME_REF@206..207 |
150 | IDENT@[206; 207) "a" | 150 | IDENT@206..207 "a" |
151 | WHITESPACE@[207; 208) " " | 151 | WHITESPACE@207..208 " " |
152 | LTEQ@[208; 210) "<=" | 152 | LTEQ@208..210 "<=" |
153 | WHITESPACE@[210; 211) " " | 153 | WHITESPACE@210..211 " " |
154 | LITERAL@[211; 212) | 154 | LITERAL@211..212 |
155 | INT_NUMBER@[211; 212) "9" | 155 | INT_NUMBER@211..212 "9" |
156 | SEMICOLON@[212; 213) ";" | 156 | SEMICOLON@212..213 ";" |
157 | WHITESPACE@[213; 218) "\n " | 157 | WHITESPACE@213..218 "\n " |
158 | EXPR_STMT@[218; 226) | 158 | EXPR_STMT@218..226 |
159 | BIN_EXPR@[218; 225) | 159 | BIN_EXPR@218..225 |
160 | PATH_EXPR@[218; 219) | 160 | PATH_EXPR@218..219 |
161 | PATH@[218; 219) | 161 | PATH@218..219 |
162 | PATH_SEGMENT@[218; 219) | 162 | PATH_SEGMENT@218..219 |
163 | NAME_REF@[218; 219) | 163 | NAME_REF@218..219 |
164 | IDENT@[218; 219) "a" | 164 | IDENT@218..219 "a" |
165 | WHITESPACE@[219; 220) " " | 165 | WHITESPACE@219..220 " " |
166 | GTEQ@[220; 222) ">=" | 166 | GTEQ@220..222 ">=" |
167 | WHITESPACE@[222; 223) " " | 167 | WHITESPACE@222..223 " " |
168 | LITERAL@[223; 225) | 168 | LITERAL@223..225 |
169 | INT_NUMBER@[223; 225) "10" | 169 | INT_NUMBER@223..225 "10" |
170 | SEMICOLON@[225; 226) ";" | 170 | SEMICOLON@225..226 ";" |
171 | WHITESPACE@[226; 231) "\n " | 171 | WHITESPACE@226..231 "\n " |
172 | EXPR_STMT@[231; 240) | 172 | EXPR_STMT@231..240 |
173 | BIN_EXPR@[231; 239) | 173 | BIN_EXPR@231..239 |
174 | PATH_EXPR@[231; 232) | 174 | PATH_EXPR@231..232 |
175 | PATH@[231; 232) | 175 | PATH@231..232 |
176 | PATH_SEGMENT@[231; 232) | 176 | PATH_SEGMENT@231..232 |
177 | NAME_REF@[231; 232) | 177 | NAME_REF@231..232 |
178 | IDENT@[231; 232) "a" | 178 | IDENT@231..232 "a" |
179 | WHITESPACE@[232; 233) " " | 179 | WHITESPACE@232..233 " " |
180 | SHREQ@[233; 236) ">>=" | 180 | SHREQ@233..236 ">>=" |
181 | WHITESPACE@[236; 237) " " | 181 | WHITESPACE@236..237 " " |
182 | LITERAL@[237; 239) | 182 | LITERAL@237..239 |
183 | INT_NUMBER@[237; 239) "11" | 183 | INT_NUMBER@237..239 "11" |
184 | SEMICOLON@[239; 240) ";" | 184 | SEMICOLON@239..240 ";" |
185 | WHITESPACE@[240; 245) "\n " | 185 | WHITESPACE@240..245 "\n " |
186 | EXPR_STMT@[245; 254) | 186 | EXPR_STMT@245..254 |
187 | BIN_EXPR@[245; 253) | 187 | BIN_EXPR@245..253 |
188 | PATH_EXPR@[245; 246) | 188 | PATH_EXPR@245..246 |
189 | PATH@[245; 246) | 189 | PATH@245..246 |
190 | PATH_SEGMENT@[245; 246) | 190 | PATH_SEGMENT@245..246 |
191 | NAME_REF@[245; 246) | 191 | NAME_REF@245..246 |
192 | IDENT@[245; 246) "a" | 192 | IDENT@245..246 "a" |
193 | WHITESPACE@[246; 247) " " | 193 | WHITESPACE@246..247 " " |
194 | SHLEQ@[247; 250) "<<=" | 194 | SHLEQ@247..250 "<<=" |
195 | WHITESPACE@[250; 251) " " | 195 | WHITESPACE@250..251 " " |
196 | LITERAL@[251; 253) | 196 | LITERAL@251..253 |
197 | INT_NUMBER@[251; 253) "12" | 197 | INT_NUMBER@251..253 "12" |
198 | SEMICOLON@[253; 254) ";" | 198 | SEMICOLON@253..254 ";" |
199 | WHITESPACE@[254; 255) "\n" | 199 | WHITESPACE@254..255 "\n" |
200 | R_CURLY@[255; 256) "}" | 200 | R_CURLY@255..256 "}" |
201 | WHITESPACE@[256; 257) "\n" | 201 | WHITESPACE@256..257 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast index 0d32f0115..750527bb9 100644 --- a/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0049_async_block.rast | |||
@@ -1,36 +1,36 @@ | |||
1 | SOURCE_FILE@[0; 47) | 1 | SOURCE_FILE@0..47 |
2 | FN_DEF@[0; 45) | 2 | FN_DEF@0..45 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 45) | 11 | BLOCK_EXPR@9..45 |
12 | BLOCK@[9; 45) | 12 | BLOCK@9..45 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 24) | 15 | EXPR_STMT@15..24 |
16 | BLOCK_EXPR@[15; 23) | 16 | BLOCK_EXPR@15..23 |
17 | ASYNC_KW@[15; 20) "async" | 17 | ASYNC_KW@15..20 "async" |
18 | WHITESPACE@[20; 21) " " | 18 | WHITESPACE@20..21 " " |
19 | BLOCK@[21; 23) | 19 | BLOCK@21..23 |
20 | L_CURLY@[21; 22) "{" | 20 | L_CURLY@21..22 "{" |
21 | R_CURLY@[22; 23) "}" | 21 | R_CURLY@22..23 "}" |
22 | SEMICOLON@[23; 24) ";" | 22 | SEMICOLON@23..24 ";" |
23 | WHITESPACE@[24; 29) "\n " | 23 | WHITESPACE@24..29 "\n " |
24 | EXPR_STMT@[29; 43) | 24 | EXPR_STMT@29..43 |
25 | BLOCK_EXPR@[29; 42) | 25 | BLOCK_EXPR@29..42 |
26 | ASYNC_KW@[29; 34) "async" | 26 | ASYNC_KW@29..34 "async" |
27 | WHITESPACE@[34; 35) " " | 27 | WHITESPACE@34..35 " " |
28 | MOVE_KW@[35; 39) "move" | 28 | MOVE_KW@35..39 "move" |
29 | WHITESPACE@[39; 40) " " | 29 | WHITESPACE@39..40 " " |
30 | BLOCK@[40; 42) | 30 | BLOCK@40..42 |
31 | L_CURLY@[40; 41) "{" | 31 | L_CURLY@40..41 "{" |
32 | R_CURLY@[41; 42) "}" | 32 | R_CURLY@41..42 "}" |
33 | SEMICOLON@[42; 43) ";" | 33 | SEMICOLON@42..43 ";" |
34 | WHITESPACE@[43; 44) "\n" | 34 | WHITESPACE@43..44 "\n" |
35 | R_CURLY@[44; 45) "}" | 35 | R_CURLY@44..45 "}" |
36 | WHITESPACE@[45; 47) "\n\n" | 36 | WHITESPACE@45..47 "\n\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast index 17591d99f..b5577e933 100644 --- a/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast +++ b/crates/ra_syntax/test_data/parser/ok/0050_async_block_as_argument.rast | |||
@@ -1,92 +1,92 @@ | |||
1 | SOURCE_FILE@[0; 95) | 1 | SOURCE_FILE@0..95 |
2 | FN_DEF@[0; 52) | 2 | FN_DEF@0..52 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 49) | 7 | PARAM_LIST@6..49 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 48) | 9 | PARAM@7..48 |
10 | BIND_PAT@[7; 8) | 10 | BIND_PAT@7..8 |
11 | NAME@[7; 8) | 11 | NAME@7..8 |
12 | IDENT@[7; 8) "x" | 12 | IDENT@7..8 "x" |
13 | COLON@[8; 9) ":" | 13 | COLON@8..9 ":" |
14 | WHITESPACE@[9; 10) " " | 14 | WHITESPACE@9..10 " " |
15 | IMPL_TRAIT_TYPE@[10; 48) | 15 | IMPL_TRAIT_TYPE@10..48 |
16 | IMPL_KW@[10; 14) "impl" | 16 | IMPL_KW@10..14 "impl" |
17 | WHITESPACE@[14; 15) " " | 17 | WHITESPACE@14..15 " " |
18 | TYPE_BOUND_LIST@[15; 48) | 18 | TYPE_BOUND_LIST@15..48 |
19 | TYPE_BOUND@[15; 48) | 19 | TYPE_BOUND@15..48 |
20 | PATH_TYPE@[15; 48) | 20 | PATH_TYPE@15..48 |
21 | PATH@[15; 48) | 21 | PATH@15..48 |
22 | PATH@[15; 26) | 22 | PATH@15..26 |
23 | PATH@[15; 18) | 23 | PATH@15..18 |
24 | PATH_SEGMENT@[15; 18) | 24 | PATH_SEGMENT@15..18 |
25 | NAME_REF@[15; 18) | 25 | NAME_REF@15..18 |
26 | IDENT@[15; 18) "std" | 26 | IDENT@15..18 "std" |
27 | COLON2@[18; 20) "::" | 27 | COLON2@18..20 "::" |
28 | PATH_SEGMENT@[20; 26) | 28 | PATH_SEGMENT@20..26 |
29 | NAME_REF@[20; 26) | 29 | NAME_REF@20..26 |
30 | IDENT@[20; 26) "future" | 30 | IDENT@20..26 "future" |
31 | COLON2@[26; 28) "::" | 31 | COLON2@26..28 "::" |
32 | PATH_SEGMENT@[28; 48) | 32 | PATH_SEGMENT@28..48 |
33 | NAME_REF@[28; 34) | 33 | NAME_REF@28..34 |
34 | IDENT@[28; 34) "Future" | 34 | IDENT@28..34 "Future" |
35 | TYPE_ARG_LIST@[34; 48) | 35 | TYPE_ARG_LIST@34..48 |
36 | L_ANGLE@[34; 35) "<" | 36 | L_ANGLE@34..35 "<" |
37 | ASSOC_TYPE_ARG@[35; 47) | 37 | ASSOC_TYPE_ARG@35..47 |
38 | NAME_REF@[35; 41) | 38 | NAME_REF@35..41 |
39 | IDENT@[35; 41) "Output" | 39 | IDENT@35..41 "Output" |
40 | WHITESPACE@[41; 42) " " | 40 | WHITESPACE@41..42 " " |
41 | EQ@[42; 43) "=" | 41 | EQ@42..43 "=" |
42 | WHITESPACE@[43; 44) " " | 42 | WHITESPACE@43..44 " " |
43 | PATH_TYPE@[44; 47) | 43 | PATH_TYPE@44..47 |
44 | PATH@[44; 47) | 44 | PATH@44..47 |
45 | PATH_SEGMENT@[44; 47) | 45 | PATH_SEGMENT@44..47 |
46 | NAME_REF@[44; 47) | 46 | NAME_REF@44..47 |
47 | IDENT@[44; 47) "i32" | 47 | IDENT@44..47 "i32" |
48 | R_ANGLE@[47; 48) ">" | 48 | R_ANGLE@47..48 ">" |
49 | R_PAREN@[48; 49) ")" | 49 | R_PAREN@48..49 ")" |
50 | WHITESPACE@[49; 50) " " | 50 | WHITESPACE@49..50 " " |
51 | BLOCK_EXPR@[50; 52) | 51 | BLOCK_EXPR@50..52 |
52 | BLOCK@[50; 52) | 52 | BLOCK@50..52 |
53 | L_CURLY@[50; 51) "{" | 53 | L_CURLY@50..51 "{" |
54 | R_CURLY@[51; 52) "}" | 54 | R_CURLY@51..52 "}" |
55 | WHITESPACE@[52; 54) "\n\n" | 55 | WHITESPACE@52..54 "\n\n" |
56 | FN_DEF@[54; 94) | 56 | FN_DEF@54..94 |
57 | FN_KW@[54; 56) "fn" | 57 | FN_KW@54..56 "fn" |
58 | WHITESPACE@[56; 57) " " | 58 | WHITESPACE@56..57 " " |
59 | NAME@[57; 61) | 59 | NAME@57..61 |
60 | IDENT@[57; 61) "main" | 60 | IDENT@57..61 "main" |
61 | PARAM_LIST@[61; 63) | 61 | PARAM_LIST@61..63 |
62 | L_PAREN@[61; 62) "(" | 62 | L_PAREN@61..62 "(" |
63 | R_PAREN@[62; 63) ")" | 63 | R_PAREN@62..63 ")" |
64 | WHITESPACE@[63; 64) " " | 64 | WHITESPACE@63..64 " " |
65 | BLOCK_EXPR@[64; 94) | 65 | BLOCK_EXPR@64..94 |
66 | BLOCK@[64; 94) | 66 | BLOCK@64..94 |
67 | L_CURLY@[64; 65) "{" | 67 | L_CURLY@64..65 "{" |
68 | WHITESPACE@[65; 70) "\n " | 68 | WHITESPACE@65..70 "\n " |
69 | CALL_EXPR@[70; 92) | 69 | CALL_EXPR@70..92 |
70 | PATH_EXPR@[70; 73) | 70 | PATH_EXPR@70..73 |
71 | PATH@[70; 73) | 71 | PATH@70..73 |
72 | PATH_SEGMENT@[70; 73) | 72 | PATH_SEGMENT@70..73 |
73 | NAME_REF@[70; 73) | 73 | NAME_REF@70..73 |
74 | IDENT@[70; 73) "foo" | 74 | IDENT@70..73 "foo" |
75 | ARG_LIST@[73; 92) | 75 | ARG_LIST@73..92 |
76 | L_PAREN@[73; 74) "(" | 76 | L_PAREN@73..74 "(" |
77 | BLOCK_EXPR@[74; 91) | 77 | BLOCK_EXPR@74..91 |
78 | ASYNC_KW@[74; 79) "async" | 78 | ASYNC_KW@74..79 "async" |
79 | WHITESPACE@[79; 80) " " | 79 | WHITESPACE@79..80 " " |
80 | MOVE_KW@[80; 84) "move" | 80 | MOVE_KW@80..84 "move" |
81 | WHITESPACE@[84; 85) " " | 81 | WHITESPACE@84..85 " " |
82 | BLOCK@[85; 91) | 82 | BLOCK@85..91 |
83 | L_CURLY@[85; 86) "{" | 83 | L_CURLY@85..86 "{" |
84 | WHITESPACE@[86; 87) " " | 84 | WHITESPACE@86..87 " " |
85 | LITERAL@[87; 89) | 85 | LITERAL@87..89 |
86 | INT_NUMBER@[87; 89) "12" | 86 | INT_NUMBER@87..89 "12" |
87 | WHITESPACE@[89; 90) " " | 87 | WHITESPACE@89..90 " " |
88 | R_CURLY@[90; 91) "}" | 88 | R_CURLY@90..91 "}" |
89 | R_PAREN@[91; 92) ")" | 89 | R_PAREN@91..92 ")" |
90 | WHITESPACE@[92; 93) "\n" | 90 | WHITESPACE@92..93 "\n" |
91 | R_CURLY@[93; 94) "}" | 91 | R_CURLY@93..94 "}" |
92 | WHITESPACE@[94; 95) "\n" | 92 | WHITESPACE@94..95 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast index 8fd28427c..6aacc2141 100644 --- a/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast +++ b/crates/ra_syntax/test_data/parser/ok/0051_parameter_attrs.rast | |||
@@ -1,519 +1,519 @@ | |||
1 | SOURCE_FILE@[0; 519) | 1 | SOURCE_FILE@0..519 |
2 | FN_DEF@[0; 37) | 2 | FN_DEF@0..37 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 5) | 5 | NAME@3..5 |
6 | IDENT@[3; 5) "g1" | 6 | IDENT@3..5 "g1" |
7 | PARAM_LIST@[5; 34) | 7 | PARAM_LIST@5..34 |
8 | L_PAREN@[5; 6) "(" | 8 | L_PAREN@5..6 "(" |
9 | ATTR@[6; 14) | 9 | ATTR@6..14 |
10 | POUND@[6; 7) "#" | 10 | POUND@6..7 "#" |
11 | L_BRACK@[7; 8) "[" | 11 | L_BRACK@7..8 "[" |
12 | PATH@[8; 13) | 12 | PATH@8..13 |
13 | PATH_SEGMENT@[8; 13) | 13 | PATH_SEGMENT@8..13 |
14 | NAME_REF@[8; 13) | 14 | NAME_REF@8..13 |
15 | IDENT@[8; 13) "attr1" | 15 | IDENT@8..13 "attr1" |
16 | R_BRACK@[13; 14) "]" | 16 | R_BRACK@13..14 "]" |
17 | WHITESPACE@[14; 15) " " | 17 | WHITESPACE@14..15 " " |
18 | ATTR@[15; 23) | 18 | ATTR@15..23 |
19 | POUND@[15; 16) "#" | 19 | POUND@15..16 "#" |
20 | L_BRACK@[16; 17) "[" | 20 | L_BRACK@16..17 "[" |
21 | PATH@[17; 22) | 21 | PATH@17..22 |
22 | PATH_SEGMENT@[17; 22) | 22 | PATH_SEGMENT@17..22 |
23 | NAME_REF@[17; 22) | 23 | NAME_REF@17..22 |
24 | IDENT@[17; 22) "attr2" | 24 | IDENT@17..22 "attr2" |
25 | R_BRACK@[22; 23) "]" | 25 | R_BRACK@22..23 "]" |
26 | WHITESPACE@[23; 24) " " | 26 | WHITESPACE@23..24 " " |
27 | PARAM@[24; 33) | 27 | PARAM@24..33 |
28 | BIND_PAT@[24; 27) | 28 | BIND_PAT@24..27 |
29 | NAME@[24; 27) | 29 | NAME@24..27 |
30 | IDENT@[24; 27) "pat" | 30 | IDENT@24..27 "pat" |
31 | COLON@[27; 28) ":" | 31 | COLON@27..28 ":" |
32 | WHITESPACE@[28; 29) " " | 32 | WHITESPACE@28..29 " " |
33 | PATH_TYPE@[29; 33) | 33 | PATH_TYPE@29..33 |
34 | PATH@[29; 33) | 34 | PATH@29..33 |
35 | PATH_SEGMENT@[29; 33) | 35 | PATH_SEGMENT@29..33 |
36 | NAME_REF@[29; 33) | 36 | NAME_REF@29..33 |
37 | IDENT@[29; 33) "Type" | 37 | IDENT@29..33 "Type" |
38 | R_PAREN@[33; 34) ")" | 38 | R_PAREN@33..34 ")" |
39 | WHITESPACE@[34; 35) " " | 39 | WHITESPACE@34..35 " " |
40 | BLOCK_EXPR@[35; 37) | 40 | BLOCK_EXPR@35..37 |
41 | BLOCK@[35; 37) | 41 | BLOCK@35..37 |
42 | L_CURLY@[35; 36) "{" | 42 | L_CURLY@35..36 "{" |
43 | R_CURLY@[36; 37) "}" | 43 | R_CURLY@36..37 "}" |
44 | WHITESPACE@[37; 38) "\n" | 44 | WHITESPACE@37..38 "\n" |
45 | FN_DEF@[38; 62) | 45 | FN_DEF@38..62 |
46 | FN_KW@[38; 40) "fn" | 46 | FN_KW@38..40 "fn" |
47 | WHITESPACE@[40; 41) " " | 47 | WHITESPACE@40..41 " " |
48 | NAME@[41; 43) | 48 | NAME@41..43 |
49 | IDENT@[41; 43) "g2" | 49 | IDENT@41..43 "g2" |
50 | PARAM_LIST@[43; 59) | 50 | PARAM_LIST@43..59 |
51 | L_PAREN@[43; 44) "(" | 51 | L_PAREN@43..44 "(" |
52 | ATTR@[44; 52) | 52 | ATTR@44..52 |
53 | POUND@[44; 45) "#" | 53 | POUND@44..45 "#" |
54 | L_BRACK@[45; 46) "[" | 54 | L_BRACK@45..46 "[" |
55 | PATH@[46; 51) | 55 | PATH@46..51 |
56 | PATH_SEGMENT@[46; 51) | 56 | PATH_SEGMENT@46..51 |
57 | NAME_REF@[46; 51) | 57 | NAME_REF@46..51 |
58 | IDENT@[46; 51) "attr1" | 58 | IDENT@46..51 "attr1" |
59 | R_BRACK@[51; 52) "]" | 59 | R_BRACK@51..52 "]" |
60 | WHITESPACE@[52; 53) " " | 60 | WHITESPACE@52..53 " " |
61 | PARAM@[53; 58) | 61 | PARAM@53..58 |
62 | BIND_PAT@[53; 54) | 62 | BIND_PAT@53..54 |
63 | NAME@[53; 54) | 63 | NAME@53..54 |
64 | IDENT@[53; 54) "x" | 64 | IDENT@53..54 "x" |
65 | COLON@[54; 55) ":" | 65 | COLON@54..55 ":" |
66 | WHITESPACE@[55; 56) " " | 66 | WHITESPACE@55..56 " " |
67 | PATH_TYPE@[56; 58) | 67 | PATH_TYPE@56..58 |
68 | PATH@[56; 58) | 68 | PATH@56..58 |
69 | PATH_SEGMENT@[56; 58) | 69 | PATH_SEGMENT@56..58 |
70 | NAME_REF@[56; 58) | 70 | NAME_REF@56..58 |
71 | IDENT@[56; 58) "u8" | 71 | IDENT@56..58 "u8" |
72 | R_PAREN@[58; 59) ")" | 72 | R_PAREN@58..59 ")" |
73 | WHITESPACE@[59; 60) " " | 73 | WHITESPACE@59..60 " " |
74 | BLOCK_EXPR@[60; 62) | 74 | BLOCK_EXPR@60..62 |
75 | BLOCK@[60; 62) | 75 | BLOCK@60..62 |
76 | L_CURLY@[60; 61) "{" | 76 | L_CURLY@60..61 "{" |
77 | R_CURLY@[61; 62) "}" | 77 | R_CURLY@61..62 "}" |
78 | WHITESPACE@[62; 64) "\n\n" | 78 | WHITESPACE@62..64 "\n\n" |
79 | EXTERN_BLOCK@[64; 128) | 79 | EXTERN_BLOCK@64..128 |
80 | ABI@[64; 74) | 80 | ABI@64..74 |
81 | EXTERN_KW@[64; 70) "extern" | 81 | EXTERN_KW@64..70 "extern" |
82 | WHITESPACE@[70; 71) " " | 82 | WHITESPACE@70..71 " " |
83 | STRING@[71; 74) "\"C\"" | 83 | STRING@71..74 "\"C\"" |
84 | WHITESPACE@[74; 75) " " | 84 | WHITESPACE@74..75 " " |
85 | EXTERN_ITEM_LIST@[75; 128) | 85 | EXTERN_ITEM_LIST@75..128 |
86 | L_CURLY@[75; 76) "{" | 86 | L_CURLY@75..76 "{" |
87 | WHITESPACE@[76; 77) " " | 87 | WHITESPACE@76..77 " " |
88 | FN_DEF@[77; 126) | 88 | FN_DEF@77..126 |
89 | FN_KW@[77; 79) "fn" | 89 | FN_KW@77..79 "fn" |
90 | WHITESPACE@[79; 80) " " | 90 | WHITESPACE@79..80 " " |
91 | NAME@[80; 86) | 91 | NAME@80..86 |
92 | IDENT@[80; 86) "printf" | 92 | IDENT@80..86 "printf" |
93 | PARAM_LIST@[86; 118) | 93 | PARAM_LIST@86..118 |
94 | L_PAREN@[86; 87) "(" | 94 | L_PAREN@86..87 "(" |
95 | PARAM@[87; 104) | 95 | PARAM@87..104 |
96 | BIND_PAT@[87; 93) | 96 | BIND_PAT@87..93 |
97 | NAME@[87; 93) | 97 | NAME@87..93 |
98 | IDENT@[87; 93) "format" | 98 | IDENT@87..93 "format" |
99 | COLON@[93; 94) ":" | 99 | COLON@93..94 ":" |
100 | WHITESPACE@[94; 95) " " | 100 | WHITESPACE@94..95 " " |
101 | POINTER_TYPE@[95; 104) | 101 | POINTER_TYPE@95..104 |
102 | STAR@[95; 96) "*" | 102 | STAR@95..96 "*" |
103 | CONST_KW@[96; 101) "const" | 103 | CONST_KW@96..101 "const" |
104 | WHITESPACE@[101; 102) " " | 104 | WHITESPACE@101..102 " " |
105 | PATH_TYPE@[102; 104) | 105 | PATH_TYPE@102..104 |
106 | PATH@[102; 104) | 106 | PATH@102..104 |
107 | PATH_SEGMENT@[102; 104) | 107 | PATH_SEGMENT@102..104 |
108 | NAME_REF@[102; 104) | 108 | NAME_REF@102..104 |
109 | IDENT@[102; 104) "i8" | 109 | IDENT@102..104 "i8" |
110 | COMMA@[104; 105) "," | 110 | COMMA@104..105 "," |
111 | WHITESPACE@[105; 106) " " | 111 | WHITESPACE@105..106 " " |
112 | ATTR@[106; 113) | 112 | ATTR@106..113 |
113 | POUND@[106; 107) "#" | 113 | POUND@106..107 "#" |
114 | L_BRACK@[107; 108) "[" | 114 | L_BRACK@107..108 "[" |
115 | PATH@[108; 112) | 115 | PATH@108..112 |
116 | PATH_SEGMENT@[108; 112) | 116 | PATH_SEGMENT@108..112 |
117 | NAME_REF@[108; 112) | 117 | NAME_REF@108..112 |
118 | IDENT@[108; 112) "attr" | 118 | IDENT@108..112 "attr" |
119 | R_BRACK@[112; 113) "]" | 119 | R_BRACK@112..113 "]" |
120 | WHITESPACE@[113; 114) " " | 120 | WHITESPACE@113..114 " " |
121 | PARAM@[114; 117) | 121 | PARAM@114..117 |
122 | DOT3@[114; 117) "..." | 122 | DOT3@114..117 "..." |
123 | R_PAREN@[117; 118) ")" | 123 | R_PAREN@117..118 ")" |
124 | WHITESPACE@[118; 119) " " | 124 | WHITESPACE@118..119 " " |
125 | RET_TYPE@[119; 125) | 125 | RET_TYPE@119..125 |
126 | THIN_ARROW@[119; 121) "->" | 126 | THIN_ARROW@119..121 "->" |
127 | WHITESPACE@[121; 122) " " | 127 | WHITESPACE@121..122 " " |
128 | PATH_TYPE@[122; 125) | 128 | PATH_TYPE@122..125 |
129 | PATH@[122; 125) | 129 | PATH@122..125 |
130 | PATH_SEGMENT@[122; 125) | 130 | PATH_SEGMENT@122..125 |
131 | NAME_REF@[122; 125) | 131 | NAME_REF@122..125 |
132 | IDENT@[122; 125) "i32" | 132 | IDENT@122..125 "i32" |
133 | SEMICOLON@[125; 126) ";" | 133 | SEMICOLON@125..126 ";" |
134 | WHITESPACE@[126; 127) " " | 134 | WHITESPACE@126..127 " " |
135 | R_CURLY@[127; 128) "}" | 135 | R_CURLY@127..128 "}" |
136 | WHITESPACE@[128; 130) "\n\n" | 136 | WHITESPACE@128..130 "\n\n" |
137 | FN_DEF@[130; 172) | 137 | FN_DEF@130..172 |
138 | FN_KW@[130; 132) "fn" | 138 | FN_KW@130..132 "fn" |
139 | WHITESPACE@[132; 133) " " | 139 | WHITESPACE@132..133 " " |
140 | NAME@[133; 136) | 140 | NAME@133..136 |
141 | IDENT@[133; 136) "foo" | 141 | IDENT@133..136 "foo" |
142 | TYPE_PARAM_LIST@[136; 168) | 142 | TYPE_PARAM_LIST@136..168 |
143 | L_ANGLE@[136; 137) "<" | 143 | L_ANGLE@136..137 "<" |
144 | TYPE_PARAM@[137; 167) | 144 | TYPE_PARAM@137..167 |
145 | NAME@[137; 138) | 145 | NAME@137..138 |
146 | IDENT@[137; 138) "F" | 146 | IDENT@137..138 "F" |
147 | COLON@[138; 139) ":" | 147 | COLON@138..139 ":" |
148 | WHITESPACE@[139; 140) " " | 148 | WHITESPACE@139..140 " " |
149 | TYPE_BOUND_LIST@[140; 167) | 149 | TYPE_BOUND_LIST@140..167 |
150 | TYPE_BOUND@[140; 167) | 150 | TYPE_BOUND@140..167 |
151 | PATH_TYPE@[140; 167) | 151 | PATH_TYPE@140..167 |
152 | PATH@[140; 167) | 152 | PATH@140..167 |
153 | PATH_SEGMENT@[140; 167) | 153 | PATH_SEGMENT@140..167 |
154 | NAME_REF@[140; 145) | 154 | NAME_REF@140..145 |
155 | IDENT@[140; 145) "FnMut" | 155 | IDENT@140..145 "FnMut" |
156 | PARAM_LIST@[145; 167) | 156 | PARAM_LIST@145..167 |
157 | L_PAREN@[145; 146) "(" | 157 | L_PAREN@145..146 "(" |
158 | ATTR@[146; 153) | 158 | ATTR@146..153 |
159 | POUND@[146; 147) "#" | 159 | POUND@146..147 "#" |
160 | L_BRACK@[147; 148) "[" | 160 | L_BRACK@147..148 "[" |
161 | PATH@[148; 152) | 161 | PATH@148..152 |
162 | PATH_SEGMENT@[148; 152) | 162 | PATH_SEGMENT@148..152 |
163 | NAME_REF@[148; 152) | 163 | NAME_REF@148..152 |
164 | IDENT@[148; 152) "attr" | 164 | IDENT@148..152 "attr" |
165 | R_BRACK@[152; 153) "]" | 165 | R_BRACK@152..153 "]" |
166 | WHITESPACE@[153; 154) " " | 166 | WHITESPACE@153..154 " " |
167 | PARAM@[154; 166) | 167 | PARAM@154..166 |
168 | REFERENCE_TYPE@[154; 166) | 168 | REFERENCE_TYPE@154..166 |
169 | AMP@[154; 155) "&" | 169 | AMP@154..155 "&" |
170 | MUT_KW@[155; 158) "mut" | 170 | MUT_KW@155..158 "mut" |
171 | WHITESPACE@[158; 159) " " | 171 | WHITESPACE@158..159 " " |
172 | PATH_TYPE@[159; 166) | 172 | PATH_TYPE@159..166 |
173 | PATH@[159; 166) | 173 | PATH@159..166 |
174 | PATH_SEGMENT@[159; 166) | 174 | PATH_SEGMENT@159..166 |
175 | NAME_REF@[159; 162) | 175 | NAME_REF@159..162 |
176 | IDENT@[159; 162) "Foo" | 176 | IDENT@159..162 "Foo" |
177 | TYPE_ARG_LIST@[162; 166) | 177 | TYPE_ARG_LIST@162..166 |
178 | L_ANGLE@[162; 163) "<" | 178 | L_ANGLE@162..163 "<" |
179 | LIFETIME_ARG@[163; 165) | 179 | LIFETIME_ARG@163..165 |
180 | LIFETIME@[163; 165) "\'a" | 180 | LIFETIME@163..165 "\'a" |
181 | R_ANGLE@[165; 166) ">" | 181 | R_ANGLE@165..166 ">" |
182 | R_PAREN@[166; 167) ")" | 182 | R_PAREN@166..167 ")" |
183 | R_ANGLE@[167; 168) ">" | 183 | R_ANGLE@167..168 ">" |
184 | PARAM_LIST@[168; 170) | 184 | PARAM_LIST@168..170 |
185 | L_PAREN@[168; 169) "(" | 185 | L_PAREN@168..169 "(" |
186 | R_PAREN@[169; 170) ")" | 186 | R_PAREN@169..170 ")" |
187 | BLOCK_EXPR@[170; 172) | 187 | BLOCK_EXPR@170..172 |
188 | BLOCK@[170; 172) | 188 | BLOCK@170..172 |
189 | L_CURLY@[170; 171) "{" | 189 | L_CURLY@170..171 "{" |
190 | R_CURLY@[171; 172) "}" | 190 | R_CURLY@171..172 "}" |
191 | WHITESPACE@[172; 174) "\n\n" | 191 | WHITESPACE@172..174 "\n\n" |
192 | TRAIT_DEF@[174; 236) | 192 | TRAIT_DEF@174..236 |
193 | TRAIT_KW@[174; 179) "trait" | 193 | TRAIT_KW@174..179 "trait" |
194 | WHITESPACE@[179; 180) " " | 194 | WHITESPACE@179..180 " " |
195 | NAME@[180; 183) | 195 | NAME@180..183 |
196 | IDENT@[180; 183) "Foo" | 196 | IDENT@180..183 "Foo" |
197 | WHITESPACE@[183; 184) " " | 197 | WHITESPACE@183..184 " " |
198 | ITEM_LIST@[184; 236) | 198 | ITEM_LIST@184..236 |
199 | L_CURLY@[184; 185) "{" | 199 | L_CURLY@184..185 "{" |
200 | WHITESPACE@[185; 190) "\n " | 200 | WHITESPACE@185..190 "\n " |
201 | FN_DEF@[190; 234) | 201 | FN_DEF@190..234 |
202 | FN_KW@[190; 192) "fn" | 202 | FN_KW@190..192 "fn" |
203 | WHITESPACE@[192; 193) " " | 203 | WHITESPACE@192..193 " " |
204 | NAME@[193; 196) | 204 | NAME@193..196 |
205 | IDENT@[193; 196) "bar" | 205 | IDENT@193..196 "bar" |
206 | PARAM_LIST@[196; 233) | 206 | PARAM_LIST@196..233 |
207 | L_PAREN@[196; 197) "(" | 207 | L_PAREN@196..197 "(" |
208 | ATTR@[197; 204) | 208 | ATTR@197..204 |
209 | POUND@[197; 198) "#" | 209 | POUND@197..198 "#" |
210 | L_BRACK@[198; 199) "[" | 210 | L_BRACK@198..199 "[" |
211 | PATH@[199; 203) | 211 | PATH@199..203 |
212 | PATH_SEGMENT@[199; 203) | 212 | PATH_SEGMENT@199..203 |
213 | NAME_REF@[199; 203) | 213 | NAME_REF@199..203 |
214 | IDENT@[199; 203) "attr" | 214 | IDENT@199..203 "attr" |
215 | R_BRACK@[203; 204) "]" | 215 | R_BRACK@203..204 "]" |
216 | WHITESPACE@[204; 205) " " | 216 | WHITESPACE@204..205 " " |
217 | PARAM@[205; 211) | 217 | PARAM@205..211 |
218 | PLACEHOLDER_PAT@[205; 206) | 218 | PLACEHOLDER_PAT@205..206 |
219 | UNDERSCORE@[205; 206) "_" | 219 | UNDERSCORE@205..206 "_" |
220 | COLON@[206; 207) ":" | 220 | COLON@206..207 ":" |
221 | WHITESPACE@[207; 208) " " | 221 | WHITESPACE@207..208 " " |
222 | PATH_TYPE@[208; 211) | 222 | PATH_TYPE@208..211 |
223 | PATH@[208; 211) | 223 | PATH@208..211 |
224 | PATH_SEGMENT@[208; 211) | 224 | PATH_SEGMENT@208..211 |
225 | NAME_REF@[208; 211) | 225 | NAME_REF@208..211 |
226 | IDENT@[208; 211) "u64" | 226 | IDENT@208..211 "u64" |
227 | COMMA@[211; 212) "," | 227 | COMMA@211..212 "," |
228 | WHITESPACE@[212; 213) " " | 228 | WHITESPACE@212..213 " " |
229 | ATTR@[213; 221) | 229 | ATTR@213..221 |
230 | POUND@[213; 214) "#" | 230 | POUND@213..214 "#" |
231 | WHITESPACE@[214; 215) " " | 231 | WHITESPACE@214..215 " " |
232 | L_BRACK@[215; 216) "[" | 232 | L_BRACK@215..216 "[" |
233 | PATH@[216; 220) | 233 | PATH@216..220 |
234 | PATH_SEGMENT@[216; 220) | 234 | PATH_SEGMENT@216..220 |
235 | NAME_REF@[216; 220) | 235 | NAME_REF@216..220 |
236 | IDENT@[216; 220) "attr" | 236 | IDENT@216..220 "attr" |
237 | R_BRACK@[220; 221) "]" | 237 | R_BRACK@220..221 "]" |
238 | WHITESPACE@[221; 222) " " | 238 | WHITESPACE@221..222 " " |
239 | PARAM@[222; 232) | 239 | PARAM@222..232 |
240 | BIND_PAT@[222; 227) | 240 | BIND_PAT@222..227 |
241 | MUT_KW@[222; 225) "mut" | 241 | MUT_KW@222..225 "mut" |
242 | WHITESPACE@[225; 226) " " | 242 | WHITESPACE@225..226 " " |
243 | NAME@[226; 227) | 243 | NAME@226..227 |
244 | IDENT@[226; 227) "x" | 244 | IDENT@226..227 "x" |
245 | COLON@[227; 228) ":" | 245 | COLON@227..228 ":" |
246 | WHITESPACE@[228; 229) " " | 246 | WHITESPACE@228..229 " " |
247 | PATH_TYPE@[229; 232) | 247 | PATH_TYPE@229..232 |
248 | PATH@[229; 232) | 248 | PATH@229..232 |
249 | PATH_SEGMENT@[229; 232) | 249 | PATH_SEGMENT@229..232 |
250 | NAME_REF@[229; 232) | 250 | NAME_REF@229..232 |
251 | IDENT@[229; 232) "i32" | 251 | IDENT@229..232 "i32" |
252 | R_PAREN@[232; 233) ")" | 252 | R_PAREN@232..233 ")" |
253 | SEMICOLON@[233; 234) ";" | 253 | SEMICOLON@233..234 ";" |
254 | WHITESPACE@[234; 235) "\n" | 254 | WHITESPACE@234..235 "\n" |
255 | R_CURLY@[235; 236) "}" | 255 | R_CURLY@235..236 "}" |
256 | WHITESPACE@[236; 238) "\n\n" | 256 | WHITESPACE@236..238 "\n\n" |
257 | IMPL_DEF@[238; 519) | 257 | IMPL_DEF@238..519 |
258 | IMPL_KW@[238; 242) "impl" | 258 | IMPL_KW@238..242 "impl" |
259 | WHITESPACE@[242; 243) " " | 259 | WHITESPACE@242..243 " " |
260 | PATH_TYPE@[243; 244) | 260 | PATH_TYPE@243..244 |
261 | PATH@[243; 244) | 261 | PATH@243..244 |
262 | PATH_SEGMENT@[243; 244) | 262 | PATH_SEGMENT@243..244 |
263 | NAME_REF@[243; 244) | 263 | NAME_REF@243..244 |
264 | IDENT@[243; 244) "S" | 264 | IDENT@243..244 "S" |
265 | WHITESPACE@[244; 245) " " | 265 | WHITESPACE@244..245 " " |
266 | ITEM_LIST@[245; 519) | 266 | ITEM_LIST@245..519 |
267 | L_CURLY@[245; 246) "{" | 267 | L_CURLY@245..246 "{" |
268 | WHITESPACE@[246; 252) "\n " | 268 | WHITESPACE@246..252 "\n " |
269 | FN_DEF@[252; 277) | 269 | FN_DEF@252..277 |
270 | FN_KW@[252; 254) "fn" | 270 | FN_KW@252..254 "fn" |
271 | WHITESPACE@[254; 255) " " | 271 | WHITESPACE@254..255 " " |
272 | NAME@[255; 256) | 272 | NAME@255..256 |
273 | IDENT@[255; 256) "f" | 273 | IDENT@255..256 "f" |
274 | PARAM_LIST@[256; 274) | 274 | PARAM_LIST@256..274 |
275 | L_PAREN@[256; 257) "(" | 275 | L_PAREN@256..257 "(" |
276 | ATTR@[257; 268) | 276 | ATTR@257..268 |
277 | POUND@[257; 258) "#" | 277 | POUND@257..258 "#" |
278 | L_BRACK@[258; 259) "[" | 278 | L_BRACK@258..259 "[" |
279 | PATH@[259; 267) | 279 | PATH@259..267 |
280 | PATH_SEGMENT@[259; 267) | 280 | PATH_SEGMENT@259..267 |
281 | NAME_REF@[259; 267) | 281 | NAME_REF@259..267 |
282 | IDENT@[259; 267) "must_use" | 282 | IDENT@259..267 "must_use" |
283 | R_BRACK@[267; 268) "]" | 283 | R_BRACK@267..268 "]" |
284 | WHITESPACE@[268; 269) " " | 284 | WHITESPACE@268..269 " " |
285 | SELF_PARAM@[269; 273) | 285 | SELF_PARAM@269..273 |
286 | SELF_KW@[269; 273) "self" | 286 | SELF_KW@269..273 "self" |
287 | R_PAREN@[273; 274) ")" | 287 | R_PAREN@273..274 ")" |
288 | WHITESPACE@[274; 275) " " | 288 | WHITESPACE@274..275 " " |
289 | BLOCK_EXPR@[275; 277) | 289 | BLOCK_EXPR@275..277 |
290 | BLOCK@[275; 277) | 290 | BLOCK@275..277 |
291 | L_CURLY@[275; 276) "{" | 291 | L_CURLY@275..276 "{" |
292 | R_CURLY@[276; 277) "}" | 292 | R_CURLY@276..277 "}" |
293 | WHITESPACE@[277; 283) "\n " | 293 | WHITESPACE@277..283 "\n " |
294 | FN_DEF@[283; 305) | 294 | FN_DEF@283..305 |
295 | FN_KW@[283; 285) "fn" | 295 | FN_KW@283..285 "fn" |
296 | WHITESPACE@[285; 286) " " | 296 | WHITESPACE@285..286 " " |
297 | NAME@[286; 288) | 297 | NAME@286..288 |
298 | IDENT@[286; 288) "g1" | 298 | IDENT@286..288 "g1" |
299 | PARAM_LIST@[288; 302) | 299 | PARAM_LIST@288..302 |
300 | L_PAREN@[288; 289) "(" | 300 | L_PAREN@288..289 "(" |
301 | ATTR@[289; 296) | 301 | ATTR@289..296 |
302 | POUND@[289; 290) "#" | 302 | POUND@289..290 "#" |
303 | L_BRACK@[290; 291) "[" | 303 | L_BRACK@290..291 "[" |
304 | PATH@[291; 295) | 304 | PATH@291..295 |
305 | PATH_SEGMENT@[291; 295) | 305 | PATH_SEGMENT@291..295 |
306 | NAME_REF@[291; 295) | 306 | NAME_REF@291..295 |
307 | IDENT@[291; 295) "attr" | 307 | IDENT@291..295 "attr" |
308 | R_BRACK@[295; 296) "]" | 308 | R_BRACK@295..296 "]" |
309 | WHITESPACE@[296; 297) " " | 309 | WHITESPACE@296..297 " " |
310 | SELF_PARAM@[297; 301) | 310 | SELF_PARAM@297..301 |
311 | SELF_KW@[297; 301) "self" | 311 | SELF_KW@297..301 "self" |
312 | R_PAREN@[301; 302) ")" | 312 | R_PAREN@301..302 ")" |
313 | WHITESPACE@[302; 303) " " | 313 | WHITESPACE@302..303 " " |
314 | BLOCK_EXPR@[303; 305) | 314 | BLOCK_EXPR@303..305 |
315 | BLOCK@[303; 305) | 315 | BLOCK@303..305 |
316 | L_CURLY@[303; 304) "{" | 316 | L_CURLY@303..304 "{" |
317 | R_CURLY@[304; 305) "}" | 317 | R_CURLY@304..305 "}" |
318 | WHITESPACE@[305; 311) "\n " | 318 | WHITESPACE@305..311 "\n " |
319 | FN_DEF@[311; 334) | 319 | FN_DEF@311..334 |
320 | FN_KW@[311; 313) "fn" | 320 | FN_KW@311..313 "fn" |
321 | WHITESPACE@[313; 314) " " | 321 | WHITESPACE@313..314 " " |
322 | NAME@[314; 316) | 322 | NAME@314..316 |
323 | IDENT@[314; 316) "g2" | 323 | IDENT@314..316 "g2" |
324 | PARAM_LIST@[316; 331) | 324 | PARAM_LIST@316..331 |
325 | L_PAREN@[316; 317) "(" | 325 | L_PAREN@316..317 "(" |
326 | ATTR@[317; 324) | 326 | ATTR@317..324 |
327 | POUND@[317; 318) "#" | 327 | POUND@317..318 "#" |
328 | L_BRACK@[318; 319) "[" | 328 | L_BRACK@318..319 "[" |
329 | PATH@[319; 323) | 329 | PATH@319..323 |
330 | PATH_SEGMENT@[319; 323) | 330 | PATH_SEGMENT@319..323 |
331 | NAME_REF@[319; 323) | 331 | NAME_REF@319..323 |
332 | IDENT@[319; 323) "attr" | 332 | IDENT@319..323 "attr" |
333 | R_BRACK@[323; 324) "]" | 333 | R_BRACK@323..324 "]" |
334 | WHITESPACE@[324; 325) " " | 334 | WHITESPACE@324..325 " " |
335 | SELF_PARAM@[325; 330) | 335 | SELF_PARAM@325..330 |
336 | AMP@[325; 326) "&" | 336 | AMP@325..326 "&" |
337 | SELF_KW@[326; 330) "self" | 337 | SELF_KW@326..330 "self" |
338 | R_PAREN@[330; 331) ")" | 338 | R_PAREN@330..331 ")" |
339 | WHITESPACE@[331; 332) " " | 339 | WHITESPACE@331..332 " " |
340 | BLOCK_EXPR@[332; 334) | 340 | BLOCK_EXPR@332..334 |
341 | BLOCK@[332; 334) | 341 | BLOCK@332..334 |
342 | L_CURLY@[332; 333) "{" | 342 | L_CURLY@332..333 "{" |
343 | R_CURLY@[333; 334) "}" | 343 | R_CURLY@333..334 "}" |
344 | WHITESPACE@[334; 340) "\n " | 344 | WHITESPACE@334..340 "\n " |
345 | FN_DEF@[340; 371) | 345 | FN_DEF@340..371 |
346 | FN_KW@[340; 342) "fn" | 346 | FN_KW@340..342 "fn" |
347 | WHITESPACE@[342; 343) " " | 347 | WHITESPACE@342..343 " " |
348 | NAME@[343; 345) | 348 | NAME@343..345 |
349 | IDENT@[343; 345) "g3" | 349 | IDENT@343..345 "g3" |
350 | TYPE_PARAM_LIST@[345; 349) | 350 | TYPE_PARAM_LIST@345..349 |
351 | L_ANGLE@[345; 346) "<" | 351 | L_ANGLE@345..346 "<" |
352 | LIFETIME_PARAM@[346; 348) | 352 | LIFETIME_PARAM@346..348 |
353 | LIFETIME@[346; 348) "\'a" | 353 | LIFETIME@346..348 "\'a" |
354 | R_ANGLE@[348; 349) ">" | 354 | R_ANGLE@348..349 ">" |
355 | PARAM_LIST@[349; 368) | 355 | PARAM_LIST@349..368 |
356 | L_PAREN@[349; 350) "(" | 356 | L_PAREN@349..350 "(" |
357 | ATTR@[350; 357) | 357 | ATTR@350..357 |
358 | POUND@[350; 351) "#" | 358 | POUND@350..351 "#" |
359 | L_BRACK@[351; 352) "[" | 359 | L_BRACK@351..352 "[" |
360 | PATH@[352; 356) | 360 | PATH@352..356 |
361 | PATH_SEGMENT@[352; 356) | 361 | PATH_SEGMENT@352..356 |
362 | NAME_REF@[352; 356) | 362 | NAME_REF@352..356 |
363 | IDENT@[352; 356) "attr" | 363 | IDENT@352..356 "attr" |
364 | R_BRACK@[356; 357) "]" | 364 | R_BRACK@356..357 "]" |
365 | WHITESPACE@[357; 358) " " | 365 | WHITESPACE@357..358 " " |
366 | SELF_PARAM@[358; 367) | 366 | SELF_PARAM@358..367 |
367 | AMP@[358; 359) "&" | 367 | AMP@358..359 "&" |
368 | MUT_KW@[359; 362) "mut" | 368 | MUT_KW@359..362 "mut" |
369 | WHITESPACE@[362; 363) " " | 369 | WHITESPACE@362..363 " " |
370 | SELF_KW@[363; 367) "self" | 370 | SELF_KW@363..367 "self" |
371 | R_PAREN@[367; 368) ")" | 371 | R_PAREN@367..368 ")" |
372 | WHITESPACE@[368; 369) " " | 372 | WHITESPACE@368..369 " " |
373 | BLOCK_EXPR@[369; 371) | 373 | BLOCK_EXPR@369..371 |
374 | BLOCK@[369; 371) | 374 | BLOCK@369..371 |
375 | L_CURLY@[369; 370) "{" | 375 | L_CURLY@369..370 "{" |
376 | R_CURLY@[370; 371) "}" | 376 | R_CURLY@370..371 "}" |
377 | WHITESPACE@[371; 377) "\n " | 377 | WHITESPACE@371..377 "\n " |
378 | FN_DEF@[377; 407) | 378 | FN_DEF@377..407 |
379 | FN_KW@[377; 379) "fn" | 379 | FN_KW@377..379 "fn" |
380 | WHITESPACE@[379; 380) " " | 380 | WHITESPACE@379..380 " " |
381 | NAME@[380; 382) | 381 | NAME@380..382 |
382 | IDENT@[380; 382) "g4" | 382 | IDENT@380..382 "g4" |
383 | TYPE_PARAM_LIST@[382; 386) | 383 | TYPE_PARAM_LIST@382..386 |
384 | L_ANGLE@[382; 383) "<" | 384 | L_ANGLE@382..383 "<" |
385 | LIFETIME_PARAM@[383; 385) | 385 | LIFETIME_PARAM@383..385 |
386 | LIFETIME@[383; 385) "\'a" | 386 | LIFETIME@383..385 "\'a" |
387 | R_ANGLE@[385; 386) ">" | 387 | R_ANGLE@385..386 ">" |
388 | PARAM_LIST@[386; 404) | 388 | PARAM_LIST@386..404 |
389 | L_PAREN@[386; 387) "(" | 389 | L_PAREN@386..387 "(" |
390 | ATTR@[387; 394) | 390 | ATTR@387..394 |
391 | POUND@[387; 388) "#" | 391 | POUND@387..388 "#" |
392 | L_BRACK@[388; 389) "[" | 392 | L_BRACK@388..389 "[" |
393 | PATH@[389; 393) | 393 | PATH@389..393 |
394 | PATH_SEGMENT@[389; 393) | 394 | PATH_SEGMENT@389..393 |
395 | NAME_REF@[389; 393) | 395 | NAME_REF@389..393 |
396 | IDENT@[389; 393) "attr" | 396 | IDENT@389..393 "attr" |
397 | R_BRACK@[393; 394) "]" | 397 | R_BRACK@393..394 "]" |
398 | WHITESPACE@[394; 395) " " | 398 | WHITESPACE@394..395 " " |
399 | SELF_PARAM@[395; 403) | 399 | SELF_PARAM@395..403 |
400 | AMP@[395; 396) "&" | 400 | AMP@395..396 "&" |
401 | LIFETIME@[396; 398) "\'a" | 401 | LIFETIME@396..398 "\'a" |
402 | WHITESPACE@[398; 399) " " | 402 | WHITESPACE@398..399 " " |
403 | SELF_KW@[399; 403) "self" | 403 | SELF_KW@399..403 "self" |
404 | R_PAREN@[403; 404) ")" | 404 | R_PAREN@403..404 ")" |
405 | WHITESPACE@[404; 405) " " | 405 | WHITESPACE@404..405 " " |
406 | BLOCK_EXPR@[405; 407) | 406 | BLOCK_EXPR@405..407 |
407 | BLOCK@[405; 407) | 407 | BLOCK@405..407 |
408 | L_CURLY@[405; 406) "{" | 408 | L_CURLY@405..406 "{" |
409 | R_CURLY@[406; 407) "}" | 409 | R_CURLY@406..407 "}" |
410 | WHITESPACE@[407; 413) "\n " | 410 | WHITESPACE@407..413 "\n " |
411 | FN_DEF@[413; 447) | 411 | FN_DEF@413..447 |
412 | FN_KW@[413; 415) "fn" | 412 | FN_KW@413..415 "fn" |
413 | WHITESPACE@[415; 416) " " | 413 | WHITESPACE@415..416 " " |
414 | NAME@[416; 418) | 414 | NAME@416..418 |
415 | IDENT@[416; 418) "g5" | 415 | IDENT@416..418 "g5" |
416 | TYPE_PARAM_LIST@[418; 422) | 416 | TYPE_PARAM_LIST@418..422 |
417 | L_ANGLE@[418; 419) "<" | 417 | L_ANGLE@418..419 "<" |
418 | LIFETIME_PARAM@[419; 421) | 418 | LIFETIME_PARAM@419..421 |
419 | LIFETIME@[419; 421) "\'a" | 419 | LIFETIME@419..421 "\'a" |
420 | R_ANGLE@[421; 422) ">" | 420 | R_ANGLE@421..422 ">" |
421 | PARAM_LIST@[422; 444) | 421 | PARAM_LIST@422..444 |
422 | L_PAREN@[422; 423) "(" | 422 | L_PAREN@422..423 "(" |
423 | ATTR@[423; 430) | 423 | ATTR@423..430 |
424 | POUND@[423; 424) "#" | 424 | POUND@423..424 "#" |
425 | L_BRACK@[424; 425) "[" | 425 | L_BRACK@424..425 "[" |
426 | PATH@[425; 429) | 426 | PATH@425..429 |
427 | PATH_SEGMENT@[425; 429) | 427 | PATH_SEGMENT@425..429 |
428 | NAME_REF@[425; 429) | 428 | NAME_REF@425..429 |
429 | IDENT@[425; 429) "attr" | 429 | IDENT@425..429 "attr" |
430 | R_BRACK@[429; 430) "]" | 430 | R_BRACK@429..430 "]" |
431 | WHITESPACE@[430; 431) " " | 431 | WHITESPACE@430..431 " " |
432 | SELF_PARAM@[431; 443) | 432 | SELF_PARAM@431..443 |
433 | AMP@[431; 432) "&" | 433 | AMP@431..432 "&" |
434 | LIFETIME@[432; 434) "\'a" | 434 | LIFETIME@432..434 "\'a" |
435 | WHITESPACE@[434; 435) " " | 435 | WHITESPACE@434..435 " " |
436 | MUT_KW@[435; 438) "mut" | 436 | MUT_KW@435..438 "mut" |
437 | WHITESPACE@[438; 439) " " | 437 | WHITESPACE@438..439 " " |
438 | SELF_KW@[439; 443) "self" | 438 | SELF_KW@439..443 "self" |
439 | R_PAREN@[443; 444) ")" | 439 | R_PAREN@443..444 ")" |
440 | WHITESPACE@[444; 445) " " | 440 | WHITESPACE@444..445 " " |
441 | BLOCK_EXPR@[445; 447) | 441 | BLOCK_EXPR@445..447 |
442 | BLOCK@[445; 447) | 442 | BLOCK@445..447 |
443 | L_CURLY@[445; 446) "{" | 443 | L_CURLY@445..446 "{" |
444 | R_CURLY@[446; 447) "}" | 444 | R_CURLY@446..447 "}" |
445 | WHITESPACE@[447; 453) "\n " | 445 | WHITESPACE@447..453 "\n " |
446 | FN_DEF@[453; 480) | 446 | FN_DEF@453..480 |
447 | FN_KW@[453; 455) "fn" | 447 | FN_KW@453..455 "fn" |
448 | WHITESPACE@[455; 456) " " | 448 | WHITESPACE@455..456 " " |
449 | NAME@[456; 457) | 449 | NAME@456..457 |
450 | IDENT@[456; 457) "c" | 450 | IDENT@456..457 "c" |
451 | PARAM_LIST@[457; 477) | 451 | PARAM_LIST@457..477 |
452 | L_PAREN@[457; 458) "(" | 452 | L_PAREN@457..458 "(" |
453 | ATTR@[458; 465) | 453 | ATTR@458..465 |
454 | POUND@[458; 459) "#" | 454 | POUND@458..459 "#" |
455 | L_BRACK@[459; 460) "[" | 455 | L_BRACK@459..460 "[" |
456 | PATH@[460; 464) | 456 | PATH@460..464 |
457 | PATH_SEGMENT@[460; 464) | 457 | PATH_SEGMENT@460..464 |
458 | NAME_REF@[460; 464) | 458 | NAME_REF@460..464 |
459 | IDENT@[460; 464) "attr" | 459 | IDENT@460..464 "attr" |
460 | R_BRACK@[464; 465) "]" | 460 | R_BRACK@464..465 "]" |
461 | WHITESPACE@[465; 466) " " | 461 | WHITESPACE@465..466 " " |
462 | SELF_PARAM@[466; 476) | 462 | SELF_PARAM@466..476 |
463 | SELF_KW@[466; 470) "self" | 463 | SELF_KW@466..470 "self" |
464 | COLON@[470; 471) ":" | 464 | COLON@470..471 ":" |
465 | WHITESPACE@[471; 472) " " | 465 | WHITESPACE@471..472 " " |
466 | PATH_TYPE@[472; 476) | 466 | PATH_TYPE@472..476 |
467 | PATH@[472; 476) | 467 | PATH@472..476 |
468 | PATH_SEGMENT@[472; 476) | 468 | PATH_SEGMENT@472..476 |
469 | NAME_REF@[472; 476) | 469 | NAME_REF@472..476 |
470 | IDENT@[472; 476) "Self" | 470 | IDENT@472..476 "Self" |
471 | R_PAREN@[476; 477) ")" | 471 | R_PAREN@476..477 ")" |
472 | WHITESPACE@[477; 478) " " | 472 | WHITESPACE@477..478 " " |
473 | BLOCK_EXPR@[478; 480) | 473 | BLOCK_EXPR@478..480 |
474 | BLOCK@[478; 480) | 474 | BLOCK@478..480 |
475 | L_CURLY@[478; 479) "{" | 475 | L_CURLY@478..479 "{" |
476 | R_CURLY@[479; 480) "}" | 476 | R_CURLY@479..480 "}" |
477 | WHITESPACE@[480; 486) "\n " | 477 | WHITESPACE@480..486 "\n " |
478 | FN_DEF@[486; 517) | 478 | FN_DEF@486..517 |
479 | FN_KW@[486; 488) "fn" | 479 | FN_KW@486..488 "fn" |
480 | WHITESPACE@[488; 489) " " | 480 | WHITESPACE@488..489 " " |
481 | NAME@[489; 490) | 481 | NAME@489..490 |
482 | IDENT@[489; 490) "d" | 482 | IDENT@489..490 "d" |
483 | PARAM_LIST@[490; 514) | 483 | PARAM_LIST@490..514 |
484 | L_PAREN@[490; 491) "(" | 484 | L_PAREN@490..491 "(" |
485 | ATTR@[491; 498) | 485 | ATTR@491..498 |
486 | POUND@[491; 492) "#" | 486 | POUND@491..492 "#" |
487 | L_BRACK@[492; 493) "[" | 487 | L_BRACK@492..493 "[" |
488 | PATH@[493; 497) | 488 | PATH@493..497 |
489 | PATH_SEGMENT@[493; 497) | 489 | PATH_SEGMENT@493..497 |
490 | NAME_REF@[493; 497) | 490 | NAME_REF@493..497 |
491 | IDENT@[493; 497) "attr" | 491 | IDENT@493..497 "attr" |
492 | R_BRACK@[497; 498) "]" | 492 | R_BRACK@497..498 "]" |
493 | WHITESPACE@[498; 499) " " | 493 | WHITESPACE@498..499 " " |
494 | SELF_PARAM@[499; 513) | 494 | SELF_PARAM@499..513 |
495 | SELF_KW@[499; 503) "self" | 495 | SELF_KW@499..503 "self" |
496 | COLON@[503; 504) ":" | 496 | COLON@503..504 ":" |
497 | WHITESPACE@[504; 505) " " | 497 | WHITESPACE@504..505 " " |
498 | PATH_TYPE@[505; 513) | 498 | PATH_TYPE@505..513 |
499 | PATH@[505; 513) | 499 | PATH@505..513 |
500 | PATH_SEGMENT@[505; 513) | 500 | PATH_SEGMENT@505..513 |
501 | NAME_REF@[505; 507) | 501 | NAME_REF@505..507 |
502 | IDENT@[505; 507) "Rc" | 502 | IDENT@505..507 "Rc" |
503 | TYPE_ARG_LIST@[507; 513) | 503 | TYPE_ARG_LIST@507..513 |
504 | L_ANGLE@[507; 508) "<" | 504 | L_ANGLE@507..508 "<" |
505 | TYPE_ARG@[508; 512) | 505 | TYPE_ARG@508..512 |
506 | PATH_TYPE@[508; 512) | 506 | PATH_TYPE@508..512 |
507 | PATH@[508; 512) | 507 | PATH@508..512 |
508 | PATH_SEGMENT@[508; 512) | 508 | PATH_SEGMENT@508..512 |
509 | NAME_REF@[508; 512) | 509 | NAME_REF@508..512 |
510 | IDENT@[508; 512) "Self" | 510 | IDENT@508..512 "Self" |
511 | R_ANGLE@[512; 513) ">" | 511 | R_ANGLE@512..513 ">" |
512 | R_PAREN@[513; 514) ")" | 512 | R_PAREN@513..514 ")" |
513 | WHITESPACE@[514; 515) " " | 513 | WHITESPACE@514..515 " " |
514 | BLOCK_EXPR@[515; 517) | 514 | BLOCK_EXPR@515..517 |
515 | BLOCK@[515; 517) | 515 | BLOCK@515..517 |
516 | L_CURLY@[515; 516) "{" | 516 | L_CURLY@515..516 "{" |
517 | R_CURLY@[516; 517) "}" | 517 | R_CURLY@516..517 "}" |
518 | WHITESPACE@[517; 518) "\n" | 518 | WHITESPACE@517..518 "\n" |
519 | R_CURLY@[518; 519) "}" | 519 | R_CURLY@518..519 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast index 473966cd4..f376f86a7 100644 --- a/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast +++ b/crates/ra_syntax/test_data/parser/ok/0052_for_range_block.rast | |||
@@ -1,81 +1,81 @@ | |||
1 | SOURCE_FILE@[0; 80) | 1 | SOURCE_FILE@0..80 |
2 | FN_DEF@[0; 79) | 2 | FN_DEF@0..79 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 79) | 11 | BLOCK_EXPR@9..79 |
12 | BLOCK@[9; 79) | 12 | BLOCK@9..79 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 14) "\n " | 14 | WHITESPACE@10..14 "\n " |
15 | FOR_EXPR@[14; 77) | 15 | FOR_EXPR@14..77 |
16 | FOR_KW@[14; 17) "for" | 16 | FOR_KW@14..17 "for" |
17 | WHITESPACE@[17; 18) " " | 17 | WHITESPACE@17..18 " " |
18 | BIND_PAT@[18; 20) | 18 | BIND_PAT@18..20 |
19 | NAME@[18; 20) | 19 | NAME@18..20 |
20 | IDENT@[18; 20) "_x" | 20 | IDENT@18..20 "_x" |
21 | WHITESPACE@[20; 21) " " | 21 | WHITESPACE@20..21 " " |
22 | IN_KW@[21; 23) "in" | 22 | IN_KW@21..23 "in" |
23 | WHITESPACE@[23; 24) " " | 23 | WHITESPACE@23..24 " " |
24 | RANGE_EXPR@[24; 56) | 24 | RANGE_EXPR@24..56 |
25 | LITERAL@[24; 25) | 25 | LITERAL@24..25 |
26 | INT_NUMBER@[24; 25) "0" | 26 | INT_NUMBER@24..25 "0" |
27 | WHITESPACE@[25; 26) " " | 27 | WHITESPACE@25..26 " " |
28 | DOT2@[26; 28) ".." | 28 | DOT2@26..28 ".." |
29 | WHITESPACE@[28; 29) " " | 29 | WHITESPACE@28..29 " " |
30 | METHOD_CALL_EXPR@[29; 56) | 30 | METHOD_CALL_EXPR@29..56 |
31 | PAREN_EXPR@[29; 43) | 31 | PAREN_EXPR@29..43 |
32 | L_PAREN@[29; 30) "(" | 32 | L_PAREN@29..30 "(" |
33 | RANGE_EXPR@[30; 42) | 33 | RANGE_EXPR@30..42 |
34 | LITERAL@[30; 31) | 34 | LITERAL@30..31 |
35 | INT_NUMBER@[30; 31) "0" | 35 | INT_NUMBER@30..31 "0" |
36 | WHITESPACE@[31; 32) " " | 36 | WHITESPACE@31..32 " " |
37 | DOT2@[32; 34) ".." | 37 | DOT2@32..34 ".." |
38 | WHITESPACE@[34; 35) " " | 38 | WHITESPACE@34..35 " " |
39 | BLOCK_EXPR@[35; 42) | 39 | BLOCK_EXPR@35..42 |
40 | BLOCK@[35; 42) | 40 | BLOCK@35..42 |
41 | L_CURLY@[35; 36) "{" | 41 | L_CURLY@35..36 "{" |
42 | BIN_EXPR@[36; 41) | 42 | BIN_EXPR@36..41 |
43 | LITERAL@[36; 37) | 43 | LITERAL@36..37 |
44 | INT_NUMBER@[36; 37) "1" | 44 | INT_NUMBER@36..37 "1" |
45 | WHITESPACE@[37; 38) " " | 45 | WHITESPACE@37..38 " " |
46 | PLUS@[38; 39) "+" | 46 | PLUS@38..39 "+" |
47 | WHITESPACE@[39; 40) " " | 47 | WHITESPACE@39..40 " " |
48 | LITERAL@[40; 41) | 48 | LITERAL@40..41 |
49 | INT_NUMBER@[40; 41) "2" | 49 | INT_NUMBER@40..41 "2" |
50 | R_CURLY@[41; 42) "}" | 50 | R_CURLY@41..42 "}" |
51 | R_PAREN@[42; 43) ")" | 51 | R_PAREN@42..43 ")" |
52 | DOT@[43; 44) "." | 52 | DOT@43..44 "." |
53 | NAME_REF@[44; 47) | 53 | NAME_REF@44..47 |
54 | IDENT@[44; 47) "sum" | 54 | IDENT@44..47 "sum" |
55 | TYPE_ARG_LIST@[47; 54) | 55 | TYPE_ARG_LIST@47..54 |
56 | COLON2@[47; 49) "::" | 56 | COLON2@47..49 "::" |
57 | L_ANGLE@[49; 50) "<" | 57 | L_ANGLE@49..50 "<" |
58 | TYPE_ARG@[50; 53) | 58 | TYPE_ARG@50..53 |
59 | PATH_TYPE@[50; 53) | 59 | PATH_TYPE@50..53 |
60 | PATH@[50; 53) | 60 | PATH@50..53 |
61 | PATH_SEGMENT@[50; 53) | 61 | PATH_SEGMENT@50..53 |
62 | NAME_REF@[50; 53) | 62 | NAME_REF@50..53 |
63 | IDENT@[50; 53) "u32" | 63 | IDENT@50..53 "u32" |
64 | R_ANGLE@[53; 54) ">" | 64 | R_ANGLE@53..54 ">" |
65 | ARG_LIST@[54; 56) | 65 | ARG_LIST@54..56 |
66 | L_PAREN@[54; 55) "(" | 66 | L_PAREN@54..55 "(" |
67 | R_PAREN@[55; 56) ")" | 67 | R_PAREN@55..56 ")" |
68 | WHITESPACE@[56; 57) " " | 68 | WHITESPACE@56..57 " " |
69 | BLOCK_EXPR@[57; 77) | 69 | BLOCK_EXPR@57..77 |
70 | BLOCK@[57; 77) | 70 | BLOCK@57..77 |
71 | L_CURLY@[57; 58) "{" | 71 | L_CURLY@57..58 "{" |
72 | WHITESPACE@[58; 66) "\n " | 72 | WHITESPACE@58..66 "\n " |
73 | EXPR_STMT@[66; 72) | 73 | EXPR_STMT@66..72 |
74 | BREAK_EXPR@[66; 71) | 74 | BREAK_EXPR@66..71 |
75 | BREAK_KW@[66; 71) "break" | 75 | BREAK_KW@66..71 "break" |
76 | SEMICOLON@[71; 72) ";" | 76 | SEMICOLON@71..72 ";" |
77 | WHITESPACE@[72; 76) "\n " | 77 | WHITESPACE@72..76 "\n " |
78 | R_CURLY@[76; 77) "}" | 78 | R_CURLY@76..77 "}" |
79 | WHITESPACE@[77; 78) "\n" | 79 | WHITESPACE@77..78 "\n" |
80 | R_CURLY@[78; 79) "}" | 80 | R_CURLY@78..79 "}" |
81 | WHITESPACE@[79; 80) "\n" | 81 | WHITESPACE@79..80 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast index 60a491853..be60f7a8e 100644 --- a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast +++ b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rast | |||
@@ -1,39 +1,39 @@ | |||
1 | SOURCE_FILE@[0; 65) | 1 | SOURCE_FILE@0..65 |
2 | MACRO_CALL@[0; 64) | 2 | MACRO_CALL@0..64 |
3 | COMMENT@[0; 13) "/// Some docs" | 3 | COMMENT@0..13 "/// Some docs" |
4 | WHITESPACE@[13; 14) "\n" | 4 | WHITESPACE@13..14 "\n" |
5 | ATTR@[14; 29) | 5 | ATTR@14..29 |
6 | POUND@[14; 15) "#" | 6 | POUND@14..15 "#" |
7 | L_BRACK@[15; 16) "[" | 7 | L_BRACK@15..16 "[" |
8 | PATH@[16; 28) | 8 | PATH@16..28 |
9 | PATH_SEGMENT@[16; 28) | 9 | PATH_SEGMENT@16..28 |
10 | NAME_REF@[16; 28) | 10 | NAME_REF@16..28 |
11 | IDENT@[16; 28) "macro_export" | 11 | IDENT@16..28 "macro_export" |
12 | R_BRACK@[28; 29) "]" | 12 | R_BRACK@28..29 "]" |
13 | WHITESPACE@[29; 30) "\n" | 13 | WHITESPACE@29..30 "\n" |
14 | PATH@[30; 41) | 14 | PATH@30..41 |
15 | PATH_SEGMENT@[30; 41) | 15 | PATH_SEGMENT@30..41 |
16 | NAME_REF@[30; 41) | 16 | NAME_REF@30..41 |
17 | IDENT@[30; 41) "macro_rules" | 17 | IDENT@30..41 "macro_rules" |
18 | BANG@[41; 42) "!" | 18 | BANG@41..42 "!" |
19 | WHITESPACE@[42; 43) " " | 19 | WHITESPACE@42..43 " " |
20 | NAME@[43; 46) | 20 | NAME@43..46 |
21 | IDENT@[43; 46) "foo" | 21 | IDENT@43..46 "foo" |
22 | WHITESPACE@[46; 47) " " | 22 | WHITESPACE@46..47 " " |
23 | TOKEN_TREE@[47; 64) | 23 | TOKEN_TREE@47..64 |
24 | L_CURLY@[47; 48) "{" | 24 | L_CURLY@47..48 "{" |
25 | WHITESPACE@[48; 53) "\n " | 25 | WHITESPACE@48..53 "\n " |
26 | TOKEN_TREE@[53; 55) | 26 | TOKEN_TREE@53..55 |
27 | L_PAREN@[53; 54) "(" | 27 | L_PAREN@53..54 "(" |
28 | R_PAREN@[54; 55) ")" | 28 | R_PAREN@54..55 ")" |
29 | WHITESPACE@[55; 56) " " | 29 | WHITESPACE@55..56 " " |
30 | EQ@[56; 57) "=" | 30 | EQ@56..57 "=" |
31 | R_ANGLE@[57; 58) ">" | 31 | R_ANGLE@57..58 ">" |
32 | WHITESPACE@[58; 59) " " | 32 | WHITESPACE@58..59 " " |
33 | TOKEN_TREE@[59; 61) | 33 | TOKEN_TREE@59..61 |
34 | L_CURLY@[59; 60) "{" | 34 | L_CURLY@59..60 "{" |
35 | R_CURLY@[60; 61) "}" | 35 | R_CURLY@60..61 "}" |
36 | SEMICOLON@[61; 62) ";" | 36 | SEMICOLON@61..62 ";" |
37 | WHITESPACE@[62; 63) "\n" | 37 | WHITESPACE@62..63 "\n" |
38 | R_CURLY@[63; 64) "}" | 38 | R_CURLY@63..64 "}" |
39 | WHITESPACE@[64; 65) "\n" | 39 | WHITESPACE@64..65 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast index fabf88e8f..f20819bd2 100644 --- a/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast +++ b/crates/ra_syntax/test_data/parser/ok/0054_qual_path_in_type_arg.rast | |||
@@ -1,126 +1,126 @@ | |||
1 | SOURCE_FILE@[0; 88) | 1 | SOURCE_FILE@0..88 |
2 | FN_DEF@[0; 26) | 2 | FN_DEF@0..26 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "a" | 6 | IDENT@3..4 "a" |
7 | PARAM_LIST@[4; 6) | 7 | PARAM_LIST@4..6 |
8 | L_PAREN@[4; 5) "(" | 8 | L_PAREN@4..5 "(" |
9 | R_PAREN@[5; 6) ")" | 9 | R_PAREN@5..6 ")" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | RET_TYPE@[7; 23) | 11 | RET_TYPE@7..23 |
12 | THIN_ARROW@[7; 9) "->" | 12 | THIN_ARROW@7..9 "->" |
13 | WHITESPACE@[9; 10) " " | 13 | WHITESPACE@9..10 " " |
14 | PATH_TYPE@[10; 23) | 14 | PATH_TYPE@10..23 |
15 | PATH@[10; 23) | 15 | PATH@10..23 |
16 | PATH_SEGMENT@[10; 23) | 16 | PATH_SEGMENT@10..23 |
17 | NAME_REF@[10; 13) | 17 | NAME_REF@10..13 |
18 | IDENT@[10; 13) "Foo" | 18 | IDENT@10..13 "Foo" |
19 | TYPE_ARG_LIST@[13; 23) | 19 | TYPE_ARG_LIST@13..23 |
20 | L_ANGLE@[13; 14) "<" | 20 | L_ANGLE@13..14 "<" |
21 | TYPE_ARG@[14; 22) | 21 | TYPE_ARG@14..22 |
22 | PATH_TYPE@[14; 22) | 22 | PATH_TYPE@14..22 |
23 | PATH@[14; 22) | 23 | PATH@14..22 |
24 | PATH@[14; 17) | 24 | PATH@14..17 |
25 | PATH_SEGMENT@[14; 17) | 25 | PATH_SEGMENT@14..17 |
26 | NAME_REF@[14; 17) | 26 | NAME_REF@14..17 |
27 | IDENT@[14; 17) "bar" | 27 | IDENT@14..17 "bar" |
28 | COLON2@[17; 19) "::" | 28 | COLON2@17..19 "::" |
29 | PATH_SEGMENT@[19; 22) | 29 | PATH_SEGMENT@19..22 |
30 | NAME_REF@[19; 22) | 30 | NAME_REF@19..22 |
31 | IDENT@[19; 22) "Baz" | 31 | IDENT@19..22 "Baz" |
32 | R_ANGLE@[22; 23) ">" | 32 | R_ANGLE@22..23 ">" |
33 | WHITESPACE@[23; 24) " " | 33 | WHITESPACE@23..24 " " |
34 | BLOCK_EXPR@[24; 26) | 34 | BLOCK_EXPR@24..26 |
35 | BLOCK@[24; 26) | 35 | BLOCK@24..26 |
36 | L_CURLY@[24; 25) "{" | 36 | L_CURLY@24..25 "{" |
37 | R_CURLY@[25; 26) "}" | 37 | R_CURLY@25..26 "}" |
38 | WHITESPACE@[26; 28) "\n\n" | 38 | WHITESPACE@26..28 "\n\n" |
39 | FN_DEF@[28; 56) | 39 | FN_DEF@28..56 |
40 | FN_KW@[28; 30) "fn" | 40 | FN_KW@28..30 "fn" |
41 | WHITESPACE@[30; 31) " " | 41 | WHITESPACE@30..31 " " |
42 | NAME@[31; 32) | 42 | NAME@31..32 |
43 | IDENT@[31; 32) "b" | 43 | IDENT@31..32 "b" |
44 | PARAM_LIST@[32; 53) | 44 | PARAM_LIST@32..53 |
45 | L_PAREN@[32; 33) "(" | 45 | L_PAREN@32..33 "(" |
46 | PARAM@[33; 52) | 46 | PARAM@33..52 |
47 | PLACEHOLDER_PAT@[33; 34) | 47 | PLACEHOLDER_PAT@33..34 |
48 | UNDERSCORE@[33; 34) "_" | 48 | UNDERSCORE@33..34 "_" |
49 | COLON@[34; 35) ":" | 49 | COLON@34..35 ":" |
50 | WHITESPACE@[35; 36) " " | 50 | WHITESPACE@35..36 " " |
51 | IMPL_TRAIT_TYPE@[36; 52) | 51 | IMPL_TRAIT_TYPE@36..52 |
52 | IMPL_KW@[36; 40) "impl" | 52 | IMPL_KW@36..40 "impl" |
53 | WHITESPACE@[40; 41) " " | 53 | WHITESPACE@40..41 " " |
54 | TYPE_BOUND_LIST@[41; 52) | 54 | TYPE_BOUND_LIST@41..52 |
55 | TYPE_BOUND@[41; 52) | 55 | TYPE_BOUND@41..52 |
56 | PATH_TYPE@[41; 52) | 56 | PATH_TYPE@41..52 |
57 | PATH@[41; 52) | 57 | PATH@41..52 |
58 | PATH_SEGMENT@[41; 52) | 58 | PATH_SEGMENT@41..52 |
59 | NAME_REF@[41; 46) | 59 | NAME_REF@41..46 |
60 | IDENT@[41; 46) "FnMut" | 60 | IDENT@41..46 "FnMut" |
61 | PARAM_LIST@[46; 52) | 61 | PARAM_LIST@46..52 |
62 | L_PAREN@[46; 47) "(" | 62 | L_PAREN@46..47 "(" |
63 | PARAM@[47; 51) | 63 | PARAM@47..51 |
64 | PATH_TYPE@[47; 51) | 64 | PATH_TYPE@47..51 |
65 | PATH@[47; 51) | 65 | PATH@47..51 |
66 | PATH@[47; 48) | 66 | PATH@47..48 |
67 | PATH_SEGMENT@[47; 48) | 67 | PATH_SEGMENT@47..48 |
68 | NAME_REF@[47; 48) | 68 | NAME_REF@47..48 |
69 | IDENT@[47; 48) "x" | 69 | IDENT@47..48 "x" |
70 | COLON2@[48; 50) "::" | 70 | COLON2@48..50 "::" |
71 | PATH_SEGMENT@[50; 51) | 71 | PATH_SEGMENT@50..51 |
72 | NAME_REF@[50; 51) | 72 | NAME_REF@50..51 |
73 | IDENT@[50; 51) "Y" | 73 | IDENT@50..51 "Y" |
74 | R_PAREN@[51; 52) ")" | 74 | R_PAREN@51..52 ")" |
75 | R_PAREN@[52; 53) ")" | 75 | R_PAREN@52..53 ")" |
76 | WHITESPACE@[53; 54) " " | 76 | WHITESPACE@53..54 " " |
77 | BLOCK_EXPR@[54; 56) | 77 | BLOCK_EXPR@54..56 |
78 | BLOCK@[54; 56) | 78 | BLOCK@54..56 |
79 | L_CURLY@[54; 55) "{" | 79 | L_CURLY@54..55 "{" |
80 | R_CURLY@[55; 56) "}" | 80 | R_CURLY@55..56 "}" |
81 | WHITESPACE@[56; 58) "\n\n" | 81 | WHITESPACE@56..58 "\n\n" |
82 | FN_DEF@[58; 87) | 82 | FN_DEF@58..87 |
83 | FN_KW@[58; 60) "fn" | 83 | FN_KW@58..60 "fn" |
84 | WHITESPACE@[60; 61) " " | 84 | WHITESPACE@60..61 " " |
85 | NAME@[61; 62) | 85 | NAME@61..62 |
86 | IDENT@[61; 62) "c" | 86 | IDENT@61..62 "c" |
87 | PARAM_LIST@[62; 84) | 87 | PARAM_LIST@62..84 |
88 | L_PAREN@[62; 63) "(" | 88 | L_PAREN@62..63 "(" |
89 | PARAM@[63; 83) | 89 | PARAM@63..83 |
90 | PLACEHOLDER_PAT@[63; 64) | 90 | PLACEHOLDER_PAT@63..64 |
91 | UNDERSCORE@[63; 64) "_" | 91 | UNDERSCORE@63..64 "_" |
92 | COLON@[64; 65) ":" | 92 | COLON@64..65 ":" |
93 | WHITESPACE@[65; 66) " " | 93 | WHITESPACE@65..66 " " |
94 | IMPL_TRAIT_TYPE@[66; 83) | 94 | IMPL_TRAIT_TYPE@66..83 |
95 | IMPL_KW@[66; 70) "impl" | 95 | IMPL_KW@66..70 "impl" |
96 | WHITESPACE@[70; 71) " " | 96 | WHITESPACE@70..71 " " |
97 | TYPE_BOUND_LIST@[71; 83) | 97 | TYPE_BOUND_LIST@71..83 |
98 | TYPE_BOUND@[71; 83) | 98 | TYPE_BOUND@71..83 |
99 | PATH_TYPE@[71; 83) | 99 | PATH_TYPE@71..83 |
100 | PATH@[71; 83) | 100 | PATH@71..83 |
101 | PATH_SEGMENT@[71; 83) | 101 | PATH_SEGMENT@71..83 |
102 | NAME_REF@[71; 76) | 102 | NAME_REF@71..76 |
103 | IDENT@[71; 76) "FnMut" | 103 | IDENT@71..76 "FnMut" |
104 | PARAM_LIST@[76; 83) | 104 | PARAM_LIST@76..83 |
105 | L_PAREN@[76; 77) "(" | 105 | L_PAREN@76..77 "(" |
106 | PARAM@[77; 82) | 106 | PARAM@77..82 |
107 | REFERENCE_TYPE@[77; 82) | 107 | REFERENCE_TYPE@77..82 |
108 | AMP@[77; 78) "&" | 108 | AMP@77..78 "&" |
109 | PATH_TYPE@[78; 82) | 109 | PATH_TYPE@78..82 |
110 | PATH@[78; 82) | 110 | PATH@78..82 |
111 | PATH@[78; 79) | 111 | PATH@78..79 |
112 | PATH_SEGMENT@[78; 79) | 112 | PATH_SEGMENT@78..79 |
113 | NAME_REF@[78; 79) | 113 | NAME_REF@78..79 |
114 | IDENT@[78; 79) "x" | 114 | IDENT@78..79 "x" |
115 | COLON2@[79; 81) "::" | 115 | COLON2@79..81 "::" |
116 | PATH_SEGMENT@[81; 82) | 116 | PATH_SEGMENT@81..82 |
117 | NAME_REF@[81; 82) | 117 | NAME_REF@81..82 |
118 | IDENT@[81; 82) "Y" | 118 | IDENT@81..82 "Y" |
119 | R_PAREN@[82; 83) ")" | 119 | R_PAREN@82..83 ")" |
120 | R_PAREN@[83; 84) ")" | 120 | R_PAREN@83..84 ")" |
121 | WHITESPACE@[84; 85) " " | 121 | WHITESPACE@84..85 " " |
122 | BLOCK_EXPR@[85; 87) | 122 | BLOCK_EXPR@85..87 |
123 | BLOCK@[85; 87) | 123 | BLOCK@85..87 |
124 | L_CURLY@[85; 86) "{" | 124 | L_CURLY@85..86 "{" |
125 | R_CURLY@[86; 87) "}" | 125 | R_CURLY@86..87 "}" |
126 | WHITESPACE@[87; 88) "\n" | 126 | WHITESPACE@87..88 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast index 6ac3f1458..dcdb3cc6d 100644 --- a/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast +++ b/crates/ra_syntax/test_data/parser/ok/0055_dot_dot_dot.rast | |||
@@ -1,50 +1,50 @@ | |||
1 | SOURCE_FILE@[0; 49) | 1 | SOURCE_FILE@0..49 |
2 | TYPE_ALIAS_DEF@[0; 12) | 2 | TYPE_ALIAS_DEF@0..12 |
3 | TYPE_KW@[0; 4) "type" | 3 | TYPE_KW@0..4 "type" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | NAME@[5; 6) | 5 | NAME@5..6 |
6 | IDENT@[5; 6) "X" | 6 | IDENT@5..6 "X" |
7 | WHITESPACE@[6; 7) " " | 7 | WHITESPACE@6..7 " " |
8 | EQ@[7; 8) "=" | 8 | EQ@7..8 "=" |
9 | WHITESPACE@[8; 9) " " | 9 | WHITESPACE@8..9 " " |
10 | TUPLE_TYPE@[9; 11) | 10 | TUPLE_TYPE@9..11 |
11 | L_PAREN@[9; 10) "(" | 11 | L_PAREN@9..10 "(" |
12 | R_PAREN@[10; 11) ")" | 12 | R_PAREN@10..11 ")" |
13 | SEMICOLON@[11; 12) ";" | 13 | SEMICOLON@11..12 ";" |
14 | WHITESPACE@[12; 14) "\n\n" | 14 | WHITESPACE@12..14 "\n\n" |
15 | FN_DEF@[14; 48) | 15 | FN_DEF@14..48 |
16 | FN_KW@[14; 16) "fn" | 16 | FN_KW@14..16 "fn" |
17 | WHITESPACE@[16; 17) " " | 17 | WHITESPACE@16..17 " " |
18 | NAME@[17; 21) | 18 | NAME@17..21 |
19 | IDENT@[17; 21) "main" | 19 | IDENT@17..21 "main" |
20 | PARAM_LIST@[21; 23) | 20 | PARAM_LIST@21..23 |
21 | L_PAREN@[21; 22) "(" | 21 | L_PAREN@21..22 "(" |
22 | R_PAREN@[22; 23) ")" | 22 | R_PAREN@22..23 ")" |
23 | WHITESPACE@[23; 24) " " | 23 | WHITESPACE@23..24 " " |
24 | BLOCK_EXPR@[24; 48) | 24 | BLOCK_EXPR@24..48 |
25 | BLOCK@[24; 48) | 25 | BLOCK@24..48 |
26 | L_CURLY@[24; 25) "{" | 26 | L_CURLY@24..25 "{" |
27 | WHITESPACE@[25; 30) "\n " | 27 | WHITESPACE@25..30 "\n " |
28 | LET_STMT@[30; 46) | 28 | LET_STMT@30..46 |
29 | LET_KW@[30; 33) "let" | 29 | LET_KW@30..33 "let" |
30 | WHITESPACE@[33; 34) " " | 30 | WHITESPACE@33..34 " " |
31 | TUPLE_PAT@[34; 36) | 31 | TUPLE_PAT@34..36 |
32 | L_PAREN@[34; 35) "(" | 32 | L_PAREN@34..35 "(" |
33 | R_PAREN@[35; 36) ")" | 33 | R_PAREN@35..36 ")" |
34 | COLON@[36; 37) ":" | 34 | COLON@36..37 ":" |
35 | PATH_TYPE@[37; 40) | 35 | PATH_TYPE@37..40 |
36 | PATH@[37; 40) | 36 | PATH@37..40 |
37 | PATH_SEGMENT@[37; 40) | 37 | PATH_SEGMENT@37..40 |
38 | COLON2@[37; 39) "::" | 38 | COLON2@37..39 "::" |
39 | NAME_REF@[39; 40) | 39 | NAME_REF@39..40 |
40 | IDENT@[39; 40) "X" | 40 | IDENT@39..40 "X" |
41 | WHITESPACE@[40; 41) " " | 41 | WHITESPACE@40..41 " " |
42 | EQ@[41; 42) "=" | 42 | EQ@41..42 "=" |
43 | WHITESPACE@[42; 43) " " | 43 | WHITESPACE@42..43 " " |
44 | TUPLE_EXPR@[43; 45) | 44 | TUPLE_EXPR@43..45 |
45 | L_PAREN@[43; 44) "(" | 45 | L_PAREN@43..44 "(" |
46 | R_PAREN@[44; 45) ")" | 46 | R_PAREN@44..45 ")" |
47 | SEMICOLON@[45; 46) ";" | 47 | SEMICOLON@45..46 ";" |
48 | WHITESPACE@[46; 47) "\n" | 48 | WHITESPACE@46..47 "\n" |
49 | R_CURLY@[47; 48) "}" | 49 | R_CURLY@47..48 "}" |
50 | WHITESPACE@[48; 49) "\n" | 50 | WHITESPACE@48..49 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast index 4a4ad84ca..6176a9620 100644 --- a/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast +++ b/crates/ra_syntax/test_data/parser/ok/0056_neq_in_type.rast | |||
@@ -1,66 +1,66 @@ | |||
1 | SOURCE_FILE@[0; 71) | 1 | SOURCE_FILE@0..71 |
2 | FN_DEF@[0; 70) | 2 | FN_DEF@0..70 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 70) | 11 | BLOCK_EXPR@10..70 |
12 | BLOCK@[10; 70) | 12 | BLOCK@10..70 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | IF_EXPR@[16; 68) | 15 | IF_EXPR@16..68 |
16 | IF_KW@[16; 18) "if" | 16 | IF_KW@16..18 "if" |
17 | WHITESPACE@[18; 19) " " | 17 | WHITESPACE@18..19 " " |
18 | CONDITION@[19; 65) | 18 | CONDITION@19..65 |
19 | BIN_EXPR@[19; 65) | 19 | BIN_EXPR@19..65 |
20 | CAST_EXPR@[19; 40) | 20 | CAST_EXPR@19..40 |
21 | METHOD_CALL_EXPR@[19; 33) | 21 | METHOD_CALL_EXPR@19..33 |
22 | LITERAL@[19; 25) | 22 | LITERAL@19..25 |
23 | FLOAT_NUMBER@[19; 25) "1.0f32" | 23 | FLOAT_NUMBER@19..25 "1.0f32" |
24 | DOT@[25; 26) "." | 24 | DOT@25..26 "." |
25 | NAME_REF@[26; 31) | 25 | NAME_REF@26..31 |
26 | IDENT@[26; 31) "floor" | 26 | IDENT@26..31 "floor" |
27 | ARG_LIST@[31; 33) | 27 | ARG_LIST@31..33 |
28 | L_PAREN@[31; 32) "(" | 28 | L_PAREN@31..32 "(" |
29 | R_PAREN@[32; 33) ")" | 29 | R_PAREN@32..33 ")" |
30 | WHITESPACE@[33; 34) " " | 30 | WHITESPACE@33..34 " " |
31 | AS_KW@[34; 36) "as" | 31 | AS_KW@34..36 "as" |
32 | WHITESPACE@[36; 37) " " | 32 | WHITESPACE@36..37 " " |
33 | PATH_TYPE@[37; 40) | 33 | PATH_TYPE@37..40 |
34 | PATH@[37; 40) | 34 | PATH@37..40 |
35 | PATH_SEGMENT@[37; 40) | 35 | PATH_SEGMENT@37..40 |
36 | NAME_REF@[37; 40) | 36 | NAME_REF@37..40 |
37 | IDENT@[37; 40) "i64" | 37 | IDENT@37..40 "i64" |
38 | WHITESPACE@[40; 41) " " | 38 | WHITESPACE@40..41 " " |
39 | NEQ@[41; 43) "!=" | 39 | NEQ@41..43 "!=" |
40 | WHITESPACE@[43; 44) " " | 40 | WHITESPACE@43..44 " " |
41 | CAST_EXPR@[44; 65) | 41 | CAST_EXPR@44..65 |
42 | METHOD_CALL_EXPR@[44; 58) | 42 | METHOD_CALL_EXPR@44..58 |
43 | LITERAL@[44; 50) | 43 | LITERAL@44..50 |
44 | FLOAT_NUMBER@[44; 50) "1.0f32" | 44 | FLOAT_NUMBER@44..50 "1.0f32" |
45 | DOT@[50; 51) "." | 45 | DOT@50..51 "." |
46 | NAME_REF@[51; 56) | 46 | NAME_REF@51..56 |
47 | IDENT@[51; 56) "floor" | 47 | IDENT@51..56 "floor" |
48 | ARG_LIST@[56; 58) | 48 | ARG_LIST@56..58 |
49 | L_PAREN@[56; 57) "(" | 49 | L_PAREN@56..57 "(" |
50 | R_PAREN@[57; 58) ")" | 50 | R_PAREN@57..58 ")" |
51 | WHITESPACE@[58; 59) " " | 51 | WHITESPACE@58..59 " " |
52 | AS_KW@[59; 61) "as" | 52 | AS_KW@59..61 "as" |
53 | WHITESPACE@[61; 62) " " | 53 | WHITESPACE@61..62 " " |
54 | PATH_TYPE@[62; 65) | 54 | PATH_TYPE@62..65 |
55 | PATH@[62; 65) | 55 | PATH@62..65 |
56 | PATH_SEGMENT@[62; 65) | 56 | PATH_SEGMENT@62..65 |
57 | NAME_REF@[62; 65) | 57 | NAME_REF@62..65 |
58 | IDENT@[62; 65) "i64" | 58 | IDENT@62..65 "i64" |
59 | WHITESPACE@[65; 66) " " | 59 | WHITESPACE@65..66 " " |
60 | BLOCK_EXPR@[66; 68) | 60 | BLOCK_EXPR@66..68 |
61 | BLOCK@[66; 68) | 61 | BLOCK@66..68 |
62 | L_CURLY@[66; 67) "{" | 62 | L_CURLY@66..67 "{" |
63 | R_CURLY@[67; 68) "}" | 63 | R_CURLY@67..68 "}" |
64 | WHITESPACE@[68; 69) "\n" | 64 | WHITESPACE@68..69 "\n" |
65 | R_CURLY@[69; 70) "}" | 65 | R_CURLY@69..70 "}" |
66 | WHITESPACE@[70; 71) "\n" | 66 | WHITESPACE@70..71 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast index 2c07bde43..342fe23f5 100644 --- a/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast +++ b/crates/ra_syntax/test_data/parser/ok/0057_loop_in_call.rast | |||
@@ -1,59 +1,59 @@ | |||
1 | SOURCE_FILE@[0; 50) | 1 | SOURCE_FILE@0..50 |
2 | FN_DEF@[0; 17) | 2 | FN_DEF@0..17 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 14) | 7 | PARAM_LIST@6..14 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | PARAM@[7; 13) | 9 | PARAM@7..13 |
10 | BIND_PAT@[7; 8) | 10 | BIND_PAT@7..8 |
11 | NAME@[7; 8) | 11 | NAME@7..8 |
12 | IDENT@[7; 8) "x" | 12 | IDENT@7..8 "x" |
13 | COLON@[8; 9) ":" | 13 | COLON@8..9 ":" |
14 | WHITESPACE@[9; 10) " " | 14 | WHITESPACE@9..10 " " |
15 | PATH_TYPE@[10; 13) | 15 | PATH_TYPE@10..13 |
16 | PATH@[10; 13) | 16 | PATH@10..13 |
17 | PATH_SEGMENT@[10; 13) | 17 | PATH_SEGMENT@10..13 |
18 | NAME_REF@[10; 13) | 18 | NAME_REF@10..13 |
19 | IDENT@[10; 13) "i32" | 19 | IDENT@10..13 "i32" |
20 | R_PAREN@[13; 14) ")" | 20 | R_PAREN@13..14 ")" |
21 | WHITESPACE@[14; 15) " " | 21 | WHITESPACE@14..15 " " |
22 | BLOCK_EXPR@[15; 17) | 22 | BLOCK_EXPR@15..17 |
23 | BLOCK@[15; 17) | 23 | BLOCK@15..17 |
24 | L_CURLY@[15; 16) "{" | 24 | L_CURLY@15..16 "{" |
25 | R_CURLY@[16; 17) "}" | 25 | R_CURLY@16..17 "}" |
26 | WHITESPACE@[17; 19) "\n\n" | 26 | WHITESPACE@17..19 "\n\n" |
27 | FN_DEF@[19; 50) | 27 | FN_DEF@19..50 |
28 | FN_KW@[19; 21) "fn" | 28 | FN_KW@19..21 "fn" |
29 | WHITESPACE@[21; 22) " " | 29 | WHITESPACE@21..22 " " |
30 | NAME@[22; 26) | 30 | NAME@22..26 |
31 | IDENT@[22; 26) "main" | 31 | IDENT@22..26 "main" |
32 | PARAM_LIST@[26; 28) | 32 | PARAM_LIST@26..28 |
33 | L_PAREN@[26; 27) "(" | 33 | L_PAREN@26..27 "(" |
34 | R_PAREN@[27; 28) ")" | 34 | R_PAREN@27..28 ")" |
35 | WHITESPACE@[28; 29) " " | 35 | WHITESPACE@28..29 " " |
36 | BLOCK_EXPR@[29; 50) | 36 | BLOCK_EXPR@29..50 |
37 | BLOCK@[29; 50) | 37 | BLOCK@29..50 |
38 | L_CURLY@[29; 30) "{" | 38 | L_CURLY@29..30 "{" |
39 | WHITESPACE@[30; 35) "\n " | 39 | WHITESPACE@30..35 "\n " |
40 | EXPR_STMT@[35; 48) | 40 | EXPR_STMT@35..48 |
41 | CALL_EXPR@[35; 47) | 41 | CALL_EXPR@35..47 |
42 | PATH_EXPR@[35; 38) | 42 | PATH_EXPR@35..38 |
43 | PATH@[35; 38) | 43 | PATH@35..38 |
44 | PATH_SEGMENT@[35; 38) | 44 | PATH_SEGMENT@35..38 |
45 | NAME_REF@[35; 38) | 45 | NAME_REF@35..38 |
46 | IDENT@[35; 38) "foo" | 46 | IDENT@35..38 "foo" |
47 | ARG_LIST@[38; 47) | 47 | ARG_LIST@38..47 |
48 | L_PAREN@[38; 39) "(" | 48 | L_PAREN@38..39 "(" |
49 | LOOP_EXPR@[39; 46) | 49 | LOOP_EXPR@39..46 |
50 | LOOP_KW@[39; 43) "loop" | 50 | LOOP_KW@39..43 "loop" |
51 | WHITESPACE@[43; 44) " " | 51 | WHITESPACE@43..44 " " |
52 | BLOCK_EXPR@[44; 46) | 52 | BLOCK_EXPR@44..46 |
53 | BLOCK@[44; 46) | 53 | BLOCK@44..46 |
54 | L_CURLY@[44; 45) "{" | 54 | L_CURLY@44..45 "{" |
55 | R_CURLY@[45; 46) "}" | 55 | R_CURLY@45..46 "}" |
56 | R_PAREN@[46; 47) ")" | 56 | R_PAREN@46..47 ")" |
57 | SEMICOLON@[47; 48) ";" | 57 | SEMICOLON@47..48 ";" |
58 | WHITESPACE@[48; 49) "\n" | 58 | WHITESPACE@48..49 "\n" |
59 | R_CURLY@[49; 50) "}" | 59 | R_CURLY@49..50 "}" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast index 9de9efbad..360b6e044 100644 --- a/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast +++ b/crates/ra_syntax/test_data/parser/ok/0058_unary_expr_precedence.rast | |||
@@ -1,97 +1,97 @@ | |||
1 | SOURCE_FILE@[0; 79) | 1 | SOURCE_FILE@0..79 |
2 | FN_DEF@[0; 78) | 2 | FN_DEF@0..78 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 6) | 5 | NAME@3..6 |
6 | IDENT@[3; 6) "foo" | 6 | IDENT@3..6 "foo" |
7 | PARAM_LIST@[6; 8) | 7 | PARAM_LIST@6..8 |
8 | L_PAREN@[6; 7) "(" | 8 | L_PAREN@6..7 "(" |
9 | R_PAREN@[7; 8) ")" | 9 | R_PAREN@7..8 ")" |
10 | WHITESPACE@[8; 9) " " | 10 | WHITESPACE@8..9 " " |
11 | BLOCK_EXPR@[9; 78) | 11 | BLOCK_EXPR@9..78 |
12 | BLOCK@[9; 78) | 12 | BLOCK@9..78 |
13 | L_CURLY@[9; 10) "{" | 13 | L_CURLY@9..10 "{" |
14 | WHITESPACE@[10; 15) "\n " | 14 | WHITESPACE@10..15 "\n " |
15 | EXPR_STMT@[15; 27) | 15 | EXPR_STMT@15..27 |
16 | BIN_EXPR@[15; 26) | 16 | BIN_EXPR@15..26 |
17 | BIN_EXPR@[15; 22) | 17 | BIN_EXPR@15..22 |
18 | LITERAL@[15; 16) | 18 | LITERAL@15..16 |
19 | INT_NUMBER@[15; 16) "1" | 19 | INT_NUMBER@15..16 "1" |
20 | WHITESPACE@[16; 17) " " | 20 | WHITESPACE@16..17 " " |
21 | PLUS@[17; 18) "+" | 21 | PLUS@17..18 "+" |
22 | WHITESPACE@[18; 19) " " | 22 | WHITESPACE@18..19 " " |
23 | PREFIX_EXPR@[19; 22) | 23 | PREFIX_EXPR@19..22 |
24 | STAR@[19; 20) "*" | 24 | STAR@19..20 "*" |
25 | REF_EXPR@[20; 22) | 25 | REF_EXPR@20..22 |
26 | AMP@[20; 21) "&" | 26 | AMP@20..21 "&" |
27 | LITERAL@[21; 22) | 27 | LITERAL@21..22 |
28 | INT_NUMBER@[21; 22) "2" | 28 | INT_NUMBER@21..22 "2" |
29 | WHITESPACE@[22; 23) " " | 29 | WHITESPACE@22..23 " " |
30 | PLUS@[23; 24) "+" | 30 | PLUS@23..24 "+" |
31 | WHITESPACE@[24; 25) " " | 31 | WHITESPACE@24..25 " " |
32 | LITERAL@[25; 26) | 32 | LITERAL@25..26 |
33 | INT_NUMBER@[25; 26) "3" | 33 | INT_NUMBER@25..26 "3" |
34 | SEMICOLON@[26; 27) ";" | 34 | SEMICOLON@26..27 ";" |
35 | WHITESPACE@[27; 32) "\n " | 35 | WHITESPACE@27..32 "\n " |
36 | EXPR_STMT@[32; 43) | 36 | EXPR_STMT@32..43 |
37 | CAST_EXPR@[32; 42) | 37 | CAST_EXPR@32..42 |
38 | PREFIX_EXPR@[32; 35) | 38 | PREFIX_EXPR@32..35 |
39 | STAR@[32; 33) "*" | 39 | STAR@32..33 "*" |
40 | REF_EXPR@[33; 35) | 40 | REF_EXPR@33..35 |
41 | AMP@[33; 34) "&" | 41 | AMP@33..34 "&" |
42 | LITERAL@[34; 35) | 42 | LITERAL@34..35 |
43 | INT_NUMBER@[34; 35) "1" | 43 | INT_NUMBER@34..35 "1" |
44 | WHITESPACE@[35; 36) " " | 44 | WHITESPACE@35..36 " " |
45 | AS_KW@[36; 38) "as" | 45 | AS_KW@36..38 "as" |
46 | WHITESPACE@[38; 39) " " | 46 | WHITESPACE@38..39 " " |
47 | PATH_TYPE@[39; 42) | 47 | PATH_TYPE@39..42 |
48 | PATH@[39; 42) | 48 | PATH@39..42 |
49 | PATH_SEGMENT@[39; 42) | 49 | PATH_SEGMENT@39..42 |
50 | NAME_REF@[39; 42) | 50 | NAME_REF@39..42 |
51 | IDENT@[39; 42) "u64" | 51 | IDENT@39..42 "u64" |
52 | SEMICOLON@[42; 43) ";" | 52 | SEMICOLON@42..43 ";" |
53 | WHITESPACE@[43; 48) "\n " | 53 | WHITESPACE@43..48 "\n " |
54 | EXPR_STMT@[48; 54) | 54 | EXPR_STMT@48..54 |
55 | PREFIX_EXPR@[48; 53) | 55 | PREFIX_EXPR@48..53 |
56 | STAR@[48; 49) "*" | 56 | STAR@48..49 "*" |
57 | CALL_EXPR@[49; 53) | 57 | CALL_EXPR@49..53 |
58 | PATH_EXPR@[49; 50) | 58 | PATH_EXPR@49..50 |
59 | PATH@[49; 50) | 59 | PATH@49..50 |
60 | PATH_SEGMENT@[49; 50) | 60 | PATH_SEGMENT@49..50 |
61 | NAME_REF@[49; 50) | 61 | NAME_REF@49..50 |
62 | IDENT@[49; 50) "x" | 62 | IDENT@49..50 "x" |
63 | ARG_LIST@[50; 53) | 63 | ARG_LIST@50..53 |
64 | L_PAREN@[50; 51) "(" | 64 | L_PAREN@50..51 "(" |
65 | LITERAL@[51; 52) | 65 | LITERAL@51..52 |
66 | INT_NUMBER@[51; 52) "1" | 66 | INT_NUMBER@51..52 "1" |
67 | R_PAREN@[52; 53) ")" | 67 | R_PAREN@52..53 ")" |
68 | SEMICOLON@[53; 54) ";" | 68 | SEMICOLON@53..54 ";" |
69 | WHITESPACE@[54; 59) "\n " | 69 | WHITESPACE@54..59 "\n " |
70 | EXPR_STMT@[59; 65) | 70 | EXPR_STMT@59..65 |
71 | REF_EXPR@[59; 64) | 71 | REF_EXPR@59..64 |
72 | AMP@[59; 60) "&" | 72 | AMP@59..60 "&" |
73 | INDEX_EXPR@[60; 64) | 73 | INDEX_EXPR@60..64 |
74 | PATH_EXPR@[60; 61) | 74 | PATH_EXPR@60..61 |
75 | PATH@[60; 61) | 75 | PATH@60..61 |
76 | PATH_SEGMENT@[60; 61) | 76 | PATH_SEGMENT@60..61 |
77 | NAME_REF@[60; 61) | 77 | NAME_REF@60..61 |
78 | IDENT@[60; 61) "x" | 78 | IDENT@60..61 "x" |
79 | L_BRACK@[61; 62) "[" | 79 | L_BRACK@61..62 "[" |
80 | LITERAL@[62; 63) | 80 | LITERAL@62..63 |
81 | INT_NUMBER@[62; 63) "1" | 81 | INT_NUMBER@62..63 "1" |
82 | R_BRACK@[63; 64) "]" | 82 | R_BRACK@63..64 "]" |
83 | SEMICOLON@[64; 65) ";" | 83 | SEMICOLON@64..65 ";" |
84 | WHITESPACE@[65; 70) "\n " | 84 | WHITESPACE@65..70 "\n " |
85 | EXPR_STMT@[70; 76) | 85 | EXPR_STMT@70..76 |
86 | RANGE_EXPR@[70; 75) | 86 | RANGE_EXPR@70..75 |
87 | PREFIX_EXPR@[70; 72) | 87 | PREFIX_EXPR@70..72 |
88 | MINUS@[70; 71) "-" | 88 | MINUS@70..71 "-" |
89 | LITERAL@[71; 72) | 89 | LITERAL@71..72 |
90 | INT_NUMBER@[71; 72) "1" | 90 | INT_NUMBER@71..72 "1" |
91 | DOT2@[72; 74) ".." | 91 | DOT2@72..74 ".." |
92 | LITERAL@[74; 75) | 92 | LITERAL@74..75 |
93 | INT_NUMBER@[74; 75) "2" | 93 | INT_NUMBER@74..75 "2" |
94 | SEMICOLON@[75; 76) ";" | 94 | SEMICOLON@75..76 ";" |
95 | WHITESPACE@[76; 77) "\n" | 95 | WHITESPACE@76..77 "\n" |
96 | R_CURLY@[77; 78) "}" | 96 | R_CURLY@77..78 "}" |
97 | WHITESPACE@[78; 79) "\n" | 97 | WHITESPACE@78..79 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast index 101478ce1..225b1d0b6 100644 --- a/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast +++ b/crates/ra_syntax/test_data/parser/ok/0059_loops_in_parens.rast | |||
@@ -1,101 +1,101 @@ | |||
1 | SOURCE_FILE@[0; 105) | 1 | SOURCE_FILE@0..105 |
2 | FN_DEF@[0; 104) | 2 | FN_DEF@0..104 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 104) | 11 | BLOCK_EXPR@10..104 |
12 | BLOCK@[10; 104) | 12 | BLOCK@10..104 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 50) | 15 | EXPR_STMT@16..50 |
16 | CALL_EXPR@[16; 49) | 16 | CALL_EXPR@16..49 |
17 | PATH_EXPR@[16; 20) | 17 | PATH_EXPR@16..20 |
18 | PATH@[16; 20) | 18 | PATH@16..20 |
19 | PATH_SEGMENT@[16; 20) | 19 | PATH_SEGMENT@16..20 |
20 | NAME_REF@[16; 20) | 20 | NAME_REF@16..20 |
21 | IDENT@[16; 20) "Some" | 21 | IDENT@16..20 "Some" |
22 | ARG_LIST@[20; 49) | 22 | ARG_LIST@20..49 |
23 | L_PAREN@[20; 21) "(" | 23 | L_PAREN@20..21 "(" |
24 | FOR_EXPR@[21; 48) | 24 | FOR_EXPR@21..48 |
25 | FOR_KW@[21; 24) "for" | 25 | FOR_KW@21..24 "for" |
26 | WHITESPACE@[24; 25) " " | 26 | WHITESPACE@24..25 " " |
27 | PLACEHOLDER_PAT@[25; 26) | 27 | PLACEHOLDER_PAT@25..26 |
28 | UNDERSCORE@[25; 26) "_" | 28 | UNDERSCORE@25..26 "_" |
29 | WHITESPACE@[26; 27) " " | 29 | WHITESPACE@26..27 " " |
30 | IN_KW@[27; 29) "in" | 30 | IN_KW@27..29 "in" |
31 | WHITESPACE@[29; 30) " " | 31 | WHITESPACE@29..30 " " |
32 | METHOD_CALL_EXPR@[30; 45) | 32 | METHOD_CALL_EXPR@30..45 |
33 | ARRAY_EXPR@[30; 33) | 33 | ARRAY_EXPR@30..33 |
34 | L_BRACK@[30; 31) "[" | 34 | L_BRACK@30..31 "[" |
35 | LITERAL@[31; 32) | 35 | LITERAL@31..32 |
36 | INT_NUMBER@[31; 32) "1" | 36 | INT_NUMBER@31..32 "1" |
37 | R_BRACK@[32; 33) "]" | 37 | R_BRACK@32..33 "]" |
38 | DOT@[33; 34) "." | 38 | DOT@33..34 "." |
39 | NAME_REF@[34; 43) | 39 | NAME_REF@34..43 |
40 | IDENT@[34; 43) "into_iter" | 40 | IDENT@34..43 "into_iter" |
41 | ARG_LIST@[43; 45) | 41 | ARG_LIST@43..45 |
42 | L_PAREN@[43; 44) "(" | 42 | L_PAREN@43..44 "(" |
43 | R_PAREN@[44; 45) ")" | 43 | R_PAREN@44..45 ")" |
44 | WHITESPACE@[45; 46) " " | 44 | WHITESPACE@45..46 " " |
45 | BLOCK_EXPR@[46; 48) | 45 | BLOCK_EXPR@46..48 |
46 | BLOCK@[46; 48) | 46 | BLOCK@46..48 |
47 | L_CURLY@[46; 47) "{" | 47 | L_CURLY@46..47 "{" |
48 | R_CURLY@[47; 48) "}" | 48 | R_CURLY@47..48 "}" |
49 | R_PAREN@[48; 49) ")" | 49 | R_PAREN@48..49 ")" |
50 | SEMICOLON@[49; 50) ";" | 50 | SEMICOLON@49..50 ";" |
51 | WHITESPACE@[50; 55) "\n " | 51 | WHITESPACE@50..55 "\n " |
52 | EXPR_STMT@[55; 77) | 52 | EXPR_STMT@55..77 |
53 | CALL_EXPR@[55; 76) | 53 | CALL_EXPR@55..76 |
54 | PATH_EXPR@[55; 59) | 54 | PATH_EXPR@55..59 |
55 | PATH@[55; 59) | 55 | PATH@55..59 |
56 | PATH_SEGMENT@[55; 59) | 56 | PATH_SEGMENT@55..59 |
57 | NAME_REF@[55; 59) | 57 | NAME_REF@55..59 |
58 | IDENT@[55; 59) "Some" | 58 | IDENT@55..59 "Some" |
59 | ARG_LIST@[59; 76) | 59 | ARG_LIST@59..76 |
60 | L_PAREN@[59; 60) "(" | 60 | L_PAREN@59..60 "(" |
61 | LOOP_EXPR@[60; 75) | 61 | LOOP_EXPR@60..75 |
62 | LOOP_KW@[60; 64) "loop" | 62 | LOOP_KW@60..64 "loop" |
63 | WHITESPACE@[64; 65) " " | 63 | WHITESPACE@64..65 " " |
64 | BLOCK_EXPR@[65; 75) | 64 | BLOCK_EXPR@65..75 |
65 | BLOCK@[65; 75) | 65 | BLOCK@65..75 |
66 | L_CURLY@[65; 66) "{" | 66 | L_CURLY@65..66 "{" |
67 | WHITESPACE@[66; 67) " " | 67 | WHITESPACE@66..67 " " |
68 | EXPR_STMT@[67; 73) | 68 | EXPR_STMT@67..73 |
69 | BREAK_EXPR@[67; 72) | 69 | BREAK_EXPR@67..72 |
70 | BREAK_KW@[67; 72) "break" | 70 | BREAK_KW@67..72 "break" |
71 | SEMICOLON@[72; 73) ";" | 71 | SEMICOLON@72..73 ";" |
72 | WHITESPACE@[73; 74) " " | 72 | WHITESPACE@73..74 " " |
73 | R_CURLY@[74; 75) "}" | 73 | R_CURLY@74..75 "}" |
74 | R_PAREN@[75; 76) ")" | 74 | R_PAREN@75..76 ")" |
75 | SEMICOLON@[76; 77) ";" | 75 | SEMICOLON@76..77 ";" |
76 | WHITESPACE@[77; 82) "\n " | 76 | WHITESPACE@77..82 "\n " |
77 | EXPR_STMT@[82; 102) | 77 | EXPR_STMT@82..102 |
78 | CALL_EXPR@[82; 101) | 78 | CALL_EXPR@82..101 |
79 | PATH_EXPR@[82; 86) | 79 | PATH_EXPR@82..86 |
80 | PATH@[82; 86) | 80 | PATH@82..86 |
81 | PATH_SEGMENT@[82; 86) | 81 | PATH_SEGMENT@82..86 |
82 | NAME_REF@[82; 86) | 82 | NAME_REF@82..86 |
83 | IDENT@[82; 86) "Some" | 83 | IDENT@82..86 "Some" |
84 | ARG_LIST@[86; 101) | 84 | ARG_LIST@86..101 |
85 | L_PAREN@[86; 87) "(" | 85 | L_PAREN@86..87 "(" |
86 | WHILE_EXPR@[87; 100) | 86 | WHILE_EXPR@87..100 |
87 | WHILE_KW@[87; 92) "while" | 87 | WHILE_KW@87..92 "while" |
88 | WHITESPACE@[92; 93) " " | 88 | WHITESPACE@92..93 " " |
89 | CONDITION@[93; 97) | 89 | CONDITION@93..97 |
90 | LITERAL@[93; 97) | 90 | LITERAL@93..97 |
91 | TRUE_KW@[93; 97) "true" | 91 | TRUE_KW@93..97 "true" |
92 | WHITESPACE@[97; 98) " " | 92 | WHITESPACE@97..98 " " |
93 | BLOCK_EXPR@[98; 100) | 93 | BLOCK_EXPR@98..100 |
94 | BLOCK@[98; 100) | 94 | BLOCK@98..100 |
95 | L_CURLY@[98; 99) "{" | 95 | L_CURLY@98..99 "{" |
96 | R_CURLY@[99; 100) "}" | 96 | R_CURLY@99..100 "}" |
97 | R_PAREN@[100; 101) ")" | 97 | R_PAREN@100..101 ")" |
98 | SEMICOLON@[101; 102) ";" | 98 | SEMICOLON@101..102 ";" |
99 | WHITESPACE@[102; 103) "\n" | 99 | WHITESPACE@102..103 "\n" |
100 | R_CURLY@[103; 104) "}" | 100 | R_CURLY@103..104 "}" |
101 | WHITESPACE@[104; 105) "\n" | 101 | WHITESPACE@104..105 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast index 6bff57505..a52a08ed0 100644 --- a/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast +++ b/crates/ra_syntax/test_data/parser/ok/0060_as_range.rast | |||
@@ -1,56 +1,56 @@ | |||
1 | SOURCE_FILE@[0; 56) | 1 | SOURCE_FILE@0..56 |
2 | FN_DEF@[0; 55) | 2 | FN_DEF@0..55 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 55) | 11 | BLOCK_EXPR@10..55 |
12 | BLOCK@[10; 55) | 12 | BLOCK@10..55 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | EXPR_STMT@[16; 30) | 15 | EXPR_STMT@16..30 |
16 | RANGE_EXPR@[16; 29) | 16 | RANGE_EXPR@16..29 |
17 | CAST_EXPR@[16; 26) | 17 | CAST_EXPR@16..26 |
18 | LITERAL@[16; 17) | 18 | LITERAL@16..17 |
19 | INT_NUMBER@[16; 17) "0" | 19 | INT_NUMBER@16..17 "0" |
20 | WHITESPACE@[17; 18) " " | 20 | WHITESPACE@17..18 " " |
21 | AS_KW@[18; 20) "as" | 21 | AS_KW@18..20 "as" |
22 | WHITESPACE@[20; 21) " " | 22 | WHITESPACE@20..21 " " |
23 | PATH_TYPE@[21; 26) | 23 | PATH_TYPE@21..26 |
24 | PATH@[21; 26) | 24 | PATH@21..26 |
25 | PATH_SEGMENT@[21; 26) | 25 | PATH_SEGMENT@21..26 |
26 | NAME_REF@[21; 26) | 26 | NAME_REF@21..26 |
27 | IDENT@[21; 26) "usize" | 27 | IDENT@21..26 "usize" |
28 | WHITESPACE@[26; 27) " " | 28 | WHITESPACE@26..27 " " |
29 | DOT2@[27; 29) ".." | 29 | DOT2@27..29 ".." |
30 | SEMICOLON@[29; 30) ";" | 30 | SEMICOLON@29..30 ";" |
31 | WHITESPACE@[30; 35) "\n " | 31 | WHITESPACE@30..35 "\n " |
32 | EXPR_STMT@[35; 53) | 32 | EXPR_STMT@35..53 |
33 | RANGE_EXPR@[35; 52) | 33 | RANGE_EXPR@35..52 |
34 | BIN_EXPR@[35; 49) | 34 | BIN_EXPR@35..49 |
35 | LITERAL@[35; 36) | 35 | LITERAL@35..36 |
36 | INT_NUMBER@[35; 36) "1" | 36 | INT_NUMBER@35..36 "1" |
37 | WHITESPACE@[36; 37) " " | 37 | WHITESPACE@36..37 " " |
38 | PLUS@[37; 38) "+" | 38 | PLUS@37..38 "+" |
39 | WHITESPACE@[38; 39) " " | 39 | WHITESPACE@38..39 " " |
40 | CAST_EXPR@[39; 49) | 40 | CAST_EXPR@39..49 |
41 | LITERAL@[39; 40) | 41 | LITERAL@39..40 |
42 | INT_NUMBER@[39; 40) "2" | 42 | INT_NUMBER@39..40 "2" |
43 | WHITESPACE@[40; 41) " " | 43 | WHITESPACE@40..41 " " |
44 | AS_KW@[41; 43) "as" | 44 | AS_KW@41..43 "as" |
45 | WHITESPACE@[43; 44) " " | 45 | WHITESPACE@43..44 " " |
46 | PATH_TYPE@[44; 49) | 46 | PATH_TYPE@44..49 |
47 | PATH@[44; 49) | 47 | PATH@44..49 |
48 | PATH_SEGMENT@[44; 49) | 48 | PATH_SEGMENT@44..49 |
49 | NAME_REF@[44; 49) | 49 | NAME_REF@44..49 |
50 | IDENT@[44; 49) "usize" | 50 | IDENT@44..49 "usize" |
51 | WHITESPACE@[49; 50) " " | 51 | WHITESPACE@49..50 " " |
52 | DOT2@[50; 52) ".." | 52 | DOT2@50..52 ".." |
53 | SEMICOLON@[52; 53) ";" | 53 | SEMICOLON@52..53 ";" |
54 | WHITESPACE@[53; 54) "\n" | 54 | WHITESPACE@53..54 "\n" |
55 | R_CURLY@[54; 55) "}" | 55 | R_CURLY@54..55 "}" |
56 | WHITESPACE@[55; 56) "\n" | 56 | WHITESPACE@55..56 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast index be6774199..b8974c942 100644 --- a/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast +++ b/crates/ra_syntax/test_data/parser/ok/0061_match_full_range.rast | |||
@@ -1,27 +1,27 @@ | |||
1 | SOURCE_FILE@[0; 35) | 1 | SOURCE_FILE@0..35 |
2 | FN_DEF@[0; 34) | 2 | FN_DEF@0..34 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 7) | 5 | NAME@3..7 |
6 | IDENT@[3; 7) "main" | 6 | IDENT@3..7 "main" |
7 | PARAM_LIST@[7; 9) | 7 | PARAM_LIST@7..9 |
8 | L_PAREN@[7; 8) "(" | 8 | L_PAREN@7..8 "(" |
9 | R_PAREN@[8; 9) ")" | 9 | R_PAREN@8..9 ")" |
10 | WHITESPACE@[9; 10) " " | 10 | WHITESPACE@9..10 " " |
11 | BLOCK_EXPR@[10; 34) | 11 | BLOCK_EXPR@10..34 |
12 | BLOCK@[10; 34) | 12 | BLOCK@10..34 |
13 | L_CURLY@[10; 11) "{" | 13 | L_CURLY@10..11 "{" |
14 | WHITESPACE@[11; 16) "\n " | 14 | WHITESPACE@11..16 "\n " |
15 | MATCH_EXPR@[16; 32) | 15 | MATCH_EXPR@16..32 |
16 | MATCH_KW@[16; 21) "match" | 16 | MATCH_KW@16..21 "match" |
17 | WHITESPACE@[21; 22) " " | 17 | WHITESPACE@21..22 " " |
18 | RANGE_EXPR@[22; 24) | 18 | RANGE_EXPR@22..24 |
19 | DOT2@[22; 24) ".." | 19 | DOT2@22..24 ".." |
20 | WHITESPACE@[24; 25) " " | 20 | WHITESPACE@24..25 " " |
21 | MATCH_ARM_LIST@[25; 32) | 21 | MATCH_ARM_LIST@25..32 |
22 | L_CURLY@[25; 26) "{" | 22 | L_CURLY@25..26 "{" |
23 | WHITESPACE@[26; 31) "\n " | 23 | WHITESPACE@26..31 "\n " |
24 | R_CURLY@[31; 32) "}" | 24 | R_CURLY@31..32 "}" |
25 | WHITESPACE@[32; 33) "\n" | 25 | WHITESPACE@32..33 "\n" |
26 | R_CURLY@[33; 34) "}" | 26 | R_CURLY@33..34 "}" |
27 | WHITESPACE@[34; 35) "\n" | 27 | WHITESPACE@34..35 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast index f89d7c0d9..46f370eec 100644 --- a/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast +++ b/crates/ra_syntax/test_data/parser/ok/0062_macro_2.0.rast | |||
@@ -1,176 +1,176 @@ | |||
1 | SOURCE_FILE@[0; 349) | 1 | SOURCE_FILE@0..349 |
2 | MACRO_DEF@[0; 93) | 2 | MACRO_DEF@0..93 |
3 | MACRO_KW@[0; 5) "macro" | 3 | MACRO_KW@0..5 "macro" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 21) | 5 | NAME@6..21 |
6 | IDENT@[6; 21) "parse_use_trees" | 6 | IDENT@6..21 "parse_use_trees" |
7 | TOKEN_TREE@[21; 93) | 7 | TOKEN_TREE@21..93 |
8 | TOKEN_TREE@[21; 41) | 8 | TOKEN_TREE@21..41 |
9 | L_PAREN@[21; 22) "(" | 9 | L_PAREN@21..22 "(" |
10 | DOLLAR@[22; 23) "$" | 10 | DOLLAR@22..23 "$" |
11 | TOKEN_TREE@[23; 32) | 11 | TOKEN_TREE@23..32 |
12 | L_PAREN@[23; 24) "(" | 12 | L_PAREN@23..24 "(" |
13 | DOLLAR@[24; 25) "$" | 13 | DOLLAR@24..25 "$" |
14 | IDENT@[25; 26) "s" | 14 | IDENT@25..26 "s" |
15 | COLON@[26; 27) ":" | 15 | COLON@26..27 ":" |
16 | IDENT@[27; 31) "expr" | 16 | IDENT@27..31 "expr" |
17 | R_PAREN@[31; 32) ")" | 17 | R_PAREN@31..32 ")" |
18 | COMMA@[32; 33) "," | 18 | COMMA@32..33 "," |
19 | STAR@[33; 34) "*" | 19 | STAR@33..34 "*" |
20 | WHITESPACE@[34; 35) " " | 20 | WHITESPACE@34..35 " " |
21 | DOLLAR@[35; 36) "$" | 21 | DOLLAR@35..36 "$" |
22 | TOKEN_TREE@[36; 39) | 22 | TOKEN_TREE@36..39 |
23 | L_PAREN@[36; 37) "(" | 23 | L_PAREN@36..37 "(" |
24 | COMMA@[37; 38) "," | 24 | COMMA@37..38 "," |
25 | R_PAREN@[38; 39) ")" | 25 | R_PAREN@38..39 ")" |
26 | STAR@[39; 40) "*" | 26 | STAR@39..40 "*" |
27 | R_PAREN@[40; 41) ")" | 27 | R_PAREN@40..41 ")" |
28 | WHITESPACE@[41; 42) " " | 28 | WHITESPACE@41..42 " " |
29 | TOKEN_TREE@[42; 93) | 29 | TOKEN_TREE@42..93 |
30 | L_CURLY@[42; 43) "{" | 30 | L_CURLY@42..43 "{" |
31 | WHITESPACE@[43; 48) "\n " | 31 | WHITESPACE@43..48 "\n " |
32 | IDENT@[48; 51) "vec" | 32 | IDENT@48..51 "vec" |
33 | BANG@[51; 52) "!" | 33 | BANG@51..52 "!" |
34 | TOKEN_TREE@[52; 91) | 34 | TOKEN_TREE@52..91 |
35 | L_BRACK@[52; 53) "[" | 35 | L_BRACK@52..53 "[" |
36 | WHITESPACE@[53; 62) "\n " | 36 | WHITESPACE@53..62 "\n " |
37 | DOLLAR@[62; 63) "$" | 37 | DOLLAR@62..63 "$" |
38 | TOKEN_TREE@[63; 84) | 38 | TOKEN_TREE@63..84 |
39 | L_PAREN@[63; 64) "(" | 39 | L_PAREN@63..64 "(" |
40 | IDENT@[64; 78) "parse_use_tree" | 40 | IDENT@64..78 "parse_use_tree" |
41 | TOKEN_TREE@[78; 82) | 41 | TOKEN_TREE@78..82 |
42 | L_PAREN@[78; 79) "(" | 42 | L_PAREN@78..79 "(" |
43 | DOLLAR@[79; 80) "$" | 43 | DOLLAR@79..80 "$" |
44 | IDENT@[80; 81) "s" | 44 | IDENT@80..81 "s" |
45 | R_PAREN@[81; 82) ")" | 45 | R_PAREN@81..82 ")" |
46 | COMMA@[82; 83) "," | 46 | COMMA@82..83 "," |
47 | R_PAREN@[83; 84) ")" | 47 | R_PAREN@83..84 ")" |
48 | STAR@[84; 85) "*" | 48 | STAR@84..85 "*" |
49 | WHITESPACE@[85; 90) "\n " | 49 | WHITESPACE@85..90 "\n " |
50 | R_BRACK@[90; 91) "]" | 50 | R_BRACK@90..91 "]" |
51 | WHITESPACE@[91; 92) "\n" | 51 | WHITESPACE@91..92 "\n" |
52 | R_CURLY@[92; 93) "}" | 52 | R_CURLY@92..93 "}" |
53 | WHITESPACE@[93; 95) "\n\n" | 53 | WHITESPACE@93..95 "\n\n" |
54 | FN_DEF@[95; 348) | 54 | FN_DEF@95..348 |
55 | ATTR@[95; 102) | 55 | ATTR@95..102 |
56 | POUND@[95; 96) "#" | 56 | POUND@95..96 "#" |
57 | L_BRACK@[96; 97) "[" | 57 | L_BRACK@96..97 "[" |
58 | PATH@[97; 101) | 58 | PATH@97..101 |
59 | PATH_SEGMENT@[97; 101) | 59 | PATH_SEGMENT@97..101 |
60 | NAME_REF@[97; 101) | 60 | NAME_REF@97..101 |
61 | IDENT@[97; 101) "test" | 61 | IDENT@97..101 "test" |
62 | R_BRACK@[101; 102) "]" | 62 | R_BRACK@101..102 "]" |
63 | WHITESPACE@[102; 103) "\n" | 63 | WHITESPACE@102..103 "\n" |
64 | FN_KW@[103; 105) "fn" | 64 | FN_KW@103..105 "fn" |
65 | WHITESPACE@[105; 106) " " | 65 | WHITESPACE@105..106 " " |
66 | NAME@[106; 125) | 66 | NAME@106..125 |
67 | IDENT@[106; 125) "test_use_tree_merge" | 67 | IDENT@106..125 "test_use_tree_merge" |
68 | PARAM_LIST@[125; 127) | 68 | PARAM_LIST@125..127 |
69 | L_PAREN@[125; 126) "(" | 69 | L_PAREN@125..126 "(" |
70 | R_PAREN@[126; 127) ")" | 70 | R_PAREN@126..127 ")" |
71 | WHITESPACE@[127; 128) " " | 71 | WHITESPACE@127..128 " " |
72 | BLOCK_EXPR@[128; 348) | 72 | BLOCK_EXPR@128..348 |
73 | BLOCK@[128; 348) | 73 | BLOCK@128..348 |
74 | L_CURLY@[128; 129) "{" | 74 | L_CURLY@128..129 "{" |
75 | WHITESPACE@[129; 134) "\n " | 75 | WHITESPACE@129..134 "\n " |
76 | MACRO_DEF@[134; 346) | 76 | MACRO_DEF@134..346 |
77 | MACRO_KW@[134; 139) "macro" | 77 | MACRO_KW@134..139 "macro" |
78 | WHITESPACE@[139; 140) " " | 78 | WHITESPACE@139..140 " " |
79 | NAME@[140; 150) | 79 | NAME@140..150 |
80 | IDENT@[140; 150) "test_merge" | 80 | IDENT@140..150 "test_merge" |
81 | TOKEN_TREE@[150; 346) | 81 | TOKEN_TREE@150..346 |
82 | TOKEN_TREE@[150; 203) | 82 | TOKEN_TREE@150..203 |
83 | L_PAREN@[150; 151) "(" | 83 | L_PAREN@150..151 "(" |
84 | TOKEN_TREE@[151; 175) | 84 | TOKEN_TREE@151..175 |
85 | L_BRACK@[151; 152) "[" | 85 | L_BRACK@151..152 "[" |
86 | DOLLAR@[152; 153) "$" | 86 | DOLLAR@152..153 "$" |
87 | TOKEN_TREE@[153; 166) | 87 | TOKEN_TREE@153..166 |
88 | L_PAREN@[153; 154) "(" | 88 | L_PAREN@153..154 "(" |
89 | DOLLAR@[154; 155) "$" | 89 | DOLLAR@154..155 "$" |
90 | IDENT@[155; 160) "input" | 90 | IDENT@155..160 "input" |
91 | COLON@[160; 161) ":" | 91 | COLON@160..161 ":" |
92 | IDENT@[161; 165) "expr" | 92 | IDENT@161..165 "expr" |
93 | R_PAREN@[165; 166) ")" | 93 | R_PAREN@165..166 ")" |
94 | COMMA@[166; 167) "," | 94 | COMMA@166..167 "," |
95 | STAR@[167; 168) "*" | 95 | STAR@167..168 "*" |
96 | WHITESPACE@[168; 169) " " | 96 | WHITESPACE@168..169 " " |
97 | DOLLAR@[169; 170) "$" | 97 | DOLLAR@169..170 "$" |
98 | TOKEN_TREE@[170; 173) | 98 | TOKEN_TREE@170..173 |
99 | L_PAREN@[170; 171) "(" | 99 | L_PAREN@170..171 "(" |
100 | COMMA@[171; 172) "," | 100 | COMMA@171..172 "," |
101 | R_PAREN@[172; 173) ")" | 101 | R_PAREN@172..173 ")" |
102 | STAR@[173; 174) "*" | 102 | STAR@173..174 "*" |
103 | R_BRACK@[174; 175) "]" | 103 | R_BRACK@174..175 "]" |
104 | COMMA@[175; 176) "," | 104 | COMMA@175..176 "," |
105 | WHITESPACE@[176; 177) " " | 105 | WHITESPACE@176..177 " " |
106 | TOKEN_TREE@[177; 202) | 106 | TOKEN_TREE@177..202 |
107 | L_BRACK@[177; 178) "[" | 107 | L_BRACK@177..178 "[" |
108 | DOLLAR@[178; 179) "$" | 108 | DOLLAR@178..179 "$" |
109 | TOKEN_TREE@[179; 193) | 109 | TOKEN_TREE@179..193 |
110 | L_PAREN@[179; 180) "(" | 110 | L_PAREN@179..180 "(" |
111 | DOLLAR@[180; 181) "$" | 111 | DOLLAR@180..181 "$" |
112 | IDENT@[181; 187) "output" | 112 | IDENT@181..187 "output" |
113 | COLON@[187; 188) ":" | 113 | COLON@187..188 ":" |
114 | IDENT@[188; 192) "expr" | 114 | IDENT@188..192 "expr" |
115 | R_PAREN@[192; 193) ")" | 115 | R_PAREN@192..193 ")" |
116 | COMMA@[193; 194) "," | 116 | COMMA@193..194 "," |
117 | STAR@[194; 195) "*" | 117 | STAR@194..195 "*" |
118 | WHITESPACE@[195; 196) " " | 118 | WHITESPACE@195..196 " " |
119 | DOLLAR@[196; 197) "$" | 119 | DOLLAR@196..197 "$" |
120 | TOKEN_TREE@[197; 200) | 120 | TOKEN_TREE@197..200 |
121 | L_PAREN@[197; 198) "(" | 121 | L_PAREN@197..198 "(" |
122 | COMMA@[198; 199) "," | 122 | COMMA@198..199 "," |
123 | R_PAREN@[199; 200) ")" | 123 | R_PAREN@199..200 ")" |
124 | STAR@[200; 201) "*" | 124 | STAR@200..201 "*" |
125 | R_BRACK@[201; 202) "]" | 125 | R_BRACK@201..202 "]" |
126 | R_PAREN@[202; 203) ")" | 126 | R_PAREN@202..203 ")" |
127 | WHITESPACE@[203; 204) " " | 127 | WHITESPACE@203..204 " " |
128 | TOKEN_TREE@[204; 346) | 128 | TOKEN_TREE@204..346 |
129 | L_CURLY@[204; 205) "{" | 129 | L_CURLY@204..205 "{" |
130 | WHITESPACE@[205; 214) "\n " | 130 | WHITESPACE@205..214 "\n " |
131 | IDENT@[214; 223) "assert_eq" | 131 | IDENT@214..223 "assert_eq" |
132 | BANG@[223; 224) "!" | 132 | BANG@223..224 "!" |
133 | TOKEN_TREE@[224; 339) | 133 | TOKEN_TREE@224..339 |
134 | L_PAREN@[224; 225) "(" | 134 | L_PAREN@224..225 "(" |
135 | WHITESPACE@[225; 238) "\n " | 135 | WHITESPACE@225..238 "\n " |
136 | IDENT@[238; 253) "merge_use_trees" | 136 | IDENT@238..253 "merge_use_trees" |
137 | TOKEN_TREE@[253; 284) | 137 | TOKEN_TREE@253..284 |
138 | L_PAREN@[253; 254) "(" | 138 | L_PAREN@253..254 "(" |
139 | IDENT@[254; 269) "parse_use_trees" | 139 | IDENT@254..269 "parse_use_trees" |
140 | BANG@[269; 270) "!" | 140 | BANG@269..270 "!" |
141 | TOKEN_TREE@[270; 283) | 141 | TOKEN_TREE@270..283 |
142 | L_PAREN@[270; 271) "(" | 142 | L_PAREN@270..271 "(" |
143 | DOLLAR@[271; 272) "$" | 143 | DOLLAR@271..272 "$" |
144 | TOKEN_TREE@[272; 281) | 144 | TOKEN_TREE@272..281 |
145 | L_PAREN@[272; 273) "(" | 145 | L_PAREN@272..273 "(" |
146 | DOLLAR@[273; 274) "$" | 146 | DOLLAR@273..274 "$" |
147 | IDENT@[274; 279) "input" | 147 | IDENT@274..279 "input" |
148 | COMMA@[279; 280) "," | 148 | COMMA@279..280 "," |
149 | R_PAREN@[280; 281) ")" | 149 | R_PAREN@280..281 ")" |
150 | STAR@[281; 282) "*" | 150 | STAR@281..282 "*" |
151 | R_PAREN@[282; 283) ")" | 151 | R_PAREN@282..283 ")" |
152 | R_PAREN@[283; 284) ")" | 152 | R_PAREN@283..284 ")" |
153 | COMMA@[284; 285) "," | 153 | COMMA@284..285 "," |
154 | WHITESPACE@[285; 298) "\n " | 154 | WHITESPACE@285..298 "\n " |
155 | IDENT@[298; 313) "parse_use_trees" | 155 | IDENT@298..313 "parse_use_trees" |
156 | BANG@[313; 314) "!" | 156 | BANG@313..314 "!" |
157 | TOKEN_TREE@[314; 328) | 157 | TOKEN_TREE@314..328 |
158 | L_PAREN@[314; 315) "(" | 158 | L_PAREN@314..315 "(" |
159 | DOLLAR@[315; 316) "$" | 159 | DOLLAR@315..316 "$" |
160 | TOKEN_TREE@[316; 326) | 160 | TOKEN_TREE@316..326 |
161 | L_PAREN@[316; 317) "(" | 161 | L_PAREN@316..317 "(" |
162 | DOLLAR@[317; 318) "$" | 162 | DOLLAR@317..318 "$" |
163 | IDENT@[318; 324) "output" | 163 | IDENT@318..324 "output" |
164 | COMMA@[324; 325) "," | 164 | COMMA@324..325 "," |
165 | R_PAREN@[325; 326) ")" | 165 | R_PAREN@325..326 ")" |
166 | STAR@[326; 327) "*" | 166 | STAR@326..327 "*" |
167 | R_PAREN@[327; 328) ")" | 167 | R_PAREN@327..328 ")" |
168 | COMMA@[328; 329) "," | 168 | COMMA@328..329 "," |
169 | WHITESPACE@[329; 338) "\n " | 169 | WHITESPACE@329..338 "\n " |
170 | R_PAREN@[338; 339) ")" | 170 | R_PAREN@338..339 ")" |
171 | SEMICOLON@[339; 340) ";" | 171 | SEMICOLON@339..340 ";" |
172 | WHITESPACE@[340; 345) "\n " | 172 | WHITESPACE@340..345 "\n " |
173 | R_CURLY@[345; 346) "}" | 173 | R_CURLY@345..346 "}" |
174 | WHITESPACE@[346; 347) "\n" | 174 | WHITESPACE@346..347 "\n" |
175 | R_CURLY@[347; 348) "}" | 175 | R_CURLY@347..348 "}" |
176 | WHITESPACE@[348; 349) "\n" | 176 | WHITESPACE@348..349 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast index d0623ba90..1cd77aa14 100644 --- a/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast +++ b/crates/ra_syntax/test_data/parser/ok/0063_trait_fn_patterns.rast | |||
@@ -1,198 +1,198 @@ | |||
1 | SOURCE_FILE@[0; 170) | 1 | SOURCE_FILE@0..170 |
2 | TRAIT_DEF@[0; 169) | 2 | TRAIT_DEF@0..169 |
3 | TRAIT_KW@[0; 5) "trait" | 3 | TRAIT_KW@0..5 "trait" |
4 | WHITESPACE@[5; 6) " " | 4 | WHITESPACE@5..6 " " |
5 | NAME@[6; 7) | 5 | NAME@6..7 |
6 | IDENT@[6; 7) "T" | 6 | IDENT@6..7 "T" |
7 | WHITESPACE@[7; 8) " " | 7 | WHITESPACE@7..8 " " |
8 | ITEM_LIST@[8; 169) | 8 | ITEM_LIST@8..169 |
9 | L_CURLY@[8; 9) "{" | 9 | L_CURLY@8..9 "{" |
10 | WHITESPACE@[9; 14) "\n " | 10 | WHITESPACE@9..14 "\n " |
11 | FN_DEF@[14; 46) | 11 | FN_DEF@14..46 |
12 | FN_KW@[14; 16) "fn" | 12 | FN_KW@14..16 "fn" |
13 | WHITESPACE@[16; 17) " " | 13 | WHITESPACE@16..17 " " |
14 | NAME@[17; 19) | 14 | NAME@17..19 |
15 | IDENT@[17; 19) "f1" | 15 | IDENT@17..19 "f1" |
16 | PARAM_LIST@[19; 43) | 16 | PARAM_LIST@19..43 |
17 | L_PAREN@[19; 20) "(" | 17 | L_PAREN@19..20 "(" |
18 | PARAM@[20; 42) | 18 | PARAM@20..42 |
19 | TUPLE_PAT@[20; 26) | 19 | TUPLE_PAT@20..26 |
20 | L_PAREN@[20; 21) "(" | 20 | L_PAREN@20..21 "(" |
21 | BIND_PAT@[21; 22) | 21 | BIND_PAT@21..22 |
22 | NAME@[21; 22) | 22 | NAME@21..22 |
23 | IDENT@[21; 22) "a" | 23 | IDENT@21..22 "a" |
24 | COMMA@[22; 23) "," | 24 | COMMA@22..23 "," |
25 | WHITESPACE@[23; 24) " " | 25 | WHITESPACE@23..24 " " |
26 | BIND_PAT@[24; 25) | 26 | BIND_PAT@24..25 |
27 | NAME@[24; 25) | 27 | NAME@24..25 |
28 | IDENT@[24; 25) "b" | 28 | IDENT@24..25 "b" |
29 | R_PAREN@[25; 26) ")" | 29 | R_PAREN@25..26 ")" |
30 | COLON@[26; 27) ":" | 30 | COLON@26..27 ":" |
31 | WHITESPACE@[27; 28) " " | 31 | WHITESPACE@27..28 " " |
32 | TUPLE_TYPE@[28; 42) | 32 | TUPLE_TYPE@28..42 |
33 | L_PAREN@[28; 29) "(" | 33 | L_PAREN@28..29 "(" |
34 | PATH_TYPE@[29; 34) | 34 | PATH_TYPE@29..34 |
35 | PATH@[29; 34) | 35 | PATH@29..34 |
36 | PATH_SEGMENT@[29; 34) | 36 | PATH_SEGMENT@29..34 |
37 | NAME_REF@[29; 34) | 37 | NAME_REF@29..34 |
38 | IDENT@[29; 34) "usize" | 38 | IDENT@29..34 "usize" |
39 | COMMA@[34; 35) "," | 39 | COMMA@34..35 "," |
40 | WHITESPACE@[35; 36) " " | 40 | WHITESPACE@35..36 " " |
41 | PATH_TYPE@[36; 41) | 41 | PATH_TYPE@36..41 |
42 | PATH@[36; 41) | 42 | PATH@36..41 |
43 | PATH_SEGMENT@[36; 41) | 43 | PATH_SEGMENT@36..41 |
44 | NAME_REF@[36; 41) | 44 | NAME_REF@36..41 |
45 | IDENT@[36; 41) "usize" | 45 | IDENT@36..41 "usize" |
46 | R_PAREN@[41; 42) ")" | 46 | R_PAREN@41..42 ")" |
47 | R_PAREN@[42; 43) ")" | 47 | R_PAREN@42..43 ")" |
48 | WHITESPACE@[43; 44) " " | 48 | WHITESPACE@43..44 " " |
49 | BLOCK_EXPR@[44; 46) | 49 | BLOCK_EXPR@44..46 |
50 | BLOCK@[44; 46) | 50 | BLOCK@44..46 |
51 | L_CURLY@[44; 45) "{" | 51 | L_CURLY@44..45 "{" |
52 | R_CURLY@[45; 46) "}" | 52 | R_CURLY@45..46 "}" |
53 | WHITESPACE@[46; 51) "\n " | 53 | WHITESPACE@46..51 "\n " |
54 | FN_DEF@[51; 74) | 54 | FN_DEF@51..74 |
55 | FN_KW@[51; 53) "fn" | 55 | FN_KW@51..53 "fn" |
56 | WHITESPACE@[53; 54) " " | 56 | WHITESPACE@53..54 " " |
57 | NAME@[54; 56) | 57 | NAME@54..56 |
58 | IDENT@[54; 56) "f2" | 58 | IDENT@54..56 "f2" |
59 | PARAM_LIST@[56; 71) | 59 | PARAM_LIST@56..71 |
60 | L_PAREN@[56; 57) "(" | 60 | L_PAREN@56..57 "(" |
61 | PARAM@[57; 70) | 61 | PARAM@57..70 |
62 | RECORD_PAT@[57; 67) | 62 | RECORD_PAT@57..67 |
63 | PATH@[57; 58) | 63 | PATH@57..58 |
64 | PATH_SEGMENT@[57; 58) | 64 | PATH_SEGMENT@57..58 |
65 | NAME_REF@[57; 58) | 65 | NAME_REF@57..58 |
66 | IDENT@[57; 58) "S" | 66 | IDENT@57..58 "S" |
67 | WHITESPACE@[58; 59) " " | 67 | WHITESPACE@58..59 " " |
68 | RECORD_FIELD_PAT_LIST@[59; 67) | 68 | RECORD_FIELD_PAT_LIST@59..67 |
69 | L_CURLY@[59; 60) "{" | 69 | L_CURLY@59..60 "{" |
70 | WHITESPACE@[60; 61) " " | 70 | WHITESPACE@60..61 " " |
71 | RECORD_FIELD_PAT@[61; 62) | 71 | RECORD_FIELD_PAT@61..62 |
72 | BIND_PAT@[61; 62) | 72 | BIND_PAT@61..62 |
73 | NAME@[61; 62) | 73 | NAME@61..62 |
74 | IDENT@[61; 62) "a" | 74 | IDENT@61..62 "a" |
75 | COMMA@[62; 63) "," | 75 | COMMA@62..63 "," |
76 | WHITESPACE@[63; 64) " " | 76 | WHITESPACE@63..64 " " |
77 | RECORD_FIELD_PAT@[64; 65) | 77 | RECORD_FIELD_PAT@64..65 |
78 | BIND_PAT@[64; 65) | 78 | BIND_PAT@64..65 |
79 | NAME@[64; 65) | 79 | NAME@64..65 |
80 | IDENT@[64; 65) "b" | 80 | IDENT@64..65 "b" |
81 | WHITESPACE@[65; 66) " " | 81 | WHITESPACE@65..66 " " |
82 | R_CURLY@[66; 67) "}" | 82 | R_CURLY@66..67 "}" |
83 | COLON@[67; 68) ":" | 83 | COLON@67..68 ":" |
84 | WHITESPACE@[68; 69) " " | 84 | WHITESPACE@68..69 " " |
85 | PATH_TYPE@[69; 70) | 85 | PATH_TYPE@69..70 |
86 | PATH@[69; 70) | 86 | PATH@69..70 |
87 | PATH_SEGMENT@[69; 70) | 87 | PATH_SEGMENT@69..70 |
88 | NAME_REF@[69; 70) | 88 | NAME_REF@69..70 |
89 | IDENT@[69; 70) "S" | 89 | IDENT@69..70 "S" |
90 | R_PAREN@[70; 71) ")" | 90 | R_PAREN@70..71 ")" |
91 | WHITESPACE@[71; 72) " " | 91 | WHITESPACE@71..72 " " |
92 | BLOCK_EXPR@[72; 74) | 92 | BLOCK_EXPR@72..74 |
93 | BLOCK@[72; 74) | 93 | BLOCK@72..74 |
94 | L_CURLY@[72; 73) "{" | 94 | L_CURLY@72..73 "{" |
95 | R_CURLY@[73; 74) "}" | 95 | R_CURLY@73..74 "}" |
96 | WHITESPACE@[74; 79) "\n " | 96 | WHITESPACE@74..79 "\n " |
97 | FN_DEF@[79; 108) | 97 | FN_DEF@79..108 |
98 | FN_KW@[79; 81) "fn" | 98 | FN_KW@79..81 "fn" |
99 | WHITESPACE@[81; 82) " " | 99 | WHITESPACE@81..82 " " |
100 | NAME@[82; 84) | 100 | NAME@82..84 |
101 | IDENT@[82; 84) "f3" | 101 | IDENT@82..84 "f3" |
102 | PARAM_LIST@[84; 105) | 102 | PARAM_LIST@84..105 |
103 | L_PAREN@[84; 85) "(" | 103 | L_PAREN@84..85 "(" |
104 | PARAM@[85; 104) | 104 | PARAM@85..104 |
105 | TUPLE_STRUCT_PAT@[85; 95) | 105 | TUPLE_STRUCT_PAT@85..95 |
106 | PATH@[85; 92) | 106 | PATH@85..92 |
107 | PATH_SEGMENT@[85; 92) | 107 | PATH_SEGMENT@85..92 |
108 | NAME_REF@[85; 92) | 108 | NAME_REF@85..92 |
109 | IDENT@[85; 92) "NewType" | 109 | IDENT@85..92 "NewType" |
110 | L_PAREN@[92; 93) "(" | 110 | L_PAREN@92..93 "(" |
111 | BIND_PAT@[93; 94) | 111 | BIND_PAT@93..94 |
112 | NAME@[93; 94) | 112 | NAME@93..94 |
113 | IDENT@[93; 94) "a" | 113 | IDENT@93..94 "a" |
114 | R_PAREN@[94; 95) ")" | 114 | R_PAREN@94..95 ")" |
115 | COLON@[95; 96) ":" | 115 | COLON@95..96 ":" |
116 | WHITESPACE@[96; 97) " " | 116 | WHITESPACE@96..97 " " |
117 | PATH_TYPE@[97; 104) | 117 | PATH_TYPE@97..104 |
118 | PATH@[97; 104) | 118 | PATH@97..104 |
119 | PATH_SEGMENT@[97; 104) | 119 | PATH_SEGMENT@97..104 |
120 | NAME_REF@[97; 104) | 120 | NAME_REF@97..104 |
121 | IDENT@[97; 104) "NewType" | 121 | IDENT@97..104 "NewType" |
122 | R_PAREN@[104; 105) ")" | 122 | R_PAREN@104..105 ")" |
123 | WHITESPACE@[105; 106) " " | 123 | WHITESPACE@105..106 " " |
124 | BLOCK_EXPR@[106; 108) | 124 | BLOCK_EXPR@106..108 |
125 | BLOCK@[106; 108) | 125 | BLOCK@106..108 |
126 | L_CURLY@[106; 107) "{" | 126 | L_CURLY@106..107 "{" |
127 | R_CURLY@[107; 108) "}" | 127 | R_CURLY@107..108 "}" |
128 | WHITESPACE@[108; 113) "\n " | 128 | WHITESPACE@108..113 "\n " |
129 | FN_DEF@[113; 135) | 129 | FN_DEF@113..135 |
130 | FN_KW@[113; 115) "fn" | 130 | FN_KW@113..115 "fn" |
131 | WHITESPACE@[115; 116) " " | 131 | WHITESPACE@115..116 " " |
132 | NAME@[116; 118) | 132 | NAME@116..118 |
133 | IDENT@[116; 118) "f4" | 133 | IDENT@116..118 "f4" |
134 | PARAM_LIST@[118; 132) | 134 | PARAM_LIST@118..132 |
135 | L_PAREN@[118; 119) "(" | 135 | L_PAREN@118..119 "(" |
136 | PARAM@[119; 131) | 136 | PARAM@119..131 |
137 | REF_PAT@[119; 122) | 137 | REF_PAT@119..122 |
138 | AMP@[119; 120) "&" | 138 | AMP@119..120 "&" |
139 | REF_PAT@[120; 122) | 139 | REF_PAT@120..122 |
140 | AMP@[120; 121) "&" | 140 | AMP@120..121 "&" |
141 | BIND_PAT@[121; 122) | 141 | BIND_PAT@121..122 |
142 | NAME@[121; 122) | 142 | NAME@121..122 |
143 | IDENT@[121; 122) "a" | 143 | IDENT@121..122 "a" |
144 | COLON@[122; 123) ":" | 144 | COLON@122..123 ":" |
145 | WHITESPACE@[123; 124) " " | 145 | WHITESPACE@123..124 " " |
146 | REFERENCE_TYPE@[124; 131) | 146 | REFERENCE_TYPE@124..131 |
147 | AMP@[124; 125) "&" | 147 | AMP@124..125 "&" |
148 | REFERENCE_TYPE@[125; 131) | 148 | REFERENCE_TYPE@125..131 |
149 | AMP@[125; 126) "&" | 149 | AMP@125..126 "&" |
150 | PATH_TYPE@[126; 131) | 150 | PATH_TYPE@126..131 |
151 | PATH@[126; 131) | 151 | PATH@126..131 |
152 | PATH_SEGMENT@[126; 131) | 152 | PATH_SEGMENT@126..131 |
153 | NAME_REF@[126; 131) | 153 | NAME_REF@126..131 |
154 | IDENT@[126; 131) "usize" | 154 | IDENT@126..131 "usize" |
155 | R_PAREN@[131; 132) ")" | 155 | R_PAREN@131..132 ")" |
156 | WHITESPACE@[132; 133) " " | 156 | WHITESPACE@132..133 " " |
157 | BLOCK_EXPR@[133; 135) | 157 | BLOCK_EXPR@133..135 |
158 | BLOCK@[133; 135) | 158 | BLOCK@133..135 |
159 | L_CURLY@[133; 134) "{" | 159 | L_CURLY@133..134 "{" |
160 | R_CURLY@[134; 135) "}" | 160 | R_CURLY@134..135 "}" |
161 | WHITESPACE@[135; 140) "\n " | 161 | WHITESPACE@135..140 "\n " |
162 | FN_DEF@[140; 167) | 162 | FN_DEF@140..167 |
163 | FN_KW@[140; 142) "fn" | 163 | FN_KW@140..142 "fn" |
164 | WHITESPACE@[142; 143) " " | 164 | WHITESPACE@142..143 " " |
165 | NAME@[143; 146) | 165 | NAME@143..146 |
166 | IDENT@[143; 146) "bar" | 166 | IDENT@143..146 "bar" |
167 | PARAM_LIST@[146; 166) | 167 | PARAM_LIST@146..166 |
168 | L_PAREN@[146; 147) "(" | 168 | L_PAREN@146..147 "(" |
169 | PARAM@[147; 153) | 169 | PARAM@147..153 |
170 | PLACEHOLDER_PAT@[147; 148) | 170 | PLACEHOLDER_PAT@147..148 |
171 | UNDERSCORE@[147; 148) "_" | 171 | UNDERSCORE@147..148 "_" |
172 | COLON@[148; 149) ":" | 172 | COLON@148..149 ":" |
173 | WHITESPACE@[149; 150) " " | 173 | WHITESPACE@149..150 " " |
174 | PATH_TYPE@[150; 153) | 174 | PATH_TYPE@150..153 |
175 | PATH@[150; 153) | 175 | PATH@150..153 |
176 | PATH_SEGMENT@[150; 153) | 176 | PATH_SEGMENT@150..153 |
177 | NAME_REF@[150; 153) | 177 | NAME_REF@150..153 |
178 | IDENT@[150; 153) "u64" | 178 | IDENT@150..153 "u64" |
179 | COMMA@[153; 154) "," | 179 | COMMA@153..154 "," |
180 | WHITESPACE@[154; 155) " " | 180 | WHITESPACE@154..155 " " |
181 | PARAM@[155; 165) | 181 | PARAM@155..165 |
182 | BIND_PAT@[155; 160) | 182 | BIND_PAT@155..160 |
183 | MUT_KW@[155; 158) "mut" | 183 | MUT_KW@155..158 "mut" |
184 | WHITESPACE@[158; 159) " " | 184 | WHITESPACE@158..159 " " |
185 | NAME@[159; 160) | 185 | NAME@159..160 |
186 | IDENT@[159; 160) "x" | 186 | IDENT@159..160 "x" |
187 | COLON@[160; 161) ":" | 187 | COLON@160..161 ":" |
188 | WHITESPACE@[161; 162) " " | 188 | WHITESPACE@161..162 " " |
189 | PATH_TYPE@[162; 165) | 189 | PATH_TYPE@162..165 |
190 | PATH@[162; 165) | 190 | PATH@162..165 |
191 | PATH_SEGMENT@[162; 165) | 191 | PATH_SEGMENT@162..165 |
192 | NAME_REF@[162; 165) | 192 | NAME_REF@162..165 |
193 | IDENT@[162; 165) "i32" | 193 | IDENT@162..165 "i32" |
194 | R_PAREN@[165; 166) ")" | 194 | R_PAREN@165..166 ")" |
195 | SEMICOLON@[166; 167) ";" | 195 | SEMICOLON@166..167 ";" |
196 | WHITESPACE@[167; 168) "\n" | 196 | WHITESPACE@167..168 "\n" |
197 | R_CURLY@[168; 169) "}" | 197 | R_CURLY@168..169 "}" |
198 | WHITESPACE@[169; 170) "\n" | 198 | WHITESPACE@169..170 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast b/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast index 17b08197b..5a9f07c89 100644 --- a/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast +++ b/crates/ra_syntax/test_data/parser/ok/0063_variadic_fun.rast | |||
@@ -1,133 +1,133 @@ | |||
1 | SOURCE_FILE@[0; 126) | 1 | SOURCE_FILE@0..126 |
2 | EXTERN_BLOCK@[0; 125) | 2 | EXTERN_BLOCK@0..125 |
3 | ABI@[0; 10) | 3 | ABI@0..10 |
4 | EXTERN_KW@[0; 6) "extern" | 4 | EXTERN_KW@0..6 "extern" |
5 | WHITESPACE@[6; 7) " " | 5 | WHITESPACE@6..7 " " |
6 | STRING@[7; 10) "\"C\"" | 6 | STRING@7..10 "\"C\"" |
7 | WHITESPACE@[10; 11) " " | 7 | WHITESPACE@10..11 " " |
8 | EXTERN_ITEM_LIST@[11; 125) | 8 | EXTERN_ITEM_LIST@11..125 |
9 | L_CURLY@[11; 12) "{" | 9 | L_CURLY@11..12 "{" |
10 | WHITESPACE@[12; 17) "\n " | 10 | WHITESPACE@12..17 "\n " |
11 | FN_DEF@[17; 40) | 11 | FN_DEF@17..40 |
12 | FN_KW@[17; 19) "fn" | 12 | FN_KW@17..19 "fn" |
13 | WHITESPACE@[19; 20) " " | 13 | WHITESPACE@19..20 " " |
14 | NAME@[20; 21) | 14 | NAME@20..21 |
15 | IDENT@[20; 21) "a" | 15 | IDENT@20..21 "a" |
16 | PARAM_LIST@[21; 39) | 16 | PARAM_LIST@21..39 |
17 | L_PAREN@[21; 22) "(" | 17 | L_PAREN@21..22 "(" |
18 | PARAM@[22; 32) | 18 | PARAM@22..32 |
19 | PLACEHOLDER_PAT@[22; 23) | 19 | PLACEHOLDER_PAT@22..23 |
20 | UNDERSCORE@[22; 23) "_" | 20 | UNDERSCORE@22..23 "_" |
21 | COLON@[23; 24) ":" | 21 | COLON@23..24 ":" |
22 | WHITESPACE@[24; 25) " " | 22 | WHITESPACE@24..25 " " |
23 | POINTER_TYPE@[25; 32) | 23 | POINTER_TYPE@25..32 |
24 | STAR@[25; 26) "*" | 24 | STAR@25..26 "*" |
25 | MUT_KW@[26; 29) "mut" | 25 | MUT_KW@26..29 "mut" |
26 | WHITESPACE@[29; 30) " " | 26 | WHITESPACE@29..30 " " |
27 | PATH_TYPE@[30; 32) | 27 | PATH_TYPE@30..32 |
28 | PATH@[30; 32) | 28 | PATH@30..32 |
29 | PATH_SEGMENT@[30; 32) | 29 | PATH_SEGMENT@30..32 |
30 | NAME_REF@[30; 32) | 30 | NAME_REF@30..32 |
31 | IDENT@[30; 32) "u8" | 31 | IDENT@30..32 "u8" |
32 | COMMA@[32; 33) "," | 32 | COMMA@32..33 "," |
33 | WHITESPACE@[33; 34) " " | 33 | WHITESPACE@33..34 " " |
34 | PARAM@[34; 37) | 34 | PARAM@34..37 |
35 | DOT3@[34; 37) "..." | 35 | DOT3@34..37 "..." |
36 | COMMA@[37; 38) "," | 36 | COMMA@37..38 "," |
37 | R_PAREN@[38; 39) ")" | 37 | R_PAREN@38..39 ")" |
38 | SEMICOLON@[39; 40) ";" | 38 | SEMICOLON@39..40 ";" |
39 | WHITESPACE@[40; 45) "\n " | 39 | WHITESPACE@40..45 "\n " |
40 | FN_DEF@[45; 70) | 40 | FN_DEF@45..70 |
41 | FN_KW@[45; 47) "fn" | 41 | FN_KW@45..47 "fn" |
42 | WHITESPACE@[47; 48) " " | 42 | WHITESPACE@47..48 " " |
43 | NAME@[48; 49) | 43 | NAME@48..49 |
44 | IDENT@[48; 49) "b" | 44 | IDENT@48..49 "b" |
45 | PARAM_LIST@[49; 69) | 45 | PARAM_LIST@49..69 |
46 | L_PAREN@[49; 50) "(" | 46 | L_PAREN@49..50 "(" |
47 | PARAM@[50; 60) | 47 | PARAM@50..60 |
48 | PLACEHOLDER_PAT@[50; 51) | 48 | PLACEHOLDER_PAT@50..51 |
49 | UNDERSCORE@[50; 51) "_" | 49 | UNDERSCORE@50..51 "_" |
50 | COLON@[51; 52) ":" | 50 | COLON@51..52 ":" |
51 | WHITESPACE@[52; 53) " " | 51 | WHITESPACE@52..53 " " |
52 | POINTER_TYPE@[53; 60) | 52 | POINTER_TYPE@53..60 |
53 | STAR@[53; 54) "*" | 53 | STAR@53..54 "*" |
54 | MUT_KW@[54; 57) "mut" | 54 | MUT_KW@54..57 "mut" |
55 | WHITESPACE@[57; 58) " " | 55 | WHITESPACE@57..58 " " |
56 | PATH_TYPE@[58; 60) | 56 | PATH_TYPE@58..60 |
57 | PATH@[58; 60) | 57 | PATH@58..60 |
58 | PATH_SEGMENT@[58; 60) | 58 | PATH_SEGMENT@58..60 |
59 | NAME_REF@[58; 60) | 59 | NAME_REF@58..60 |
60 | IDENT@[58; 60) "u8" | 60 | IDENT@58..60 "u8" |
61 | COMMA@[60; 61) "," | 61 | COMMA@60..61 "," |
62 | WHITESPACE@[61; 62) " " | 62 | WHITESPACE@61..62 " " |
63 | PARAM@[62; 68) | 63 | PARAM@62..68 |
64 | PLACEHOLDER_PAT@[62; 63) | 64 | PLACEHOLDER_PAT@62..63 |
65 | UNDERSCORE@[62; 63) "_" | 65 | UNDERSCORE@62..63 "_" |
66 | COLON@[63; 64) ":" | 66 | COLON@63..64 ":" |
67 | WHITESPACE@[64; 65) " " | 67 | WHITESPACE@64..65 " " |
68 | DOT3@[65; 68) "..." | 68 | DOT3@65..68 "..." |
69 | R_PAREN@[68; 69) ")" | 69 | R_PAREN@68..69 ")" |
70 | SEMICOLON@[69; 70) ";" | 70 | SEMICOLON@69..70 ";" |
71 | WHITESPACE@[70; 75) "\n " | 71 | WHITESPACE@70..75 "\n " |
72 | FN_DEF@[75; 123) | 72 | FN_DEF@75..123 |
73 | FN_KW@[75; 77) "fn" | 73 | FN_KW@75..77 "fn" |
74 | WHITESPACE@[77; 78) " " | 74 | WHITESPACE@77..78 " " |
75 | NAME@[78; 79) | 75 | NAME@78..79 |
76 | IDENT@[78; 79) "c" | 76 | IDENT@78..79 "c" |
77 | PARAM_LIST@[79; 122) | 77 | PARAM_LIST@79..122 |
78 | L_PAREN@[79; 80) "(" | 78 | L_PAREN@79..80 "(" |
79 | PARAM@[80; 90) | 79 | PARAM@80..90 |
80 | PLACEHOLDER_PAT@[80; 81) | 80 | PLACEHOLDER_PAT@80..81 |
81 | UNDERSCORE@[80; 81) "_" | 81 | UNDERSCORE@80..81 "_" |
82 | COLON@[81; 82) ":" | 82 | COLON@81..82 ":" |
83 | WHITESPACE@[82; 83) " " | 83 | WHITESPACE@82..83 " " |
84 | POINTER_TYPE@[83; 90) | 84 | POINTER_TYPE@83..90 |
85 | STAR@[83; 84) "*" | 85 | STAR@83..84 "*" |
86 | MUT_KW@[84; 87) "mut" | 86 | MUT_KW@84..87 "mut" |
87 | WHITESPACE@[87; 88) " " | 87 | WHITESPACE@87..88 " " |
88 | PATH_TYPE@[88; 90) | 88 | PATH_TYPE@88..90 |
89 | PATH@[88; 90) | 89 | PATH@88..90 |
90 | PATH_SEGMENT@[88; 90) | 90 | PATH_SEGMENT@88..90 |
91 | NAME_REF@[88; 90) | 91 | NAME_REF@88..90 |
92 | IDENT@[88; 90) "u8" | 92 | IDENT@88..90 "u8" |
93 | COMMA@[90; 91) "," | 93 | COMMA@90..91 "," |
94 | WHITESPACE@[91; 92) " " | 94 | WHITESPACE@91..92 " " |
95 | ATTR@[92; 105) | 95 | ATTR@92..105 |
96 | POUND@[92; 93) "#" | 96 | POUND@92..93 "#" |
97 | L_BRACK@[93; 94) "[" | 97 | L_BRACK@93..94 "[" |
98 | PATH@[94; 97) | 98 | PATH@94..97 |
99 | PATH_SEGMENT@[94; 97) | 99 | PATH_SEGMENT@94..97 |
100 | NAME_REF@[94; 97) | 100 | NAME_REF@94..97 |
101 | IDENT@[94; 97) "cfg" | 101 | IDENT@94..97 "cfg" |
102 | TOKEN_TREE@[97; 104) | 102 | TOKEN_TREE@97..104 |
103 | L_PAREN@[97; 98) "(" | 103 | L_PAREN@97..98 "(" |
104 | IDENT@[98; 103) "never" | 104 | IDENT@98..103 "never" |
105 | R_PAREN@[103; 104) ")" | 105 | R_PAREN@103..104 ")" |
106 | R_BRACK@[104; 105) "]" | 106 | R_BRACK@104..105 "]" |
107 | WHITESPACE@[105; 106) " " | 107 | WHITESPACE@105..106 " " |
108 | PARAM@[106; 120) | 108 | PARAM@106..120 |
109 | SLICE_PAT@[106; 115) | 109 | SLICE_PAT@106..115 |
110 | L_BRACK@[106; 107) "[" | 110 | L_BRACK@106..107 "[" |
111 | BIND_PAT@[107; 108) | 111 | BIND_PAT@107..108 |
112 | NAME@[107; 108) | 112 | NAME@107..108 |
113 | IDENT@[107; 108) "w" | 113 | IDENT@107..108 "w" |
114 | COMMA@[108; 109) "," | 114 | COMMA@108..109 "," |
115 | WHITESPACE@[109; 110) " " | 115 | WHITESPACE@109..110 " " |
116 | BIND_PAT@[110; 111) | 116 | BIND_PAT@110..111 |
117 | NAME@[110; 111) | 117 | NAME@110..111 |
118 | IDENT@[110; 111) "t" | 118 | IDENT@110..111 "t" |
119 | COMMA@[111; 112) "," | 119 | COMMA@111..112 "," |
120 | WHITESPACE@[112; 113) " " | 120 | WHITESPACE@112..113 " " |
121 | BIND_PAT@[113; 114) | 121 | BIND_PAT@113..114 |
122 | NAME@[113; 114) | 122 | NAME@113..114 |
123 | IDENT@[113; 114) "f" | 123 | IDENT@113..114 "f" |
124 | R_BRACK@[114; 115) "]" | 124 | R_BRACK@114..115 "]" |
125 | COLON@[115; 116) ":" | 125 | COLON@115..116 ":" |
126 | WHITESPACE@[116; 117) " " | 126 | WHITESPACE@116..117 " " |
127 | DOT3@[117; 120) "..." | 127 | DOT3@117..120 "..." |
128 | COMMA@[120; 121) "," | 128 | COMMA@120..121 "," |
129 | R_PAREN@[121; 122) ")" | 129 | R_PAREN@121..122 ")" |
130 | SEMICOLON@[122; 123) ";" | 130 | SEMICOLON@122..123 ";" |
131 | WHITESPACE@[123; 124) "\n" | 131 | WHITESPACE@123..124 "\n" |
132 | R_CURLY@[124; 125) "}" | 132 | R_CURLY@124..125 "}" |
133 | WHITESPACE@[125; 126) "\n" | 133 | WHITESPACE@125..126 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast index 5e96b695b..4f9a14066 100644 --- a/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast +++ b/crates/ra_syntax/test_data/parser/ok/0064_impl_fn_params.rast | |||
@@ -1,166 +1,166 @@ | |||
1 | SOURCE_FILE@[0; 137) | 1 | SOURCE_FILE@0..137 |
2 | IMPL_DEF@[0; 136) | 2 | IMPL_DEF@0..136 |
3 | IMPL_KW@[0; 4) "impl" | 3 | IMPL_KW@0..4 "impl" |
4 | WHITESPACE@[4; 5) " " | 4 | WHITESPACE@4..5 " " |
5 | PATH_TYPE@[5; 6) | 5 | PATH_TYPE@5..6 |
6 | PATH@[5; 6) | 6 | PATH@5..6 |
7 | PATH_SEGMENT@[5; 6) | 7 | PATH_SEGMENT@5..6 |
8 | NAME_REF@[5; 6) | 8 | NAME_REF@5..6 |
9 | IDENT@[5; 6) "U" | 9 | IDENT@5..6 "U" |
10 | WHITESPACE@[6; 7) " " | 10 | WHITESPACE@6..7 " " |
11 | ITEM_LIST@[7; 136) | 11 | ITEM_LIST@7..136 |
12 | L_CURLY@[7; 8) "{" | 12 | L_CURLY@7..8 "{" |
13 | WHITESPACE@[8; 13) "\n " | 13 | WHITESPACE@8..13 "\n " |
14 | FN_DEF@[13; 45) | 14 | FN_DEF@13..45 |
15 | FN_KW@[13; 15) "fn" | 15 | FN_KW@13..15 "fn" |
16 | WHITESPACE@[15; 16) " " | 16 | WHITESPACE@15..16 " " |
17 | NAME@[16; 18) | 17 | NAME@16..18 |
18 | IDENT@[16; 18) "f1" | 18 | IDENT@16..18 "f1" |
19 | PARAM_LIST@[18; 42) | 19 | PARAM_LIST@18..42 |
20 | L_PAREN@[18; 19) "(" | 20 | L_PAREN@18..19 "(" |
21 | PARAM@[19; 41) | 21 | PARAM@19..41 |
22 | TUPLE_PAT@[19; 25) | 22 | TUPLE_PAT@19..25 |
23 | L_PAREN@[19; 20) "(" | 23 | L_PAREN@19..20 "(" |
24 | BIND_PAT@[20; 21) | 24 | BIND_PAT@20..21 |
25 | NAME@[20; 21) | 25 | NAME@20..21 |
26 | IDENT@[20; 21) "a" | 26 | IDENT@20..21 "a" |
27 | COMMA@[21; 22) "," | 27 | COMMA@21..22 "," |
28 | WHITESPACE@[22; 23) " " | 28 | WHITESPACE@22..23 " " |
29 | BIND_PAT@[23; 24) | 29 | BIND_PAT@23..24 |
30 | NAME@[23; 24) | 30 | NAME@23..24 |
31 | IDENT@[23; 24) "b" | 31 | IDENT@23..24 "b" |
32 | R_PAREN@[24; 25) ")" | 32 | R_PAREN@24..25 ")" |
33 | COLON@[25; 26) ":" | 33 | COLON@25..26 ":" |
34 | WHITESPACE@[26; 27) " " | 34 | WHITESPACE@26..27 " " |
35 | TUPLE_TYPE@[27; 41) | 35 | TUPLE_TYPE@27..41 |
36 | L_PAREN@[27; 28) "(" | 36 | L_PAREN@27..28 "(" |
37 | PATH_TYPE@[28; 33) | 37 | PATH_TYPE@28..33 |
38 | PATH@[28; 33) | 38 | PATH@28..33 |
39 | PATH_SEGMENT@[28; 33) | 39 | PATH_SEGMENT@28..33 |
40 | NAME_REF@[28; 33) | 40 | NAME_REF@28..33 |
41 | IDENT@[28; 33) "usize" | 41 | IDENT@28..33 "usize" |
42 | COMMA@[33; 34) "," | 42 | COMMA@33..34 "," |
43 | WHITESPACE@[34; 35) " " | 43 | WHITESPACE@34..35 " " |
44 | PATH_TYPE@[35; 40) | 44 | PATH_TYPE@35..40 |
45 | PATH@[35; 40) | 45 | PATH@35..40 |
46 | PATH_SEGMENT@[35; 40) | 46 | PATH_SEGMENT@35..40 |
47 | NAME_REF@[35; 40) | 47 | NAME_REF@35..40 |
48 | IDENT@[35; 40) "usize" | 48 | IDENT@35..40 "usize" |
49 | R_PAREN@[40; 41) ")" | 49 | R_PAREN@40..41 ")" |
50 | R_PAREN@[41; 42) ")" | 50 | R_PAREN@41..42 ")" |
51 | WHITESPACE@[42; 43) " " | 51 | WHITESPACE@42..43 " " |
52 | BLOCK_EXPR@[43; 45) | 52 | BLOCK_EXPR@43..45 |
53 | BLOCK@[43; 45) | 53 | BLOCK@43..45 |
54 | L_CURLY@[43; 44) "{" | 54 | L_CURLY@43..44 "{" |
55 | R_CURLY@[44; 45) "}" | 55 | R_CURLY@44..45 "}" |
56 | WHITESPACE@[45; 50) "\n " | 56 | WHITESPACE@45..50 "\n " |
57 | FN_DEF@[50; 73) | 57 | FN_DEF@50..73 |
58 | FN_KW@[50; 52) "fn" | 58 | FN_KW@50..52 "fn" |
59 | WHITESPACE@[52; 53) " " | 59 | WHITESPACE@52..53 " " |
60 | NAME@[53; 55) | 60 | NAME@53..55 |
61 | IDENT@[53; 55) "f2" | 61 | IDENT@53..55 "f2" |
62 | PARAM_LIST@[55; 70) | 62 | PARAM_LIST@55..70 |
63 | L_PAREN@[55; 56) "(" | 63 | L_PAREN@55..56 "(" |
64 | PARAM@[56; 69) | 64 | PARAM@56..69 |
65 | RECORD_PAT@[56; 66) | 65 | RECORD_PAT@56..66 |
66 | PATH@[56; 57) | 66 | PATH@56..57 |
67 | PATH_SEGMENT@[56; 57) | 67 | PATH_SEGMENT@56..57 |
68 | NAME_REF@[56; 57) | 68 | NAME_REF@56..57 |
69 | IDENT@[56; 57) "S" | 69 | IDENT@56..57 "S" |
70 | WHITESPACE@[57; 58) " " | 70 | WHITESPACE@57..58 " " |
71 | RECORD_FIELD_PAT_LIST@[58; 66) | 71 | RECORD_FIELD_PAT_LIST@58..66 |
72 | L_CURLY@[58; 59) "{" | 72 | L_CURLY@58..59 "{" |
73 | WHITESPACE@[59; 60) " " | 73 | WHITESPACE@59..60 " " |
74 | RECORD_FIELD_PAT@[60; 61) | 74 | RECORD_FIELD_PAT@60..61 |
75 | BIND_PAT@[60; 61) | 75 | BIND_PAT@60..61 |
76 | NAME@[60; 61) | 76 | NAME@60..61 |
77 | IDENT@[60; 61) "a" | 77 | IDENT@60..61 "a" |
78 | COMMA@[61; 62) "," | 78 | COMMA@61..62 "," |
79 | WHITESPACE@[62; 63) " " | 79 | WHITESPACE@62..63 " " |
80 | RECORD_FIELD_PAT@[63; 64) | 80 | RECORD_FIELD_PAT@63..64 |
81 | BIND_PAT@[63; 64) | 81 | BIND_PAT@63..64 |
82 | NAME@[63; 64) | 82 | NAME@63..64 |
83 | IDENT@[63; 64) "b" | 83 | IDENT@63..64 "b" |
84 | WHITESPACE@[64; 65) " " | 84 | WHITESPACE@64..65 " " |
85 | R_CURLY@[65; 66) "}" | 85 | R_CURLY@65..66 "}" |
86 | COLON@[66; 67) ":" | 86 | COLON@66..67 ":" |
87 | WHITESPACE@[67; 68) " " | 87 | WHITESPACE@67..68 " " |
88 | PATH_TYPE@[68; 69) | 88 | PATH_TYPE@68..69 |
89 | PATH@[68; 69) | 89 | PATH@68..69 |
90 | PATH_SEGMENT@[68; 69) | 90 | PATH_SEGMENT@68..69 |
91 | NAME_REF@[68; 69) | 91 | NAME_REF@68..69 |
92 | IDENT@[68; 69) "S" | 92 | IDENT@68..69 "S" |
93 | R_PAREN@[69; 70) ")" | 93 | R_PAREN@69..70 ")" |
94 | WHITESPACE@[70; 71) " " | 94 | WHITESPACE@70..71 " " |
95 | BLOCK_EXPR@[71; 73) | 95 | BLOCK_EXPR@71..73 |
96 | BLOCK@[71; 73) | 96 | BLOCK@71..73 |
97 | L_CURLY@[71; 72) "{" | 97 | L_CURLY@71..72 "{" |
98 | R_CURLY@[72; 73) "}" | 98 | R_CURLY@72..73 "}" |
99 | WHITESPACE@[73; 78) "\n " | 99 | WHITESPACE@73..78 "\n " |
100 | FN_DEF@[78; 107) | 100 | FN_DEF@78..107 |
101 | FN_KW@[78; 80) "fn" | 101 | FN_KW@78..80 "fn" |
102 | WHITESPACE@[80; 81) " " | 102 | WHITESPACE@80..81 " " |
103 | NAME@[81; 83) | 103 | NAME@81..83 |
104 | IDENT@[81; 83) "f3" | 104 | IDENT@81..83 "f3" |
105 | PARAM_LIST@[83; 104) | 105 | PARAM_LIST@83..104 |
106 | L_PAREN@[83; 84) "(" | 106 | L_PAREN@83..84 "(" |
107 | PARAM@[84; 103) | 107 | PARAM@84..103 |
108 | TUPLE_STRUCT_PAT@[84; 94) | 108 | TUPLE_STRUCT_PAT@84..94 |
109 | PATH@[84; 91) | 109 | PATH@84..91 |
110 | PATH_SEGMENT@[84; 91) | 110 | PATH_SEGMENT@84..91 |
111 | NAME_REF@[84; 91) | 111 | NAME_REF@84..91 |
112 | IDENT@[84; 91) "NewType" | 112 | IDENT@84..91 "NewType" |
113 | L_PAREN@[91; 92) "(" | 113 | L_PAREN@91..92 "(" |
114 | BIND_PAT@[92; 93) | 114 | BIND_PAT@92..93 |
115 | NAME@[92; 93) | 115 | NAME@92..93 |
116 | IDENT@[92; 93) "a" | 116 | IDENT@92..93 "a" |
117 | R_PAREN@[93; 94) ")" | 117 | R_PAREN@93..94 ")" |
118 | COLON@[94; 95) ":" | 118 | COLON@94..95 ":" |
119 | WHITESPACE@[95; 96) " " | 119 | WHITESPACE@95..96 " " |
120 | PATH_TYPE@[96; 103) | 120 | PATH_TYPE@96..103 |
121 | PATH@[96; 103) | 121 | PATH@96..103 |
122 | PATH_SEGMENT@[96; 103) | 122 | PATH_SEGMENT@96..103 |
123 | NAME_REF@[96; 103) | 123 | NAME_REF@96..103 |
124 | IDENT@[96; 103) "NewType" | 124 | IDENT@96..103 "NewType" |
125 | R_PAREN@[103; 104) ")" | 125 | R_PAREN@103..104 ")" |
126 | WHITESPACE@[104; 105) " " | 126 | WHITESPACE@104..105 " " |
127 | BLOCK_EXPR@[105; 107) | 127 | BLOCK_EXPR@105..107 |
128 | BLOCK@[105; 107) | 128 | BLOCK@105..107 |
129 | L_CURLY@[105; 106) "{" | 129 | L_CURLY@105..106 "{" |
130 | R_CURLY@[106; 107) "}" | 130 | R_CURLY@106..107 "}" |
131 | WHITESPACE@[107; 112) "\n " | 131 | WHITESPACE@107..112 "\n " |
132 | FN_DEF@[112; 134) | 132 | FN_DEF@112..134 |
133 | FN_KW@[112; 114) "fn" | 133 | FN_KW@112..114 "fn" |
134 | WHITESPACE@[114; 115) " " | 134 | WHITESPACE@114..115 " " |
135 | NAME@[115; 117) | 135 | NAME@115..117 |
136 | IDENT@[115; 117) "f4" | 136 | IDENT@115..117 "f4" |
137 | PARAM_LIST@[117; 131) | 137 | PARAM_LIST@117..131 |
138 | L_PAREN@[117; 118) "(" | 138 | L_PAREN@117..118 "(" |
139 | PARAM@[118; 130) | 139 | PARAM@118..130 |
140 | REF_PAT@[118; 121) | 140 | REF_PAT@118..121 |
141 | AMP@[118; 119) "&" | 141 | AMP@118..119 "&" |
142 | REF_PAT@[119; 121) | 142 | REF_PAT@119..121 |
143 | AMP@[119; 120) "&" | 143 | AMP@119..120 "&" |
144 | BIND_PAT@[120; 121) | 144 | BIND_PAT@120..121 |
145 | NAME@[120; 121) | 145 | NAME@120..121 |
146 | IDENT@[120; 121) "a" | 146 | IDENT@120..121 "a" |
147 | COLON@[121; 122) ":" | 147 | COLON@121..122 ":" |
148 | WHITESPACE@[122; 123) " " | 148 | WHITESPACE@122..123 " " |
149 | REFERENCE_TYPE@[123; 130) | 149 | REFERENCE_TYPE@123..130 |
150 | AMP@[123; 124) "&" | 150 | AMP@123..124 "&" |
151 | REFERENCE_TYPE@[124; 130) | 151 | REFERENCE_TYPE@124..130 |
152 | AMP@[124; 125) "&" | 152 | AMP@124..125 "&" |
153 | PATH_TYPE@[125; 130) | 153 | PATH_TYPE@125..130 |
154 | PATH@[125; 130) | 154 | PATH@125..130 |
155 | PATH_SEGMENT@[125; 130) | 155 | PATH_SEGMENT@125..130 |
156 | NAME_REF@[125; 130) | 156 | NAME_REF@125..130 |
157 | IDENT@[125; 130) "usize" | 157 | IDENT@125..130 "usize" |
158 | R_PAREN@[130; 131) ")" | 158 | R_PAREN@130..131 ")" |
159 | WHITESPACE@[131; 132) " " | 159 | WHITESPACE@131..132 " " |
160 | BLOCK_EXPR@[132; 134) | 160 | BLOCK_EXPR@132..134 |
161 | BLOCK@[132; 134) | 161 | BLOCK@132..134 |
162 | L_CURLY@[132; 133) "{" | 162 | L_CURLY@132..133 "{" |
163 | R_CURLY@[133; 134) "}" | 163 | R_CURLY@133..134 "}" |
164 | WHITESPACE@[134; 135) "\n" | 164 | WHITESPACE@134..135 "\n" |
165 | R_CURLY@[135; 136) "}" | 165 | R_CURLY@135..136 "}" |
166 | WHITESPACE@[136; 137) "\n" | 166 | WHITESPACE@136..137 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast index 91d0c3736..3294f4901 100644 --- a/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast +++ b/crates/ra_syntax/test_data/parser/ok/0065_comment_newline.rast | |||
@@ -1,17 +1,17 @@ | |||
1 | SOURCE_FILE@[0; 26) | 1 | SOURCE_FILE@0..26 |
2 | FN_DEF@[0; 25) | 2 | FN_DEF@0..25 |
3 | COMMENT@[0; 11) "/// Example" | 3 | COMMENT@0..11 "/// Example" |
4 | WHITESPACE@[11; 13) "\n\n" | 4 | WHITESPACE@11..13 "\n\n" |
5 | FN_KW@[13; 15) "fn" | 5 | FN_KW@13..15 "fn" |
6 | WHITESPACE@[15; 16) " " | 6 | WHITESPACE@15..16 " " |
7 | NAME@[16; 20) | 7 | NAME@16..20 |
8 | IDENT@[16; 20) "test" | 8 | IDENT@16..20 "test" |
9 | PARAM_LIST@[20; 22) | 9 | PARAM_LIST@20..22 |
10 | L_PAREN@[20; 21) "(" | 10 | L_PAREN@20..21 "(" |
11 | R_PAREN@[21; 22) ")" | 11 | R_PAREN@21..22 ")" |
12 | WHITESPACE@[22; 23) " " | 12 | WHITESPACE@22..23 " " |
13 | BLOCK_EXPR@[23; 25) | 13 | BLOCK_EXPR@23..25 |
14 | BLOCK@[23; 25) | 14 | BLOCK@23..25 |
15 | L_CURLY@[23; 24) "{" | 15 | L_CURLY@23..24 "{" |
16 | R_CURLY@[24; 25) "}" | 16 | R_CURLY@24..25 "}" |
17 | WHITESPACE@[25; 26) "\n" | 17 | WHITESPACE@25..26 "\n" |
diff --git a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast index 1b0acf47c..633b14000 100644 --- a/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast +++ b/crates/ra_syntax/test_data/parser/ok/0065_plus_after_fn_trait_bound.rast | |||
@@ -1,61 +1,61 @@ | |||
1 | SOURCE_FILE@[0; 40) | 1 | SOURCE_FILE@0..40 |
2 | FN_DEF@[0; 39) | 2 | FN_DEF@0..39 |
3 | FN_KW@[0; 2) "fn" | 3 | FN_KW@0..2 "fn" |
4 | WHITESPACE@[2; 3) " " | 4 | WHITESPACE@2..3 " " |
5 | NAME@[3; 4) | 5 | NAME@3..4 |
6 | IDENT@[3; 4) "f" | 6 | IDENT@3..4 "f" |
7 | TYPE_PARAM_LIST@[4; 7) | 7 | TYPE_PARAM_LIST@4..7 |
8 | L_ANGLE@[4; 5) "<" | 8 | L_ANGLE@4..5 "<" |
9 | TYPE_PARAM@[5; 6) | 9 | TYPE_PARAM@5..6 |
10 | NAME@[5; 6) | 10 | NAME@5..6 |
11 | IDENT@[5; 6) "T" | 11 | IDENT@5..6 "T" |
12 | R_ANGLE@[6; 7) ">" | 12 | R_ANGLE@6..7 ">" |
13 | PARAM_LIST@[7; 9) | 13 | PARAM_LIST@7..9 |
14 | L_PAREN@[7; 8) "(" | 14 | L_PAREN@7..8 "(" |
15 | R_PAREN@[8; 9) ")" | 15 | R_PAREN@8..9 ")" |
16 | WHITESPACE@[9; 10) " " | 16 | WHITESPACE@9..10 " " |
17 | WHERE_CLAUSE@[10; 36) | 17 | WHERE_CLAUSE@10..36 |
18 | WHERE_KW@[10; 15) "where" | 18 | WHERE_KW@10..15 "where" |
19 | WHITESPACE@[15; 16) " " | 19 | WHITESPACE@15..16 " " |
20 | WHERE_PRED@[16; 36) | 20 | WHERE_PRED@16..36 |
21 | PATH_TYPE@[16; 17) | 21 | PATH_TYPE@16..17 |
22 | PATH@[16; 17) | 22 | PATH@16..17 |
23 | PATH_SEGMENT@[16; 17) | 23 | PATH_SEGMENT@16..17 |
24 | NAME_REF@[16; 17) | 24 | NAME_REF@16..17 |
25 | IDENT@[16; 17) "T" | 25 | IDENT@16..17 "T" |
26 | COLON@[17; 18) ":" | 26 | COLON@17..18 ":" |
27 | WHITESPACE@[18; 19) " " | 27 | WHITESPACE@18..19 " " |
28 | TYPE_BOUND_LIST@[19; 36) | 28 | TYPE_BOUND_LIST@19..36 |
29 | TYPE_BOUND@[19; 29) | 29 | TYPE_BOUND@19..29 |
30 | PATH_TYPE@[19; 29) | 30 | PATH_TYPE@19..29 |
31 | PATH@[19; 29) | 31 | PATH@19..29 |
32 | PATH_SEGMENT@[19; 29) | 32 | PATH_SEGMENT@19..29 |
33 | NAME_REF@[19; 21) | 33 | NAME_REF@19..21 |
34 | IDENT@[19; 21) "Fn" | 34 | IDENT@19..21 "Fn" |
35 | PARAM_LIST@[21; 23) | 35 | PARAM_LIST@21..23 |
36 | L_PAREN@[21; 22) "(" | 36 | L_PAREN@21..22 "(" |
37 | R_PAREN@[22; 23) ")" | 37 | R_PAREN@22..23 ")" |
38 | WHITESPACE@[23; 24) " " | 38 | WHITESPACE@23..24 " " |
39 | RET_TYPE@[24; 29) | 39 | RET_TYPE@24..29 |
40 | THIN_ARROW@[24; 26) "->" | 40 | THIN_ARROW@24..26 "->" |
41 | WHITESPACE@[26; 27) " " | 41 | WHITESPACE@26..27 " " |
42 | PATH_TYPE@[27; 29) | 42 | PATH_TYPE@27..29 |
43 | PATH@[27; 29) | 43 | PATH@27..29 |
44 | PATH_SEGMENT@[27; 29) | 44 | PATH_SEGMENT@27..29 |
45 | NAME_REF@[27; 29) | 45 | NAME_REF@27..29 |
46 | IDENT@[27; 29) "u8" | 46 | IDENT@27..29 "u8" |
47 | WHITESPACE@[29; 30) " " | 47 | WHITESPACE@29..30 " " |
48 | PLUS@[30; 31) "+" | 48 | PLUS@30..31 "+" |
49 | WHITESPACE@[31; 32) " " | 49 | WHITESPACE@31..32 " " |
50 | TYPE_BOUND@[32; 36) | 50 | TYPE_BOUND@32..36 |
51 | PATH_TYPE@[32; 36) | 51 | PATH_TYPE@32..36 |
52 | PATH@[32; 36) | 52 | PATH@32..36 |
53 | PATH_SEGMENT@[32; 36) | 53 | PATH_SEGMENT@32..36 |
54 | NAME_REF@[32; 36) | 54 | NAME_REF@32..36 |
55 | IDENT@[32; 36) "Send" | 55 | IDENT@32..36 "Send" |
56 | WHITESPACE@[36; 37) " " | 56 | WHITESPACE@36..37 " " |
57 | BLOCK_EXPR@[37; 39) | 57 | BLOCK_EXPR@37..39 |
58 | BLOCK@[37; 39) | 58 | BLOCK@37..39 |
59 | L_CURLY@[37; 38) "{" | 59 | L_CURLY@37..38 "{" |
60 | R_CURLY@[38; 39) "}" | 60 | R_CURLY@38..39 "}" |
61 | WHITESPACE@[39; 40) "\n" | 61 | WHITESPACE@39..40 "\n" |
diff --git a/crates/ra_text_edit/Cargo.toml b/crates/ra_text_edit/Cargo.toml index cae28389d..46a2ab68f 100644 --- a/crates/ra_text_edit/Cargo.toml +++ b/crates/ra_text_edit/Cargo.toml | |||
@@ -9,5 +9,4 @@ publish = false | |||
9 | doctest = false | 9 | doctest = false |
10 | 10 | ||
11 | [dependencies] | 11 | [dependencies] |
12 | text_unit = "0.1.10" | 12 | text-size = "1.0.0" |
13 | |||
diff --git a/crates/ra_text_edit/src/lib.rs b/crates/ra_text_edit/src/lib.rs index f6769e6a6..e656260c7 100644 --- a/crates/ra_text_edit/src/lib.rs +++ b/crates/ra_text_edit/src/lib.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | mod text_edit; | 3 | mod text_edit; |
4 | 4 | ||
5 | use text_unit::{TextRange, TextUnit}; | 5 | use text_size::{TextRange, TextSize}; |
6 | 6 | ||
7 | pub use crate::text_edit::{TextEdit, TextEditBuilder}; | 7 | pub use crate::text_edit::{TextEdit, TextEditBuilder}; |
8 | 8 | ||
@@ -23,13 +23,13 @@ impl AtomTextEdit { | |||
23 | AtomTextEdit::replace(range, String::new()) | 23 | AtomTextEdit::replace(range, String::new()) |
24 | } | 24 | } |
25 | 25 | ||
26 | pub fn insert(offset: TextUnit, text: String) -> AtomTextEdit { | 26 | pub fn insert(offset: TextSize, text: String) -> AtomTextEdit { |
27 | AtomTextEdit::replace(TextRange::offset_len(offset, 0.into()), text) | 27 | AtomTextEdit::replace(TextRange::empty(offset), text) |
28 | } | 28 | } |
29 | 29 | ||
30 | pub fn apply(&self, mut text: String) -> String { | 30 | pub fn apply(&self, mut text: String) -> String { |
31 | let start = self.delete.start().to_usize(); | 31 | let start: usize = self.delete.start().into(); |
32 | let end = self.delete.end().to_usize(); | 32 | let end: usize = self.delete.end().into(); |
33 | text.replace_range(start..end, &self.insert); | 33 | text.replace_range(start..end, &self.insert); |
34 | text | 34 | text |
35 | } | 35 | } |
diff --git a/crates/ra_text_edit/src/text_edit.rs b/crates/ra_text_edit/src/text_edit.rs index 5c37a08a8..eabab4b4d 100644 --- a/crates/ra_text_edit/src/text_edit.rs +++ b/crates/ra_text_edit/src/text_edit.rs | |||
@@ -1,7 +1,8 @@ | |||
1 | //! FIXME: write short doc here | 1 | //! FIXME: write short doc here |
2 | 2 | ||
3 | use crate::AtomTextEdit; | 3 | use crate::AtomTextEdit; |
4 | use text_unit::{TextRange, TextUnit}; | 4 | |
5 | use text_size::{TextRange, TextSize}; | ||
5 | 6 | ||
6 | #[derive(Debug, Clone)] | 7 | #[derive(Debug, Clone)] |
7 | pub struct TextEdit { | 8 | pub struct TextEdit { |
@@ -20,19 +21,19 @@ impl TextEditBuilder { | |||
20 | pub fn delete(&mut self, range: TextRange) { | 21 | pub fn delete(&mut self, range: TextRange) { |
21 | self.atoms.push(AtomTextEdit::delete(range)) | 22 | self.atoms.push(AtomTextEdit::delete(range)) |
22 | } | 23 | } |
23 | pub fn insert(&mut self, offset: TextUnit, text: String) { | 24 | pub fn insert(&mut self, offset: TextSize, text: String) { |
24 | self.atoms.push(AtomTextEdit::insert(offset, text)) | 25 | self.atoms.push(AtomTextEdit::insert(offset, text)) |
25 | } | 26 | } |
26 | pub fn finish(self) -> TextEdit { | 27 | pub fn finish(self) -> TextEdit { |
27 | TextEdit::from_atoms(self.atoms) | 28 | TextEdit::from_atoms(self.atoms) |
28 | } | 29 | } |
29 | pub fn invalidates_offset(&self, offset: TextUnit) -> bool { | 30 | pub fn invalidates_offset(&self, offset: TextSize) -> bool { |
30 | self.atoms.iter().any(|atom| atom.delete.contains_inclusive(offset)) | 31 | self.atoms.iter().any(|atom| atom.delete.contains_inclusive(offset)) |
31 | } | 32 | } |
32 | } | 33 | } |
33 | 34 | ||
34 | impl TextEdit { | 35 | impl TextEdit { |
35 | pub fn insert(offset: TextUnit, text: String) -> TextEdit { | 36 | pub fn insert(offset: TextSize, text: String) -> TextEdit { |
36 | let mut builder = TextEditBuilder::default(); | 37 | let mut builder = TextEditBuilder::default(); |
37 | builder.insert(offset, text); | 38 | builder.insert(offset, text); |
38 | builder.finish() | 39 | builder.finish() |
@@ -63,16 +64,16 @@ impl TextEdit { | |||
63 | } | 64 | } |
64 | 65 | ||
65 | pub fn apply(&self, text: &str) -> String { | 66 | pub fn apply(&self, text: &str) -> String { |
66 | let mut total_len = TextUnit::of_str(text); | 67 | let mut total_len = TextSize::of(text); |
67 | for atom in self.atoms.iter() { | 68 | for atom in self.atoms.iter() { |
68 | total_len += TextUnit::of_str(&atom.insert); | 69 | total_len += TextSize::of(&atom.insert); |
69 | total_len -= atom.delete.end() - atom.delete.start(); | 70 | total_len -= atom.delete.end() - atom.delete.start(); |
70 | } | 71 | } |
71 | let mut buf = String::with_capacity(total_len.to_usize()); | 72 | let mut buf = String::with_capacity(total_len.into()); |
72 | let mut prev = 0; | 73 | let mut prev = 0; |
73 | for atom in self.atoms.iter() { | 74 | for atom in self.atoms.iter() { |
74 | let start = atom.delete.start().to_usize(); | 75 | let start: usize = atom.delete.start().into(); |
75 | let end = atom.delete.end().to_usize(); | 76 | let end: usize = atom.delete.end().into(); |
76 | if start > prev { | 77 | if start > prev { |
77 | buf.push_str(&text[prev..start]); | 78 | buf.push_str(&text[prev..start]); |
78 | } | 79 | } |
@@ -80,11 +81,11 @@ impl TextEdit { | |||
80 | prev = end; | 81 | prev = end; |
81 | } | 82 | } |
82 | buf.push_str(&text[prev..text.len()]); | 83 | buf.push_str(&text[prev..text.len()]); |
83 | assert_eq!(TextUnit::of_str(&buf), total_len); | 84 | assert_eq!(TextSize::of(&buf), total_len); |
84 | buf | 85 | buf |
85 | } | 86 | } |
86 | 87 | ||
87 | pub fn apply_to_offset(&self, offset: TextUnit) -> Option<TextUnit> { | 88 | pub fn apply_to_offset(&self, offset: TextSize) -> Option<TextSize> { |
88 | let mut res = offset; | 89 | let mut res = offset; |
89 | for atom in self.atoms.iter() { | 90 | for atom in self.atoms.iter() { |
90 | if atom.delete.start() >= offset { | 91 | if atom.delete.start() >= offset { |
@@ -93,7 +94,7 @@ impl TextEdit { | |||
93 | if offset < atom.delete.end() { | 94 | if offset < atom.delete.end() { |
94 | return None; | 95 | return None; |
95 | } | 96 | } |
96 | res += TextUnit::of_str(&atom.insert); | 97 | res += TextSize::of(&atom.insert); |
97 | res -= atom.delete.len(); | 98 | res -= atom.delete.len(); |
98 | } | 99 | } |
99 | Some(res) | 100 | Some(res) |
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs index 9fa7dad71..72183da15 100644 --- a/crates/rust-analyzer/src/cli/analysis_stats.rs +++ b/crates/rust-analyzer/src/cli/analysis_stats.rs | |||
@@ -130,7 +130,7 @@ pub fn analysis_stats( | |||
130 | let original_file = src.file_id.original_file(db); | 130 | let original_file = src.file_id.original_file(db); |
131 | let path = db.file_relative_path(original_file); | 131 | let path = db.file_relative_path(original_file); |
132 | let syntax_range = src.value.syntax().text_range(); | 132 | let syntax_range = src.value.syntax().text_range(); |
133 | format_to!(msg, " ({:?} {})", path, syntax_range); | 133 | format_to!(msg, " ({:?} {:?})", path, syntax_range); |
134 | } | 134 | } |
135 | if verbosity.is_spammy() { | 135 | if verbosity.is_spammy() { |
136 | bar.println(msg.to_string()); | 136 | bar.println(msg.to_string()); |
diff --git a/crates/rust-analyzer/src/conv.rs b/crates/rust-analyzer/src/conv.rs index 098ee369c..b0f911f71 100644 --- a/crates/rust-analyzer/src/conv.rs +++ b/crates/rust-analyzer/src/conv.rs | |||
@@ -14,7 +14,7 @@ use ra_ide::{ | |||
14 | InlayHint, InlayKind, InsertTextFormat, LineCol, LineIndex, NavigationTarget, RangeInfo, | 14 | InlayHint, InlayKind, InsertTextFormat, LineCol, LineIndex, NavigationTarget, RangeInfo, |
15 | ReferenceAccess, Severity, SourceChange, SourceFileEdit, | 15 | ReferenceAccess, Severity, SourceChange, SourceFileEdit, |
16 | }; | 16 | }; |
17 | use ra_syntax::{SyntaxKind, TextRange, TextUnit}; | 17 | use ra_syntax::{SyntaxKind, TextRange, TextSize}; |
18 | use ra_text_edit::{AtomTextEdit, TextEdit}; | 18 | use ra_text_edit::{AtomTextEdit, TextEdit}; |
19 | use ra_vfs::LineEndings; | 19 | use ra_vfs::LineEndings; |
20 | 20 | ||
@@ -100,6 +100,7 @@ impl Conv for CompletionItemKind { | |||
100 | CompletionItemKind::Method => Method, | 100 | CompletionItemKind::Method => Method, |
101 | CompletionItemKind::TypeParam => TypeParameter, | 101 | CompletionItemKind::TypeParam => TypeParameter, |
102 | CompletionItemKind::Macro => Method, | 102 | CompletionItemKind::Macro => Method, |
103 | CompletionItemKind::Attribute => EnumMember, | ||
103 | } | 104 | } |
104 | } | 105 | } |
105 | } | 106 | } |
@@ -123,13 +124,13 @@ impl ConvWith<(&LineIndex, LineEndings)> for CompletionItem { | |||
123 | // LSP does not allow arbitrary edits in completion, so we have to do a | 124 | // LSP does not allow arbitrary edits in completion, so we have to do a |
124 | // non-trivial mapping here. | 125 | // non-trivial mapping here. |
125 | for atom_edit in self.text_edit().as_atoms() { | 126 | for atom_edit in self.text_edit().as_atoms() { |
126 | if self.source_range().is_subrange(&atom_edit.delete) { | 127 | if atom_edit.delete.contains_range(self.source_range()) { |
127 | text_edit = Some(if atom_edit.delete == self.source_range() { | 128 | text_edit = Some(if atom_edit.delete == self.source_range() { |
128 | atom_edit.conv_with((ctx.0, ctx.1)) | 129 | atom_edit.conv_with((ctx.0, ctx.1)) |
129 | } else { | 130 | } else { |
130 | assert!(self.source_range().end() == atom_edit.delete.end()); | 131 | assert!(self.source_range().end() == atom_edit.delete.end()); |
131 | let range1 = | 132 | let range1 = |
132 | TextRange::from_to(atom_edit.delete.start(), self.source_range().start()); | 133 | TextRange::new(atom_edit.delete.start(), self.source_range().start()); |
133 | let range2 = self.source_range(); | 134 | let range2 = self.source_range(); |
134 | let edit1 = AtomTextEdit::replace(range1, String::new()); | 135 | let edit1 = AtomTextEdit::replace(range1, String::new()); |
135 | let edit2 = AtomTextEdit::replace(range2, atom_edit.insert.clone()); | 136 | let edit2 = AtomTextEdit::replace(range2, atom_edit.insert.clone()); |
@@ -137,7 +138,7 @@ impl ConvWith<(&LineIndex, LineEndings)> for CompletionItem { | |||
137 | edit2.conv_with((ctx.0, ctx.1)) | 138 | edit2.conv_with((ctx.0, ctx.1)) |
138 | }) | 139 | }) |
139 | } else { | 140 | } else { |
140 | assert!(self.source_range().intersection(&atom_edit.delete).is_none()); | 141 | assert!(self.source_range().intersect(atom_edit.delete).is_none()); |
141 | additional_text_edits.push(atom_edit.conv_with((ctx.0, ctx.1))); | 142 | additional_text_edits.push(atom_edit.conv_with((ctx.0, ctx.1))); |
142 | } | 143 | } |
143 | } | 144 | } |
@@ -183,15 +184,15 @@ impl ConvWith<(&LineIndex, LineEndings)> for CompletionItem { | |||
183 | } | 184 | } |
184 | 185 | ||
185 | impl ConvWith<&LineIndex> for Position { | 186 | impl ConvWith<&LineIndex> for Position { |
186 | type Output = TextUnit; | 187 | type Output = TextSize; |
187 | 188 | ||
188 | fn conv_with(self, line_index: &LineIndex) -> TextUnit { | 189 | fn conv_with(self, line_index: &LineIndex) -> TextSize { |
189 | let line_col = LineCol { line: self.line as u32, col_utf16: self.character as u32 }; | 190 | let line_col = LineCol { line: self.line as u32, col_utf16: self.character as u32 }; |
190 | line_index.offset(line_col) | 191 | line_index.offset(line_col) |
191 | } | 192 | } |
192 | } | 193 | } |
193 | 194 | ||
194 | impl ConvWith<&LineIndex> for TextUnit { | 195 | impl ConvWith<&LineIndex> for TextSize { |
195 | type Output = Position; | 196 | type Output = Position; |
196 | 197 | ||
197 | fn conv_with(self, line_index: &LineIndex) -> Position { | 198 | fn conv_with(self, line_index: &LineIndex) -> Position { |
@@ -212,7 +213,7 @@ impl ConvWith<&LineIndex> for Range { | |||
212 | type Output = TextRange; | 213 | type Output = TextRange; |
213 | 214 | ||
214 | fn conv_with(self, line_index: &LineIndex) -> TextRange { | 215 | fn conv_with(self, line_index: &LineIndex) -> TextRange { |
215 | TextRange::from_to(self.start.conv_with(line_index), self.end.conv_with(line_index)) | 216 | TextRange::new(self.start.conv_with(line_index), self.end.conv_with(line_index)) |
216 | } | 217 | } |
217 | } | 218 | } |
218 | 219 | ||
@@ -299,7 +300,7 @@ impl ConvWith<&FoldConvCtx<'_>> for Fold { | |||
299 | // range.end.line from the folding region if there is more text after range.end | 300 | // range.end.line from the folding region if there is more text after range.end |
300 | // on the same line. | 301 | // on the same line. |
301 | let has_more_text_on_end_line = ctx.text | 302 | let has_more_text_on_end_line = ctx.text |
302 | [TextRange::from_to(self.range.end(), TextUnit::of_str(ctx.text))] | 303 | [TextRange::new(self.range.end(), TextSize::of(ctx.text))] |
303 | .chars() | 304 | .chars() |
304 | .take_while(|it| *it != '\n') | 305 | .take_while(|it| *it != '\n') |
305 | .any(|it| !it.is_whitespace()); | 306 | .any(|it| !it.is_whitespace()); |
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs index fc4c77f8a..d993c4146 100644 --- a/crates/rust-analyzer/src/main_loop.rs +++ b/crates/rust-analyzer/src/main_loop.rs | |||
@@ -696,7 +696,7 @@ fn on_diagnostic_task(task: DiagnosticTask, msg_sender: &Sender<Message>, state: | |||
696 | let uri = match url_from_path_with_drive_lowercasing(&path) { | 696 | let uri = match url_from_path_with_drive_lowercasing(&path) { |
697 | Ok(uri) => uri, | 697 | Ok(uri) => uri, |
698 | Err(err) => { | 698 | Err(err) => { |
699 | log::error!("Couldn't convert path to url ({}): {:?}", err, path.to_string_lossy()); | 699 | log::error!("Couldn't convert path to url ({}): {}", err, path.display()); |
700 | continue; | 700 | continue; |
701 | } | 701 | } |
702 | }; | 702 | }; |
diff --git a/crates/rust-analyzer/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs index 41d9fe344..c2c1a23cd 100644 --- a/crates/rust-analyzer/src/main_loop/handlers.rs +++ b/crates/rust-analyzer/src/main_loop/handlers.rs | |||
@@ -23,7 +23,7 @@ use ra_ide::{ | |||
23 | SearchScope, | 23 | SearchScope, |
24 | }; | 24 | }; |
25 | use ra_prof::profile; | 25 | use ra_prof::profile; |
26 | use ra_syntax::{AstNode, SyntaxKind, TextRange, TextUnit}; | 26 | use ra_syntax::{AstNode, SyntaxKind, TextRange, TextSize}; |
27 | use rustc_hash::FxHashMap; | 27 | use rustc_hash::FxHashMap; |
28 | use serde::{Deserialize, Serialize}; | 28 | use serde::{Deserialize, Serialize}; |
29 | use serde_json::to_value; | 29 | use serde_json::to_value; |
@@ -97,7 +97,7 @@ pub fn handle_selection_range( | |||
97 | .map(|position| { | 97 | .map(|position| { |
98 | let mut ranges = Vec::new(); | 98 | let mut ranges = Vec::new(); |
99 | { | 99 | { |
100 | let mut range = TextRange::from_to(position, position); | 100 | let mut range = TextRange::new(position, position); |
101 | loop { | 101 | loop { |
102 | ranges.push(range); | 102 | ranges.push(range); |
103 | let frange = FileRange { file_id, range }; | 103 | let frange = FileRange { file_id, range }; |
@@ -184,11 +184,11 @@ pub fn handle_on_type_formatting( | |||
184 | 184 | ||
185 | // in `ra_ide`, the `on_type` invariant is that | 185 | // in `ra_ide`, the `on_type` invariant is that |
186 | // `text.char_at(position) == typed_char`. | 186 | // `text.char_at(position) == typed_char`. |
187 | position.offset -= TextUnit::of_char('.'); | 187 | position.offset -= TextSize::of('.'); |
188 | let char_typed = params.ch.chars().next().unwrap_or('\0'); | 188 | let char_typed = params.ch.chars().next().unwrap_or('\0'); |
189 | assert!({ | 189 | assert!({ |
190 | let text = world.analysis().file_text(position.file_id)?; | 190 | let text = world.analysis().file_text(position.file_id)?; |
191 | text[position.offset.to_usize()..].starts_with(char_typed) | 191 | text[usize::from(position.offset)..].starts_with(char_typed) |
192 | }); | 192 | }); |
193 | 193 | ||
194 | // We have an assist that inserts ` ` after typing `->` in `fn foo() ->{`, | 194 | // We have an assist that inserts ` ` after typing `->` in `fn foo() ->{`, |
@@ -384,7 +384,7 @@ pub fn handle_runnables( | |||
384 | args: check_args, | 384 | args: check_args, |
385 | extra_args: Vec::new(), | 385 | extra_args: Vec::new(), |
386 | env: FxHashMap::default(), | 386 | env: FxHashMap::default(), |
387 | cwd: workspace_root.map(|root| root.to_string_lossy().to_string()), | 387 | cwd: workspace_root.map(|root| root.to_owned()), |
388 | }); | 388 | }); |
389 | Ok(res) | 389 | Ok(res) |
390 | } | 390 | } |
@@ -403,7 +403,7 @@ pub fn handle_completion( | |||
403 | let syntax = source_file.syntax(); | 403 | let syntax = source_file.syntax(); |
404 | let text = syntax.text(); | 404 | let text = syntax.text(); |
405 | if let Some(next_char) = text.char_at(position.offset) { | 405 | if let Some(next_char) = text.char_at(position.offset) { |
406 | let diff = TextUnit::of_char(next_char) + TextUnit::of_char(':'); | 406 | let diff = TextSize::of(next_char) + TextSize::of(':'); |
407 | let prev_char = position.offset - diff; | 407 | let prev_char = position.offset - diff; |
408 | if text.char_at(prev_char) != Some(':') { | 408 | if text.char_at(prev_char) != Some(':') { |
409 | res = true; | 409 | res = true; |
@@ -592,7 +592,7 @@ pub fn handle_formatting( | |||
592 | let crate_ids = world.analysis().crate_for(file_id)?; | 592 | let crate_ids = world.analysis().crate_for(file_id)?; |
593 | 593 | ||
594 | let file_line_index = world.analysis().file_line_index(file_id)?; | 594 | let file_line_index = world.analysis().file_line_index(file_id)?; |
595 | let end_position = TextUnit::of_str(&file).conv_with(&file_line_index); | 595 | let end_position = TextSize::of(file.as_str()).conv_with(&file_line_index); |
596 | 596 | ||
597 | let mut rustfmt = match &world.config.rustfmt { | 597 | let mut rustfmt = match &world.config.rustfmt { |
598 | RustfmtConfig::Rustfmt { extra_args } => { | 598 | RustfmtConfig::Rustfmt { extra_args } => { |
@@ -698,7 +698,7 @@ pub fn handle_code_action( | |||
698 | let fixes_from_diagnostics = diagnostics | 698 | let fixes_from_diagnostics = diagnostics |
699 | .into_iter() | 699 | .into_iter() |
700 | .filter_map(|d| Some((d.range, d.fix?))) | 700 | .filter_map(|d| Some((d.range, d.fix?))) |
701 | .filter(|(diag_range, _fix)| diag_range.intersection(&range).is_some()) | 701 | .filter(|(diag_range, _fix)| diag_range.intersect(range).is_some()) |
702 | .map(|(_range, fix)| fix); | 702 | .map(|(_range, fix)| fix); |
703 | 703 | ||
704 | for source_edit in fixes_from_diagnostics { | 704 | for source_edit in fixes_from_diagnostics { |
@@ -723,7 +723,7 @@ pub fn handle_code_action( | |||
723 | 723 | ||
724 | for fix in world.check_fixes.get(&file_id).into_iter().flatten() { | 724 | for fix in world.check_fixes.get(&file_id).into_iter().flatten() { |
725 | let fix_range = fix.range.conv_with(&line_index); | 725 | let fix_range = fix.range.conv_with(&line_index); |
726 | if fix_range.intersection(&range).is_none() { | 726 | if fix_range.intersect(range).is_none() { |
727 | continue; | 727 | continue; |
728 | } | 728 | } |
729 | res.push(fix.action.clone()); | 729 | res.push(fix.action.clone()); |
@@ -984,7 +984,7 @@ fn to_lsp_runnable( | |||
984 | m.insert("RUST_BACKTRACE".to_string(), "short".to_string()); | 984 | m.insert("RUST_BACKTRACE".to_string(), "short".to_string()); |
985 | m | 985 | m |
986 | }, | 986 | }, |
987 | cwd: world.workspace_root_for(file_id).map(|root| root.to_string_lossy().to_string()), | 987 | cwd: world.workspace_root_for(file_id).map(|root| root.to_owned()), |
988 | }) | 988 | }) |
989 | } | 989 | } |
990 | 990 | ||
@@ -1107,7 +1107,7 @@ pub fn handle_semantic_tokens( | |||
1107 | let (token_index, modifier_bitset) = highlight_range.highlight.conv(); | 1107 | let (token_index, modifier_bitset) = highlight_range.highlight.conv(); |
1108 | for mut range in line_index.lines(highlight_range.range) { | 1108 | for mut range in line_index.lines(highlight_range.range) { |
1109 | if text[range].ends_with('\n') { | 1109 | if text[range].ends_with('\n') { |
1110 | range = TextRange::from_to(range.start(), range.end() - TextUnit::of_char('\n')); | 1110 | range = TextRange::new(range.start(), range.end() - TextSize::of('\n')); |
1111 | } | 1111 | } |
1112 | let range = range.conv_with(&line_index); | 1112 | let range = range.conv_with(&line_index); |
1113 | builder.push(range, token_index, modifier_bitset); | 1113 | builder.push(range, token_index, modifier_bitset); |
diff --git a/crates/rust-analyzer/src/req.rs b/crates/rust-analyzer/src/req.rs index b8b627e28..ae3448892 100644 --- a/crates/rust-analyzer/src/req.rs +++ b/crates/rust-analyzer/src/req.rs | |||
@@ -17,6 +17,7 @@ pub use lsp_types::{ | |||
17 | SignatureHelp, SymbolKind, TextDocumentEdit, TextDocumentPositionParams, TextEdit, | 17 | SignatureHelp, SymbolKind, TextDocumentEdit, TextDocumentPositionParams, TextEdit, |
18 | WorkDoneProgressParams, WorkspaceEdit, WorkspaceSymbolParams, | 18 | WorkDoneProgressParams, WorkspaceEdit, WorkspaceSymbolParams, |
19 | }; | 19 | }; |
20 | use std::path::PathBuf; | ||
20 | 21 | ||
21 | pub enum AnalyzerStatus {} | 22 | pub enum AnalyzerStatus {} |
22 | 23 | ||
@@ -141,7 +142,7 @@ pub struct Runnable { | |||
141 | pub args: Vec<String>, | 142 | pub args: Vec<String>, |
142 | pub extra_args: Vec<String>, | 143 | pub extra_args: Vec<String>, |
143 | pub env: FxHashMap<String, String>, | 144 | pub env: FxHashMap<String, String>, |
144 | pub cwd: Option<String>, | 145 | pub cwd: Option<PathBuf>, |
145 | } | 146 | } |
146 | 147 | ||
147 | #[derive(Deserialize, Serialize, Debug)] | 148 | #[derive(Deserialize, Serialize, Debug)] |
diff --git a/crates/test_utils/Cargo.toml b/crates/test_utils/Cargo.toml index 6a7c6d6f9..8ec986bcb 100644 --- a/crates/test_utils/Cargo.toml +++ b/crates/test_utils/Cargo.toml | |||
@@ -9,5 +9,5 @@ doctest = false | |||
9 | 9 | ||
10 | [dependencies] | 10 | [dependencies] |
11 | difference = "2.0.0" | 11 | difference = "2.0.0" |
12 | text_unit = "0.1.10" | 12 | text-size = "1.0.0" |
13 | serde_json = "1.0.48" | 13 | serde_json = "1.0.48" |
diff --git a/crates/test_utils/src/lib.rs b/crates/test_utils/src/lib.rs index 4164bfd5e..b1365444a 100644 --- a/crates/test_utils/src/lib.rs +++ b/crates/test_utils/src/lib.rs | |||
@@ -15,7 +15,7 @@ use std::{ | |||
15 | }; | 15 | }; |
16 | 16 | ||
17 | use serde_json::Value; | 17 | use serde_json::Value; |
18 | use text_unit::{TextRange, TextUnit}; | 18 | use text_size::{TextRange, TextSize}; |
19 | 19 | ||
20 | pub use difference::Changeset as __Changeset; | 20 | pub use difference::Changeset as __Changeset; |
21 | 21 | ||
@@ -49,7 +49,7 @@ macro_rules! assert_eq_text { | |||
49 | } | 49 | } |
50 | 50 | ||
51 | /// Infallible version of `try_extract_offset()`. | 51 | /// Infallible version of `try_extract_offset()`. |
52 | pub fn extract_offset(text: &str) -> (TextUnit, String) { | 52 | pub fn extract_offset(text: &str) -> (TextSize, String) { |
53 | match try_extract_offset(text) { | 53 | match try_extract_offset(text) { |
54 | None => panic!("text should contain cursor marker"), | 54 | None => panic!("text should contain cursor marker"), |
55 | Some(result) => result, | 55 | Some(result) => result, |
@@ -58,12 +58,12 @@ pub fn extract_offset(text: &str) -> (TextUnit, String) { | |||
58 | 58 | ||
59 | /// Returns the offset of the first occurence of `<|>` marker and the copy of `text` | 59 | /// Returns the offset of the first occurence of `<|>` marker and the copy of `text` |
60 | /// without the marker. | 60 | /// without the marker. |
61 | fn try_extract_offset(text: &str) -> Option<(TextUnit, String)> { | 61 | fn try_extract_offset(text: &str) -> Option<(TextSize, String)> { |
62 | let cursor_pos = text.find(CURSOR_MARKER)?; | 62 | let cursor_pos = text.find(CURSOR_MARKER)?; |
63 | let mut new_text = String::with_capacity(text.len() - CURSOR_MARKER.len()); | 63 | let mut new_text = String::with_capacity(text.len() - CURSOR_MARKER.len()); |
64 | new_text.push_str(&text[..cursor_pos]); | 64 | new_text.push_str(&text[..cursor_pos]); |
65 | new_text.push_str(&text[cursor_pos + CURSOR_MARKER.len()..]); | 65 | new_text.push_str(&text[cursor_pos + CURSOR_MARKER.len()..]); |
66 | let cursor_pos = TextUnit::from(cursor_pos as u32); | 66 | let cursor_pos = TextSize::from(cursor_pos as u32); |
67 | Some((cursor_pos, new_text)) | 67 | Some((cursor_pos, new_text)) |
68 | } | 68 | } |
69 | 69 | ||
@@ -80,25 +80,25 @@ pub fn extract_range(text: &str) -> (TextRange, String) { | |||
80 | fn try_extract_range(text: &str) -> Option<(TextRange, String)> { | 80 | fn try_extract_range(text: &str) -> Option<(TextRange, String)> { |
81 | let (start, text) = try_extract_offset(text)?; | 81 | let (start, text) = try_extract_offset(text)?; |
82 | let (end, text) = try_extract_offset(&text)?; | 82 | let (end, text) = try_extract_offset(&text)?; |
83 | Some((TextRange::from_to(start, end), text)) | 83 | Some((TextRange::new(start, end), text)) |
84 | } | 84 | } |
85 | 85 | ||
86 | #[derive(Clone, Copy)] | 86 | #[derive(Clone, Copy)] |
87 | pub enum RangeOrOffset { | 87 | pub enum RangeOrOffset { |
88 | Range(TextRange), | 88 | Range(TextRange), |
89 | Offset(TextUnit), | 89 | Offset(TextSize), |
90 | } | 90 | } |
91 | 91 | ||
92 | impl From<RangeOrOffset> for TextRange { | 92 | impl From<RangeOrOffset> for TextRange { |
93 | fn from(selection: RangeOrOffset) -> Self { | 93 | fn from(selection: RangeOrOffset) -> Self { |
94 | match selection { | 94 | match selection { |
95 | RangeOrOffset::Range(it) => it, | 95 | RangeOrOffset::Range(it) => it, |
96 | RangeOrOffset::Offset(it) => TextRange::from_to(it, it), | 96 | RangeOrOffset::Offset(it) => TextRange::new(it, it), |
97 | } | 97 | } |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | /// Extracts `TextRange` or `TextUnit` depending on the amount of `<|>` markers | 101 | /// Extracts `TextRange` or `TextSize` depending on the amount of `<|>` markers |
102 | /// found in `text`. | 102 | /// found in `text`. |
103 | /// | 103 | /// |
104 | /// # Panics | 104 | /// # Panics |
@@ -129,13 +129,13 @@ pub fn extract_ranges(mut text: &str, tag: &str) -> (Vec<TextRange>, String) { | |||
129 | text = &text[i..]; | 129 | text = &text[i..]; |
130 | if text.starts_with(&open) { | 130 | if text.starts_with(&open) { |
131 | text = &text[open.len()..]; | 131 | text = &text[open.len()..]; |
132 | let from = TextUnit::of_str(&res); | 132 | let from = TextSize::of(&res); |
133 | stack.push(from); | 133 | stack.push(from); |
134 | } else if text.starts_with(&close) { | 134 | } else if text.starts_with(&close) { |
135 | text = &text[close.len()..]; | 135 | text = &text[close.len()..]; |
136 | let from = stack.pop().unwrap_or_else(|| panic!("unmatched </{}>", tag)); | 136 | let from = stack.pop().unwrap_or_else(|| panic!("unmatched </{}>", tag)); |
137 | let to = TextUnit::of_str(&res); | 137 | let to = TextSize::of(&res); |
138 | ranges.push(TextRange::from_to(from, to)); | 138 | ranges.push(TextRange::new(from, to)); |
139 | } | 139 | } |
140 | } | 140 | } |
141 | } | 141 | } |
@@ -146,8 +146,8 @@ pub fn extract_ranges(mut text: &str, tag: &str) -> (Vec<TextRange>, String) { | |||
146 | } | 146 | } |
147 | 147 | ||
148 | /// Inserts `<|>` marker into the `text` at `offset`. | 148 | /// Inserts `<|>` marker into the `text` at `offset`. |
149 | pub fn add_cursor(text: &str, offset: TextUnit) -> String { | 149 | pub fn add_cursor(text: &str, offset: TextSize) -> String { |
150 | let offset: usize = offset.to_usize(); | 150 | let offset: usize = offset.into(); |
151 | let mut res = String::new(); | 151 | let mut res = String::new(); |
152 | res.push_str(&text[..offset]); | 152 | res.push_str(&text[..offset]); |
153 | res.push_str("<|>"); | 153 | res.push_str("<|>"); |
diff --git a/docs/dev/syntax.md b/docs/dev/syntax.md index 0a4554c55..4dd1de659 100644 --- a/docs/dev/syntax.md +++ b/docs/dev/syntax.md | |||
@@ -17,7 +17,7 @@ The things described are implemented in two places | |||
17 | 17 | ||
18 | * Syntax trees are lossless, or full fidelity. All comments and whitespace are preserved. | 18 | * Syntax trees are lossless, or full fidelity. All comments and whitespace are preserved. |
19 | * Syntax trees are semantic-less. They describe *strictly* the structure of a sequence of characters, they don't have hygiene, name resolution or type information attached. | 19 | * Syntax trees are semantic-less. They describe *strictly* the structure of a sequence of characters, they don't have hygiene, name resolution or type information attached. |
20 | * Syntax trees are simple value type. It is possible to create trees for a syntax without any external context. | 20 | * Syntax trees are simple value type. It is possible to create trees for a syntax without any external context. |
21 | * Syntax trees have intuitive traversal API (parent, children, siblings, etc). | 21 | * Syntax trees have intuitive traversal API (parent, children, siblings, etc). |
22 | * Parsing is lossless (even if the input is invalid, the tree produced by the parser represents it exactly). | 22 | * Parsing is lossless (even if the input is invalid, the tree produced by the parser represents it exactly). |
23 | * Parsing is resilient (even if the input is invalid, parser tries to see as much syntax tree fragments in the input as it can). | 23 | * Parsing is resilient (even if the input is invalid, parser tries to see as much syntax tree fragments in the input as it can). |
@@ -34,12 +34,12 @@ The syntax tree consists of three layers: | |||
34 | * SyntaxNodes (aka RedNode) | 34 | * SyntaxNodes (aka RedNode) |
35 | * AST | 35 | * AST |
36 | 36 | ||
37 | Of these, only GreenNodes store the actual data, the other two layers are (non-trivial) views into green tree. | 37 | Of these, only GreenNodes store the actual data, the other two layers are (non-trivial) views into green tree. |
38 | Red-green terminology comes from Roslyn ([link](https://docs.microsoft.com/en-ie/archive/blogs/ericlippert/persistence-facades-and-roslyns-red-green-trees)) and gives the name to the `rowan` library. Green and syntax nodes are defined in rowan, ast is defined in rust-analyzer. | 38 | Red-green terminology comes from Roslyn ([link](https://docs.microsoft.com/en-ie/archive/blogs/ericlippert/persistence-facades-and-roslyns-red-green-trees)) and gives the name to the `rowan` library. Green and syntax nodes are defined in rowan, ast is defined in rust-analyzer. |
39 | 39 | ||
40 | Syntax trees are a semi-transient data structure. | 40 | Syntax trees are a semi-transient data structure. |
41 | In general, frontend does not keep syntax trees for all files in memory. | 41 | In general, frontend does not keep syntax trees for all files in memory. |
42 | Instead, it *lowers* syntax trees to more compact and rigid representation, which is not full-fidelity, but which can be mapped back to a syntax tree if so desired. | 42 | Instead, it *lowers* syntax trees to more compact and rigid representation, which is not full-fidelity, but which can be mapped back to a syntax tree if so desired. |
43 | 43 | ||
44 | 44 | ||
45 | ### GreenNode | 45 | ### GreenNode |
@@ -64,7 +64,7 @@ struct Token { | |||
64 | } | 64 | } |
65 | ``` | 65 | ``` |
66 | 66 | ||
67 | All the difference bettwen the above sketch and the real implementation are strictly due to optimizations. | 67 | All the difference bettwen the above sketch and the real implementation are strictly due to optimizations. |
68 | 68 | ||
69 | Points of note: | 69 | Points of note: |
70 | * The tree is untyped. Each node has a "type tag", `SyntaxKind`. | 70 | * The tree is untyped. Each node has a "type tag", `SyntaxKind`. |
@@ -73,7 +73,7 @@ Points of note: | |||
73 | * Each token carries its full text. | 73 | * Each token carries its full text. |
74 | * The original text can be recovered by concatenating the texts of all tokens in order. | 74 | * The original text can be recovered by concatenating the texts of all tokens in order. |
75 | * Accessing a child of particular type (for example, parameter list of a function) generarly involves linerary traversing the children, looking for a specific `kind`. | 75 | * Accessing a child of particular type (for example, parameter list of a function) generarly involves linerary traversing the children, looking for a specific `kind`. |
76 | * Modifying the tree is roughly `O(depth)`. | 76 | * Modifying the tree is roughly `O(depth)`. |
77 | We don't make special efforts to guarantree that the depth is not liner, but, in practice, syntax trees are branchy and shallow. | 77 | We don't make special efforts to guarantree that the depth is not liner, but, in practice, syntax trees are branchy and shallow. |
78 | * If mandatory (grammar wise) node is missing from the input, it's just missing from the tree. | 78 | * If mandatory (grammar wise) node is missing from the input, it's just missing from the tree. |
79 | * If an extra erroneous input is present, it is wrapped into a node with `ERROR` kind, and treated just like any other node. | 79 | * If an extra erroneous input is present, it is wrapped into a node with `ERROR` kind, and treated just like any other node. |
@@ -82,29 +82,29 @@ Points of note: | |||
82 | An input like `fn f() { 90 + 2 }` might be parsed as | 82 | An input like `fn f() { 90 + 2 }` might be parsed as |
83 | 83 | ||
84 | ``` | 84 | ``` |
85 | FN_DEF@[0; 17) | 85 | FN_DEF@0..17 |
86 | FN_KW@[0; 2) "fn" | 86 | FN_KW@0..2 "fn" |
87 | WHITESPACE@[2; 3) " " | 87 | WHITESPACE@2..3 " " |
88 | NAME@[3; 4) | 88 | NAME@3..4 |
89 | IDENT@[3; 4) "f" | 89 | IDENT@3..4 "f" |
90 | PARAM_LIST@[4; 6) | 90 | PARAM_LIST@4..6 |
91 | L_PAREN@[4; 5) "(" | 91 | L_PAREN@4..5 "(" |
92 | R_PAREN@[5; 6) ")" | 92 | R_PAREN@5..6 ")" |
93 | WHITESPACE@[6; 7) " " | 93 | WHITESPACE@6..7 " " |
94 | BLOCK_EXPR@[7; 17) | 94 | BLOCK_EXPR@7..17 |
95 | BLOCK@[7; 17) | 95 | BLOCK@7..17 |
96 | L_CURLY@[7; 8) "{" | 96 | L_CURLY@7..8 "{" |
97 | WHITESPACE@[8; 9) " " | 97 | WHITESPACE@8..9 " " |
98 | BIN_EXPR@[9; 15) | 98 | BIN_EXPR@9..15 |
99 | LITERAL@[9; 11) | 99 | LITERAL@9..11 |
100 | INT_NUMBER@[9; 11) "90" | 100 | INT_NUMBER@9..11 "90" |
101 | WHITESPACE@[11; 12) " " | 101 | WHITESPACE@11..12 " " |
102 | PLUS@[12; 13) "+" | 102 | PLUS@12..13 "+" |
103 | WHITESPACE@[13; 14) " " | 103 | WHITESPACE@13..14 " " |
104 | LITERAL@[14; 15) | 104 | LITERAL@14..15 |
105 | INT_NUMBER@[14; 15) "2" | 105 | INT_NUMBER@14..15 "2" |
106 | WHITESPACE@[15; 16) " " | 106 | WHITESPACE@15..16 " " |
107 | R_CURLY@[16; 17) "}" | 107 | R_CURLY@16..17 "}" |
108 | ``` | 108 | ``` |
109 | 109 | ||
110 | #### Optimizations | 110 | #### Optimizations |
@@ -122,20 +122,20 @@ To reduce the amount of allocations, the GreenNode is a DST, which uses a single | |||
122 | To more compactly store the children, we box *both* interior nodes and tokens, and represent | 122 | To more compactly store the children, we box *both* interior nodes and tokens, and represent |
123 | `Either<Arc<Node>, Arc<Token>>` as a single pointer with a tag in the last bit. | 123 | `Either<Arc<Node>, Arc<Token>>` as a single pointer with a tag in the last bit. |
124 | 124 | ||
125 | To avoid allocating EVERY SINGLE TOKEN on the heap, syntax trees use interning. | 125 | To avoid allocating EVERY SINGLE TOKEN on the heap, syntax trees use interning. |
126 | Because the tree is fully imutable, it's valid to structuraly share subtrees. | 126 | Because the tree is fully imutable, it's valid to structuraly share subtrees. |
127 | For example, in `1 + 1`, there will be a *single* token for `1` with ref count 2; the same goes for the ` ` whitespace token. | 127 | For example, in `1 + 1`, there will be a *single* token for `1` with ref count 2; the same goes for the ` ` whitespace token. |
128 | Interior nodes are shared as well (for example in `(1 + 1) * (1 + 1)`). | 128 | Interior nodes are shared as well (for example in `(1 + 1) * (1 + 1)`). |
129 | 129 | ||
130 | Note that, the result of the interning is an `Arc<Node>`. | 130 | Note that, the result of the interning is an `Arc<Node>`. |
131 | That is, it's not an index into interning table, so you don't have to have the table around to do anything with the tree. | 131 | That is, it's not an index into interning table, so you don't have to have the table around to do anything with the tree. |
132 | Each tree is fully self-contained (although different trees might share parts). | 132 | Each tree is fully self-contained (although different trees might share parts). |
133 | Currently, the interner is created per-file, but it will be easy to use a per-thread or per-some-contex one. | 133 | Currently, the interner is created per-file, but it will be easy to use a per-thread or per-some-contex one. |
134 | 134 | ||
135 | We use a `TextUnit`, a newtyped `u32`, to store the length of the text. | 135 | We use a `TextSize`, a newtyped `u32`, to store the length of the text. |
136 | 136 | ||
137 | We currently use `SmolStr`, an small object optimized string to store text. | 137 | We currently use `SmolStr`, an small object optimized string to store text. |
138 | This was mostly relevant *before* we implmented tree interning, to avoid allocating common keywords and identifiers. We should switch to storing text data alongside the interned tokens. | 138 | This was mostly relevant *before* we implmented tree interning, to avoid allocating common keywords and identifiers. We should switch to storing text data alongside the interned tokens. |
139 | 139 | ||
140 | #### Alternative designs | 140 | #### Alternative designs |
141 | 141 | ||
@@ -153,9 +153,9 @@ struct Token { | |||
153 | } | 153 | } |
154 | ``` | 154 | ``` |
155 | 155 | ||
156 | The tree then contains only non-trivia tokens. | 156 | The tree then contains only non-trivia tokens. |
157 | 157 | ||
158 | Another approach (from Dart) is to, in addition to a syntax tree, link all the tokens into a bidirectional link list. | 158 | Another approach (from Dart) is to, in addition to a syntax tree, link all the tokens into a bidirectional link list. |
159 | That way, the tree again contains only non-trivia tokens. | 159 | That way, the tree again contains only non-trivia tokens. |
160 | 160 | ||
161 | Explicit trivia nodes, like in `rowan`, are used by IntelliJ. | 161 | Explicit trivia nodes, like in `rowan`, are used by IntelliJ. |
@@ -165,26 +165,26 @@ Explicit trivia nodes, like in `rowan`, are used by IntelliJ. | |||
165 | As noted before, accesing a specific child in the node requires a linear traversal of the children (though we can skip tokens, beacuse the tag is encoded in the pointer itself). | 165 | As noted before, accesing a specific child in the node requires a linear traversal of the children (though we can skip tokens, beacuse the tag is encoded in the pointer itself). |
166 | It is possible to recover O(1) access with another representation. | 166 | It is possible to recover O(1) access with another representation. |
167 | We explicitly store optional and missing (required by the grammar, but not present) nodes. | 167 | We explicitly store optional and missing (required by the grammar, but not present) nodes. |
168 | That is, we use `Option<Node>` for children. | 168 | That is, we use `Option<Node>` for children. |
169 | We also remove trivia tokens from the tree. | 169 | We also remove trivia tokens from the tree. |
170 | This way, each child kind genrerally occupies a fixed position in a parent, and we can use index access to fetch it. | 170 | This way, each child kind genrerally occupies a fixed position in a parent, and we can use index access to fetch it. |
171 | The cost is that we now need to allocate space for all not-present optional nodes. | 171 | The cost is that we now need to allocate space for all not-present optional nodes. |
172 | So, `fn foo() {}` will have slots for visibility, unsafeness, attributes, abi and return type. | 172 | So, `fn foo() {}` will have slots for visibility, unsafeness, attributes, abi and return type. |
173 | 173 | ||
174 | IntelliJ uses linear traversal. | 174 | IntelliJ uses linear traversal. |
175 | Roslyn and Swift do `O(1)` access. | 175 | Roslyn and Swift do `O(1)` access. |
176 | 176 | ||
177 | ##### Mutable Trees | 177 | ##### Mutable Trees |
178 | 178 | ||
179 | IntelliJ uses mutable trees. | 179 | IntelliJ uses mutable trees. |
180 | Overall, it creates a lot of additional complexity. | 180 | Overall, it creates a lot of additional complexity. |
181 | However, the API for *editing* syntax trees is nice. | 181 | However, the API for *editing* syntax trees is nice. |
182 | 182 | ||
183 | For example the assist to move generic bounds to where clause has this code: | 183 | For example the assist to move generic bounds to where clause has this code: |
184 | 184 | ||
185 | ```kotlin | 185 | ```kotlin |
186 | for typeBound in typeBounds { | 186 | for typeBound in typeBounds { |
187 | typeBound.typeParamBounds?.delete() | 187 | typeBound.typeParamBounds?.delete() |
188 | } | 188 | } |
189 | ``` | 189 | ``` |
190 | 190 | ||
@@ -195,7 +195,7 @@ Modeling this with immutable trees is possible, but annoying. | |||
195 | A function green tree is not super-convenient to use. | 195 | A function green tree is not super-convenient to use. |
196 | The biggest problem is acessing parents (there are no parent pointers!). | 196 | The biggest problem is acessing parents (there are no parent pointers!). |
197 | But there are also "identify" issues. | 197 | But there are also "identify" issues. |
198 | Let's say you want to write a code which builds a list of expressions in a file: `fn collect_exrepssions(file: GreenNode) -> HashSet<GreenNode>`. | 198 | Let's say you want to write a code which builds a list of expressions in a file: `fn collect_exrepssions(file: GreenNode) -> HashSet<GreenNode>`. |
199 | For the input like | 199 | For the input like |
200 | 200 | ||
201 | ```rust | 201 | ```rust |
@@ -233,7 +233,7 @@ impl SyntaxNode { | |||
233 | }) | 233 | }) |
234 | } | 234 | } |
235 | fn parent(&self) -> Option<SyntaxNode> { | 235 | fn parent(&self) -> Option<SyntaxNode> { |
236 | self.parent.clone() | 236 | self.parent.clone() |
237 | } | 237 | } |
238 | fn children(&self) -> impl Iterator<Item = SyntaxNode> { | 238 | fn children(&self) -> impl Iterator<Item = SyntaxNode> { |
239 | let mut offset = self.offset | 239 | let mut offset = self.offset |
@@ -251,8 +251,8 @@ impl SyntaxNode { | |||
251 | 251 | ||
252 | impl PartialEq for SyntaxNode { | 252 | impl PartialEq for SyntaxNode { |
253 | fn eq(&self, other: &SyntaxNode) { | 253 | fn eq(&self, other: &SyntaxNode) { |
254 | self.offset == other.offset | 254 | self.offset == other.offset |
255 | && Arc::ptr_eq(&self.green, &other.green) | 255 | && Arc::ptr_eq(&self.green, &other.green) |
256 | } | 256 | } |
257 | } | 257 | } |
258 | ``` | 258 | ``` |
@@ -261,35 +261,35 @@ Points of note: | |||
261 | 261 | ||
262 | * SyntaxNode remembers its parent node (and, transitively, the path to the root of the tree) | 262 | * SyntaxNode remembers its parent node (and, transitively, the path to the root of the tree) |
263 | * SyntaxNode knows its *absolute* text offset in the whole file | 263 | * SyntaxNode knows its *absolute* text offset in the whole file |
264 | * Equality is based on identity. Comparing nodes from different trees does not make sense. | 264 | * Equality is based on identity. Comparing nodes from different trees does not make sense. |
265 | 265 | ||
266 | #### Optimization | 266 | #### Optimization |
267 | 267 | ||
268 | The reality is different though :-) | 268 | The reality is different though :-) |
269 | Traversal of trees is a common operation, and it makes sense to optimize it. | 269 | Traversal of trees is a common operation, and it makes sense to optimize it. |
270 | In particular, the above code allocates and does atomic operations during a traversal. | 270 | In particular, the above code allocates and does atomic operations during a traversal. |
271 | 271 | ||
272 | To get rid of atomics, `rowan` uses non thread-safe `Rc`. | 272 | To get rid of atomics, `rowan` uses non thread-safe `Rc`. |
273 | This is OK because trees traversals mostly (always, in case of rust-analyzer) run on a single thread. If you need to send a `SyntaxNode` to another thread, you can send a pair of **root**`GreenNode` (which is thread safe) and a `Range<usize>`. | 273 | This is OK because trees traversals mostly (always, in case of rust-analyzer) run on a single thread. If you need to send a `SyntaxNode` to another thread, you can send a pair of **root**`GreenNode` (which is thread safe) and a `Range<usize>`. |
274 | The other thread can restore the `SyntaxNode` by traversing from the root green node and looking for a node with specified range. | 274 | The other thread can restore the `SyntaxNode` by traversing from the root green node and looking for a node with specified range. |
275 | You can also use the similar trick to store a `SyntaxNode`. | 275 | You can also use the similar trick to store a `SyntaxNode`. |
276 | That is, a data structure that holds a `(GreenNode, Range<usize>)` will be `Sync`. | 276 | That is, a data structure that holds a `(GreenNode, Range<usize>)` will be `Sync`. |
277 | However rust-analyzer goes even further. | 277 | However rust-analyzer goes even further. |
278 | It treats trees as semi-transient and instead of storing a `GreenNode`, it generally stores just the id of the file from which the tree originated: `(FileId, Range<usize>)`. | 278 | It treats trees as semi-transient and instead of storing a `GreenNode`, it generally stores just the id of the file from which the tree originated: `(FileId, Range<usize>)`. |
279 | The `SyntaxNode` is the restored by reparsing the file and traversing it from root. | 279 | The `SyntaxNode` is the restored by reparsing the file and traversing it from root. |
280 | With this trick, rust-analyzer holds only a small amount of trees in memory at the same time, which reduces memory usage. | 280 | With this trick, rust-analyzer holds only a small amount of trees in memory at the same time, which reduces memory usage. |
281 | 281 | ||
282 | Additionally, only the root `SyntaxNode` owns an `Arc` to the (root) `GreenNode`. | 282 | Additionally, only the root `SyntaxNode` owns an `Arc` to the (root) `GreenNode`. |
283 | All other `SyntaxNode`s point to corresponding `GreenNode`s with a raw pointer. | 283 | All other `SyntaxNode`s point to corresponding `GreenNode`s with a raw pointer. |
284 | They also point to the parent (and, consequently, to the root) with an owning `Rc`, so this is sound. | 284 | They also point to the parent (and, consequently, to the root) with an owning `Rc`, so this is sound. |
285 | In other words, one needs *one* arc bump when initiating a traversal. | 285 | In other words, one needs *one* arc bump when initiating a traversal. |
286 | 286 | ||
287 | To get rid of allocations, `rowan` takes advantage of `SyntaxNode: !Sync` and uses a thread-local free list of `SyntaxNode`s. | 287 | To get rid of allocations, `rowan` takes advantage of `SyntaxNode: !Sync` and uses a thread-local free list of `SyntaxNode`s. |
288 | In a typical traversal, you only directly hold a few `SyntaxNode`s at a time (and their ancesstors indirectly), so a free list proportional to the depth of the tree removes all allocations in a typical case. | 288 | In a typical traversal, you only directly hold a few `SyntaxNode`s at a time (and their ancesstors indirectly), so a free list proportional to the depth of the tree removes all allocations in a typical case. |
289 | 289 | ||
290 | So, while traversal is not exactly incrementing a pointer, it's still prety cheep: tls + rc bump! | 290 | So, while traversal is not exactly incrementing a pointer, it's still prety cheep: tls + rc bump! |
291 | 291 | ||
292 | Traversal also yields (cheap) owned nodes, which improves ergonomics quite a bit. | 292 | Traversal also yields (cheap) owned nodes, which improves ergonomics quite a bit. |
293 | 293 | ||
294 | #### Alternative Designs | 294 | #### Alternative Designs |
295 | 295 | ||
@@ -309,14 +309,14 @@ struct SyntaxData { | |||
309 | ``` | 309 | ``` |
310 | 310 | ||
311 | This allows using true pointer equality for comparision of identities of `SyntaxNodes`. | 311 | This allows using true pointer equality for comparision of identities of `SyntaxNodes`. |
312 | rust-analyzer used to have this design as well, but since we've switch to cursors. | 312 | rust-analyzer used to have this design as well, but since we've switch to cursors. |
313 | The main problem with memoizing the red nodes is that it more than doubles the memory requirenments for fully realized syntax trees. | 313 | The main problem with memoizing the red nodes is that it more than doubles the memory requirenments for fully realized syntax trees. |
314 | In contrast, cursors generally retain only a path to the root. | 314 | In contrast, cursors generally retain only a path to the root. |
315 | C# combats increased memory usage by using weak references. | 315 | C# combats increased memory usage by using weak references. |
316 | 316 | ||
317 | ### AST | 317 | ### AST |
318 | 318 | ||
319 | `GreenTree`s are untyped and homogeneous, because it makes accomodating error nodes, arbitrary whitespace and comments natural, and because it makes possible to write generic tree traversals. | 319 | `GreenTree`s are untyped and homogeneous, because it makes accomodating error nodes, arbitrary whitespace and comments natural, and because it makes possible to write generic tree traversals. |
320 | However, when working with a specific node, like a function definition, one would want a strongly typed API. | 320 | However, when working with a specific node, like a function definition, one would want a strongly typed API. |
321 | 321 | ||
322 | This is what is provided by the AST layer. AST nodes are transparent wrappers over untyped syntax nodes: | 322 | This is what is provided by the AST layer. AST nodes are transparent wrappers over untyped syntax nodes: |
@@ -352,13 +352,13 @@ impl AstNode for FnDef { | |||
352 | } | 352 | } |
353 | 353 | ||
354 | impl FnDef { | 354 | impl FnDef { |
355 | pub fn param_list(&self) -> Option<ParamList> { | 355 | pub fn param_list(&self) -> Option<ParamList> { |
356 | self.syntax.children().find_map(ParamList::cast) | 356 | self.syntax.children().find_map(ParamList::cast) |
357 | } | 357 | } |
358 | pub fn ret_type(&self) -> Option<RetType> { | 358 | pub fn ret_type(&self) -> Option<RetType> { |
359 | self.syntax.children().find_map(RetType::cast) | 359 | self.syntax.children().find_map(RetType::cast) |
360 | } | 360 | } |
361 | pub fn body(&self) -> Option<BlockExpr> { | 361 | pub fn body(&self) -> Option<BlockExpr> { |
362 | self.syntax.children().find_map(BlockExpr::cast) | 362 | self.syntax.children().find_map(BlockExpr::cast) |
363 | } | 363 | } |
364 | // ... | 364 | // ... |
@@ -409,14 +409,14 @@ Points of note: | |||
409 | 409 | ||
410 | ##### Semantic Full AST | 410 | ##### Semantic Full AST |
411 | 411 | ||
412 | In IntelliJ the AST layer (dubbed **P**rogram **S**tructure **I**nterface) can have semantics attached, and is usually backed by either syntax tree, indices, or metadata from compiled libraries. | 412 | In IntelliJ the AST layer (dubbed **P**rogram **S**tructure **I**nterface) can have semantics attached, and is usually backed by either syntax tree, indices, or metadata from compiled libraries. |
413 | The backend for PSI can change dynamically. | 413 | The backend for PSI can change dynamically. |
414 | 414 | ||
415 | ### Syntax Tree Recap | 415 | ### Syntax Tree Recap |
416 | 416 | ||
417 | At its core, the syntax tree is a purely functional n-ary tree, which stores text at the leaf nodes and node "kinds" at all nodes. | 417 | At its core, the syntax tree is a purely functional n-ary tree, which stores text at the leaf nodes and node "kinds" at all nodes. |
418 | A cursor layer is added on top, which gives owned, cheap to clone nodes with identity semantics, parent links and absolute offsets. | 418 | A cursor layer is added on top, which gives owned, cheap to clone nodes with identity semantics, parent links and absolute offsets. |
419 | An AST layer is added on top, which reifies each node `Kind` as a separate Rust type with the corresponding API. | 419 | An AST layer is added on top, which reifies each node `Kind` as a separate Rust type with the corresponding API. |
420 | 420 | ||
421 | ## Parsing | 421 | ## Parsing |
422 | 422 | ||
@@ -432,17 +432,17 @@ impl GreenNodeBuilder { | |||
432 | 432 | ||
433 | pub fn start_node(&mut self, kind: SyntaxKind) { ... } | 433 | pub fn start_node(&mut self, kind: SyntaxKind) { ... } |
434 | pub fn finish_node(&mut self) { ... } | 434 | pub fn finish_node(&mut self) { ... } |
435 | 435 | ||
436 | pub fn finish(self) -> GreenNode { ... } | 436 | pub fn finish(self) -> GreenNode { ... } |
437 | } | 437 | } |
438 | ``` | 438 | ``` |
439 | 439 | ||
440 | The parser, ultimatelly, needs to invoke the `GreenNodeBuilder`. | 440 | The parser, ultimatelly, needs to invoke the `GreenNodeBuilder`. |
441 | There are two principal sources of inputs for the parser: | 441 | There are two principal sources of inputs for the parser: |
442 | * source text, which contains trivia tokens (whitespace and comments) | 442 | * source text, which contains trivia tokens (whitespace and comments) |
443 | * token trees from macros, which lack trivia | 443 | * token trees from macros, which lack trivia |
444 | 444 | ||
445 | Additionaly, input tokens do not correspond 1-to-1 with output tokens. | 445 | Additionaly, input tokens do not correspond 1-to-1 with output tokens. |
446 | For example, two consequtive `>` tokens might be glued, by the parser, into a single `>>`. | 446 | For example, two consequtive `>` tokens might be glued, by the parser, into a single `>>`. |
447 | 447 | ||
448 | For these reasons, the parser crate defines a callback interfaces for both input tokens and output trees. | 448 | For these reasons, the parser crate defines a callback interfaces for both input tokens and output trees. |
@@ -474,7 +474,7 @@ pub trait TreeSink { | |||
474 | } | 474 | } |
475 | 475 | ||
476 | pub fn parse( | 476 | pub fn parse( |
477 | token_source: &mut dyn TokenSource, | 477 | token_source: &mut dyn TokenSource, |
478 | tree_sink: &mut dyn TreeSink, | 478 | tree_sink: &mut dyn TreeSink, |
479 | ) { ... } | 479 | ) { ... } |
480 | ``` | 480 | ``` |
@@ -491,21 +491,21 @@ Syntax errors are not stored directly in the tree. | |||
491 | The primary motivation for this is that syntax tree is not necessary produced by the parser, it may also be assembled manually from pieces (which happens all the time in refactorings). | 491 | The primary motivation for this is that syntax tree is not necessary produced by the parser, it may also be assembled manually from pieces (which happens all the time in refactorings). |
492 | Instead, parser reports errors to an error sink, which stores them in a `Vec`. | 492 | Instead, parser reports errors to an error sink, which stores them in a `Vec`. |
493 | If possible, errors are not reported during parsing and are postponed for a separate validation step. | 493 | If possible, errors are not reported during parsing and are postponed for a separate validation step. |
494 | For example, parser accepts visibility modifiers on trait methods, but then a separate tree traversal flags all such visibilites as erroneous. | 494 | For example, parser accepts visibility modifiers on trait methods, but then a separate tree traversal flags all such visibilites as erroneous. |
495 | 495 | ||
496 | ### Macros | 496 | ### Macros |
497 | 497 | ||
498 | The primary difficulty with macros is that individual tokens have identities, which need to be preserved in the syntax tree for hygiene purposes. | 498 | The primary difficulty with macros is that individual tokens have identities, which need to be preserved in the syntax tree for hygiene purposes. |
499 | This is handled by the `TreeSink` layer. | 499 | This is handled by the `TreeSink` layer. |
500 | Specifically, `TreeSink` constructs the tree in lockstep with draining the original token stream. | 500 | Specifically, `TreeSink` constructs the tree in lockstep with draining the original token stream. |
501 | In the process, it records which tokens of the tree correspond to which tokens of the input, by using text ranges to identify syntax tokens. | 501 | In the process, it records which tokens of the tree correspond to which tokens of the input, by using text ranges to identify syntax tokens. |
502 | The end result is that parsing an expanded code yields a syntax tree and a mapping of text-ranges of the tree to original tokens. | 502 | The end result is that parsing an expanded code yields a syntax tree and a mapping of text-ranges of the tree to original tokens. |
503 | 503 | ||
504 | To deal with precedence in cases like `$expr * 1`, we use special invisible parenthesis, which are explicitelly handled by the parser | 504 | To deal with precedence in cases like `$expr * 1`, we use special invisible parenthesis, which are explicitelly handled by the parser |
505 | 505 | ||
506 | ### Whitespace & Comments | 506 | ### Whitespace & Comments |
507 | 507 | ||
508 | Parser does not see whitespace nodes. | 508 | Parser does not see whitespace nodes. |
509 | Instead, they are attached to the tree in the `TreeSink` layer. | 509 | Instead, they are attached to the tree in the `TreeSink` layer. |
510 | 510 | ||
511 | For example, in | 511 | For example, in |
@@ -521,7 +521,7 @@ the comment will be (heuristically) made a child of function node. | |||
521 | 521 | ||
522 | Green trees are cheap to modify, so incremental reparse works by patching a previous tree, without maintaining any additional state. | 522 | Green trees are cheap to modify, so incremental reparse works by patching a previous tree, without maintaining any additional state. |
523 | The reparse is based on heuristic: we try to contain a change to a single `{}` block, and reparse only this block. | 523 | The reparse is based on heuristic: we try to contain a change to a single `{}` block, and reparse only this block. |
524 | To do this, we maintain the invariant that, even for invalid code, curly braces are always paired correctly. | 524 | To do this, we maintain the invariant that, even for invalid code, curly braces are always paired correctly. |
525 | 525 | ||
526 | In practice, incremental reparsing doesn't actually matter much for IDE use-cases, parsing from scratch seems to be fast enough. | 526 | In practice, incremental reparsing doesn't actually matter much for IDE use-cases, parsing from scratch seems to be fast enough. |
527 | 527 | ||
diff --git a/docs/user/assists.md b/docs/user/assists.md index 6483ba4f3..6c6943622 100644 --- a/docs/user/assists.md +++ b/docs/user/assists.md | |||
@@ -65,7 +65,7 @@ Adds a stub function with a signature matching the function under the cursor. | |||
65 | struct Baz; | 65 | struct Baz; |
66 | fn baz() -> Baz { Baz } | 66 | fn baz() -> Baz { Baz } |
67 | fn foo() { | 67 | fn foo() { |
68 | bar┃("", baz()); | 68 | bar┃("", baz()); |
69 | } | 69 | } |
70 | 70 | ||
71 | 71 | ||
@@ -73,7 +73,7 @@ fn foo() { | |||
73 | struct Baz; | 73 | struct Baz; |
74 | fn baz() -> Baz { Baz } | 74 | fn baz() -> Baz { Baz } |
75 | fn foo() { | 75 | fn foo() { |
76 | bar("", baz()); | 76 | bar("", baz()); |
77 | } | 77 | } |
78 | 78 | ||
79 | fn bar(arg: &str, baz: Baz) { | 79 | fn bar(arg: &str, baz: Baz) { |
diff --git a/editors/code/src/source_change.ts b/editors/code/src/source_change.ts index 399a150c6..af8f1df51 100644 --- a/editors/code/src/source_change.ts +++ b/editors/code/src/source_change.ts | |||
@@ -37,11 +37,13 @@ export async function applySourceChange(ctx: Ctx, change: ra.SourceChange) { | |||
37 | toReveal.position, | 37 | toReveal.position, |
38 | ); | 38 | ); |
39 | const editor = vscode.window.activeTextEditor; | 39 | const editor = vscode.window.activeTextEditor; |
40 | if (!editor || editor.document.uri.toString() !== uri.toString()) { | 40 | if (!editor || !editor.selection.isEmpty) { |
41 | return; | 41 | return; |
42 | } | 42 | } |
43 | if (!editor.selection.isEmpty) { | 43 | |
44 | return; | 44 | if (editor.document.uri !== uri) { |
45 | const doc = await vscode.workspace.openTextDocument(uri); | ||
46 | await vscode.window.showTextDocument(doc); | ||
45 | } | 47 | } |
46 | editor.selection = new vscode.Selection(position, position); | 48 | editor.selection = new vscode.Selection(position, position); |
47 | editor.revealRange( | 49 | editor.revealRange( |