diff options
| author | Marijn Haverbeke <marijnh@gmail.com> | 2012-03-21 15:42:20 +0100 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-03-23 10:49:47 +0100 |
| commit | ea2e379e4f0e53e5c7434ab7581989b101907ac5 (patch) | |
| tree | 918c6a3b1776d4a3de73f16d7340a3d9008481a7 /src/rustc/syntax | |
| parent | 73a0c17d77afecbf6d10b4c91531759e280e169f (diff) | |
Implement built-in native modules as an alternative to intrinsics
Issue #1981
Diffstat (limited to 'src/rustc/syntax')
| -rw-r--r-- | src/rustc/syntax/ast.rs | 4 | ||||
| -rw-r--r-- | src/rustc/syntax/ast_util.rs | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/rustc/syntax/ast.rs b/src/rustc/syntax/ast.rs index 93f60519114..0776ec3dfbd 100644 --- a/src/rustc/syntax/ast.rs +++ b/src/rustc/syntax/ast.rs @@ -557,6 +557,7 @@ type _mod = {view_items: [@view_item], items: [@item]}; #[auto_serialize] enum native_abi { native_abi_rust_intrinsic, + native_abi_rust_builtin, native_abi_cdecl, native_abi_stdcall, } @@ -702,7 +703,8 @@ enum native_item_ { #[auto_serialize] enum inlined_item { ii_item(@item), - ii_method(def_id /* impl id */, @method) + ii_method(def_id /* impl id */, @method), + ii_native(@native_item), } // diff --git a/src/rustc/syntax/ast_util.rs b/src/rustc/syntax/ast_util.rs index 0fbc723ed8d..57dbfacbfbb 100644 --- a/src/rustc/syntax/ast_util.rs +++ b/src/rustc/syntax/ast_util.rs @@ -454,6 +454,7 @@ impl inlined_item_methods for inlined_item { fn ident() -> ident { alt self { ii_item(i) { i.ident } + ii_native(i) { i.ident } ii_method(_, m) { m.ident } } } @@ -461,6 +462,7 @@ impl inlined_item_methods for inlined_item { fn id() -> ast::node_id { alt self { ii_item(i) { i.id } + ii_native(i) { i.id } ii_method(_, m) { m.id } } } @@ -468,6 +470,7 @@ impl inlined_item_methods for inlined_item { fn accept<E>(e: E, v: visit::vt<E>) { alt self { ii_item(i) { v.visit_item(i, e, v) } + ii_native(i) { v.visit_native_item(i, e, v) } ii_method(_, m) { visit::visit_method_helper(m, e, v) } } } |
