]> git.lizzy.rs Git - rust.git/commitdiff
Revert "Strip delimiter from fn-like proc macro input"
authorJonas Schievink <jonasschievink@gmail.com>
Tue, 11 May 2021 22:57:41 +0000 (00:57 +0200)
committerJonas Schievink <jonasschievink@gmail.com>
Tue, 11 May 2021 22:57:41 +0000 (00:57 +0200)
This reverts commit bda68e23328ca62a71da348a13c4d13cc8f991f3.

crates/hir_expand/src/input.rs
crates/hir_expand/src/lib.rs

index 860aa049ba0b531858ae7c4d8b4ada07be2fedcd..112216859cf23f3a771191ba9835f864a484b913 100644 (file)
@@ -1,9 +1,8 @@
 //! Macro input conditioning.
 
-use parser::SyntaxKind;
 use syntax::{
     ast::{self, AttrsOwner},
-    AstNode, SyntaxElement, SyntaxNode,
+    AstNode, SyntaxNode,
 };
 
 use crate::{
@@ -20,33 +19,7 @@ pub(crate) fn process_macro_input(
     let loc: MacroCallLoc = db.lookup_intern_macro(id);
 
     match loc.kind {
-        MacroCallKind::FnLike { .. } => {
-            if !loc.def.is_proc_macro() {
-                // MBE macros expect the parentheses as part of their input.
-                return node;
-            }
-
-            // The input includes the `(` + `)` delimiter tokens, so remove them before passing this
-            // to the macro.
-            let node = node.clone_for_update();
-            if let Some(SyntaxElement::Token(tkn)) = node.first_child_or_token() {
-                if matches!(
-                    tkn.kind(),
-                    SyntaxKind::L_BRACK | SyntaxKind::L_PAREN | SyntaxKind::L_CURLY
-                ) {
-                    tkn.detach();
-                }
-            }
-            if let Some(SyntaxElement::Token(tkn)) = node.last_child_or_token() {
-                if matches!(
-                    tkn.kind(),
-                    SyntaxKind::R_BRACK | SyntaxKind::R_PAREN | SyntaxKind::R_CURLY
-                ) {
-                    tkn.detach();
-                }
-            }
-            node
-        }
+        MacroCallKind::FnLike { .. } => node,
         MacroCallKind::Derive { derive_attr_index, .. } => {
             let item = match ast::Item::cast(node.clone()) {
                 Some(item) => item,
index 88cb16ca4d13fe36a4a4e211e1f5d77b86b59d09..5df11856e90c366059826f05396b23c8de561ef5 100644 (file)
@@ -272,10 +272,6 @@ pub fn ast_id(&self) -> Either<AstId<ast::Macro>, AstId<ast::Fn>> {
         };
         Either::Left(*id)
     }
-
-    pub fn is_proc_macro(&self) -> bool {
-        matches!(self.kind, MacroDefKind::ProcMacro(..))
-    }
 }
 
 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]