diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-14 21:17:34 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-19 10:02:52 -0800 |
| commit | e95f21f7be609b6ba82729268bc08ac6b9ad3076 (patch) | |
| tree | 51ff7c6a399cf26eaf49d46c91cb59e908c44dd1 /src/libsyntax | |
| parent | de5fdaf9349445a98eee0f55d8816b0b6873f5a4 (diff) | |
| download | rust-e95f21f7be609b6ba82729268bc08ac6b9ad3076.tar.gz rust-e95f21f7be609b6ba82729268bc08ac6b9ad3076.zip | |
convert SyntaxExtensions's key to a @~str
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 52 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 10 |
2 files changed, 31 insertions, 31 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index a74acfe397d..fc55fd84a87 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -75,7 +75,7 @@ pub enum SyntaxExtension { ItemTT(SyntaxExpanderTTItem), } -type SyntaxExtensions = HashMap<~str, SyntaxExtension>; +type SyntaxExtensions = HashMap<@~str, SyntaxExtension>; // A temporary hard-coded map of methods for expanding syntax extension // AST nodes into full ASTs @@ -89,74 +89,74 @@ pub fn syntax_expander_table() -> SyntaxExtensions { ItemTT(SyntaxExpanderTTItem{expander: f, span: None}) } let syntax_expanders = HashMap(); - syntax_expanders.insert(~"macro_rules", + syntax_expanders.insert(@~"macro_rules", builtin_item_tt( ext::tt::macro_rules::add_new_extension)); - syntax_expanders.insert(~"fmt", + syntax_expanders.insert(@~"fmt", builtin_normal_tt(ext::fmt::expand_syntax_ext)); syntax_expanders.insert( - ~"auto_encode", + @~"auto_encode", ItemDecorator(ext::auto_encode::expand_auto_encode)); syntax_expanders.insert( - ~"auto_decode", + @~"auto_decode", ItemDecorator(ext::auto_encode::expand_auto_decode)); - syntax_expanders.insert(~"env", + syntax_expanders.insert(@~"env", builtin_normal_tt(ext::env::expand_syntax_ext)); - syntax_expanders.insert(~"concat_idents", + syntax_expanders.insert(@~"concat_idents", builtin_normal_tt( ext::concat_idents::expand_syntax_ext)); - syntax_expanders.insert(~"log_syntax", + syntax_expanders.insert(@~"log_syntax", builtin_normal_tt( ext::log_syntax::expand_syntax_ext)); - syntax_expanders.insert(~"deriving_eq", + syntax_expanders.insert(@~"deriving_eq", ItemDecorator( ext::deriving::expand_deriving_eq)); - syntax_expanders.insert(~"deriving_iter_bytes", + syntax_expanders.insert(@~"deriving_iter_bytes", ItemDecorator( ext::deriving::expand_deriving_iter_bytes)); // Quasi-quoting expanders - syntax_expanders.insert(~"quote_tokens", + syntax_expanders.insert(@~"quote_tokens", builtin_normal_tt(ext::quote::expand_quote_tokens)); - syntax_expanders.insert(~"quote_expr", + syntax_expanders.insert(@~"quote_expr", builtin_normal_tt(ext::quote::expand_quote_expr)); - syntax_expanders.insert(~"quote_ty", + syntax_expanders.insert(@~"quote_ty", builtin_normal_tt(ext::quote::expand_quote_ty)); - syntax_expanders.insert(~"quote_item", + syntax_expanders.insert(@~"quote_item", builtin_normal_tt(ext::quote::expand_quote_item)); - syntax_expanders.insert(~"quote_pat", + syntax_expanders.insert(@~"quote_pat", builtin_normal_tt(ext::quote::expand_quote_pat)); - syntax_expanders.insert(~"quote_stmt", + syntax_expanders.insert(@~"quote_stmt", builtin_normal_tt(ext::quote::expand_quote_stmt)); - syntax_expanders.insert(~"line", + syntax_expanders.insert(@~"line", builtin_normal_tt( ext::source_util::expand_line)); - syntax_expanders.insert(~"col", + syntax_expanders.insert(@~"col", builtin_normal_tt( ext::source_util::expand_col)); - syntax_expanders.insert(~"file", + syntax_expanders.insert(@~"file", builtin_normal_tt( ext::source_util::expand_file)); - syntax_expanders.insert(~"stringify", + syntax_expanders.insert(@~"stringify", builtin_normal_tt( ext::source_util::expand_stringify)); - syntax_expanders.insert(~"include", + syntax_expanders.insert(@~"include", builtin_normal_tt( ext::source_util::expand_include)); - syntax_expanders.insert(~"include_str", + syntax_expanders.insert(@~"include_str", builtin_normal_tt( ext::source_util::expand_include_str)); - syntax_expanders.insert(~"include_bin", + syntax_expanders.insert(@~"include_bin", builtin_normal_tt( ext::source_util::expand_include_bin)); - syntax_expanders.insert(~"module_path", + syntax_expanders.insert(@~"module_path", builtin_normal_tt( ext::source_util::expand_mod)); - syntax_expanders.insert(~"proto", + syntax_expanders.insert(@~"proto", builtin_item_tt(ext::pipes::expand_proto)); syntax_expanders.insert( - ~"trace_macros", + @~"trace_macros", builtin_normal_tt(ext::trace_macros::expand_trace_macros)); return syntax_expanders; } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 3cecf857c91..f9a0de6535b 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -41,7 +41,7 @@ pub fn expand_expr(exts: SyntaxExtensions, cx: ext_ctxt, /* using idents and token::special_idents would make the the macro names be hygienic */ let extname = cx.parse_sess().interner.get(pth.idents[0]); - match exts.find(extname) { + match exts.find(&extname) { None => { cx.span_fatal(pth.span, fmt!("macro undefined: '%s'", *extname)) @@ -102,7 +102,7 @@ pub fn expand_mod_items(exts: SyntaxExtensions, cx: ext_ctxt, do vec::foldr(item.attrs, ~[*item]) |attr, items| { let mname = attr::get_attr_name(attr); - match exts.find(&*mname) { + match exts.find(&mname) { None | Some(NormalTT(_)) | Some(ItemTT(*)) => items, Some(ItemDecorator(dec_fn)) => { cx.bt_push(ExpandedFrom({call_site: attr.span, @@ -159,7 +159,7 @@ pub fn expand_item_mac(exts: SyntaxExtensions, }; let extname = cx.parse_sess().interner.get(pth.idents[0]); - let expanded = match exts.find(extname) { + let expanded = match exts.find(&extname) { None => cx.span_fatal(pth.span, fmt!("macro undefined: '%s!'", *extname)), @@ -198,7 +198,7 @@ pub fn expand_item_mac(exts: SyntaxExtensions, MRAny(_, item_maker, _) => option::chain(item_maker(), |i| {fld.fold_item(i)}), MRDef(ref mdef) => { - exts.insert((*mdef).name, (*mdef).ext); + exts.insert(@/*bad*/ copy mdef.name, (*mdef).ext); None } }; @@ -222,7 +222,7 @@ pub fn expand_stmt(exts: SyntaxExtensions, cx: ext_ctxt, assert(vec::len(pth.idents) == 1u); let extname = cx.parse_sess().interner.get(pth.idents[0]); - let (fully_expanded, sp) = match exts.find(extname) { + let (fully_expanded, sp) = match exts.find(&extname) { None => cx.span_fatal(pth.span, fmt!("macro undefined: '%s'", *extname)), |
