Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
bb252a88
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bb252a88
编写于
4月 01, 2015
作者:
A
Alex Crichton
浏览文件
操作
浏览文件
下载
差异文件
rollup merge of #23948: nikomatsakis/feature-gate-rust-abi
Like it says. r? @alexcrichton
上级
9bb05fd4
3d8df315
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
37 addition
and
7 deletion
+37
-7
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+9
-3
src/test/compile-fail/feature-gate-rust-call.rs
src/test/compile-fail/feature-gate-rust-call.rs
+21
-0
src/test/compile-fail/feature-gate-unboxed-closures-manual-impls.rs
...ompile-fail/feature-gate-unboxed-closures-manual-impls.rs
+4
-4
src/test/run-make/rustdoc-extern-method/bar.rs
src/test/run-make/rustdoc-extern-method/bar.rs
+2
-0
src/test/run-make/rustdoc-extern-method/foo.rs
src/test/run-make/rustdoc-extern-method/foo.rs
+1
-0
未找到文件。
src/libsyntax/feature_gate.rs
浏览文件 @
bb252a88
...
...
@@ -25,7 +25,7 @@
use
self
::
Status
::
*
;
use
self
::
AttributeType
::
*
;
use
abi
::
RustIntrinsic
;
use
abi
::
Abi
;
use
ast
::
NodeId
;
use
ast
;
use
attr
;
...
...
@@ -517,7 +517,7 @@ fn visit_item(&mut self, i: &ast::Item) {
across platforms, it is recommended to
\
use `#[link(name =
\"
foo
\"
)]` instead"
)
}
if
foreign_module
.abi
==
RustIntrinsic
{
if
foreign_module
.abi
==
Abi
::
RustIntrinsic
{
self
.gate_feature
(
"intrinsics"
,
i
.span
,
"intrinsics are subject to change"
)
...
...
@@ -633,11 +633,17 @@ fn visit_fn(&mut self,
span
:
Span
,
_
node_id
:
NodeId
)
{
match
fn_kind
{
visit
::
FkItemFn
(
_
,
_
,
_
,
abi
)
if
abi
==
RustIntrinsic
=>
{
visit
::
FkItemFn
(
_
,
_
,
_
,
abi
)
if
abi
==
Abi
::
RustIntrinsic
=>
{
self
.gate_feature
(
"intrinsics"
,
span
,
"intrinsics are subject to change"
)
}
visit
::
FkItemFn
(
_
,
_
,
_
,
abi
)
|
visit
::
FkMethod
(
_
,
&
ast
::
MethodSig
{
abi
,
..
})
if
abi
==
Abi
::
RustCall
=>
{
self
.gate_feature
(
"unboxed_closures"
,
span
,
"rust-call ABI is subject to change"
)
}
_
=>
{}
}
visit
::
walk_fn
(
self
,
fn_kind
,
fn_decl
,
block
,
span
);
...
...
src/test/compile-fail/feature-gate-rust-call.rs
0 → 100644
浏览文件 @
bb252a88
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern
"rust-call"
fn
foo
()
{
}
//~ ERROR rust-call ABI is subject to change
trait
Foo
{
extern
"rust-call"
fn
foo
();
}
impl
Foo
for
i32
{
extern
"rust-call"
fn
foo
()
{
}
//~ ERROR rust-call ABI is subject to change
}
fn
main
()
{
}
src/test/compile-fail/feature-gate-unboxed-closures-manual-impls.rs
浏览文件 @
bb252a88
...
...
@@ -17,23 +17,23 @@
struct
Foo
;
impl
Fn
<
()
>
for
Foo
{
//~^ ERROR angle-bracket notation is not stable when used with the `Fn` family of traits
extern
"rust-call"
fn
call
(
self
,
args
:
())
->
()
{}
//~^ ERROR rust-call ABI is subject to change
}
struct
Foo1
;
impl
FnOnce
()
for
Foo1
{
//~^ ERROR associated type bindings are not allowed here
extern
"rust-call"
fn
call_once
(
self
,
args
:
())
->
()
{}
//~^ ERROR rust-call ABI is subject to change
}
struct
Bar
;
impl
FnMut
<
()
>
for
Bar
{
//~^ ERROR angle-bracket notation is not stable when used with the `Fn` family of traits
extern
"rust-call"
fn
call_mut
(
&
self
,
args
:
())
->
()
{}
//~^ ERROR rust-call ABI is subject to change
}
struct
Baz
;
impl
FnOnce
<
()
>
for
Baz
{
//~^ ERROR angle-bracket notation is not stable when used with the `Fn` family of traits
extern
"rust-call"
fn
call_once
(
&
self
,
args
:
())
->
()
{}
//~^ ERROR rust-call ABI is subject to change
}
fn
main
()
{}
src/test/run-make/rustdoc-extern-method/bar.rs
浏览文件 @
bb252a88
...
...
@@ -8,6 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(unboxed_closures)]
extern
crate
foo
;
// @has bar/trait.Foo.html //pre "pub trait Foo"
...
...
src/test/run-make/rustdoc-extern-method/foo.rs
浏览文件 @
bb252a88
...
...
@@ -9,6 +9,7 @@
// except according to those terms.
#![crate_type=
"lib"
]
#![feature(unboxed_closures)]
pub
trait
Foo
{
extern
"rust-call"
fn
foo
(
&
self
,
_
:
())
->
i32
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录