Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
456884b7
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,发现更多精彩内容 >>
提交
456884b7
编写于
7月 20, 2014
作者:
S
Steven Fackler
提交者:
Alex Crichton
7月 21, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove useless RefCells
上级
2e24ef37
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
12 deletion
+11
-12
src/librustc/front/test.rs
src/librustc/front/test.rs
+11
-12
未找到文件。
src/librustc/front/test.rs
浏览文件 @
456884b7
...
...
@@ -16,7 +16,6 @@
use
driver
::
session
::
Session
;
use
front
::
config
;
use
std
::
cell
::
RefCell
;
use
std
::
gc
::{
Gc
,
GC
};
use
std
::
slice
;
use
std
::
vec
;
...
...
@@ -46,9 +45,9 @@ struct Test {
struct
TestCtxt
<
'a
>
{
sess
:
&
'a
Session
,
path
:
RefCell
<
Vec
<
ast
::
Ident
>
>
,
path
:
Vec
<
ast
::
Ident
>
,
ext_cx
:
ExtCtxt
<
'a
>
,
testfns
:
RefCell
<
Vec
<
Test
>
>
,
testfns
:
Vec
<
Test
>
,
is_test_crate
:
bool
,
config
:
ast
::
CrateConfig
,
}
...
...
@@ -86,9 +85,9 @@ fn fold_crate(&mut self, c: ast::Crate) -> ast::Crate {
}
fn
fold_item
(
&
mut
self
,
i
:
Gc
<
ast
::
Item
>
)
->
SmallVector
<
Gc
<
ast
::
Item
>>
{
self
.cx.path
.
borrow_mut
()
.
push
(
i
.ident
);
self
.cx.path
.push
(
i
.ident
);
debug!
(
"current path: {}"
,
ast_util
::
path_name_i
(
self
.cx.path
.
borrow
()
.
as_slice
()));
ast_util
::
path_name_i
(
self
.cx.path
.as_slice
()));
if
is_test_fn
(
&
self
.cx
,
i
)
||
is_bench_fn
(
&
self
.cx
,
i
)
{
match
i
.node
{
...
...
@@ -102,12 +101,12 @@ fn fold_item(&mut self, i: Gc<ast::Item>) -> SmallVector<Gc<ast::Item>> {
debug!
(
"this is a test function"
);
let
test
=
Test
{
span
:
i
.span
,
path
:
self
.cx.path
.
borrow
()
.
clone
(),
path
:
self
.cx.path
.clone
(),
bench
:
is_bench_fn
(
&
self
.cx
,
i
),
ignore
:
is_ignored
(
&
self
.cx
,
i
),
should_fail
:
should_fail
(
i
)
};
self
.cx.testfns
.
borrow_mut
()
.
push
(
test
);
self
.cx.testfns
.push
(
test
);
// debug!("have {} test/bench functions",
// cx.testfns.len());
}
...
...
@@ -115,7 +114,7 @@ fn fold_item(&mut self, i: Gc<ast::Item>) -> SmallVector<Gc<ast::Item>> {
}
let
res
=
fold
::
noop_fold_item
(
&*
i
,
self
);
self
.cx.path
.
borrow_mut
()
.
pop
();
self
.cx.path
.pop
();
res
}
...
...
@@ -155,8 +154,8 @@ fn generate_test_harness(sess: &Session, krate: ast::Crate)
deriving_hash_type_parameter
:
false
,
crate_name
:
"test"
.to_string
(),
}),
path
:
RefCell
::
new
(
Vec
::
new
()
),
testfns
:
RefCell
::
new
(
Vec
::
new
()
),
path
:
Vec
::
new
(
),
testfns
:
Vec
::
new
(
),
is_test_crate
:
is_test_crate
(
&
krate
),
config
:
krate
.config
.clone
(),
};
...
...
@@ -399,13 +398,13 @@ fn is_test_crate(krate: &ast::Crate) -> bool {
}
fn
mk_test_descs
(
cx
:
&
TestCtxt
)
->
Gc
<
ast
::
Expr
>
{
debug!
(
"building test vector from {} tests"
,
cx
.testfns
.
borrow
()
.
len
());
debug!
(
"building test vector from {} tests"
,
cx
.testfns
.len
());
box
(
GC
)
ast
::
Expr
{
id
:
ast
::
DUMMY_NODE_ID
,
node
:
ast
::
ExprVstore
(
box
(
GC
)
ast
::
Expr
{
id
:
ast
::
DUMMY_NODE_ID
,
node
:
ast
::
ExprVec
(
cx
.testfns
.
borrow
()
.
iter
()
.map
(|
test
|
{
node
:
ast
::
ExprVec
(
cx
.testfns
.iter
()
.map
(|
test
|
{
mk_test_desc_and_fn_rec
(
cx
,
test
)
})
.collect
()),
span
:
DUMMY_SP
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录