Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
aef07cd9
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,发现更多精彩内容 >>
提交
aef07cd9
编写于
3月 02, 2017
作者:
C
Corey Farwell
提交者:
GitHub
3月 02, 2017
浏览文件
操作
浏览文件
下载
差异文件
Rollup merge of #40110 - benschreiber:nostackcheck, r=brson
Made no_stack_check a stable_removed attribute r? @brson
上级
4ab162fb
9c5e4afb
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
35 addition
and
7 deletion
+35
-7
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+19
-7
src/test/compile-fail/deprecated_no_stack_check.rs
src/test/compile-fail/deprecated_no_stack_check.rs
+16
-0
未找到文件。
src/libsyntax/feature_gate.rs
浏览文件 @
aef07cd9
...
...
@@ -77,12 +77,19 @@ pub fn new() -> Features {
};
(
$
((
removed
,
$feature
:
ident
,
$ver
:
expr
,
$issue
:
expr
),)
+
)
=>
{
/// Represents
features which has
since been removed (it was once Active)
/// Represents
unstable features which have
since been removed (it was once Active)
const
REMOVED_FEATURES
:
&
'static
[(
&
'static
str
,
&
'static
str
,
Option
<
u32
>
)]
=
&
[
$
((
stringify!
(
$feature
),
$ver
,
$issue
)),
+
];
};
(
$
((
stable_removed
,
$feature
:
ident
,
$ver
:
expr
,
$issue
:
expr
),)
+
)
=>
{
/// Represents stable features which have since been removed (it was once Accepted)
const
STABLE_REMOVED_FEATURES
:
&
'static
[(
&
'static
str
,
&
'static
str
,
Option
<
u32
>
)]
=
&
[
$
((
stringify!
(
$feature
),
$ver
,
$issue
)),
+
];
};
(
$
((
accepted
,
$feature
:
ident
,
$ver
:
expr
,
$issue
:
expr
),)
+
)
=>
{
/// Those language feature has since been Accepted (it was once Active)
const
ACCEPTED_FEATURES
:
&
'static
[(
&
'static
str
,
&
'static
str
,
Option
<
u32
>
)]
=
&
[
...
...
@@ -354,6 +361,10 @@ pub fn new() -> Features {
(
removed
,
pushpop_unsafe
,
"1.2.0"
,
None
),
);
declare_features!
(
(
stable_removed
,
no_stack_check
,
"1.0.0"
,
None
),
);
declare_features!
(
(
accepted
,
associated_types
,
"1.0.0"
,
None
),
// allow overloading augmented assignment operations like `a += b`
...
...
@@ -508,9 +519,6 @@ pub fn is_builtin_attr(attr: &ast::Attribute) -> bool {
not yet settled"
,
cfg_fn!
(
structural_match
))),
// Not used any more, but we can't feature gate it
(
"no_stack_check"
,
Normal
,
Ungated
),
(
"plugin"
,
CrateLevel
,
Gated
(
Stability
::
Unstable
,
"plugin"
,
"compiler plugins are experimental
\
...
...
@@ -912,8 +920,10 @@ fn find_lang_feature_issue(feature: &str) -> Option<u32> {
// assert!(issue.is_some())
issue
}
else
{
// search in Accepted or Removed features
match
ACCEPTED_FEATURES
.iter
()
.chain
(
REMOVED_FEATURES
)
.find
(|
t
|
t
.0
==
feature
)
{
// search in Accepted, Removed, or Stable Removed features
let
found
=
ACCEPTED_FEATURES
.iter
()
.chain
(
REMOVED_FEATURES
)
.chain
(
STABLE_REMOVED_FEATURES
)
.find
(|
t
|
t
.0
==
feature
);
match
found
{
Some
(
&
(
_
,
_
,
issue
))
=>
issue
,
None
=>
panic!
(
"Feature `{}` is not declared anywhere"
,
feature
),
}
...
...
@@ -1451,7 +1461,9 @@ pub fn get_features(span_handler: &Handler, krate_attrs: &[ast::Attribute]) -> F
feature_checker
.collect
(
&
features
,
mi
.span
);
}
else
if
let
Some
(
&
(
_
,
_
,
_
))
=
REMOVED_FEATURES
.iter
()
.find
(|
&
&
(
n
,
_
,
_
)|
name
==
n
)
{
.find
(|
&
&
(
n
,
_
,
_
)|
name
==
n
)
.or_else
(||
STABLE_REMOVED_FEATURES
.iter
()
.find
(|
&
&
(
n
,
_
,
_
)|
name
==
n
))
{
span_err!
(
span_handler
,
mi
.span
,
E0557
,
"feature has been removed"
);
}
else
if
let
Some
(
&
(
_
,
_
,
_
))
=
ACCEPTED_FEATURES
.iter
()
...
...
src/test/compile-fail/deprecated_no_stack_check.rs
0 → 100644
浏览文件 @
aef07cd9
// Copyright 2013 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.
#![deny(warnings)]
#![feature(no_stack_check)]
//~^ ERROR: 12:12: 12:26: feature has been removed [E0557]
fn
main
()
{
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录