Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
6d09d8d7
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
6d09d8d7
编写于
9月 24, 2016
作者:
T
Tim Neumann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add unstable_features to ParseSess
上级
b0dba743
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
0 deletion
+21
-0
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+18
-0
src/libsyntax/parse/mod.rs
src/libsyntax/parse/mod.rs
+3
-0
未找到文件。
src/libsyntax/feature_gate.rs
浏览文件 @
6d09d8d7
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
use
parse
::
token
::
InternedString
;
use
parse
::
token
::
InternedString
;
use
std
::
ascii
::
AsciiExt
;
use
std
::
ascii
::
AsciiExt
;
use
std
::
env
;
macro_rules!
setter
{
macro_rules!
setter
{
(
$field
:
ident
)
=>
{{
(
$field
:
ident
)
=>
{{
...
@@ -1296,6 +1297,23 @@ pub enum UnstableFeatures {
...
@@ -1296,6 +1297,23 @@ pub enum UnstableFeatures {
Cheat
Cheat
}
}
impl
UnstableFeatures
{
pub
fn
from_environment
()
->
UnstableFeatures
{
// Whether this is a feature-staged build, i.e. on the beta or stable channel
let
disable_unstable_features
=
option_env!
(
"CFG_DISABLE_UNSTABLE_FEATURES"
)
.is_some
();
// The secret key needed to get through the rustc build itself by
// subverting the unstable features lints
let
bootstrap_secret_key
=
option_env!
(
"CFG_BOOTSTRAP_KEY"
);
// The matching key to the above, only known by the build system
let
bootstrap_provided_key
=
env
::
var
(
"RUSTC_BOOTSTRAP_KEY"
)
.ok
();
match
(
disable_unstable_features
,
bootstrap_secret_key
,
bootstrap_provided_key
)
{
(
_
,
Some
(
ref
s
),
Some
(
ref
p
))
if
s
==
p
=>
UnstableFeatures
::
Cheat
,
(
true
,
_
,
_
)
=>
UnstableFeatures
::
Disallow
,
(
false
,
_
,
_
)
=>
UnstableFeatures
::
Allow
}
}
}
fn
maybe_stage_features
(
span_handler
:
&
Handler
,
krate
:
&
ast
::
Crate
,
fn
maybe_stage_features
(
span_handler
:
&
Handler
,
krate
:
&
ast
::
Crate
,
unstable
:
UnstableFeatures
)
{
unstable
:
UnstableFeatures
)
{
let
allow_features
=
match
unstable
{
let
allow_features
=
match
unstable
{
...
...
src/libsyntax/parse/mod.rs
浏览文件 @
6d09d8d7
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
use
codemap
::
CodeMap
;
use
codemap
::
CodeMap
;
use
syntax_pos
::{
self
,
Span
,
FileMap
};
use
syntax_pos
::{
self
,
Span
,
FileMap
};
use
errors
::{
Handler
,
ColorConfig
,
DiagnosticBuilder
};
use
errors
::{
Handler
,
ColorConfig
,
DiagnosticBuilder
};
use
feature_gate
::
UnstableFeatures
;
use
parse
::
parser
::
Parser
;
use
parse
::
parser
::
Parser
;
use
parse
::
token
::
InternedString
;
use
parse
::
token
::
InternedString
;
use
ptr
::
P
;
use
ptr
::
P
;
...
@@ -42,6 +43,7 @@
...
@@ -42,6 +43,7 @@
/// Info about a parsing session.
/// Info about a parsing session.
pub
struct
ParseSess
{
pub
struct
ParseSess
{
pub
span_diagnostic
:
Handler
,
// better be the same as the one in the reader!
pub
span_diagnostic
:
Handler
,
// better be the same as the one in the reader!
pub
unstable_features
:
UnstableFeatures
,
/// Used to determine and report recursive mod inclusions
/// Used to determine and report recursive mod inclusions
included_mod_stack
:
RefCell
<
Vec
<
PathBuf
>>
,
included_mod_stack
:
RefCell
<
Vec
<
PathBuf
>>
,
code_map
:
Rc
<
CodeMap
>
,
code_map
:
Rc
<
CodeMap
>
,
...
@@ -60,6 +62,7 @@ pub fn new() -> ParseSess {
...
@@ -60,6 +62,7 @@ pub fn new() -> ParseSess {
pub
fn
with_span_handler
(
handler
:
Handler
,
code_map
:
Rc
<
CodeMap
>
)
->
ParseSess
{
pub
fn
with_span_handler
(
handler
:
Handler
,
code_map
:
Rc
<
CodeMap
>
)
->
ParseSess
{
ParseSess
{
ParseSess
{
span_diagnostic
:
handler
,
span_diagnostic
:
handler
,
unstable_features
:
UnstableFeatures
::
from_environment
(),
included_mod_stack
:
RefCell
::
new
(
vec!
[]),
included_mod_stack
:
RefCell
::
new
(
vec!
[]),
code_map
:
code_map
code_map
:
code_map
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录