提交 6943b38e 编写于 作者: B Brian Anderson

rustc: Add crust functions to the AST

上级 acabd821
......@@ -312,7 +312,12 @@ fn encode_info_for_mod(ecx: @encode_ctxt, ebml_w: ebml::writer, md: _mod,
}
fn purity_fn_family(p: purity) -> char {
alt p { unsafe_fn { 'u' } pure_fn { 'p' } impure_fn { 'f' } }
alt p {
unsafe_fn { 'u' }
pure_fn { 'p' }
impure_fn { 'f' }
crust_fn { 'c' }
}
}
fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
......
......@@ -1535,7 +1535,7 @@ fn require_unsafe(sess: session, f_purity: ast::purity, sp: span) {
fn require_impure(sess: session, f_purity: ast::purity, sp: span) {
alt f_purity {
ast::unsafe_fn { ret; }
ast::impure_fn { ret; }
ast::impure_fn | ast::crust_fn { ret; }
ast::pure_fn {
sess.span_err(sp, "Found impure expression in pure function decl");
}
......@@ -1568,7 +1568,7 @@ fn require_pure_call(ccx: @crate_ctxt, caller_purity: ast::purity,
}
};
alt (caller_purity, callee_purity) {
(ast::impure_fn, ast::unsafe_fn) {
(ast::impure_fn, ast::unsafe_fn) | (ast::crust_fn, ast::unsafe_fn) {
ccx.tcx.sess.span_err(sp, "safe function calls function marked \
unsafe");
}
......
......@@ -407,6 +407,7 @@ enum purity {
pure_fn, // declared with "pure fn"
unsafe_fn, // declared with "unsafe fn"
impure_fn, // declared with "fn"
crust_fn, // declared with "crust fn"
}
enum ret_style {
......
......@@ -1199,6 +1199,7 @@ fn print_fn(s: ps, decl: ast::fn_decl, name: ast::ident,
ast::impure_fn { head(s, "fn"); }
ast::unsafe_fn { head(s, "unsafe fn"); }
ast::pure_fn { head(s, "pure fn"); }
ast::crust_fn { head(s, "crust fn"); }
}
word(s.s, name);
print_type_params(s, typarams);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册