diff options
Diffstat (limited to 'crates/ra_syntax')
202 files changed, 10611 insertions, 10765 deletions
diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index 7ffe46c69..c07ff488e 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml | |||
@@ -13,7 +13,7 @@ doctest = false | |||
13 | [dependencies] | 13 | [dependencies] |
14 | itertools = "0.9.0" | 14 | itertools = "0.9.0" |
15 | rowan = "0.10.0" | 15 | rowan = "0.10.0" |
16 | rustc_lexer = { version = "652.0.0", package = "rustc-ap-rustc_lexer" } | 16 | rustc_lexer = { version = "656.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" |
19 | once_cell = "1.3.1" | 19 | once_cell = "1.3.1" |
@@ -27,7 +27,7 @@ ra_parser = { path = "../ra_parser" } | |||
27 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here | 27 | # ideally, `serde` should be enabled by `rust-analyzer`, but we enable it here |
28 | # to reduce number of compilations | 28 | # to reduce number of compilations |
29 | smol_str = { version = "0.1.15", features = ["serde"] } | 29 | smol_str = { version = "0.1.15", features = ["serde"] } |
30 | serde = { version = "1.0.104", features = ["derive"] } | 30 | serde = { version = "1.0.106", features = ["derive"] } |
31 | 31 | ||
32 | [dev-dependencies] | 32 | [dev-dependencies] |
33 | test_utils = { path = "../test_utils" } | 33 | test_utils = { path = "../test_utils" } |
diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs index 521ca8ab8..1876afe95 100644 --- a/crates/ra_syntax/src/ast.rs +++ b/crates/ra_syntax/src/ast.rs | |||
@@ -16,9 +16,7 @@ use crate::{ | |||
16 | }; | 16 | }; |
17 | 17 | ||
18 | pub use self::{ | 18 | pub use self::{ |
19 | expr_extensions::{ | 19 | expr_extensions::{ArrayExprKind, BinOp, Effect, ElseBranch, LiteralKind, PrefixOp, RangeOp}, |
20 | ArrayExprKind, BinOp, BlockModifier, ElseBranch, LiteralKind, PrefixOp, RangeOp, | ||
21 | }, | ||
22 | extensions::{ | 20 | extensions::{ |
23 | AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents, | 21 | AttrKind, FieldKind, NameOrNameRef, PathSegmentKind, SelfParamKind, SlicePatComponents, |
24 | StructKind, TypeBoundKind, VisibilityKind, | 22 | StructKind, TypeBoundKind, VisibilityKind, |
diff --git a/crates/ra_syntax/src/ast/edit.rs b/crates/ra_syntax/src/ast/edit.rs index 26e4576ff..c507dc683 100644 --- a/crates/ra_syntax/src/ast/edit.rs +++ b/crates/ra_syntax/src/ast/edit.rs | |||
@@ -28,7 +28,7 @@ impl ast::BinExpr { | |||
28 | 28 | ||
29 | impl ast::FnDef { | 29 | impl ast::FnDef { |
30 | #[must_use] | 30 | #[must_use] |
31 | pub fn with_body(&self, body: ast::Block) -> ast::FnDef { | 31 | pub fn with_body(&self, body: ast::BlockExpr) -> ast::FnDef { |
32 | let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new(); | 32 | let mut to_insert: ArrayVec<[SyntaxElement; 2]> = ArrayVec::new(); |
33 | let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() { | 33 | let old_body_or_semi: SyntaxElement = if let Some(old_body) = self.body() { |
34 | old_body.syntax().clone().into() | 34 | old_body.syntax().clone().into() |
diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs index 352c0d2c5..7771d6759 100644 --- a/crates/ra_syntax/src/ast/expr_extensions.rs +++ b/crates/ra_syntax/src/ast/expr_extensions.rs | |||
@@ -16,7 +16,7 @@ impl ast::Expr { | |||
16 | | ast::Expr::WhileExpr(_) | 16 | | ast::Expr::WhileExpr(_) |
17 | | ast::Expr::BlockExpr(_) | 17 | | ast::Expr::BlockExpr(_) |
18 | | ast::Expr::MatchExpr(_) | 18 | | ast::Expr::MatchExpr(_) |
19 | | ast::Expr::TryExpr(_) => true, | 19 | | ast::Expr::EffectExpr(_) => true, |
20 | _ => false, | 20 | _ => false, |
21 | } | 21 | } |
22 | } | 22 | } |
@@ -43,7 +43,7 @@ impl ast::IfExpr { | |||
43 | Some(res) | 43 | Some(res) |
44 | } | 44 | } |
45 | 45 | ||
46 | fn blocks(&self) -> AstChildren<ast::BlockExpr> { | 46 | pub fn blocks(&self) -> AstChildren<ast::BlockExpr> { |
47 | support::children(self.syntax()) | 47 | support::children(self.syntax()) |
48 | } | 48 | } |
49 | } | 49 | } |
@@ -359,22 +359,34 @@ impl ast::Literal { | |||
359 | } | 359 | } |
360 | } | 360 | } |
361 | 361 | ||
362 | pub enum BlockModifier { | 362 | #[derive(Debug, Clone, PartialEq, Eq)] |
363 | pub enum Effect { | ||
363 | Async(SyntaxToken), | 364 | Async(SyntaxToken), |
364 | Unsafe(SyntaxToken), | 365 | Unsafe(SyntaxToken), |
366 | Try(SyntaxToken), | ||
367 | // Very much not an effect, but we stuff it into this node anyway | ||
368 | Label(ast::Label), | ||
365 | } | 369 | } |
366 | 370 | ||
367 | impl ast::BlockExpr { | 371 | impl ast::EffectExpr { |
368 | pub fn modifier(&self) -> Option<BlockModifier> { | 372 | pub fn effect(&self) -> Effect { |
369 | if let Some(token) = self.async_token() { | 373 | if let Some(token) = self.async_token() { |
370 | return Some(BlockModifier::Async(token)); | 374 | return Effect::Async(token); |
371 | } | 375 | } |
372 | if let Some(token) = self.unsafe_token() { | 376 | if let Some(token) = self.unsafe_token() { |
373 | return Some(BlockModifier::Unsafe(token)); | 377 | return Effect::Unsafe(token); |
378 | } | ||
379 | if let Some(token) = self.try_token() { | ||
380 | return Effect::Try(token); | ||
381 | } | ||
382 | if let Some(label) = self.label() { | ||
383 | return Effect::Label(label); | ||
374 | } | 384 | } |
375 | None | 385 | unreachable!("ast::EffectExpr without Effect") |
376 | } | 386 | } |
387 | } | ||
377 | 388 | ||
389 | impl ast::BlockExpr { | ||
378 | /// false if the block is an intrinsic part of the syntax and can't be | 390 | /// false if the block is an intrinsic part of the syntax and can't be |
379 | /// replaced with arbitrary expression. | 391 | /// replaced with arbitrary expression. |
380 | /// | 392 | /// |
@@ -383,15 +395,12 @@ impl ast::BlockExpr { | |||
383 | /// const FOO: () = { stand_alone }; | 395 | /// const FOO: () = { stand_alone }; |
384 | /// ``` | 396 | /// ``` |
385 | pub fn is_standalone(&self) -> bool { | 397 | pub fn is_standalone(&self) -> bool { |
386 | if self.modifier().is_some() { | ||
387 | return false; | ||
388 | } | ||
389 | let parent = match self.syntax().parent() { | 398 | let parent = match self.syntax().parent() { |
390 | Some(it) => it, | 399 | Some(it) => it, |
391 | None => return true, | 400 | None => return true, |
392 | }; | 401 | }; |
393 | match parent.kind() { | 402 | match parent.kind() { |
394 | FN_DEF | IF_EXPR | WHILE_EXPR | LOOP_EXPR => false, | 403 | FN_DEF | IF_EXPR | WHILE_EXPR | LOOP_EXPR | EFFECT_EXPR => false, |
395 | _ => true, | 404 | _ => true, |
396 | } | 405 | } |
397 | } | 406 | } |
diff --git a/crates/ra_syntax/src/ast/extensions.rs b/crates/ra_syntax/src/ast/extensions.rs index 45e3dd2d3..98c38d009 100644 --- a/crates/ra_syntax/src/ast/extensions.rs +++ b/crates/ra_syntax/src/ast/extensions.rs | |||
@@ -423,6 +423,10 @@ impl ast::MacroCall { | |||
423 | None | 423 | None |
424 | } | 424 | } |
425 | } | 425 | } |
426 | |||
427 | pub fn is_bang(&self) -> bool { | ||
428 | self.is_macro_rules().is_none() | ||
429 | } | ||
426 | } | 430 | } |
427 | 431 | ||
428 | impl ast::LifetimeParam { | 432 | impl ast::LifetimeParam { |
@@ -463,7 +467,7 @@ impl ast::TokenTree { | |||
463 | 467 | ||
464 | pub fn right_delimiter_token(&self) -> Option<SyntaxToken> { | 468 | pub fn right_delimiter_token(&self) -> Option<SyntaxToken> { |
465 | self.syntax().last_child_or_token()?.into_token().filter(|it| match it.kind() { | 469 | self.syntax().last_child_or_token()?.into_token().filter(|it| match it.kind() { |
466 | T!['{'] | T!['('] | T!['['] => true, | 470 | T!['}'] | T![')'] | T![']'] => true, |
467 | _ => false, | 471 | _ => false, |
468 | }) | 472 | }) |
469 | } | 473 | } |
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 81260680f..c2cc25958 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs | |||
@@ -12,6 +12,7 @@ pub struct SourceFile { | |||
12 | } | 12 | } |
13 | impl ast::ModuleItemOwner for SourceFile {} | 13 | impl ast::ModuleItemOwner for SourceFile {} |
14 | impl ast::AttrsOwner for SourceFile {} | 14 | impl ast::AttrsOwner for SourceFile {} |
15 | impl ast::DocCommentsOwner for SourceFile {} | ||
15 | impl SourceFile { | 16 | impl SourceFile { |
16 | pub fn modules(&self) -> AstChildren<Module> { support::children(&self.syntax) } | 17 | pub fn modules(&self) -> AstChildren<Module> { support::children(&self.syntax) } |
17 | } | 18 | } |
@@ -259,6 +260,7 @@ pub struct ImplDef { | |||
259 | } | 260 | } |
260 | impl ast::TypeParamsOwner for ImplDef {} | 261 | impl ast::TypeParamsOwner for ImplDef {} |
261 | impl ast::AttrsOwner for ImplDef {} | 262 | impl ast::AttrsOwner for ImplDef {} |
263 | impl ast::DocCommentsOwner for ImplDef {} | ||
262 | impl ImplDef { | 264 | impl ImplDef { |
263 | pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } | 265 | pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } |
264 | pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } | 266 | pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } |
@@ -476,6 +478,19 @@ impl LoopExpr { | |||
476 | } | 478 | } |
477 | 479 | ||
478 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 480 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
481 | pub struct EffectExpr { | ||
482 | pub(crate) syntax: SyntaxNode, | ||
483 | } | ||
484 | impl ast::AttrsOwner for EffectExpr {} | ||
485 | impl EffectExpr { | ||
486 | pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } | ||
487 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } | ||
488 | pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } | ||
489 | pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } | ||
490 | pub fn block_expr(&self) -> Option<BlockExpr> { support::child(&self.syntax) } | ||
491 | } | ||
492 | |||
493 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | ||
479 | pub struct ForExpr { | 494 | pub struct ForExpr { |
480 | pub(crate) syntax: SyntaxNode, | 495 | pub(crate) syntax: SyntaxNode, |
481 | } | 496 | } |
@@ -541,11 +556,12 @@ pub struct BlockExpr { | |||
541 | pub(crate) syntax: SyntaxNode, | 556 | pub(crate) syntax: SyntaxNode, |
542 | } | 557 | } |
543 | impl ast::AttrsOwner for BlockExpr {} | 558 | impl ast::AttrsOwner for BlockExpr {} |
559 | impl ast::ModuleItemOwner for BlockExpr {} | ||
544 | impl BlockExpr { | 560 | impl BlockExpr { |
545 | pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } | 561 | pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } |
546 | pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } | 562 | pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) } |
547 | pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) } | 563 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } |
548 | pub fn block(&self) -> Option<Block> { support::child(&self.syntax) } | 564 | pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) } |
549 | } | 565 | } |
550 | 566 | ||
551 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 567 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -617,8 +633,8 @@ pub struct TryExpr { | |||
617 | } | 633 | } |
618 | impl ast::AttrsOwner for TryExpr {} | 634 | impl ast::AttrsOwner for TryExpr {} |
619 | impl TryExpr { | 635 | impl TryExpr { |
620 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } | ||
621 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } | 636 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } |
637 | pub fn question_mark_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![?]) } | ||
622 | } | 638 | } |
623 | 639 | ||
624 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 640 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
@@ -1112,19 +1128,6 @@ impl Condition { | |||
1112 | } | 1128 | } |
1113 | 1129 | ||
1114 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 1130 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
1115 | pub struct Block { | ||
1116 | pub(crate) syntax: SyntaxNode, | ||
1117 | } | ||
1118 | impl ast::AttrsOwner for Block {} | ||
1119 | impl ast::ModuleItemOwner for Block {} | ||
1120 | impl Block { | ||
1121 | pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } | ||
1122 | pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) } | ||
1123 | pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } | ||
1124 | pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) } | ||
1125 | } | ||
1126 | |||
1127 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | ||
1128 | pub struct ParamList { | 1131 | pub struct ParamList { |
1129 | pub(crate) syntax: SyntaxNode, | 1132 | pub(crate) syntax: SyntaxNode, |
1130 | } | 1133 | } |
@@ -1241,6 +1244,8 @@ pub struct PathSegment { | |||
1241 | impl PathSegment { | 1244 | impl PathSegment { |
1242 | pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } | 1245 | pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } |
1243 | pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) } | 1246 | pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) } |
1247 | pub fn self_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![self]) } | ||
1248 | pub fn super_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![super]) } | ||
1244 | pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } | 1249 | pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } |
1245 | pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } | 1250 | pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } |
1246 | pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } | 1251 | pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } |
@@ -1465,6 +1470,7 @@ pub enum Expr { | |||
1465 | FieldExpr(FieldExpr), | 1470 | FieldExpr(FieldExpr), |
1466 | AwaitExpr(AwaitExpr), | 1471 | AwaitExpr(AwaitExpr), |
1467 | TryExpr(TryExpr), | 1472 | TryExpr(TryExpr), |
1473 | EffectExpr(EffectExpr), | ||
1468 | CastExpr(CastExpr), | 1474 | CastExpr(CastExpr), |
1469 | RefExpr(RefExpr), | 1475 | RefExpr(RefExpr), |
1470 | PrefixExpr(PrefixExpr), | 1476 | PrefixExpr(PrefixExpr), |
@@ -1947,6 +1953,17 @@ impl AstNode for LoopExpr { | |||
1947 | } | 1953 | } |
1948 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 1954 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
1949 | } | 1955 | } |
1956 | impl AstNode for EffectExpr { | ||
1957 | fn can_cast(kind: SyntaxKind) -> bool { kind == EFFECT_EXPR } | ||
1958 | fn cast(syntax: SyntaxNode) -> Option<Self> { | ||
1959 | if Self::can_cast(syntax.kind()) { | ||
1960 | Some(Self { syntax }) | ||
1961 | } else { | ||
1962 | None | ||
1963 | } | ||
1964 | } | ||
1965 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
1966 | } | ||
1950 | impl AstNode for ForExpr { | 1967 | impl AstNode for ForExpr { |
1951 | fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR } | 1968 | fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR } |
1952 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 1969 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
@@ -2629,17 +2646,6 @@ impl AstNode for Condition { | |||
2629 | } | 2646 | } |
2630 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 2647 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
2631 | } | 2648 | } |
2632 | impl AstNode for Block { | ||
2633 | fn can_cast(kind: SyntaxKind) -> bool { kind == BLOCK } | ||
2634 | fn cast(syntax: SyntaxNode) -> Option<Self> { | ||
2635 | if Self::can_cast(syntax.kind()) { | ||
2636 | Some(Self { syntax }) | ||
2637 | } else { | ||
2638 | None | ||
2639 | } | ||
2640 | } | ||
2641 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
2642 | } | ||
2643 | impl AstNode for ParamList { | 2649 | impl AstNode for ParamList { |
2644 | fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } | 2650 | fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } |
2645 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 2651 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
@@ -3288,6 +3294,9 @@ impl From<AwaitExpr> for Expr { | |||
3288 | impl From<TryExpr> for Expr { | 3294 | impl From<TryExpr> for Expr { |
3289 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } | 3295 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } |
3290 | } | 3296 | } |
3297 | impl From<EffectExpr> for Expr { | ||
3298 | fn from(node: EffectExpr) -> Expr { Expr::EffectExpr(node) } | ||
3299 | } | ||
3291 | impl From<CastExpr> for Expr { | 3300 | impl From<CastExpr> for Expr { |
3292 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } | 3301 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } |
3293 | } | 3302 | } |
@@ -3318,8 +3327,10 @@ impl AstNode for Expr { | |||
3318 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR | 3327 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR |
3319 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL | 3328 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL |
3320 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR | 3329 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR |
3321 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | CAST_EXPR | REF_EXPR | 3330 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | EFFECT_EXPR | CAST_EXPR |
3322 | | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => true, | 3331 | | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => { |
3332 | true | ||
3333 | } | ||
3323 | _ => false, | 3334 | _ => false, |
3324 | } | 3335 | } |
3325 | } | 3336 | } |
@@ -3347,6 +3358,7 @@ impl AstNode for Expr { | |||
3347 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), | 3358 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), |
3348 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), | 3359 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), |
3349 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), | 3360 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), |
3361 | EFFECT_EXPR => Expr::EffectExpr(EffectExpr { syntax }), | ||
3350 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), | 3362 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), |
3351 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), | 3363 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), |
3352 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), | 3364 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), |
@@ -3383,6 +3395,7 @@ impl AstNode for Expr { | |||
3383 | Expr::FieldExpr(it) => &it.syntax, | 3395 | Expr::FieldExpr(it) => &it.syntax, |
3384 | Expr::AwaitExpr(it) => &it.syntax, | 3396 | Expr::AwaitExpr(it) => &it.syntax, |
3385 | Expr::TryExpr(it) => &it.syntax, | 3397 | Expr::TryExpr(it) => &it.syntax, |
3398 | Expr::EffectExpr(it) => &it.syntax, | ||
3386 | Expr::CastExpr(it) => &it.syntax, | 3399 | Expr::CastExpr(it) => &it.syntax, |
3387 | Expr::RefExpr(it) => &it.syntax, | 3400 | Expr::RefExpr(it) => &it.syntax, |
3388 | Expr::PrefixExpr(it) => &it.syntax, | 3401 | Expr::PrefixExpr(it) => &it.syntax, |
@@ -3863,6 +3876,11 @@ impl std::fmt::Display for LoopExpr { | |||
3863 | std::fmt::Display::fmt(self.syntax(), f) | 3876 | std::fmt::Display::fmt(self.syntax(), f) |
3864 | } | 3877 | } |
3865 | } | 3878 | } |
3879 | impl std::fmt::Display for EffectExpr { | ||
3880 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | ||
3881 | std::fmt::Display::fmt(self.syntax(), f) | ||
3882 | } | ||
3883 | } | ||
3866 | impl std::fmt::Display for ForExpr { | 3884 | impl std::fmt::Display for ForExpr { |
3867 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | 3885 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { |
3868 | std::fmt::Display::fmt(self.syntax(), f) | 3886 | std::fmt::Display::fmt(self.syntax(), f) |
@@ -4173,11 +4191,6 @@ impl std::fmt::Display for Condition { | |||
4173 | std::fmt::Display::fmt(self.syntax(), f) | 4191 | std::fmt::Display::fmt(self.syntax(), f) |
4174 | } | 4192 | } |
4175 | } | 4193 | } |
4176 | impl std::fmt::Display for Block { | ||
4177 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | ||
4178 | std::fmt::Display::fmt(self.syntax(), f) | ||
4179 | } | ||
4180 | } | ||
4181 | impl std::fmt::Display for ParamList { | 4194 | impl std::fmt::Display for ParamList { |
4182 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | 4195 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { |
4183 | std::fmt::Display::fmt(self.syntax(), f) | 4196 | std::fmt::Display::fmt(self.syntax(), f) |
diff --git a/crates/ra_syntax/src/ast/make.rs b/crates/ra_syntax/src/ast/make.rs index 492088353..7b17fef49 100644 --- a/crates/ra_syntax/src/ast/make.rs +++ b/crates/ra_syntax/src/ast/make.rs | |||
@@ -82,14 +82,6 @@ pub fn block_expr( | |||
82 | ast_from_text(&format!("fn f() {}", buf)) | 82 | ast_from_text(&format!("fn f() {}", buf)) |
83 | } | 83 | } |
84 | 84 | ||
85 | pub fn block_from_expr(e: ast::Expr) -> ast::Block { | ||
86 | return from_text(&format!("{{ {} }}", e)); | ||
87 | |||
88 | fn from_text(text: &str) -> ast::Block { | ||
89 | ast_from_text(&format!("fn f() {}", text)) | ||
90 | } | ||
91 | } | ||
92 | |||
93 | pub fn expr_unit() -> ast::Expr { | 85 | pub fn expr_unit() -> ast::Expr { |
94 | expr_from_text("()") | 86 | expr_from_text("()") |
95 | } | 87 | } |
diff --git a/crates/ra_syntax/src/lib.rs b/crates/ra_syntax/src/lib.rs index ceeb2bde9..d0234cada 100644 --- a/crates/ra_syntax/src/lib.rs +++ b/crates/ra_syntax/src/lib.rs | |||
@@ -237,8 +237,7 @@ fn api_walkthrough() { | |||
237 | 237 | ||
238 | // Let's get the `1 + 1` expression! | 238 | // Let's get the `1 + 1` expression! |
239 | let body: ast::BlockExpr = func.body().unwrap(); | 239 | let body: ast::BlockExpr = func.body().unwrap(); |
240 | let block = body.block().unwrap(); | 240 | let expr: ast::Expr = body.expr().unwrap(); |
241 | let expr: ast::Expr = block.expr().unwrap(); | ||
242 | 241 | ||
243 | // Enums are used to group related ast nodes together, and can be used for | 242 | // Enums are used to group related ast nodes together, and can be used for |
244 | // matching. However, because there are no public fields, it's possible to | 243 | // matching. However, because there are no public fields, it's possible to |
@@ -274,8 +273,8 @@ fn api_walkthrough() { | |||
274 | assert_eq!(text.to_string(), "1 + 1"); | 273 | assert_eq!(text.to_string(), "1 + 1"); |
275 | 274 | ||
276 | // There's a bunch of traversal methods on `SyntaxNode`: | 275 | // There's a bunch of traversal methods on `SyntaxNode`: |
277 | assert_eq!(expr_syntax.parent().as_ref(), Some(block.syntax())); | 276 | assert_eq!(expr_syntax.parent().as_ref(), Some(body.syntax())); |
278 | assert_eq!(block.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{'])); | 277 | assert_eq!(body.syntax().first_child_or_token().map(|it| it.kind()), Some(T!['{'])); |
279 | assert_eq!( | 278 | assert_eq!( |
280 | expr_syntax.next_sibling_or_token().map(|it| it.kind()), | 279 | expr_syntax.next_sibling_or_token().map(|it| it.kind()), |
281 | Some(SyntaxKind::WHITESPACE) | 280 | Some(SyntaxKind::WHITESPACE) |
diff --git a/crates/ra_syntax/src/parsing/lexer.rs b/crates/ra_syntax/src/parsing/lexer.rs index f450ef4a2..1a5a6dc06 100644 --- a/crates/ra_syntax/src/parsing/lexer.rs +++ b/crates/ra_syntax/src/parsing/lexer.rs | |||
@@ -180,7 +180,7 @@ fn rustc_token_kind_to_syntax_kind( | |||
180 | return (syntax_kind, None); | 180 | return (syntax_kind, None); |
181 | 181 | ||
182 | fn match_literal_kind(kind: &rustc_lexer::LiteralKind) -> (SyntaxKind, Option<&'static str>) { | 182 | fn match_literal_kind(kind: &rustc_lexer::LiteralKind) -> (SyntaxKind, Option<&'static str>) { |
183 | use rustc_lexer::LiteralKind as LK; | 183 | use rustc_lexer::{LexRawStrError, LiteralKind as LK}; |
184 | 184 | ||
185 | #[rustfmt::skip] | 185 | #[rustfmt::skip] |
186 | let syntax_kind = match *kind { | 186 | let syntax_kind = match *kind { |
@@ -215,21 +215,28 @@ fn rustc_token_kind_to_syntax_kind( | |||
215 | return (BYTE_STRING, Some("Missing trailing `\"` symbol to terminate the byte string literal")) | 215 | return (BYTE_STRING, Some("Missing trailing `\"` symbol to terminate the byte string literal")) |
216 | } | 216 | } |
217 | 217 | ||
218 | LK::RawStr { started: true, terminated: true, .. } => RAW_STRING, | 218 | LK::RawStr(str) => match str.validate() { |
219 | LK::RawStr { started: true, terminated: false, .. } => { | 219 | Ok(_) => RAW_STRING, |
220 | return (RAW_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw string literal")) | 220 | Err(LexRawStrError::InvalidStarter) => return (RAW_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw string literal")), |
221 | } | 221 | Err(LexRawStrError::NoTerminator { expected, found, .. }) => if expected == found { |
222 | LK::RawStr { started: false, .. } => { | 222 | return (RAW_STRING, Some("Missing trailing `\"` to terminate the raw string literal")) |
223 | return (RAW_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw string literal")) | 223 | } else { |
224 | } | 224 | return (RAW_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw string literal")) |
225 | |||
226 | }, | ||
227 | Err(LexRawStrError::TooManyDelimiters { .. }) => return (RAW_STRING, Some("Too many `#` symbols: raw strings may be delimited by up to 65535 `#` symbols")), | ||
228 | }, | ||
229 | LK::RawByteStr(str) => match str.validate() { | ||
230 | Ok(_) => RAW_BYTE_STRING, | ||
231 | Err(LexRawStrError::InvalidStarter) => return (RAW_BYTE_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw byte string literal")), | ||
232 | Err(LexRawStrError::NoTerminator { expected, found, .. }) => if expected == found { | ||
233 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` to terminate the raw byte string literal")) | ||
234 | } else { | ||
235 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw byte string literal")) | ||
225 | 236 | ||
226 | LK::RawByteStr { started: true, terminated: true, .. } => RAW_BYTE_STRING, | 237 | }, |
227 | LK::RawByteStr { started: true, terminated: false, .. } => { | 238 | Err(LexRawStrError::TooManyDelimiters { .. }) => return (RAW_BYTE_STRING, Some("Too many `#` symbols: raw byte strings may be delimited by up to 65535 `#` symbols")), |
228 | return (RAW_BYTE_STRING, Some("Missing trailing `\"` with `#` symbols to terminate the raw byte string literal")) | 239 | }, |
229 | } | ||
230 | LK::RawByteStr { started: false, .. } => { | ||
231 | return (RAW_BYTE_STRING, Some("Missing `\"` symbol after `#` symbols to begin the raw byte string literal")) | ||
232 | } | ||
233 | }; | 240 | }; |
234 | 241 | ||
235 | (syntax_kind, None) | 242 | (syntax_kind, None) |
diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index f0b3dec63..e075cd801 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs | |||
@@ -96,7 +96,7 @@ pub(crate) fn validate(root: &SyntaxNode) -> Vec<SyntaxError> { | |||
96 | ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors), | 96 | ast::RecordField(it) => validate_numeric_name(it.name_ref(), &mut errors), |
97 | ast::Visibility(it) => validate_visibility(it, &mut errors), | 97 | ast::Visibility(it) => validate_visibility(it, &mut errors), |
98 | ast::RangeExpr(it) => validate_range_expr(it, &mut errors), | 98 | ast::RangeExpr(it) => validate_range_expr(it, &mut errors), |
99 | ast::PathSegment(it) => validate_crate_keyword_in_path_segment(it, &mut errors), | 99 | ast::PathSegment(it) => validate_path_keywords(it, &mut errors), |
100 | _ => (), | 100 | _ => (), |
101 | } | 101 | } |
102 | } | 102 | } |
@@ -224,59 +224,82 @@ fn validate_range_expr(expr: ast::RangeExpr, errors: &mut Vec<SyntaxError>) { | |||
224 | } | 224 | } |
225 | } | 225 | } |
226 | 226 | ||
227 | fn validate_crate_keyword_in_path_segment( | 227 | fn validate_path_keywords(segment: ast::PathSegment, errors: &mut Vec<SyntaxError>) { |
228 | segment: ast::PathSegment, | 228 | use ast::PathSegmentKind; |
229 | errors: &mut Vec<SyntaxError>, | ||
230 | ) { | ||
231 | const ERR_MSG: &str = "The `crate` keyword is only allowed as the first segment of a path"; | ||
232 | 229 | ||
233 | let crate_token = match segment.crate_token() { | 230 | let path = segment.parent_path(); |
234 | None => return, | 231 | let is_path_start = segment.coloncolon_token().is_none() && path.qualifier().is_none(); |
235 | Some(it) => it, | 232 | |
236 | }; | 233 | if let Some(token) = segment.self_token() { |
234 | if !is_path_start { | ||
235 | errors.push(SyntaxError::new( | ||
236 | "The `self` keyword is only allowed as the first segment of a path", | ||
237 | token.text_range(), | ||
238 | )); | ||
239 | } | ||
240 | } else if let Some(token) = segment.crate_token() { | ||
241 | if !is_path_start || use_prefix(path).is_some() { | ||
242 | errors.push(SyntaxError::new( | ||
243 | "The `crate` keyword is only allowed as the first segment of a path", | ||
244 | token.text_range(), | ||
245 | )); | ||
246 | } | ||
247 | } else if let Some(token) = segment.super_token() { | ||
248 | if !all_supers(&path) { | ||
249 | errors.push(SyntaxError::new( | ||
250 | "The `super` keyword may only be preceded by other `super`s", | ||
251 | token.text_range(), | ||
252 | )); | ||
253 | return; | ||
254 | } | ||
237 | 255 | ||
238 | // Disallow both ::crate and foo::crate | 256 | let mut curr_path = path; |
239 | let mut path = segment.parent_path(); | 257 | while let Some(prefix) = use_prefix(curr_path) { |
240 | if segment.coloncolon_token().is_some() || path.qualifier().is_some() { | 258 | if !all_supers(&prefix) { |
241 | errors.push(SyntaxError::new(ERR_MSG, crate_token.text_range())); | 259 | errors.push(SyntaxError::new( |
242 | return; | 260 | "The `super` keyword may only be preceded by other `super`s", |
261 | token.text_range(), | ||
262 | )); | ||
263 | return; | ||
264 | } | ||
265 | curr_path = prefix; | ||
266 | } | ||
243 | } | 267 | } |
244 | 268 | ||
245 | // For expressions and types, validation is complete, but we still have | 269 | fn use_prefix(mut path: ast::Path) -> Option<ast::Path> { |
246 | // to handle invalid UseItems like this: | 270 | for node in path.syntax().ancestors().skip(1) { |
247 | // | 271 | match_ast! { |
248 | // use foo:{crate::bar::baz}; | 272 | match node { |
249 | // | 273 | ast::UseTree(it) => if let Some(tree_path) = it.path() { |
250 | // To handle this we must inspect the parent `UseItem`s and `UseTree`s | 274 | // Even a top-level path exists within a `UseTree` so we must explicitly |
251 | // but right now we're looking deep inside the nested `Path` nodes because | 275 | // allow our path but disallow anything else |
252 | // `Path`s are left-associative: | 276 | if tree_path != path { |
253 | // | 277 | return Some(tree_path); |
254 | // ((crate)::bar)::baz) | 278 | } |
255 | // ^ current value of path | 279 | }, |
256 | // | 280 | ast::UseTreeList(_it) => continue, |
257 | // So we need to climb to the top | 281 | ast::Path(parent) => path = parent, |
258 | while let Some(parent) = path.parent_path() { | 282 | _ => return None, |
259 | path = parent; | 283 | } |
284 | }; | ||
285 | } | ||
286 | return None; | ||
260 | } | 287 | } |
261 | 288 | ||
262 | // Now that we've found the whole path we need to see if there's a prefix | 289 | fn all_supers(path: &ast::Path) -> bool { |
263 | // somewhere in the UseTree hierarchy. This check is arbitrarily deep | 290 | let segment = match path.segment() { |
264 | // because rust allows arbitrary nesting like so: | 291 | Some(it) => it, |
265 | // | 292 | None => return false, |
266 | // use {foo::{{{{crate::bar::baz}}}}}; | ||
267 | for node in path.syntax().ancestors().skip(1) { | ||
268 | match_ast! { | ||
269 | match node { | ||
270 | ast::UseTree(it) => if let Some(tree_path) = it.path() { | ||
271 | // Even a top-level path exists within a `UseTree` so we must explicitly | ||
272 | // allow our path but disallow anything else | ||
273 | if tree_path != path { | ||
274 | errors.push(SyntaxError::new(ERR_MSG, crate_token.text_range())); | ||
275 | } | ||
276 | }, | ||
277 | ast::UseTreeList(_it) => continue, | ||
278 | _ => return, | ||
279 | } | ||
280 | }; | 293 | }; |
294 | |||
295 | if segment.kind() != Some(PathSegmentKind::SuperKw) { | ||
296 | return false; | ||
297 | } | ||
298 | |||
299 | if let Some(ref subpath) = path.qualifier() { | ||
300 | return all_supers(subpath); | ||
301 | } | ||
302 | |||
303 | return true; | ||
281 | } | 304 | } |
282 | } | 305 | } |
diff --git a/crates/ra_syntax/src/validation/block.rs b/crates/ra_syntax/src/validation/block.rs index 8e962ab5b..2c08f7e6e 100644 --- a/crates/ra_syntax/src/validation/block.rs +++ b/crates/ra_syntax/src/validation/block.rs | |||
@@ -6,19 +6,17 @@ use crate::{ | |||
6 | SyntaxKind::*, | 6 | SyntaxKind::*, |
7 | }; | 7 | }; |
8 | 8 | ||
9 | pub(crate) fn validate_block_expr(expr: ast::BlockExpr, errors: &mut Vec<SyntaxError>) { | 9 | pub(crate) fn validate_block_expr(block: ast::BlockExpr, errors: &mut Vec<SyntaxError>) { |
10 | if let Some(parent) = expr.syntax().parent() { | 10 | if let Some(parent) = block.syntax().parent() { |
11 | match parent.kind() { | 11 | match parent.kind() { |
12 | FN_DEF | EXPR_STMT | BLOCK => return, | 12 | FN_DEF | EXPR_STMT | BLOCK_EXPR => return, |
13 | _ => {} | 13 | _ => {} |
14 | } | 14 | } |
15 | } | 15 | } |
16 | if let Some(block) = expr.block() { | 16 | errors.extend(block.attrs().map(|attr| { |
17 | errors.extend(block.attrs().map(|attr| { | 17 | SyntaxError::new( |
18 | SyntaxError::new( | 18 | "A block in this position cannot accept inner attributes", |
19 | "A block in this position cannot accept inner attributes", | 19 | attr.syntax().text_range(), |
20 | attr.syntax().text_range(), | 20 | ) |
21 | ) | 21 | })) |
22 | })) | ||
23 | } | ||
24 | } | 22 | } |
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 95cc83caa..375ed45e0 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 | |||
@@ -28,10 +28,9 @@ [email protected] | |||
28 | [email protected] ")" | 28 | [email protected] ")" |
29 | [email protected] " " | 29 | [email protected] " " |
30 | [email protected] | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "{" |
32 | [email protected] "{" | 32 | [email protected] "\n" |
33 | [email protected] "\n" | 33 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n\n\n" | 34 | [email protected] "\n\n\n" |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] "#" | 36 | [email protected] "#" |
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 dc3e12091..b72c92c33 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 | |||
@@ -21,9 +21,8 @@ [email protected] | |||
21 | [email protected] "(" | 21 | [email protected] "(" |
22 | [email protected] ")" | 22 | [email protected] ")" |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] "}" |
26 | [email protected] "}" | ||
27 | [email protected] "\n\n" | 26 | [email protected] "\n\n" |
28 | [email protected] | 27 | [email protected] |
29 | [email protected] "}" | 28 | [email protected] "}" |
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 97539fcf2..33953d8d7 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 | |||
@@ -9,10 +9,9 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n" |
14 | [email protected] "\n" | 14 | [email protected] "}" |
15 | [email protected] "}" | ||
16 | [email protected] "\n\n" | 15 | [email protected] "\n\n" |
17 | [email protected] | 16 | [email protected] |
18 | [email protected] | 17 | [email protected] |
@@ -34,30 +33,28 @@ [email protected] | |||
34 | [email protected] "true" | 33 | [email protected] "true" |
35 | [email protected] " " | 34 | [email protected] " " |
36 | [email protected] | 35 | [email protected] |
37 | [email protected] | 36 | [email protected] "{" |
38 | [email protected] "{" | 37 | [email protected] "\n " |
39 | [email protected] "\n " | 38 | [email protected] |
40 | [email protected] | 39 | [email protected] "1" |
41 | [email protected] "1" | 40 | [email protected] "\n " |
42 | [email protected] "\n " | 41 | [email protected] "}" |
43 | [email protected] "}" | ||
44 | [email protected] " " | 42 | [email protected] " " |
45 | [email protected] "else" | 43 | [email protected] "else" |
46 | [email protected] " " | 44 | [email protected] " " |
47 | [email protected] | 45 | [email protected] |
48 | [email protected] | 46 | [email protected] "{" |
49 | [email protected] "{" | 47 | [email protected] "\n " |
50 | [email protected] "\n " | 48 | [email protected] |
51 | [email protected] | 49 | [email protected] |
52 | [email protected] | 50 | [email protected] "2" |
53 | [email protected] "2" | 51 | [email protected] " " |
54 | [email protected] " " | 52 | [email protected] "+" |
55 | [email protected] "+" | 53 | [email protected] " " |
56 | [email protected] " " | 54 | [email protected] |
57 | [email protected] | 55 | [email protected] "3" |
58 | [email protected] "3" | 56 | [email protected] "\n " |
59 | [email protected] "\n " | 57 | [email protected] "}" |
60 | [email protected] "}" | ||
61 | [email protected] "\n" | 58 | [email protected] "\n" |
62 | [email protected] "}" | 59 | [email protected] "}" |
63 | [email protected] "\n\n" | 60 | [email protected] "\n\n" |
@@ -71,10 +68,9 @@ [email protected] | |||
71 | [email protected] ")" | 68 | [email protected] ")" |
72 | [email protected] " " | 69 | [email protected] " " |
73 | [email protected] | 70 | [email protected] |
74 | [email protected] | 71 | [email protected] "{" |
75 | [email protected] "{" | 72 | [email protected] "\n" |
76 | [email protected] "\n" | 73 | [email protected] "}" |
77 | [email protected] "}" | ||
78 | [email protected] "\n" | 74 | [email protected] "\n" |
79 | error 17..17: expected BANG | 75 | error 17..17: expected BANG |
80 | error 19..19: expected SEMICOLON | 76 | error 19..19: 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 e10bb8174..3bf57eacc 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 | |||
@@ -9,37 +9,36 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "|" |
18 | [email protected] "|" | 18 | [email protected] "|" |
19 | [email protected] "|" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "->" |
22 | [email protected] "->" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "(" |
25 | [email protected] "(" | 25 | [email protected] ")" |
26 | [email protected] ")" | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "unsafe" |
30 | [email protected] "unsafe" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "{" |
33 | [email protected] "{" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "(" |
36 | [email protected] "(" | 36 | [email protected] ")" |
37 | [email protected] ")" | 37 | [email protected] " " |
38 | [email protected] " " | 38 | [email protected] "}" |
39 | [email protected] "}" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n" |
41 | [email protected] "\n" | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | error 24..24: expected `{` | 43 | error 24..24: expected a block |
45 | error 24..24: expected SEMICOLON | 44 | error 24..24: expected SEMICOLON |
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 61c361833..9323b7890 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 | |||
@@ -25,8 +25,7 @@ [email protected] | |||
25 | [email protected] "T" | 25 | [email protected] "T" |
26 | [email protected] " " | 26 | [email protected] " " |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "{" |
29 | [email protected] "{" | 29 | [email protected] "}" |
30 | [email protected] "}" | ||
31 | [email protected] "\n" | 30 | [email protected] "\n" |
32 | error 19..19: expected colon | 31 | error 19..19: expected colon |
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 92bb47316..93434f34f 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 | |||
@@ -9,36 +9,35 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] |
20 | [email protected] | 20 | [email protected] "foo" |
21 | [email protected] "foo" | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "1" |
26 | [email protected] "1" | 26 | [email protected] "," |
27 | [email protected] "," | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "2" |
30 | [email protected] "2" | 30 | [email protected] "\n " |
31 | [email protected] "\n " | 31 | [email protected] ")" |
32 | [email protected] ")" | 32 | [email protected] "\n " |
33 | [email protected] "\n " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "return" |
36 | [email protected] "return" | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "92" |
39 | [email protected] "92" | 39 | [email protected] ";" |
40 | [email protected] ";" | 40 | [email protected] "\n" |
41 | [email protected] "\n" | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | error 38..38: expected SEMICOLON | 43 | 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 7bc718302..628315c78 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 | |||
@@ -20,28 +20,27 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "let" |
27 | [email protected] "let" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "bar" |
31 | [email protected] "bar" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] "=" |
33 | [email protected] "=" | 33 | [email protected] " " |
34 | [email protected] " " | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] "92" |
36 | [email protected] "92" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "1" |
41 | [email protected] "1" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] "+" |
43 | [email protected] "+" | 43 | [email protected] "\n" |
44 | [email protected] "\n" | 44 | [email protected] "}" |
45 | [email protected] "}" | ||
46 | [email protected] "\n" | 45 | [email protected] "\n" |
47 | error 44..44: expected expression | 46 | 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 63194f974..31cc4e551 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 | |||
@@ -33,89 +33,88 @@ [email protected] | |||
33 | [email protected] "ScopeId" | 33 | [email protected] "ScopeId" |
34 | [email protected] " " | 34 | [email protected] " " |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] "{" |
37 | [email protected] "{" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] "res" |
44 | [email protected] "res" | 44 | [email protected] " " |
45 | [email protected] " " | 45 | [email protected] "=" |
46 | [email protected] "=" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "self" |
53 | [email protected] "self" | 53 | [email protected] "." |
54 | [email protected] "." | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "scopes" |
56 | [email protected] "scopes" | 56 | [email protected] "." |
57 | [email protected] "." | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "len" |
59 | [email protected] "len" | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] "(" |
61 | [email protected] "(" | 61 | [email protected] ")" |
62 | [email protected] ")" | 62 | [email protected] ";" |
63 | [email protected] ";" | 63 | [email protected] "\n " |
64 | [email protected] "\n " | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] |
67 | [email protected] | 67 | [email protected] |
68 | [email protected] | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] "self" |
70 | [email protected] "self" | 70 | [email protected] "." |
71 | [email protected] "." | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "scopes" |
73 | [email protected] "scopes" | 73 | [email protected] "." |
74 | [email protected] "." | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] "push" |
76 | [email protected] "push" | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "(" |
78 | [email protected] "(" | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] |
80 | [email protected] | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "ScopeData" |
83 | [email protected] "ScopeData" | 83 | [email protected] " " |
84 | [email protected] " " | 84 | [email protected] |
85 | [email protected] | 85 | [email protected] "{" |
86 | [email protected] "{" | 86 | [email protected] " " |
87 | [email protected] " " | 87 | [email protected] |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "parent" |
90 | [email protected] "parent" | 90 | [email protected] ":" |
91 | [email protected] ":" | 91 | [email protected] " " |
92 | [email protected] " " | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] |
94 | [email protected] | 94 | [email protected] |
95 | [email protected] | 95 | [email protected] |
96 | [email protected] | 96 | [email protected] "None" |
97 | [email protected] "None" | 97 | [email protected] "," |
98 | [email protected] "," | 98 | [email protected] " " |
99 | [email protected] " " | 99 | [email protected] |
100 | [email protected] | 100 | [email protected] |
101 | [email protected] | 101 | [email protected] "entries" |
102 | [email protected] "entries" | 102 | [email protected] ":" |
103 | [email protected] ":" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "vec" |
109 | [email protected] "vec" | 109 | [email protected] "!" |
110 | [email protected] "!" | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] "[" |
112 | [email protected] "[" | 112 | [email protected] "]" |
113 | [email protected] "]" | 113 | [email protected] " " |
114 | [email protected] " " | 114 | [email protected] "}" |
115 | [email protected] "}" | 115 | [email protected] ")" |
116 | [email protected] ")" | 116 | [email protected] "\n " |
117 | [email protected] "\n " | 117 | [email protected] "}" |
118 | [email protected] "}" | ||
119 | [email protected] "\n\n " | 118 | [email protected] "\n\n " |
120 | [email protected] | 119 | [email protected] |
121 | [email protected] "fn" | 120 | [email protected] "fn" |
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 d20bb60f1..4ff27f5c8 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 | |||
@@ -9,91 +9,87 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "foo" |
20 | [email protected] "foo" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "let" |
25 | [email protected] "let" | 25 | [email protected] " " |
26 | [email protected] " " | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "bar" |
29 | [email protected] "bar" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "=" |
31 | [email protected] "=" | 31 | [email protected] " " |
32 | [email protected] " " | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "1" |
34 | [email protected] "1" | 34 | [email protected] ";" |
35 | [email protected] ";" | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "let" |
38 | [email protected] "let" | 38 | [email protected] "\n " |
39 | [email protected] "\n " | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "let" |
41 | [email protected] "let" | 41 | [email protected] " " |
42 | [email protected] " " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "baz" |
45 | [email protected] "baz" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] "=" |
47 | [email protected] "=" | 47 | [email protected] " " |
48 | [email protected] " " | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "92" |
50 | [email protected] "92" | 50 | [email protected] ";" |
51 | [email protected] ";" | 51 | [email protected] "\n " |
52 | [email protected] "\n " | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "let" |
54 | [email protected] "let" | 54 | [email protected] "\n " |
55 | [email protected] "\n " | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] "if" |
58 | [email protected] "if" | 58 | [email protected] " " |
59 | [email protected] " " | 59 | [email protected] |
60 | [email protected] | 60 | [email protected] |
61 | [email protected] | 61 | [email protected] "true" |
62 | [email protected] "true" | 62 | [email protected] " " |
63 | [email protected] " " | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "{" |
65 | [email protected] | 65 | [email protected] "}" |
66 | [email protected] "{" | 66 | [email protected] "\n " |
67 | [email protected] "}" | 67 | [email protected] |
68 | [email protected] "\n " | 68 | [email protected] "let" |
69 | [email protected] | 69 | [email protected] "\n " |
70 | [email protected] "let" | 70 | [email protected] |
71 | [email protected] "\n " | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] "while" |
73 | [email protected] | 73 | [email protected] " " |
74 | [email protected] "while" | 74 | [email protected] |
75 | [email protected] " " | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "true" |
77 | [email protected] | 77 | [email protected] " " |
78 | [email protected] "true" | 78 | [email protected] |
79 | [email protected] " " | 79 | [email protected] "{" |
80 | [email protected] | 80 | [email protected] "}" |
81 | [email protected] | 81 | [email protected] "\n " |
82 | [email protected] "{" | 82 | [email protected] |
83 | [email protected] "}" | 83 | [email protected] "let" |
84 | [email protected] "\n " | 84 | [email protected] "\n " |
85 | [email protected] | 85 | [email protected] |
86 | [email protected] "let" | 86 | [email protected] "loop" |
87 | [email protected] "\n " | 87 | [email protected] " " |
88 | [email protected] | 88 | [email protected] |
89 | [email protected] "loop" | 89 | [email protected] "{" |
90 | [email protected] " " | 90 | [email protected] "}" |
91 | [email protected] | 91 | [email protected] "\n" |
92 | [email protected] | 92 | [email protected] "}" |
93 | [email protected] "{" | ||
94 | [email protected] "}" | ||
95 | [email protected] "\n" | ||
96 | [email protected] "}" | ||
97 | [email protected] "\n" | 93 | [email protected] "\n" |
98 | error 24..24: expected expression | 94 | error 24..24: expected expression |
99 | error 24..24: expected SEMICOLON | 95 | error 24..24: 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 1185f44f9..5f3a31473 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 | |||
@@ -12,9 +12,8 @@ [email protected] | |||
12 | [email protected] ")" | 12 | [email protected] ")" |
13 | [email protected] " " | 13 | [email protected] " " |
14 | [email protected] | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "{" |
16 | [email protected] "{" | 16 | [email protected] "}" |
17 | [email protected] "}" | ||
18 | [email protected] "\n" | 17 | [email protected] "\n" |
19 | error 2..2: expected a name | 18 | error 2..2: expected a name |
20 | error 2..2: expected function arguments | 19 | error 2..2: expected function arguments |
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 c7bf4caa0..1746bd3c1 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 | |||
@@ -26,10 +26,9 @@ [email protected] | |||
26 | [email protected] ")" | 26 | [email protected] ")" |
27 | [email protected] " " | 27 | [email protected] " " |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "{" |
30 | [email protected] "{" | 30 | [email protected] "\n" |
31 | [email protected] "\n" | 31 | [email protected] "}" |
32 | [email protected] "}" | ||
33 | [email protected] "\n" | 32 | [email protected] "\n" |
34 | error 16..16: expected COLON | 33 | error 16..16: expected COLON |
35 | error 16..16: expected type | 34 | 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 cc0d75cc8..28146f44e 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 | |||
@@ -9,37 +9,36 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "[" |
17 | [email protected] "[" | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "1" |
19 | [email protected] "1" | 19 | [email protected] "," |
20 | [email protected] "," | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "2" |
23 | [email protected] "2" | 23 | [email protected] "," |
24 | [email protected] "," | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "@" |
27 | [email protected] "@" | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "," |
30 | [email protected] "," | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "struct" |
33 | [email protected] "struct" | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "," |
35 | [email protected] "," | 35 | [email protected] " " |
36 | [email protected] " " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "let" |
38 | [email protected] "let" | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "]" |
40 | [email protected] "]" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] "}" |
42 | [email protected] "}" | ||
43 | [email protected] "\n" | 42 | [email protected] "\n" |
44 | [email protected] | 43 | [email protected] |
45 | [email protected] "fn" | 44 | [email protected] "fn" |
@@ -51,44 +50,43 @@ [email protected] | |||
51 | [email protected] ")" | 50 | [email protected] ")" |
52 | [email protected] " " | 51 | [email protected] " " |
53 | [email protected] | 52 | [email protected] |
54 | [email protected] | 53 | [email protected] "{" |
55 | [email protected] "{" | 54 | [email protected] " " |
56 | [email protected] " " | 55 | [email protected] |
57 | [email protected] | 56 | [email protected] |
58 | [email protected] | 57 | [email protected] |
59 | [email protected] | 58 | [email protected] |
60 | [email protected] | 59 | [email protected] |
61 | [email protected] | 60 | [email protected] |
62 | [email protected] | 61 | [email protected] "foo" |
63 | [email protected] "foo" | 62 | [email protected] |
64 | [email protected] | 63 | [email protected] "(" |
65 | [email protected] "(" | 64 | [email protected] |
66 | [email protected] | 65 | [email protected] "1" |
67 | [email protected] "1" | 66 | [email protected] "," |
68 | [email protected] "," | 67 | [email protected] " " |
69 | [email protected] " " | 68 | [email protected] |
70 | [email protected] | 69 | [email protected] "2" |
71 | [email protected] "2" | 70 | [email protected] "," |
72 | [email protected] "," | 71 | [email protected] " " |
73 | [email protected] " " | 72 | [email protected] |
74 | [email protected] | 73 | [email protected] "@" |
75 | [email protected] "@" | 74 | [email protected] |
76 | [email protected] | 75 | [email protected] |
77 | [email protected] | 76 | [email protected] "," |
78 | [email protected] "," | 77 | [email protected] " " |
79 | [email protected] " " | 78 | [email protected] |
80 | [email protected] | 79 | [email protected] "impl" |
81 | [email protected] "impl" | 80 | [email protected] |
82 | [email protected] | 81 | [email protected] |
83 | [email protected] | 82 | [email protected] "," |
84 | [email protected] "," | 83 | [email protected] " " |
85 | [email protected] " " | 84 | [email protected] |
86 | [email protected] | 85 | [email protected] "let" |
87 | [email protected] "let" | 86 | [email protected] |
88 | [email protected] | 87 | [email protected] ")" |
89 | [email protected] ")" | 88 | [email protected] " " |
90 | [email protected] " " | 89 | [email protected] "}" |
91 | [email protected] "}" | ||
92 | [email protected] "\n" | 90 | [email protected] "\n" |
93 | [email protected] | 91 | [email protected] |
94 | [email protected] "fn" | 92 | [email protected] "fn" |
@@ -100,53 +98,52 @@ [email protected] | |||
100 | [email protected] ")" | 98 | [email protected] ")" |
101 | [email protected] " " | 99 | [email protected] " " |
102 | [email protected] | 100 | [email protected] |
103 | [email protected] | 101 | [email protected] "{" |
104 | [email protected] "{" | 102 | [email protected] " " |
105 | [email protected] " " | 103 | [email protected] |
106 | [email protected] | 104 | [email protected] |
107 | [email protected] | 105 | [email protected] |
108 | [email protected] | 106 | [email protected] |
109 | [email protected] | 107 | [email protected] |
110 | [email protected] | 108 | [email protected] |
111 | [email protected] | 109 | [email protected] "foo" |
112 | [email protected] "foo" | 110 | [email protected] "." |
113 | [email protected] "." | 111 | [email protected] |
114 | [email protected] | 112 | [email protected] "bar" |
115 | [email protected] "bar" | 113 | [email protected] |
116 | [email protected] | 114 | [email protected] "(" |
117 | [email protected] "(" | 115 | [email protected] |
118 | [email protected] | 116 | [email protected] "1" |
119 | [email protected] "1" | 117 | [email protected] "," |
120 | [email protected] "," | 118 | [email protected] " " |
121 | [email protected] " " | 119 | [email protected] |
122 | [email protected] | 120 | [email protected] "2" |
123 | [email protected] "2" | 121 | [email protected] "," |
124 | [email protected] "," | 122 | [email protected] " " |
125 | [email protected] " " | 123 | [email protected] |
126 | [email protected] | 124 | [email protected] "@" |
127 | [email protected] "@" | 125 | [email protected] |
128 | [email protected] | 126 | [email protected] |
129 | [email protected] | 127 | [email protected] "," |
130 | [email protected] "," | 128 | [email protected] " " |
131 | [email protected] " " | 129 | [email protected] |
132 | [email protected] | 130 | [email protected] |
133 | [email protected] | 131 | [email protected] "]" |
134 | [email protected] "]" | 132 | [email protected] |
135 | [email protected] | 133 | [email protected] |
136 | [email protected] | 134 | [email protected] "," |
137 | [email protected] "," | 135 | [email protected] " " |
138 | [email protected] " " | 136 | [email protected] |
139 | [email protected] | 137 | [email protected] "trait" |
140 | [email protected] "trait" | 138 | [email protected] |
141 | [email protected] | 139 | [email protected] "," |
142 | [email protected] "," | 140 | [email protected] " " |
143 | [email protected] " " | 141 | [email protected] |
144 | [email protected] | 142 | [email protected] "let" |
145 | [email protected] "let" | 143 | [email protected] |
146 | [email protected] | 144 | [email protected] ")" |
147 | [email protected] ")" | 145 | [email protected] " " |
148 | [email protected] " " | 146 | [email protected] "}" |
149 | [email protected] "}" | ||
150 | [email protected] "\n" | 147 | [email protected] "\n" |
151 | error 16..16: expected expression | 148 | error 16..16: expected expression |
152 | error 17..17: expected R_BRACK | 149 | error 17..17: expected R_BRACK |
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 c37594146..9ea9d715e 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 | |||
@@ -9,31 +9,30 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "foo" |
19 | [email protected] "foo" | 19 | [email protected] "!" |
20 | [email protected] "!" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "(" |
23 | [email protected] "(" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] "bar" |
25 | [email protected] "bar" | 25 | [email protected] "," |
26 | [email protected] "," | 26 | [email protected] " " |
27 | [email protected] " " | 27 | [email protected] "\"baz\"" |
28 | [email protected] "\"baz\"" | 28 | [email protected] "," |
29 | [email protected] "," | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] "1" |
31 | [email protected] "1" | 31 | [email protected] "," |
32 | [email protected] "," | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] "2.0" |
34 | [email protected] "2.0" | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] "}" |
36 | [email protected] "}" | ||
37 | [email protected] " " | 36 | [email protected] " " |
38 | [email protected] "//~ ERROR incorrect c ..." | 37 | [email protected] "//~ ERROR incorrect c ..." |
39 | [email protected] "\n" | 38 | [email protected] "\n" |
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 4296355f2..7c957fdde 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 | |||
@@ -62,9 +62,8 @@ [email protected] | |||
62 | [email protected] ")" | 62 | [email protected] ")" |
63 | [email protected] " " | 63 | [email protected] " " |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "{" |
66 | [email protected] "{" | 66 | [email protected] "}" |
67 | [email protected] "}" | ||
68 | [email protected] "\n\n" | 67 | [email protected] "\n\n" |
69 | [email protected] | 68 | [email protected] |
70 | [email protected] "fn" | 69 | [email protected] "fn" |
@@ -76,219 +75,218 @@ [email protected] | |||
76 | [email protected] ")" | 75 | [email protected] ")" |
77 | [email protected] " " | 76 | [email protected] " " |
78 | [email protected] | 77 | [email protected] |
79 | [email protected] | 78 | [email protected] "{" |
80 | [email protected] "{" | 79 | [email protected] "\n " |
81 | [email protected] "\n " | 80 | [email protected] |
82 | [email protected] | 81 | [email protected] "let" |
83 | [email protected] "let" | 82 | [email protected] " " |
84 | [email protected] " " | 83 | [email protected] |
85 | [email protected] | 84 | [email protected] "_" |
86 | [email protected] "_" | 85 | [email protected] ":" |
87 | [email protected] ":" | 86 | [email protected] " " |
88 | [email protected] " " | 87 | [email protected] |
89 | [email protected] | 88 | [email protected] |
90 | [email protected] | 89 | [email protected] |
91 | [email protected] | 90 | [email protected] |
92 | [email protected] | 91 | [email protected] |
93 | [email protected] | 92 | [email protected] |
94 | [email protected] | 93 | [email protected] |
95 | [email protected] | 94 | [email protected] "Box" |
96 | [email protected] "Box" | 95 | [email protected] |
97 | [email protected] | 96 | [email protected] "<" |
98 | [email protected] "<" | 97 | [email protected] |
99 | [email protected] | 98 | [email protected] |
100 | [email protected] | 99 | [email protected] "(" |
101 | [email protected] "(" | 100 | [email protected] |
102 | [email protected] | 101 | [email protected] |
103 | [email protected] | 102 | [email protected] |
104 | [email protected] | 103 | [email protected] |
105 | [email protected] | 104 | [email protected] "Copy" |
106 | [email protected] "Copy" | 105 | [email protected] ")" |
107 | [email protected] ")" | 106 | [email protected] " " |
108 | [email protected] " " | 107 | [email protected] "+" |
109 | [email protected] "+" | 108 | [email protected] " " |
110 | [email protected] " " | 109 | [email protected] |
111 | [email protected] | 110 | [email protected] "(" |
112 | [email protected] "(" | 111 | [email protected] "?" |
113 | [email protected] "?" | 112 | [email protected] |
114 | [email protected] | 113 | [email protected] |
115 | [email protected] | 114 | [email protected] |
116 | [email protected] | 115 | [email protected] |
117 | [email protected] | 116 | [email protected] "Sized" |
118 | [email protected] "Sized" | 117 | [email protected] ")" |
119 | [email protected] ")" | 118 | [email protected] " " |
120 | [email protected] " " | 119 | [email protected] "+" |
121 | [email protected] "+" | 120 | [email protected] " " |
122 | [email protected] " " | 121 | [email protected] |
123 | [email protected] | 122 | [email protected] "(" |
124 | [email protected] "(" | 123 | [email protected] |
125 | [email protected] | 124 | [email protected] "for" |
126 | [email protected] "for" | 125 | [email protected] |
127 | [email protected] | 126 | [email protected] "<" |
128 | [email protected] "<" | 127 | [email protected] |
129 | [email protected] | 128 | [email protected] "\'a" |
130 | [email protected] "\'a" | 129 | [email protected] ">" |
131 | [email protected] ">" | 130 | [email protected] " " |
132 | [email protected] " " | 131 | [email protected] |
133 | [email protected] | 132 | [email protected] |
134 | [email protected] | 133 | [email protected] |
135 | [email protected] | 134 | [email protected] |
136 | [email protected] | 135 | [email protected] "Trait" |
137 | [email protected] "Trait" | 136 | [email protected] |
138 | [email protected] | 137 | [email protected] "<" |
139 | [email protected] "<" | 138 | [email protected] |
140 | [email protected] | 139 | [email protected] "\'a" |
141 | [email protected] "\'a" | 140 | [email protected] ">" |
142 | [email protected] ">" | 141 | [email protected] ")" |
143 | [email protected] ")" | 142 | [email protected] |
144 | [email protected] | 143 | [email protected] |
145 | [email protected] | 144 | [email protected] ">" |
146 | [email protected] ">" | 145 | [email protected] ";" |
147 | [email protected] ";" | 146 | [email protected] "\n " |
148 | [email protected] "\n " | 147 | [email protected] |
149 | [email protected] | 148 | [email protected] "let" |
150 | [email protected] "let" | 149 | [email protected] " " |
151 | [email protected] " " | 150 | [email protected] |
152 | [email protected] | 151 | [email protected] "_" |
153 | [email protected] "_" | 152 | [email protected] ":" |
154 | [email protected] ":" | 153 | [email protected] " " |
155 | [email protected] " " | 154 | [email protected] |
156 | [email protected] | 155 | [email protected] |
157 | [email protected] | 156 | [email protected] |
158 | [email protected] | 157 | [email protected] |
159 | [email protected] | 158 | [email protected] "Box" |
160 | [email protected] "Box" | 159 | [email protected] |
161 | [email protected] | 160 | [email protected] "<" |
162 | [email protected] "<" | 161 | [email protected] |
163 | [email protected] | 162 | [email protected] |
164 | [email protected] | 163 | [email protected] "(" |
165 | [email protected] "(" | 164 | [email protected] |
166 | [email protected] | 165 | [email protected] "?" |
167 | [email protected] "?" | 166 | [email protected] |
168 | [email protected] | 167 | [email protected] |
169 | [email protected] | 168 | [email protected] |
170 | [email protected] | 169 | [email protected] |
171 | [email protected] | 170 | [email protected] |
172 | [email protected] | 171 | [email protected] "Sized" |
173 | [email protected] "Sized" | 172 | [email protected] |
174 | [email protected] | 173 | [email protected] |
175 | [email protected] | 174 | [email protected] ")" |
176 | [email protected] ")" | 175 | [email protected] " " |
177 | [email protected] " " | 176 | [email protected] |
178 | [email protected] | 177 | [email protected] |
179 | [email protected] | 178 | [email protected] "+" |
180 | [email protected] "+" | 179 | [email protected] " " |
181 | [email protected] " " | 180 | [email protected] |
182 | [email protected] | 181 | [email protected] |
183 | [email protected] | 182 | [email protected] "(" |
184 | [email protected] "(" | 183 | [email protected] |
185 | [email protected] | 184 | [email protected] |
186 | [email protected] | 185 | [email protected] |
187 | [email protected] | 186 | [email protected] |
188 | [email protected] | 187 | [email protected] |
189 | [email protected] | 188 | [email protected] |
190 | [email protected] | 189 | [email protected] "for" |
191 | [email protected] "for" | 190 | [email protected] |
192 | [email protected] | 191 | [email protected] "<" |
193 | [email protected] "<" | 192 | [email protected] |
194 | [email protected] | 193 | [email protected] "\'a" |
195 | [email protected] "\'a" | 194 | [email protected] ">" |
196 | [email protected] ">" | 195 | [email protected] " " |
197 | [email protected] " " | 196 | [email protected] |
198 | [email protected] | 197 | [email protected] |
199 | [email protected] | 198 | [email protected] |
200 | [email protected] | 199 | [email protected] |
201 | [email protected] | 200 | [email protected] "Trait" |
202 | [email protected] "Trait" | 201 | [email protected] "<" |
203 | [email protected] "<" | 202 | [email protected] |
204 | [email protected] | 203 | [email protected] "\'a" |
205 | [email protected] "\'a" | 204 | [email protected] ">" |
206 | [email protected] ">" | 205 | [email protected] |
207 | [email protected] | 206 | [email protected] ")" |
208 | [email protected] ")" | 207 | [email protected] " " |
209 | [email protected] " " | 208 | [email protected] "+" |
210 | [email protected] "+" | 209 | [email protected] " " |
211 | [email protected] " " | 210 | [email protected] |
212 | [email protected] | 211 | [email protected] "(" |
213 | [email protected] "(" | 212 | [email protected] |
214 | [email protected] | 213 | [email protected] |
215 | [email protected] | 214 | [email protected] |
216 | [email protected] | 215 | [email protected] |
217 | [email protected] | 216 | [email protected] "Copy" |
218 | [email protected] "Copy" | 217 | [email protected] ")" |
219 | [email protected] ")" | 218 | [email protected] ">" |
220 | [email protected] ">" | 219 | [email protected] |
221 | [email protected] | 220 | [email protected] ";" |
222 | [email protected] ";" | 221 | [email protected] "\n " |
223 | [email protected] "\n " | 222 | [email protected] |
224 | [email protected] | 223 | [email protected] "let" |
225 | [email protected] "let" | 224 | [email protected] " " |
226 | [email protected] " " | 225 | [email protected] |
227 | [email protected] | 226 | [email protected] "_" |
228 | [email protected] "_" | 227 | [email protected] ":" |
229 | [email protected] ":" | 228 | [email protected] " " |
230 | [email protected] " " | 229 | [email protected] |
231 | [email protected] | 230 | [email protected] |
232 | [email protected] | 231 | [email protected] |
233 | [email protected] | 232 | [email protected] |
234 | [email protected] | 233 | [email protected] |
235 | [email protected] | 234 | [email protected] |
236 | [email protected] | 235 | [email protected] |
237 | [email protected] | 236 | [email protected] "Box" |
238 | [email protected] "Box" | 237 | [email protected] |
239 | [email protected] | 238 | [email protected] "<" |
240 | [email protected] "<" | 239 | [email protected] |
241 | [email protected] | 240 | [email protected] |
242 | [email protected] | 241 | [email protected] "(" |
243 | [email protected] "(" | 242 | [email protected] |
244 | [email protected] | 243 | [email protected] "for" |
245 | [email protected] "for" | 244 | [email protected] |
246 | [email protected] | 245 | [email protected] "<" |
247 | [email protected] "<" | 246 | [email protected] |
248 | [email protected] | 247 | [email protected] "\'a" |
249 | [email protected] "\'a" | 248 | [email protected] ">" |
250 | [email protected] ">" | 249 | [email protected] " " |
251 | [email protected] " " | 250 | [email protected] |
252 | [email protected] | 251 | [email protected] |
253 | [email protected] | 252 | [email protected] |
254 | [email protected] | 253 | [email protected] |
255 | [email protected] | 254 | [email protected] "Trait" |
256 | [email protected] "Trait" | 255 | [email protected] |
257 | [email protected] | 256 | [email protected] "<" |
258 | [email protected] "<" | 257 | [email protected] |
259 | [email protected] | 258 | [email protected] "\'a" |
260 | [email protected] "\'a" | 259 | [email protected] ">" |
261 | [email protected] ">" | 260 | [email protected] ")" |
262 | [email protected] ")" | 261 | [email protected] " " |
263 | [email protected] " " | 262 | [email protected] "+" |
264 | [email protected] "+" | 263 | [email protected] " " |
265 | [email protected] " " | 264 | [email protected] |
266 | [email protected] | 265 | [email protected] "(" |
267 | [email protected] "(" | 266 | [email protected] |
268 | [email protected] | 267 | [email protected] |
269 | [email protected] | 268 | [email protected] |
270 | [email protected] | 269 | [email protected] |
271 | [email protected] | 270 | [email protected] "Copy" |
272 | [email protected] "Copy" | 271 | [email protected] ")" |
273 | [email protected] ")" | 272 | [email protected] " " |
274 | [email protected] " " | 273 | [email protected] "+" |
275 | [email protected] "+" | 274 | [email protected] " " |
276 | [email protected] " " | 275 | [email protected] |
277 | [email protected] | 276 | [email protected] "(" |
278 | [email protected] "(" | 277 | [email protected] "?" |
279 | [email protected] "?" | 278 | [email protected] |
280 | [email protected] | 279 | [email protected] |
281 | [email protected] | 280 | [email protected] |
282 | [email protected] | 281 | [email protected] |
283 | [email protected] | 282 | [email protected] "Sized" |
284 | [email protected] "Sized" | 283 | [email protected] ")" |
285 | [email protected] ")" | 284 | [email protected] |
286 | [email protected] | 285 | [email protected] |
287 | [email protected] | 286 | [email protected] ">" |
288 | [email protected] ">" | 287 | [email protected] ";" |
289 | [email protected] ";" | 288 | [email protected] "\n" |
290 | [email protected] "\n" | 289 | [email protected] "}" |
291 | [email protected] "}" | ||
292 | [email protected] "\n" | 290 | [email protected] "\n" |
293 | error 88..88: expected COMMA | 291 | error 88..88: expected COMMA |
294 | error 88..88: expected R_ANGLE | 292 | error 88..88: expected R_ANGLE |
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 195c08bd9..88b086daf 100644 --- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast +++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast | |||
@@ -9,187 +9,185 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "enum" |
16 | [email protected] "enum" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "Test" |
19 | [email protected] "Test" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] "Var1" |
26 | [email protected] "Var1" | 26 | [email protected] "," |
27 | [email protected] "," | 27 | [email protected] "\n " |
28 | [email protected] "\n " | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "Var2" |
31 | [email protected] "Var2" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "String" |
39 | [email protected] "String" | 39 | [email protected] ")" |
40 | [email protected] ")" | 40 | [email protected] "," |
41 | [email protected] "," | 41 | [email protected] "\n " |
42 | [email protected] "\n " | 42 | [email protected] |
43 | [email protected] | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "Var3" |
45 | [email protected] "Var3" | 45 | [email protected] " " |
46 | [email protected] " " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "{" |
48 | [email protected] "{" | 48 | [email protected] "\n " |
49 | [email protected] "\n " | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "abc" |
52 | [email protected] "abc" | 52 | [email protected] ":" |
53 | [email protected] ":" | 53 | [email protected] " " |
54 | [email protected] " " | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "{" |
56 | [email protected] "{" | 56 | [email protected] "}" |
57 | [email protected] "}" | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "," |
59 | [email protected] "," | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "//~ ERROR: expected t ..." |
61 | [email protected] "//~ ERROR: expected t ..." | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] "}" |
63 | [email protected] "}" | 63 | [email protected] "," |
64 | [email protected] "," | 64 | [email protected] "\n " |
65 | [email protected] "\n " | 65 | [email protected] "}" |
66 | [email protected] "}" | 66 | [email protected] "\n\n " |
67 | [email protected] "\n\n " | 67 | [email protected] "// recover..." |
68 | [email protected] "// recover..." | 68 | [email protected] "\n " |
69 | [email protected] "\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] "let" |
71 | [email protected] "let" | 71 | [email protected] " " |
72 | [email protected] " " | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "a" |
75 | [email protected] "a" | 75 | [email protected] " " |
76 | [email protected] " " | 76 | [email protected] "=" |
77 | [email protected] "=" | 77 | [email protected] " " |
78 | [email protected] " " | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "1" |
80 | [email protected] "1" | 80 | [email protected] ";" |
81 | [email protected] ";" | 81 | [email protected] "\n " |
82 | [email protected] "\n " | 82 | [email protected] |
83 | [email protected] | 83 | [email protected] "enum" |
84 | [email protected] "enum" | 84 | [email protected] " " |
85 | [email protected] " " | 85 | [email protected] |
86 | [email protected] | 86 | [email protected] "Test2" |
87 | [email protected] "Test2" | 87 | [email protected] " " |
88 | [email protected] " " | 88 | [email protected] |
89 | [email protected] | 89 | [email protected] "{" |
90 | [email protected] "{" | 90 | [email protected] "\n " |
91 | [email protected] "\n " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "Fine" |
94 | [email protected] "Fine" | 94 | [email protected] "," |
95 | [email protected] "," | 95 | [email protected] "\n " |
96 | [email protected] "\n " | 96 | [email protected] "}" |
97 | [email protected] "}" | 97 | [email protected] "\n\n " |
98 | [email protected] "\n\n " | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "enum" |
100 | [email protected] "enum" | 100 | [email protected] " " |
101 | [email protected] " " | 101 | [email protected] |
102 | [email protected] | 102 | [email protected] "Test3" |
103 | [email protected] "Test3" | 103 | [email protected] " " |
104 | [email protected] " " | 104 | [email protected] |
105 | [email protected] | 105 | [email protected] "{" |
106 | [email protected] "{" | 106 | [email protected] "\n " |
107 | [email protected] "\n " | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] |
109 | [email protected] | 109 | [email protected] "StillFine" |
110 | [email protected] "StillFine" | 110 | [email protected] " " |
111 | [email protected] " " | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] "{" |
113 | [email protected] "{" | 113 | [email protected] "\n " |
114 | [email protected] "\n " | 114 | [email protected] |
115 | [email protected] | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "def" |
117 | [email protected] "def" | 117 | [email protected] ":" |
118 | [email protected] ":" | 118 | [email protected] " " |
119 | [email protected] " " | 119 | [email protected] |
120 | [email protected] | 120 | [email protected] |
121 | [email protected] | 121 | [email protected] |
122 | [email protected] | 122 | [email protected] |
123 | [email protected] | 123 | [email protected] "i32" |
124 | [email protected] "i32" | 124 | [email protected] "," |
125 | [email protected] "," | 125 | [email protected] "\n " |
126 | [email protected] "\n " | 126 | [email protected] "}" |
127 | [email protected] "}" | 127 | [email protected] "," |
128 | [email protected] "," | 128 | [email protected] "\n " |
129 | [email protected] "\n " | 129 | [email protected] "}" |
130 | [email protected] "}" | 130 | [email protected] "\n\n " |
131 | [email protected] "\n\n " | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] |
133 | [email protected] | 133 | [email protected] "{" |
134 | [email protected] | 134 | [email protected] "\n " |
135 | [email protected] "{" | 135 | [email protected] |
136 | [email protected] "\n " | 136 | [email protected] "// fail again" |
137 | [email protected] | 137 | [email protected] "\n " |
138 | [email protected] "// fail again" | 138 | [email protected] "enum" |
139 | [email protected] "\n " | 139 | [email protected] " " |
140 | [email protected] "enum" | 140 | [email protected] |
141 | [email protected] " " | 141 | [email protected] "Test4" |
142 | [email protected] | 142 | [email protected] " " |
143 | [email protected] "Test4" | 143 | [email protected] |
144 | [email protected] " " | 144 | [email protected] "{" |
145 | [email protected] | 145 | [email protected] "\n " |
146 | [email protected] "{" | 146 | [email protected] |
147 | [email protected] "\n " | 147 | [email protected] |
148 | [email protected] | 148 | [email protected] "Nope" |
149 | [email protected] | 149 | [email protected] |
150 | [email protected] "Nope" | 150 | [email protected] "(" |
151 | [email protected] | 151 | [email protected] |
152 | [email protected] "(" | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] |
154 | [email protected] | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] "i32" |
157 | [email protected] | 157 | [email protected] " " |
158 | [email protected] "i32" | 158 | [email protected] |
159 | [email protected] " " | 159 | [email protected] |
160 | [email protected] | 160 | [email protected] "{" |
161 | [email protected] | 161 | [email protected] "}" |
162 | [email protected] "{" | 162 | [email protected] |
163 | [email protected] "}" | 163 | [email protected] ")" |
164 | [email protected] | 164 | [email protected] " " |
165 | [email protected] ")" | 165 | [email protected] "//~ ERROR: found `{`" |
166 | [email protected] " " | 166 | [email protected] "\n ..." |
167 | [email protected] "//~ ERROR: found `{`" | 167 | [email protected] "//~^ ERROR: found `{`" |
168 | [email protected] "\n ..." | 168 | [email protected] "\n " |
169 | [email protected] "//~^ ERROR: found `{`" | 169 | [email protected] "}" |
170 | [email protected] "\n " | 170 | [email protected] "\n " |
171 | [email protected] "}" | 171 | [email protected] "}" |
172 | [email protected] "\n " | 172 | [email protected] "\n " |
173 | [email protected] "}" | 173 | [email protected] "// still recover later" |
174 | [email protected] "\n " | 174 | [email protected] "\n " |
175 | [email protected] "// still recover later" | 175 | [email protected] |
176 | [email protected] "\n " | 176 | [email protected] "let" |
177 | [email protected] | 177 | [email protected] " " |
178 | [email protected] "let" | 178 | [email protected] |
179 | [email protected] " " | 179 | [email protected] |
180 | [email protected] | 180 | [email protected] "bad_syntax" |
181 | [email protected] | 181 | [email protected] " " |
182 | [email protected] "bad_syntax" | 182 | [email protected] "=" |
183 | [email protected] " " | 183 | [email protected] " " |
184 | [email protected] "=" | 184 | [email protected] |
185 | [email protected] " " | 185 | [email protected] "_" |
186 | [email protected] | 186 | [email protected] ";" |
187 | [email protected] "_" | 187 | [email protected] " " |
188 | [email protected] ";" | 188 | [email protected] "//~ ERROR: expected e ..." |
189 | [email protected] " " | 189 | [email protected] "\n" |
190 | [email protected] "//~ ERROR: expected e ..." | 190 | [email protected] "}" |
191 | [email protected] "\n" | ||
192 | [email protected] "}" | ||
193 | [email protected] "\n" | 191 | [email protected] "\n" |
194 | error 95..95: expected type | 192 | error 95..95: expected type |
195 | error 95..95: expected COMMA | 193 | error 95..95: expected COMMA |
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 f2fada510..568a4cc02 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 | |||
@@ -21,9 +21,8 @@ [email protected] | |||
21 | [email protected] ">" | 21 | [email protected] ">" |
22 | [email protected] "\n" | 22 | [email protected] "\n" |
23 | [email protected] | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] "{" | 25 | [email protected] "}" |
26 | [email protected] "}" | ||
27 | [email protected] "\n" | 26 | [email protected] "\n" |
28 | error 26..26: expected a path | 27 | error 26..26: expected a path |
29 | error 26..26: expected colon | 28 | 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 56682f966..0da8f59f0 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 | |||
@@ -20,17 +20,16 @@ [email protected] | |||
20 | [email protected] ")" | 20 | [email protected] ")" |
21 | [email protected] " " | 21 | [email protected] " " |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "a" |
31 | [email protected] "a" | 31 | [email protected] "." |
32 | [email protected] "." | 32 | [email protected] "\n" |
33 | [email protected] "\n" | 33 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n" | 34 | [email protected] "\n" |
36 | error 21..21: expected field name or number | 35 | 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 aac476430..515819e42 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 | |||
@@ -9,115 +9,111 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "inner" |
20 | [email protected] "inner" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] "=" |
22 | [email protected] "=" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] "{" |
25 | [email protected] | 25 | [email protected] "\n " |
26 | [email protected] "{" | 26 | [email protected] |
27 | [email protected] "\n " | 27 | [email protected] "#" |
28 | [email protected] | 28 | [email protected] "!" |
29 | [email protected] "#" | 29 | [email protected] "[" |
30 | [email protected] "!" | 30 | [email protected] |
31 | [email protected] "[" | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] |
33 | [email protected] | 33 | [email protected] "doc" |
34 | [email protected] | 34 | [email protected] |
35 | [email protected] "doc" | 35 | [email protected] "(" |
36 | [email protected] | 36 | [email protected] "\"Inner attributes not ..." |
37 | [email protected] "(" | 37 | [email protected] ")" |
38 | [email protected] "\"Inner attributes not ..." | 38 | [email protected] "]" |
39 | [email protected] ")" | 39 | [email protected] "\n " |
40 | [email protected] "]" | 40 | [email protected] "//! Nor are ModuleDoc ..." |
41 | [email protected] "\n " | 41 | [email protected] "\n " |
42 | [email protected] "//! Nor are ModuleDoc ..." | 42 | [email protected] "}" |
43 | [email protected] "\n " | 43 | [email protected] ";" |
44 | [email protected] "}" | 44 | [email protected] "\n " |
45 | [email protected] ";" | 45 | [email protected] |
46 | [email protected] "\n " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "if" |
48 | [email protected] | 48 | [email protected] " " |
49 | [email protected] "if" | 49 | [email protected] |
50 | [email protected] " " | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "true" |
52 | [email protected] | 52 | [email protected] " " |
53 | [email protected] "true" | 53 | [email protected] |
54 | [email protected] " " | 54 | [email protected] "{" |
55 | [email protected] | 55 | [email protected] "\n " |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] "{" | 57 | [email protected] "#" |
58 | [email protected] "\n " | 58 | [email protected] "!" |
59 | [email protected] | 59 | [email protected] "[" |
60 | [email protected] "#" | 60 | [email protected] |
61 | [email protected] "!" | 61 | [email protected] |
62 | [email protected] "[" | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "doc" |
64 | [email protected] | 64 | [email protected] |
65 | [email protected] | 65 | [email protected] "(" |
66 | [email protected] "doc" | 66 | [email protected] "\"Nor here\"" |
67 | [email protected] | 67 | [email protected] ")" |
68 | [email protected] "(" | 68 | [email protected] "]" |
69 | [email protected] "\"Nor here\"" | 69 | [email protected] "\n " |
70 | [email protected] ")" | 70 | [email protected] |
71 | [email protected] "]" | 71 | [email protected] "#" |
72 | [email protected] "\n " | 72 | [email protected] "!" |
73 | [email protected] | 73 | [email protected] "[" |
74 | [email protected] "#" | 74 | [email protected] |
75 | [email protected] "!" | 75 | [email protected] |
76 | [email protected] "[" | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] "doc" |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "(" |
80 | [email protected] "doc" | 80 | [email protected] "\"We error on each attr\"" |
81 | [email protected] | 81 | [email protected] ")" |
82 | [email protected] "(" | 82 | [email protected] "]" |
83 | [email protected] "\"We error on each attr\"" | 83 | [email protected] "\n " |
84 | [email protected] ")" | 84 | [email protected] "//! Nor are ModuleDoc ..." |
85 | [email protected] "]" | 85 | [email protected] "\n " |
86 | [email protected] "\n " | 86 | [email protected] "}" |
87 | [email protected] "//! Nor are ModuleDoc ..." | 87 | [email protected] "\n " |
88 | [email protected] "\n " | 88 | [email protected] |
89 | [email protected] "}" | 89 | [email protected] "while" |
90 | [email protected] "\n " | 90 | [email protected] " " |
91 | [email protected] | 91 | [email protected] |
92 | [email protected] "while" | 92 | [email protected] |
93 | [email protected] " " | 93 | [email protected] "true" |
94 | [email protected] | 94 | [email protected] " " |
95 | [email protected] | 95 | [email protected] |
96 | [email protected] "true" | 96 | [email protected] "{" |
97 | [email protected] " " | 97 | [email protected] "\n " |
98 | [email protected] | 98 | [email protected] |
99 | [email protected] | 99 | [email protected] "#" |
100 | [email protected] "{" | 100 | [email protected] "!" |
101 | [email protected] "\n " | 101 | [email protected] "[" |
102 | [email protected] | 102 | [email protected] |
103 | [email protected] "#" | 103 | [email protected] |
104 | [email protected] "!" | 104 | [email protected] |
105 | [email protected] "[" | 105 | [email protected] "doc" |
106 | [email protected] | 106 | [email protected] |
107 | [email protected] | 107 | [email protected] "(" |
108 | [email protected] | 108 | [email protected] "\"Nor here\"" |
109 | [email protected] "doc" | 109 | [email protected] ")" |
110 | [email protected] | 110 | [email protected] "]" |
111 | [email protected] "(" | 111 | [email protected] "\n " |
112 | [email protected] "\"Nor here\"" | 112 | [email protected] "//! Nor are ModuleDoc ..." |
113 | [email protected] ")" | 113 | [email protected] "\n " |
114 | [email protected] "]" | 114 | [email protected] "}" |
115 | [email protected] "\n " | 115 | [email protected] "\n" |
116 | [email protected] "//! Nor are ModuleDoc ..." | 116 | [email protected] "}" |
117 | [email protected] "\n " | ||
118 | [email protected] "}" | ||
119 | [email protected] "\n" | ||
120 | [email protected] "}" | ||
121 | [email protected] "\n" | 117 | [email protected] "\n" |
122 | error 39..83: A block in this position cannot accept inner attributes | 118 | 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 | 119 | error 152..171: 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 f98de7f15..c6859eca8 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 | |||
@@ -9,187 +9,186 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] "match" |
17 | [email protected] "match" | 17 | [email protected] " " |
18 | [email protected] " " | 18 | [email protected] |
19 | [email protected] | 19 | [email protected] "(" |
20 | [email protected] "(" | 20 | [email protected] ")" |
21 | [email protected] ")" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "{" |
24 | [email protected] "{" | 24 | [email protected] "\n " |
25 | [email protected] "\n " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] "_" |
28 | [email protected] "_" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "=>" |
30 | [email protected] "=>" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] |
32 | [email protected] | 32 | [email protected] "(" |
33 | [email protected] "(" | 33 | [email protected] ")" |
34 | [email protected] ")" | 34 | [email protected] "," |
35 | [email protected] "," | 35 | [email protected] "\n " |
36 | [email protected] "\n " | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "#" |
39 | [email protected] "#" | 39 | [email protected] |
40 | [email protected] | 40 | [email protected] "!" |
41 | [email protected] "!" | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "[" |
43 | [email protected] "[" | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "doc" |
49 | [email protected] "doc" | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] "(" |
51 | [email protected] "(" | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] "\"Not allowed here\"" |
53 | [email protected] "\"Not allowed here\"" | 53 | [email protected] ")" |
54 | [email protected] ")" | 54 | [email protected] "]" |
55 | [email protected] "]" | 55 | [email protected] "\n " |
56 | [email protected] "\n " | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "_" |
59 | [email protected] "_" | 59 | [email protected] " " |
60 | [email protected] " " | 60 | [email protected] "=>" |
61 | [email protected] "=>" | 61 | [email protected] " " |
62 | [email protected] " " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "(" |
64 | [email protected] "(" | 64 | [email protected] ")" |
65 | [email protected] ")" | 65 | [email protected] "," |
66 | [email protected] "," | 66 | [email protected] "\n " |
67 | [email protected] "\n " | 67 | [email protected] "}" |
68 | [email protected] "}" | 68 | [email protected] "\n\n " |
69 | [email protected] "\n\n " | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "match" |
72 | [email protected] "match" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] "(" |
75 | [email protected] "(" | 75 | [email protected] ")" |
76 | [email protected] ")" | 76 | [email protected] " " |
77 | [email protected] " " | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] "{" |
79 | [email protected] "{" | 79 | [email protected] "\n " |
80 | [email protected] "\n " | 80 | [email protected] |
81 | [email protected] | 81 | [email protected] |
82 | [email protected] | 82 | [email protected] "_" |
83 | [email protected] "_" | 83 | [email protected] " " |
84 | [email protected] " " | 84 | [email protected] "=>" |
85 | [email protected] "=>" | 85 | [email protected] " " |
86 | [email protected] " " | 86 | [email protected] |
87 | [email protected] | 87 | [email protected] "(" |
88 | [email protected] "(" | 88 | [email protected] ")" |
89 | [email protected] ")" | 89 | [email protected] "," |
90 | [email protected] "," | 90 | [email protected] "\n " |
91 | [email protected] "\n " | 91 | [email protected] |
92 | [email protected] | 92 | [email protected] |
93 | [email protected] | 93 | [email protected] "_" |
94 | [email protected] "_" | 94 | [email protected] " " |
95 | [email protected] " " | 95 | [email protected] "=>" |
96 | [email protected] "=>" | 96 | [email protected] " " |
97 | [email protected] " " | 97 | [email protected] |
98 | [email protected] | 98 | [email protected] "(" |
99 | [email protected] "(" | 99 | [email protected] ")" |
100 | [email protected] ")" | 100 | [email protected] "," |
101 | [email protected] "," | 101 | [email protected] "\n " |
102 | [email protected] "\n " | 102 | [email protected] |
103 | [email protected] | 103 | [email protected] |
104 | [email protected] | 104 | [email protected] "#" |
105 | [email protected] "#" | 105 | [email protected] |
106 | [email protected] | 106 | [email protected] "!" |
107 | [email protected] "!" | 107 | [email protected] |
108 | [email protected] | 108 | [email protected] "[" |
109 | [email protected] "[" | 109 | [email protected] |
110 | [email protected] | 110 | [email protected] |
111 | [email protected] | 111 | [email protected] |
112 | [email protected] | 112 | [email protected] |
113 | [email protected] | 113 | [email protected] |
114 | [email protected] | 114 | [email protected] "doc" |
115 | [email protected] "doc" | 115 | [email protected] |
116 | [email protected] | 116 | [email protected] "(" |
117 | [email protected] "(" | 117 | [email protected] |
118 | [email protected] | 118 | [email protected] "\"Nor here\"" |
119 | [email protected] "\"Nor here\"" | 119 | [email protected] ")" |
120 | [email protected] ")" | 120 | [email protected] "]" |
121 | [email protected] "]" | 121 | [email protected] "\n " |
122 | [email protected] "\n " | 122 | [email protected] "}" |
123 | [email protected] "}" | 123 | [email protected] "\n\n " |
124 | [email protected] "\n\n " | 124 | [email protected] |
125 | [email protected] | 125 | [email protected] "match" |
126 | [email protected] "match" | 126 | [email protected] " " |
127 | [email protected] " " | 127 | [email protected] |
128 | [email protected] | 128 | [email protected] "(" |
129 | [email protected] "(" | 129 | [email protected] ")" |
130 | [email protected] ")" | 130 | [email protected] " " |
131 | [email protected] " " | 131 | [email protected] |
132 | [email protected] | 132 | [email protected] "{" |
133 | [email protected] "{" | 133 | [email protected] "\n " |
134 | [email protected] "\n " | 134 | [email protected] |
135 | [email protected] | 135 | [email protected] |
136 | [email protected] | 136 | [email protected] "#" |
137 | [email protected] "#" | 137 | [email protected] "[" |
138 | [email protected] "[" | 138 | [email protected] |
139 | [email protected] | 139 | [email protected] |
140 | [email protected] | 140 | [email protected] |
141 | [email protected] | 141 | [email protected] "cfg" |
142 | [email protected] "cfg" | 142 | [email protected] |
143 | [email protected] | 143 | [email protected] "(" |
144 | [email protected] "(" | 144 | [email protected] "test" |
145 | [email protected] "test" | 145 | [email protected] ")" |
146 | [email protected] ")" | 146 | [email protected] "]" |
147 | [email protected] "]" | 147 | [email protected] "\n " |
148 | [email protected] "\n " | 148 | [email protected] |
149 | [email protected] | 149 | [email protected] "#" |
150 | [email protected] "#" | 150 | [email protected] |
151 | [email protected] | 151 | [email protected] "!" |
152 | [email protected] "!" | 152 | [email protected] |
153 | [email protected] | 153 | [email protected] "[" |
154 | [email protected] "[" | 154 | [email protected] |
155 | [email protected] | 155 | [email protected] |
156 | [email protected] | 156 | [email protected] |
157 | [email protected] | 157 | [email protected] |
158 | [email protected] | 158 | [email protected] |
159 | [email protected] | 159 | [email protected] "doc" |
160 | [email protected] "doc" | 160 | [email protected] |
161 | [email protected] | 161 | [email protected] "(" |
162 | [email protected] "(" | 162 | [email protected] |
163 | [email protected] | 163 | [email protected] "\"Nor here\"" |
164 | [email protected] "\"Nor here\"" | 164 | [email protected] ")" |
165 | [email protected] ")" | 165 | [email protected] "]" |
166 | [email protected] "]" | 166 | [email protected] "\n " |
167 | [email protected] "\n " | 167 | [email protected] |
168 | [email protected] | 168 | [email protected] |
169 | [email protected] | 169 | [email protected] "_" |
170 | [email protected] "_" | 170 | [email protected] " " |
171 | [email protected] " " | 171 | [email protected] "=>" |
172 | [email protected] "=>" | 172 | [email protected] " " |
173 | [email protected] " " | 173 | [email protected] |
174 | [email protected] | 174 | [email protected] "(" |
175 | [email protected] "(" | 175 | [email protected] ")" |
176 | [email protected] ")" | 176 | [email protected] "," |
177 | [email protected] "," | 177 | [email protected] "\n " |
178 | [email protected] "\n " | 178 | [email protected] |
179 | [email protected] | 179 | [email protected] |
180 | [email protected] | 180 | [email protected] "_" |
181 | [email protected] "_" | 181 | [email protected] " " |
182 | [email protected] " " | 182 | [email protected] "=>" |
183 | [email protected] "=>" | 183 | [email protected] " " |
184 | [email protected] " " | 184 | [email protected] |
185 | [email protected] | 185 | [email protected] "(" |
186 | [email protected] "(" | 186 | [email protected] ")" |
187 | [email protected] ")" | 187 | [email protected] "," |
188 | [email protected] "," | 188 | [email protected] "\n " |
189 | [email protected] "\n " | 189 | [email protected] "}" |
190 | [email protected] "}" | 190 | [email protected] "\n" |
191 | [email protected] "\n" | 191 | [email protected] "}" |
192 | [email protected] "}" | ||
193 | [email protected] "\n" | 192 | [email protected] "\n" |
194 | error 52..52: expected `[` | 193 | error 52..52: expected `[` |
195 | error 52..52: expected pattern | 194 | error 52..52: expected pattern |
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 d0017c883..53e445459 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 | |||
@@ -9,58 +9,57 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "match" |
16 | [email protected] "match" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "(" |
19 | [email protected] "(" | 19 | [email protected] ")" |
20 | [email protected] ")" | 20 | [email protected] " " |
21 | [email protected] " " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] "{" |
23 | [email protected] "{" | 23 | [email protected] "\n " |
24 | [email protected] "\n " | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "_" |
27 | [email protected] "_" | 27 | [email protected] " " |
28 | [email protected] " " | 28 | [email protected] "=>" |
29 | [email protected] "=>" | 29 | [email protected] " " |
30 | [email protected] " " | 30 | [email protected] |
31 | [email protected] | 31 | [email protected] "(" |
32 | [email protected] "(" | 32 | [email protected] ")" |
33 | [email protected] ")" | 33 | [email protected] "," |
34 | [email protected] "," | 34 | [email protected] "\n " |
35 | [email protected] "\n " | 35 | [email protected] |
36 | [email protected] | 36 | [email protected] |
37 | [email protected] | 37 | [email protected] "_" |
38 | [email protected] "_" | 38 | [email protected] " " |
39 | [email protected] " " | 39 | [email protected] "=>" |
40 | [email protected] "=>" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "(" |
43 | [email protected] "(" | 43 | [email protected] ")" |
44 | [email protected] ")" | 44 | [email protected] "," |
45 | [email protected] "," | 45 | [email protected] "\n " |
46 | [email protected] "\n " | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] "#" |
49 | [email protected] "#" | 49 | [email protected] "[" |
50 | [email protected] "[" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "cfg" |
54 | [email protected] "cfg" | 54 | [email protected] |
55 | [email protected] | 55 | [email protected] "(" |
56 | [email protected] "(" | 56 | [email protected] "test" |
57 | [email protected] "test" | 57 | [email protected] ")" |
58 | [email protected] ")" | 58 | [email protected] "]" |
59 | [email protected] "]" | 59 | [email protected] "\n " |
60 | [email protected] "\n " | 60 | [email protected] "}" |
61 | [email protected] "}" | 61 | [email protected] "\n" |
62 | [email protected] "\n" | 62 | [email protected] "}" |
63 | [email protected] "}" | ||
64 | [email protected] "\n" | 63 | [email protected] "\n" |
65 | error 80..80: expected pattern | 64 | error 80..80: expected pattern |
66 | error 80..80: expected FAT_ARROW | 65 | error 80..80: expected FAT_ARROW |
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 2c0bddec8..1b2ac5011 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 | |||
@@ -9,84 +9,83 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "ref" |
19 | [email protected] "ref" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "box" |
22 | [email protected] "box" | 22 | [email protected] " " |
23 | [email protected] " " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] |
29 | [email protected] | 29 | [email protected] "i" |
30 | [email protected] "i" | 30 | [email protected] " " |
31 | [email protected] " " | 31 | [email protected] "=" |
32 | [email protected] "=" | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "(" |
35 | [email protected] "(" | 35 | [email protected] ")" |
36 | [email protected] ")" | 36 | [email protected] ";" |
37 | [email protected] ";" | 37 | [email protected] "\n " |
38 | [email protected] "\n " | 38 | [email protected] |
39 | [email protected] | 39 | [email protected] "let" |
40 | [email protected] "let" | 40 | [email protected] " " |
41 | [email protected] " " | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "mut" |
43 | [email protected] "mut" | 43 | [email protected] " " |
44 | [email protected] " " | 44 | [email protected] |
45 | [email protected] | 45 | [email protected] "box" |
46 | [email protected] "box" | 46 | [email protected] " " |
47 | [email protected] " " | 47 | [email protected] |
48 | [email protected] | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] |
50 | [email protected] | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] |
52 | [email protected] | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] "i" |
54 | [email protected] "i" | 54 | [email protected] " " |
55 | [email protected] " " | 55 | [email protected] "=" |
56 | [email protected] "=" | 56 | [email protected] " " |
57 | [email protected] " " | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "(" |
59 | [email protected] "(" | 59 | [email protected] ")" |
60 | [email protected] ")" | 60 | [email protected] ";" |
61 | [email protected] ";" | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] |
63 | [email protected] | 63 | [email protected] "let" |
64 | [email protected] "let" | 64 | [email protected] " " |
65 | [email protected] " " | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "ref" |
67 | [email protected] "ref" | 67 | [email protected] " " |
68 | [email protected] " " | 68 | [email protected] "mut" |
69 | [email protected] "mut" | 69 | [email protected] " " |
70 | [email protected] " " | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] "box" |
72 | [email protected] "box" | 72 | [email protected] " " |
73 | [email protected] " " | 73 | [email protected] |
74 | [email protected] | 74 | [email protected] |
75 | [email protected] | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] |
77 | [email protected] | 77 | [email protected] |
78 | [email protected] | 78 | [email protected] |
79 | [email protected] | 79 | [email protected] "i" |
80 | [email protected] "i" | 80 | [email protected] " " |
81 | [email protected] " " | 81 | [email protected] "=" |
82 | [email protected] "=" | 82 | [email protected] " " |
83 | [email protected] " " | 83 | [email protected] |
84 | [email protected] | 84 | [email protected] "(" |
85 | [email protected] "(" | 85 | [email protected] ")" |
86 | [email protected] ")" | 86 | [email protected] ";" |
87 | [email protected] ";" | 87 | [email protected] "\n" |
88 | [email protected] "\n" | 88 | [email protected] "}" |
89 | [email protected] "}" | ||
90 | [email protected] "\n\n" | 89 | [email protected] "\n\n" |
91 | error 24..24: expected a name | 90 | error 24..24: expected a name |
92 | error 27..27: expected SEMICOLON | 91 | error 27..27: 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 83851f5d2..9588cf3b3 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 | |||
@@ -44,9 +44,8 @@ [email protected] | |||
44 | [email protected] ")" | 44 | [email protected] ")" |
45 | [email protected] " " | 45 | [email protected] " " |
46 | [email protected] | 46 | [email protected] |
47 | [email protected] | 47 | [email protected] "{" |
48 | [email protected] "{" | 48 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n" | 49 | [email protected] "\n" |
51 | error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier | 50 | error 17..17: expected one of `*`, `::`, `{`, `self`, `super` or an identifier |
52 | error 17..17: expected SEMICOLON | 51 | error 17..17: 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 a328222aa..e3cda7c43 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 | |||
@@ -27,9 +27,8 @@ [email protected] | |||
27 | [email protected] ")" | 27 | [email protected] ")" |
28 | [email protected] " " | 28 | [email protected] " " |
29 | [email protected] | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "{" |
31 | [email protected] "{" | 31 | [email protected] "}" |
32 | [email protected] "}" | ||
33 | [email protected] "\n " | 32 | [email protected] "\n " |
34 | [email protected] | 33 | [email protected] |
35 | [email protected] | 34 | [email protected] |
@@ -44,9 +43,8 @@ [email protected] | |||
44 | [email protected] ")" | 43 | [email protected] ")" |
45 | [email protected] " " | 44 | [email protected] " " |
46 | [email protected] | 45 | [email protected] |
47 | [email protected] | 46 | [email protected] "{" |
48 | [email protected] "{" | 47 | [email protected] "}" |
49 | [email protected] "}" | ||
50 | [email protected] "\n " | 48 | [email protected] "\n " |
51 | [email protected] | 49 | [email protected] |
52 | [email protected] | 50 | [email protected] |
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 bcd1fad69..21db9ee85 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 | |||
@@ -9,22 +9,21 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "0" |
18 | [email protected] "0" | 18 | [email protected] "..=" |
19 | [email protected] "..=" | 19 | [email protected] ";" |
20 | [email protected] ";" | 20 | [email protected] "\n " |
21 | [email protected] "\n " | 21 | [email protected] |
22 | [email protected] | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "..=" |
24 | [email protected] "..=" | 24 | [email protected] ";" |
25 | [email protected] ";" | 25 | [email protected] "\n" |
26 | [email protected] "\n" | 26 | [email protected] "}" |
27 | [email protected] "}" | ||
28 | [email protected] "\n" | 27 | [email protected] "\n" |
29 | error 16..20: An inclusive range must have an end expression | 28 | error 16..20: An inclusive range must have an end expression |
30 | error 26..29: An inclusive range must have an end expression | 29 | 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 433ea7bad..ec950381b 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 | |||
@@ -18,66 +18,65 @@ [email protected] | |||
18 | [email protected] "i32" | 18 | [email protected] "i32" |
19 | [email protected] " " | 19 | [email protected] " " |
20 | [email protected] | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "{" |
22 | [email protected] "{" | 22 | [email protected] "\n " |
23 | [email protected] "\n " | 23 | [email protected] |
24 | [email protected] | 24 | [email protected] |
25 | [email protected] | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] |
27 | [email protected] | 27 | [email protected] |
28 | [email protected] | 28 | [email protected] "[" |
29 | [email protected] "[" | 29 | [email protected] |
30 | [email protected] | 30 | [email protected] "1" |
31 | [email protected] "1" | 31 | [email protected] "," |
32 | [email protected] "," | 32 | [email protected] " " |
33 | [email protected] " " | 33 | [email protected] |
34 | [email protected] | 34 | [email protected] "2" |
35 | [email protected] "2" | 35 | [email protected] "," |
36 | [email protected] "," | 36 | [email protected] " " |
37 | [email protected] " " | 37 | [email protected] |
38 | [email protected] | 38 | [email protected] "3" |
39 | [email protected] "3" | 39 | [email protected] "]" |
40 | [email protected] "]" | 40 | [email protected] "." |
41 | [email protected] "." | 41 | [email protected] |
42 | [email protected] | 42 | [email protected] "iter" |
43 | [email protected] "iter" | 43 | [email protected] |
44 | [email protected] | 44 | [email protected] "(" |
45 | [email protected] "(" | 45 | [email protected] ")" |
46 | [email protected] ")" | 46 | [email protected] "\n " |
47 | [email protected] "\n " | 47 | [email protected] "." |
48 | [email protected] "." | 48 | [email protected] |
49 | [email protected] | 49 | [email protected] "map" |
50 | [email protected] "map" | 50 | [email protected] |
51 | [email protected] | 51 | [email protected] "(" |
52 | [email protected] "(" | 52 | [email protected] |
53 | [email protected] | 53 | [email protected] |
54 | [email protected] | 54 | [email protected] "|" |
55 | [email protected] "|" | 55 | [email protected] |
56 | [email protected] | 56 | [email protected] |
57 | [email protected] | 57 | [email protected] |
58 | [email protected] | 58 | [email protected] "it" |
59 | [email protected] "it" | 59 | [email protected] "|" |
60 | [email protected] "|" | 60 | [email protected] ")" |
61 | [email protected] ")" | 61 | [email protected] "\n " |
62 | [email protected] "\n " | 62 | [email protected] "." |
63 | [email protected] "." | 63 | [email protected] |
64 | [email protected] | 64 | [email protected] "max" |
65 | [email protected] "max" | 65 | [email protected] |
66 | [email protected] | 66 | [email protected] "::" |
67 | [email protected] "::" | 67 | [email protected] "<" |
68 | [email protected] "<" | 68 | [email protected] |
69 | [email protected] | 69 | [email protected] |
70 | [email protected] | 70 | [email protected] |
71 | [email protected] | 71 | [email protected] |
72 | [email protected] | 72 | [email protected] |
73 | [email protected] | 73 | [email protected] "i32" |
74 | [email protected] "i32" | 74 | [email protected] ">" |
75 | [email protected] ">" | 75 | [email protected] |
76 | [email protected] | 76 | [email protected] "(" |
77 | [email protected] "(" | 77 | [email protected] ")" |
78 | [email protected] ")" | 78 | [email protected] ";" |
79 | [email protected] ";" | 79 | [email protected] "\n" |
80 | [email protected] "\n" | 80 | [email protected] "}" |
81 | [email protected] "}" | ||
82 | [email protected] "\n" | 81 | [email protected] "\n" |
83 | error 56..56: expected expression | 82 | error 56..56: expected expression |
diff --git a/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast new file mode 100644 index 000000000..d0360c467 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rast | |||
@@ -0,0 +1,70 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "use" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] | ||
7 | [email protected] | ||
8 | [email protected] "::" | ||
9 | [email protected] "super" | ||
10 | [email protected] ";" | ||
11 | [email protected] "\n" | ||
12 | [email protected] | ||
13 | [email protected] "use" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] | ||
19 | [email protected] | ||
20 | [email protected] "a" | ||
21 | [email protected] "::" | ||
22 | [email protected] | ||
23 | [email protected] "super" | ||
24 | [email protected] ";" | ||
25 | [email protected] "\n" | ||
26 | [email protected] | ||
27 | [email protected] "use" | ||
28 | [email protected] " " | ||
29 | [email protected] | ||
30 | [email protected] | ||
31 | [email protected] | ||
32 | [email protected] | ||
33 | [email protected] | ||
34 | [email protected] "super" | ||
35 | [email protected] "::" | ||
36 | [email protected] | ||
37 | [email protected] | ||
38 | [email protected] "a" | ||
39 | [email protected] "::" | ||
40 | [email protected] | ||
41 | [email protected] "super" | ||
42 | [email protected] ";" | ||
43 | [email protected] "\n" | ||
44 | [email protected] | ||
45 | [email protected] "use" | ||
46 | [email protected] " " | ||
47 | [email protected] | ||
48 | [email protected] | ||
49 | [email protected] | ||
50 | [email protected] | ||
51 | [email protected] "a" | ||
52 | [email protected] "::" | ||
53 | [email protected] | ||
54 | [email protected] "{" | ||
55 | [email protected] | ||
56 | [email protected] | ||
57 | [email protected] | ||
58 | [email protected] | ||
59 | [email protected] "super" | ||
60 | [email protected] "::" | ||
61 | [email protected] | ||
62 | [email protected] | ||
63 | [email protected] "b" | ||
64 | [email protected] "}" | ||
65 | [email protected] ";" | ||
66 | [email protected] "\n" | ||
67 | error 6..11: The `super` keyword may only be preceded by other `super`s | ||
68 | error 20..25: The `super` keyword may only be preceded by other `super`s | ||
69 | error 41..46: The `super` keyword may only be preceded by other `super`s | ||
70 | error 56..61: The `super` keyword may only be preceded by other `super`s | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs new file mode 100644 index 000000000..bd4d58042 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0041_illegal_super_keyword_location.rs | |||
@@ -0,0 +1,4 @@ | |||
1 | use ::super; | ||
2 | use a::super; | ||
3 | use super::a::super; | ||
4 | use a::{super::b}; | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast new file mode 100644 index 000000000..4f382b06c --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rast | |||
@@ -0,0 +1,27 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "use" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] | ||
7 | [email protected] | ||
8 | [email protected] "::" | ||
9 | [email protected] "self" | ||
10 | [email protected] ";" | ||
11 | [email protected] "\n" | ||
12 | [email protected] | ||
13 | [email protected] "use" | ||
14 | [email protected] " " | ||
15 | [email protected] | ||
16 | [email protected] | ||
17 | [email protected] | ||
18 | [email protected] | ||
19 | [email protected] | ||
20 | [email protected] "a" | ||
21 | [email protected] "::" | ||
22 | [email protected] | ||
23 | [email protected] "self" | ||
24 | [email protected] ";" | ||
25 | [email protected] "\n" | ||
26 | error 6..10: The `self` keyword is only allowed as the first segment of a path | ||
27 | error 19..23: The `self` keyword is only allowed as the first segment of a path | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs new file mode 100644 index 000000000..b9e1d7d8b --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0042_illegal_self_keyword_location.rs | |||
@@ -0,0 +1,2 @@ | |||
1 | use ::self; | ||
2 | use a::self; | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast new file mode 100644 index 000000000..e46456384 --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rast | |||
@@ -0,0 +1,71 @@ | |||
1 | [email protected] | ||
2 | [email protected] | ||
3 | [email protected] "fn" | ||
4 | [email protected] " " | ||
5 | [email protected] | ||
6 | [email protected] "main" | ||
7 | [email protected] | ||
8 | [email protected] "(" | ||
9 | [email protected] ")" | ||
10 | [email protected] " " | ||
11 | [email protected] | ||
12 | [email protected] "{" | ||
13 | [email protected] "\n " | ||
14 | [email protected] | ||
15 | [email protected] | ||
16 | [email protected] "{" | ||
17 | [email protected] " " | ||
18 | [email protected] | ||
19 | [email protected] "unsafe" | ||
20 | [email protected] " " | ||
21 | [email protected] | ||
22 | [email protected] "92" | ||
23 | [email protected] " " | ||
24 | [email protected] "}" | ||
25 | [email protected] "\n " | ||
26 | [email protected] | ||
27 | [email protected] | ||
28 | [email protected] "{" | ||
29 | [email protected] " " | ||
30 | [email protected] | ||
31 | [email protected] "async" | ||
32 | [email protected] " " | ||
33 | [email protected] | ||
34 | [email protected] "92" | ||
35 | [email protected] " " | ||
36 | [email protected] "}" | ||
37 | [email protected] "\n " | ||
38 | [email protected] | ||
39 | [email protected] | ||
40 | [email protected] "{" | ||
41 | [email protected] " " | ||
42 | [email protected] | ||
43 | [email protected] | ||
44 | [email protected] "try" | ||
45 | [email protected] " " | ||
46 | [email protected] | ||
47 | [email protected] "92" | ||
48 | [email protected] " " | ||
49 | [email protected] "}" | ||
50 | [email protected] "\n " | ||
51 | [email protected] | ||
52 | [email protected] "{" | ||
53 | [email protected] " " | ||
54 | [email protected] | ||
55 | [email protected] | ||
56 | [email protected] | ||
57 | [email protected] "\'label" | ||
58 | [email protected] ":" | ||
59 | [email protected] " " | ||
60 | [email protected] | ||
61 | [email protected] "92" | ||
62 | [email protected] " " | ||
63 | [email protected] "}" | ||
64 | [email protected] "\n" | ||
65 | [email protected] "}" | ||
66 | [email protected] "\n" | ||
67 | error 24..24: expected existential, fn, trait or impl | ||
68 | error 41..41: expected existential, fn, trait or impl | ||
69 | error 56..56: expected a block | ||
70 | error 75..75: expected a loop | ||
71 | error 75..75: expected SEMICOLON | ||
diff --git a/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs new file mode 100644 index 000000000..8fa324c1a --- /dev/null +++ b/crates/ra_syntax/test_data/parser/err/0163_weird_blocks.rs | |||
@@ -0,0 +1,6 @@ | |||
1 | fn main() { | ||
2 | { unsafe 92 } | ||
3 | { async 92 } | ||
4 | { try 92 } | ||
5 | { 'label: 92 } | ||
6 | } | ||
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 85bf276a0..75668c818 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 | |||
@@ -9,19 +9,18 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] "\n " |
14 | [email protected] "\n " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] |
16 | [email protected] | 16 | [email protected] |
17 | [email protected] | 17 | [email protected] "\'loop" |
18 | [email protected] "\'loop" | 18 | [email protected] ":" |
19 | [email protected] ":" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] |
21 | [email protected] | 21 | [email protected] "impl" |
22 | [email protected] "impl" | 22 | [email protected] "\n" |
23 | [email protected] "\n" | 23 | [email protected] "}" |
24 | [email protected] "}" | ||
25 | [email protected] "\n" | 24 | [email protected] "\n" |
26 | error 22..22: expected a loop | 25 | error 22..22: expected a loop |
27 | error 22..22: expected SEMICOLON | 26 | error 22..22: expected SEMICOLON |
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 b901c17f7..c789e8d82 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 | |||
@@ -8,9 +8,8 @@ [email protected] | |||
8 | [email protected] "(" | 8 | [email protected] "(" |
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] | 10 | [email protected] |
11 | [email protected] | 11 | [email protected] "{" |
12 | [email protected] "{" | 12 | [email protected] "}" |
13 | [email protected] "}" | ||
14 | [email protected] " " | 13 | [email protected] " " |
15 | [email protected] | 14 | [email protected] |
16 | [email protected] "unsafe" | 15 | [email protected] "unsafe" |
@@ -29,9 +28,8 @@ [email protected] | |||
29 | [email protected] "(" | 28 | [email protected] "(" |
30 | [email protected] ")" | 29 | [email protected] ")" |
31 | [email protected] | 30 | [email protected] |
32 | [email protected] | 31 | [email protected] "{" |
33 | [email protected] "{" | 32 | [email protected] "}" |
34 | [email protected] "}" | ||
35 | [email protected] "\n" | 33 | [email protected] "\n" |
36 | error 11..11: expected an item | 34 | error 11..11: expected an item |
37 | error 18..18: expected an item | 35 | 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 3f48b86ed..cd24313d4 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 | |||
@@ -9,24 +9,23 @@ [email protected] | |||
9 | [email protected] ")" | 9 | [email protected] ")" |
10 | [email protected] " " | 10 | [email protected] " " |
11 | [email protected] | 11 | [email protected] |
12 | [email protected] | 12 | [email protected] "{" |
13 | [email protected] "{" | 13 | [email protected] " " |
14 | [email protected] " " | 14 | [email protected] |
15 | [email protected] | 15 | [email protected] "let" |
16 | [email protected] "let" | 16 | [email protected] " " |
17 | [email protected] " " | 17 | [email protected] |
18 | [email protected] | 18 | [email protected] "_" |
19 | [email protected] "_" | 19 | [email protected] " " |
20 | [email protected] " " | 20 | [email protected] "=" |
21 | [email protected] "=" | 21 | [email protected] " " |
22 | [email protected] " " | 22 | [email protected] |
23 | [email protected] | 23 | [email protected] "async" |
24 | [email protected] "async" | 24 | [email protected] " " |
25 | [email protected] " " | 25 | [email protected] |
26 | [email protected] | 26 | [email protected] "{" |
27 | [email protected] "{" | 27 | [email protected] "}" |
28 | [email protected] "}" | 28 | [email protected] " " |
29 | [email protected] " " | 29 | [email protected] "}" |
30 | [email protected] "}" | ||
31 | [email protected] "\n" | 30 | [email protected] "\n" |
32 | error 27..27: expected SEMICOLON | 31 | 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 be02eaeeb..c5fa7a404 100644 --- a/crates/ra_syntax/test_data/parser/inline/er |