about summary refs log tree commit diff
path: root/src/rustc/syntax
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2012-03-21 15:42:20 +0100
committerMarijn Haverbeke <marijnh@gmail.com>2012-03-23 10:49:47 +0100
commitea2e379e4f0e53e5c7434ab7581989b101907ac5 (patch)
tree918c6a3b1776d4a3de73f16d7340a3d9008481a7 /src/rustc/syntax
parent73a0c17d77afecbf6d10b4c91531759e280e169f (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.rs4
-rw-r--r--src/rustc/syntax/ast_util.rs3
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) }
         }
     }