Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
643e71e2
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,发现更多精彩内容 >>
提交
643e71e2
编写于
12月 03, 2017
作者:
J
John Kåre Alsaker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove the IGNORED_ATTR_NAMES thread local
上级
8d3e93be
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
16 deletion
+13
-16
src/librustc/ich/hcx.rs
src/librustc/ich/hcx.rs
+6
-15
src/librustc/ich/mod.rs
src/librustc/ich/mod.rs
+1
-1
src/librustc/session/mod.rs
src/librustc/session/mod.rs
+6
-0
未找到文件。
src/librustc/ich/hcx.rs
浏览文件 @
643e71e2
...
...
@@ -19,8 +19,8 @@
use
std
::
cmp
::
Ord
;
use
std
::
hash
as
std_hash
;
use
std
::
cell
::
RefCell
;
use
std
::
collections
::
HashMap
;
use
std
::
cell
::
RefCell
;
use
syntax
::
ast
;
...
...
@@ -36,8 +36,10 @@
use
rustc_data_structures
::
accumulate_vec
::
AccumulateVec
;
use
rustc_data_structures
::
fx
::{
FxHashSet
,
FxHashMap
};
thread_local!
(
static
IGNORED_ATTR_NAMES
:
RefCell
<
FxHashSet
<
Symbol
>>
=
RefCell
::
new
(
FxHashSet
()));
pub
fn
compute_ignored_attr_names
()
->
FxHashSet
<
Symbol
>
{
debug_assert!
(
ich
::
IGNORED_ATTRIBUTES
.len
()
>
0
);
ich
::
IGNORED_ATTRIBUTES
.iter
()
.map
(|
&
s
|
Symbol
::
intern
(
s
))
.collect
()
}
/// This is the context state available during incr. comp. hashing. It contains
/// enough information to transform DefIds and HirIds into stable DefPaths (i.e.
...
...
@@ -90,15 +92,6 @@ pub fn new(sess: &'gcx Session,
->
Self
{
let
hash_spans_initial
=
!
sess
.opts.debugging_opts.incremental_ignore_spans
;
debug_assert!
(
ich
::
IGNORED_ATTRIBUTES
.len
()
>
0
);
IGNORED_ATTR_NAMES
.with
(|
names
|
{
let
mut
names
=
names
.borrow_mut
();
if
names
.is_empty
()
{
names
.extend
(
ich
::
IGNORED_ATTRIBUTES
.iter
()
.map
(|
&
s
|
Symbol
::
intern
(
s
)));
}
});
StableHashingContext
{
sess
,
body_resolver
:
BodyResolver
(
krate
),
...
...
@@ -186,9 +179,7 @@ pub fn codemap(&mut self) -> &mut CachingCodemapView<'gcx> {
#[inline]
pub
fn
is_ignored_attr
(
&
self
,
name
:
Symbol
)
->
bool
{
IGNORED_ATTR_NAMES
.with
(|
names
|
{
names
.borrow
()
.contains
(
&
name
)
})
self
.sess.ignored_attr_names
.contains
(
&
name
)
}
pub
fn
hash_hir_item_like
<
F
:
FnOnce
(
&
mut
Self
)
>
(
&
mut
self
,
f
:
F
)
{
...
...
src/librustc/ich/mod.rs
浏览文件 @
643e71e2
...
...
@@ -13,7 +13,7 @@
pub
use
self
::
fingerprint
::
Fingerprint
;
pub
use
self
::
caching_codemap_view
::
CachingCodemapView
;
pub
use
self
::
hcx
::{
StableHashingContext
,
NodeIdHashingMode
,
hash_stable_trait_impls
};
hash_stable_trait_impls
,
compute_ignored_attr_names
};
mod
fingerprint
;
mod
caching_codemap_view
;
mod
hcx
;
...
...
src/librustc/session/mod.rs
浏览文件 @
643e71e2
...
...
@@ -14,6 +14,7 @@
use
hir
::
def_id
::
CrateNum
;
use
ich
::
Fingerprint
;
use
ich
;
use
lint
;
use
middle
::
allocator
::
AllocatorKind
;
use
middle
::
dependency_format
;
...
...
@@ -28,6 +29,7 @@
use
errors
::
emitter
::{
Emitter
,
EmitterWriter
};
use
syntax
::
json
::
JsonEmitter
;
use
syntax
::
feature_gate
;
use
syntax
::
symbol
::
Symbol
;
use
syntax
::
parse
;
use
syntax
::
parse
::
ParseSess
;
use
syntax
::{
ast
,
codemap
};
...
...
@@ -112,6 +114,9 @@ pub struct Session {
incr_comp_session
:
RefCell
<
IncrCompSession
>
,
/// A cache of attributes ignored by StableHashingContext
pub
ignored_attr_names
:
FxHashSet
<
Symbol
>
,
/// Some measurements that are being gathered during compilation.
pub
perf_stats
:
PerfStats
,
...
...
@@ -975,6 +980,7 @@ pub fn build_session_(sopts: config::Options,
injected_panic_runtime
:
Cell
::
new
(
None
),
imported_macro_spans
:
RefCell
::
new
(
HashMap
::
new
()),
incr_comp_session
:
RefCell
::
new
(
IncrCompSession
::
NotInitialized
),
ignored_attr_names
:
ich
::
compute_ignored_attr_names
(),
perf_stats
:
PerfStats
{
svh_time
:
Cell
::
new
(
Duration
::
from_secs
(
0
)),
incr_comp_hashes_time
:
Cell
::
new
(
Duration
::
from_secs
(
0
)),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录