diff options
Diffstat (limited to 'gcc/rust/expand/rust-macro-builtins.cc')
-rw-r--r-- | gcc/rust/expand/rust-macro-builtins.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins.cc b/gcc/rust/expand/rust-macro-builtins.cc index 8104c57..a4e9854 100644 --- a/gcc/rust/expand/rust-macro-builtins.cc +++ b/gcc/rust/expand/rust-macro-builtins.cc @@ -105,6 +105,22 @@ std::unordered_map< {"test_case", MacroBuiltin::sorry}, {"global_allocator", MacroBuiltin::sorry}, {"cfg_accessible", MacroBuiltin::sorry}, + /* Derive builtins do not need a real transcriber, but still need one. It + will however never be called since builtin derive macros get expanded + differently, and benefit from knowing on what kind of items they are + applied (struct, enums, unions) rather than receiving a list of tokens + like regular builtin macros */ + {"RustcEncodable", MacroBuiltin::proc_macro_builtin}, + {"RustcDecodable", MacroBuiltin::proc_macro_builtin}, + {"Clone", MacroBuiltin::proc_macro_builtin}, + {"Copy", MacroBuiltin::proc_macro_builtin}, + {"Debug", MacroBuiltin::proc_macro_builtin}, + {"Default", MacroBuiltin::proc_macro_builtin}, + {"Eq", MacroBuiltin::proc_macro_builtin}, + {"PartialEq", MacroBuiltin::proc_macro_builtin}, + {"Ord", MacroBuiltin::proc_macro_builtin}, + {"PartialOrd", MacroBuiltin::proc_macro_builtin}, + {"Hash", MacroBuiltin::proc_macro_builtin}, }; // FIXME: This should return an Optional @@ -932,4 +948,11 @@ MacroBuiltin::sorry (Location invoc_locus, AST::MacroInvocData &invoc) return AST::Fragment::create_error (); } +AST::Fragment +MacroBuiltin::proc_macro_builtin (Location, AST::MacroInvocData &) +{ + // nothing to do! + return AST::Fragment::create_error (); +} + } // namespace Rust |