|
25 | 25 | use self::Status::*;
|
26 | 26 | use self::AttributeType::*;
|
27 | 27 |
|
28 |
| -use abi::RustIntrinsic; |
| 28 | +use abi::Abi; |
29 | 29 | use ast::NodeId;
|
30 | 30 | use ast;
|
31 | 31 | use attr;
|
@@ -517,7 +517,7 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> {
|
517 | 517 | across platforms, it is recommended to \
|
518 | 518 | use `#[link(name = \"foo\")]` instead")
|
519 | 519 | }
|
520 |
| - if foreign_module.abi == RustIntrinsic { |
| 520 | + if foreign_module.abi == Abi::RustIntrinsic { |
521 | 521 | self.gate_feature("intrinsics",
|
522 | 522 | i.span,
|
523 | 523 | "intrinsics are subject to change")
|
@@ -633,11 +633,17 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> {
|
633 | 633 | span: Span,
|
634 | 634 | _node_id: NodeId) {
|
635 | 635 | match fn_kind {
|
636 |
| - visit::FkItemFn(_, _, _, abi) if abi == RustIntrinsic => { |
| 636 | + visit::FkItemFn(_, _, _, abi) if abi == Abi::RustIntrinsic => { |
637 | 637 | self.gate_feature("intrinsics",
|
638 | 638 | span,
|
639 | 639 | "intrinsics are subject to change")
|
640 | 640 | }
|
| 641 | + visit::FkItemFn(_, _, _, abi) | |
| 642 | + visit::FkMethod(_, &ast::MethodSig { abi, .. }) if abi == Abi::RustCall => { |
| 643 | + self.gate_feature("unboxed_closures", |
| 644 | + span, |
| 645 | + "rust-call ABI is subject to change") |
| 646 | + } |
641 | 647 | _ => {}
|
642 | 648 | }
|
643 | 649 | visit::walk_fn(self, fn_kind, fn_decl, block, span);
|
|
0 commit comments