Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-expand/src/builtin/fn_macro.rs')
-rw-r--r--crates/hir-expand/src/builtin/fn_macro.rs42
1 files changed, 8 insertions, 34 deletions
diff --git a/crates/hir-expand/src/builtin/fn_macro.rs b/crates/hir-expand/src/builtin/fn_macro.rs
index 795d9b14df..d04225b872 100644
--- a/crates/hir-expand/src/builtin/fn_macro.rs
+++ b/crates/hir-expand/src/builtin/fn_macro.rs
@@ -119,9 +119,8 @@ register_builtin! {
(module_path, ModulePath) => module_path_expand,
(assert, Assert) => assert_expand,
(stringify, Stringify) => stringify_expand,
- (llvm_asm, LlvmAsm) => asm_expand,
(asm, Asm) => asm_expand,
- (global_asm, GlobalAsm) => global_asm_expand,
+ (global_asm, GlobalAsm) => asm_expand,
(cfg, Cfg) => cfg_expand,
(core_panic, CorePanic) => panic_expand,
(std_panic, StdPanic) => panic_expand,
@@ -324,40 +323,15 @@ fn asm_expand(
tt: &tt::Subtree,
span: Span,
) -> ExpandResult<tt::Subtree> {
- // We expand all assembly snippets to `format_args!` invocations to get format syntax
- // highlighting for them.
- let mut literals = Vec::new();
- for tt in tt.token_trees.chunks(2) {
- match tt {
- [tt::TokenTree::Leaf(tt::Leaf::Literal(lit))]
- | [tt::TokenTree::Leaf(tt::Leaf::Literal(lit)), tt::TokenTree::Leaf(tt::Leaf::Punct(tt::Punct { char: ',', span: _, spacing: _ }))] =>
- {
- let dollar_krate = dollar_crate(span);
- literals.push(quote!(span=>#dollar_krate::format_args!(#lit);));
- }
- _ => break,
- }
- }
-
+ let mut tt = tt.clone();
+ tt.delimiter.kind = tt::DelimiterKind::Parenthesis;
let pound = mk_pound(span);
let expanded = quote! {span =>
- builtin #pound asm (
- {##literals}
- )
+ builtin #pound asm #tt
};
ExpandResult::ok(expanded)
}
-fn global_asm_expand(
- _db: &dyn ExpandDatabase,
- _id: MacroCallId,
- _tt: &tt::Subtree,
- span: Span,
-) -> ExpandResult<tt::Subtree> {
- // Expand to nothing (at item-level)
- ExpandResult::ok(quote! {span =>})
-}
-
fn cfg_expand(
db: &dyn ExpandDatabase,
id: MacroCallId,
@@ -509,7 +483,7 @@ fn concat_expand(
match it.kind {
tt::LitKind::Char => {
if let Ok(c) = unescape_char(it.symbol.as_str()) {
- text.extend(c.escape_default());
+ text.push(c);
}
record_span(it.span);
}
@@ -517,11 +491,11 @@ fn concat_expand(
format_to!(text, "{}", it.symbol.as_str())
}
tt::LitKind::Str => {
- text.push_str(it.symbol.as_str());
+ text.push_str(unescape_str(&it.symbol).as_str());
record_span(it.span);
}
tt::LitKind::StrRaw(_) => {
- format_to!(text, "{}", it.symbol.as_str().escape_debug());
+ format_to!(text, "{}", it.symbol.as_str());
record_span(it.span);
}
tt::LitKind::Byte
@@ -839,7 +813,7 @@ fn include_str_expand(
fn get_env_inner(db: &dyn ExpandDatabase, arg_id: MacroCallId, key: &Symbol) -> Option<String> {
let krate = db.lookup_intern_macro_call(arg_id).krate;
- db.crate_graph()[krate].env.get(key.as_str()).map(|it| it.escape_debug().to_string())
+ db.crate_graph()[krate].env.get(key.as_str())
}
fn env_expand(