Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_expand/src/builtin_macro.rs')
-rw-r--r--crates/hir_expand/src/builtin_macro.rs29
1 files changed, 11 insertions, 18 deletions
diff --git a/crates/hir_expand/src/builtin_macro.rs b/crates/hir_expand/src/builtin_macro.rs
index 9293b45064..297497ac1b 100644
--- a/crates/hir_expand/src/builtin_macro.rs
+++ b/crates/hir_expand/src/builtin_macro.rs
@@ -1,7 +1,7 @@
//! Builtin macro
use crate::{
db::AstDatabase, name, quote, AstId, CrateId, MacroCallId, MacroCallLoc, MacroDefId,
- MacroDefKind, TextSize,
+ MacroDefKind,
};
use base_db::{AnchoredPath, Edition, FileId};
@@ -148,25 +148,14 @@ fn line_expand(
}
fn stringify_expand(
- db: &dyn AstDatabase,
- id: MacroCallId,
- _tt: &tt::Subtree,
+ _db: &dyn AstDatabase,
+ _id: MacroCallId,
+ tt: &tt::Subtree,
) -> ExpandResult<tt::Subtree> {
- let loc = db.lookup_intern_macro(id);
-
- let macro_content = {
- let arg = match loc.kind.arg(db) {
- Some(arg) => arg,
- None => return ExpandResult::only_err(mbe::ExpandError::UnexpectedToken),
- };
- let macro_args = arg;
- let text = macro_args.text();
- let without_parens = TextSize::of('(')..text.len() - TextSize::of(')');
- text.slice(without_parens).to_string()
- };
+ let pretty = tt::pretty(&tt.token_trees);
let expanded = quote! {
- #macro_content
+ #pretty
};
ExpandResult::ok(expanded)
@@ -685,7 +674,11 @@ mod tests {
r#"
#[rustc_builtin_macro]
macro_rules! stringify {() => {}}
- stringify!(a b c)
+ stringify!(
+ a
+ b
+ c
+ )
"#,
expect![["\"a b c\""]],
);