From 51b955ec8a9cdeef05defe0c0de6313e1bc32bf8 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 31 Aug 2021 14:54:22 +0300 Subject: [PATCH 1/2] internal: simplify --- crates/hir_expand/src/lib.rs | 40 +++++++++--------------------------- 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs index 512cafe69d3..f982679b640 100644 --- a/crates/hir_expand/src/lib.rs +++ b/crates/hir_expand/src/lib.rs @@ -666,42 +666,22 @@ pub fn to_fragment_kind(call: &ast::MacroCall) -> FragmentKind { }; match parent.kind() { - MACRO_ITEMS | SOURCE_FILE => FragmentKind::Items, - MACRO_STMTS => FragmentKind::Statements, + MACRO_ITEMS | SOURCE_FILE | ITEM_LIST => FragmentKind::Items, + MACRO_STMTS | EXPR_STMT | BLOCK_EXPR => FragmentKind::Statements, MACRO_PAT => FragmentKind::Pattern, MACRO_TYPE => FragmentKind::Type, - ITEM_LIST => FragmentKind::Items, + + ARG_LIST | TRY_EXPR | TUPLE_EXPR | PAREN_EXPR | ARRAY_EXPR | FOR_EXPR | PATH_EXPR + | CLOSURE_EXPR | CONDITION | BREAK_EXPR | RETURN_EXPR | MATCH_EXPR | MATCH_ARM + | MATCH_GUARD | RECORD_EXPR_FIELD | CALL_EXPR | INDEX_EXPR | METHOD_CALL_EXPR + | FIELD_EXPR | AWAIT_EXPR | CAST_EXPR | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR => { + FragmentKind::Expr + } LET_STMT => { // FIXME: Handle LHS Pattern FragmentKind::Expr } - EXPR_STMT => FragmentKind::Statements, - BLOCK_EXPR => FragmentKind::Statements, - ARG_LIST => FragmentKind::Expr, - TRY_EXPR => FragmentKind::Expr, - TUPLE_EXPR => FragmentKind::Expr, - PAREN_EXPR => FragmentKind::Expr, - ARRAY_EXPR => FragmentKind::Expr, - FOR_EXPR => FragmentKind::Expr, - PATH_EXPR => FragmentKind::Expr, - CLOSURE_EXPR => FragmentKind::Expr, - CONDITION => FragmentKind::Expr, - BREAK_EXPR => FragmentKind::Expr, - RETURN_EXPR => FragmentKind::Expr, - MATCH_EXPR => FragmentKind::Expr, - MATCH_ARM => FragmentKind::Expr, - MATCH_GUARD => FragmentKind::Expr, - RECORD_EXPR_FIELD => FragmentKind::Expr, - CALL_EXPR => FragmentKind::Expr, - INDEX_EXPR => FragmentKind::Expr, - METHOD_CALL_EXPR => FragmentKind::Expr, - FIELD_EXPR => FragmentKind::Expr, - AWAIT_EXPR => FragmentKind::Expr, - CAST_EXPR => FragmentKind::Expr, - REF_EXPR => FragmentKind::Expr, - PREFIX_EXPR => FragmentKind::Expr, - RANGE_EXPR => FragmentKind::Expr, - BIN_EXPR => FragmentKind::Expr, + _ => { // Unknown , Just guess it is `Items` FragmentKind::Items From f1222e80850dca050e4f9a150514aeab9b27ac08 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 31 Aug 2021 15:26:59 +0300 Subject: [PATCH 2/2] minor: dead code --- crates/tt/src/lib.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/crates/tt/src/lib.rs b/crates/tt/src/lib.rs index b51ad5d0fb7..b2841370ec5 100644 --- a/crates/tt/src/lib.rs +++ b/crates/tt/src/lib.rs @@ -277,8 +277,6 @@ pub mod buffer; #[derive(Debug, PartialEq, Eq, Clone)] pub enum ExpansionError { - IOError(String), - JsonError(String), Unknown(String), ExpansionError(String), } @@ -286,8 +284,6 @@ pub enum ExpansionError { impl fmt::Display for ExpansionError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { - ExpansionError::IOError(e) => write!(f, "I/O error: {}", e), - ExpansionError::JsonError(e) => write!(f, "JSON decoding error: {}", e), ExpansionError::Unknown(e) => e.fmt(f), ExpansionError::ExpansionError(e) => write!(f, "proc macro returned error: {}", e), }