From 6965fe4bceea836586bd8e7aa01a92a35b467f78 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Wed, 13 Mar 2013 22:25:28 -0400 Subject: 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 "" fn foo(s: S) -> T { ... } extern "" mod { ... } extern "" 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. --- src/libsyntax/ext/pipes/ast_builder.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libsyntax/ext') 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)) } -- cgit 1.4.1-3-g733a5