diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-03-13 22:25:28 -0400 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-03-29 18:36:20 -0700 |
| commit | 6965fe4bceea836586bd8e7aa01a92a35b467f78 (patch) | |
| tree | d95089f050cd67db2a5171a799763faa09f5b0a8 /src/libsyntax/ext | |
| parent | f864934f548be9f03d2c0512de8d7e908469e2ae (diff) | |
| download | rust-6965fe4bceea836586bd8e7aa01a92a35b467f78.tar.gz rust-6965fe4bceea836586bd8e7aa01a92a35b467f78.zip | |
Add AbiSet and integrate it into the AST.
I believe this patch incorporates all expected syntax changes from extern
function reform (#3678). You can now write things like:
extern "<abi>" fn foo(s: S) -> T { ... }
extern "<abi>" mod { ... }
extern "<abi>" fn(S) -> T
The ABI for foreign functions is taken from this syntax (rather than from an
annotation). We support the full ABI specification I described on the mailing
list. The correct ABI is chosen based on the target architecture.
Calls by pointer to C functions are not yet supported, and the Rust type of
crust fns is still *u8.
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/pipes/ast_builder.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax/ext/pipes/ast_builder.rs b/src/libsyntax/ext/pipes/ast_builder.rs index 075474a2a0d..72e6c22dbc8 100644 --- a/src/libsyntax/ext/pipes/ast_builder.rs +++ b/src/libsyntax/ext/pipes/ast_builder.rs @@ -15,7 +15,8 @@ use core::prelude::*; -use ast::ident; +use abi::AbiSet; +use ast::{ident, node_id}; use ast; use ast_util; use codemap::{span, respan, dummy_sp, spanned}; @@ -272,6 +273,7 @@ impl ext_ctxt_ast_builder for @ext_ctxt { dummy_sp(), ast::item_fn(self.fn_decl(inputs, output), ast::impure_fn, + AbiSet::Rust(), generics, body)) } |
