Revert "Strip delimiter from fn-like proc macro input"

This reverts commit bda68e23328ca62a71da348a13c4d13cc8f991f3.
This commit is contained in:
Jonas Schievink 2021-05-12 00:57:41 +02:00
parent c6e2ba43bb
commit c868414dcd
2 changed files with 2 additions and 33 deletions

View File

@ -1,9 +1,8 @@
//! Macro input conditioning. //! Macro input conditioning.
use parser::SyntaxKind;
use syntax::{ use syntax::{
ast::{self, AttrsOwner}, ast::{self, AttrsOwner},
AstNode, SyntaxElement, SyntaxNode, AstNode, SyntaxNode,
}; };
use crate::{ use crate::{
@ -20,33 +19,7 @@ pub(crate) fn process_macro_input(
let loc: MacroCallLoc = db.lookup_intern_macro(id); let loc: MacroCallLoc = db.lookup_intern_macro(id);
match loc.kind { match loc.kind {
MacroCallKind::FnLike { .. } => { MacroCallKind::FnLike { .. } => node,
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::Derive { derive_attr_index, .. } => { MacroCallKind::Derive { derive_attr_index, .. } => {
let item = match ast::Item::cast(node.clone()) { let item = match ast::Item::cast(node.clone()) {
Some(item) => item, Some(item) => item,

View File

@ -272,10 +272,6 @@ impl MacroDefId {
}; };
Either::Left(*id) Either::Left(*id)
} }
pub fn is_proc_macro(&self) -> bool {
matches!(self.kind, MacroDefKind::ProcMacro(..))
}
} }
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]