Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
2e2ea26a
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,发现更多精彩内容 >>
提交
2e2ea26a
编写于
8月 05, 2018
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove unused tcx argument
上级
5e2f337e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
15 deletion
+10
-15
src/librustc_mir/borrow_check/nll/escaping_locals.rs
src/librustc_mir/borrow_check/nll/escaping_locals.rs
+6
-11
src/librustc_mir/borrow_check/nll/liveness_map.rs
src/librustc_mir/borrow_check/nll/liveness_map.rs
+3
-3
src/librustc_mir/borrow_check/nll/mod.rs
src/librustc_mir/borrow_check/nll/mod.rs
+1
-1
未找到文件。
src/librustc_mir/borrow_check/nll/escaping_locals.rs
浏览文件 @
2e2ea26a
...
...
@@ -44,7 +44,6 @@
use
rustc
::
mir
::
visit
::
Visitor
;
use
rustc
::
mir
::
*
;
use
rustc
::
ty
::
TyCtxt
;
use
rustc_data_structures
::
indexed_vec
::
Idx
;
use
rustc_data_structures
::
unify
as
ut
;
...
...
@@ -54,8 +53,8 @@
}
impl
EscapingLocals
{
crate
fn
compute
(
tcx
:
TyCtxt
<
'_
,
'_
,
'tcx
>
,
mir
:
&
Mir
<
'tcx
>
)
->
Self
{
let
mut
visitor
=
GatherAssignedLocalsVisitor
::
new
(
tcx
,
mir
);
crate
fn
compute
(
mir
:
&
Mir
<
'tcx
>
)
->
Self
{
let
mut
visitor
=
GatherAssignedLocalsVisitor
::
new
();
visitor
.visit_mir
(
mir
);
EscapingLocals
{
...
...
@@ -74,10 +73,8 @@ impl EscapingLocals {
/// The MIR visitor gathering the union-find of the locals used in
/// assignments.
struct
GatherAssignedLocalsVisitor
<
'cx
,
'gcx
:
'tcx
,
'tcx
:
'cx
>
{
struct
GatherAssignedLocalsVisitor
{
unification_table
:
ut
::
UnificationTable
<
ut
::
InPlace
<
AssignedLocal
>>
,
tcx
:
TyCtxt
<
'cx
,
'gcx
,
'tcx
>
,
mir
:
&
'cx
Mir
<
'tcx
>
,
}
#[derive(Copy,
Clone,
Debug,
Hash,
PartialEq,
Eq)]
...
...
@@ -107,12 +104,10 @@ fn from(item: Local) -> Self {
}
}
impl
GatherAssignedLocalsVisitor
<
'cx
,
'gcx
,
'tcx
>
{
fn
new
(
tcx
:
TyCtxt
<
'cx
,
'gcx
,
'tcx
>
,
mir
:
&
'cx
Mir
<
'tcx
>
)
->
Self
{
impl
GatherAssignedLocalsVisitor
{
fn
new
()
->
Self
{
Self
{
unification_table
:
ut
::
UnificationTable
::
new
(),
tcx
,
mir
,
}
}
...
...
@@ -154,7 +149,7 @@ fn find_local_in_operand(op: &Operand) -> Option<Local> {
}
}
impl
Visitor
<
'tcx
>
for
GatherAssignedLocalsVisitor
<
'_
,
'_
,
'tcx
>
{
impl
Visitor
<
'tcx
>
for
GatherAssignedLocalsVisitor
{
fn
visit_mir
(
&
mut
self
,
mir
:
&
Mir
<
'tcx
>
)
{
// We need as many union-find keys as there are locals
for
_
in
0
..
mir
.local_decls
.len
()
{
...
...
src/librustc_mir/borrow_check/nll/liveness_map.rs
浏览文件 @
2e2ea26a
...
...
@@ -18,7 +18,7 @@
use
borrow_check
::
nll
::
escaping_locals
::
EscapingLocals
;
use
rustc
::
mir
::{
Local
,
Mir
};
use
rustc
::
ty
::
{
TyCtxt
,
TypeFoldable
}
;
use
rustc
::
ty
::
TypeFoldable
;
use
rustc_data_structures
::
indexed_vec
::
IndexVec
;
use
util
::
liveness
::
LiveVariableMap
;
...
...
@@ -55,8 +55,8 @@ fn num_variables(&self) -> usize {
impl
NllLivenessMap
{
/// Iterates over the variables in Mir and assigns each Local whose type contains
/// regions a LocalWithRegion index. Returns a map for converting back and forth.
crate
fn
compute
(
tcx
:
TyCtxt
<
'_
,
'_
,
'tcx
>
,
mir
:
&
Mir
<
'tcx
>
)
->
Self
{
let
mut
escaping_locals
=
EscapingLocals
::
compute
(
tcx
,
mir
);
crate
fn
compute
(
mir
:
&
Mir
<
'tcx
>
)
->
Self
{
let
mut
escaping_locals
=
EscapingLocals
::
compute
(
mir
);
let
mut
to_local
=
IndexVec
::
default
();
let
mut
escapes_into_return
=
0
;
...
...
src/librustc_mir/borrow_check/nll/mod.rs
浏览文件 @
2e2ea26a
...
...
@@ -109,7 +109,7 @@ pub(in borrow_check) fn compute_regions<'cx, 'gcx, 'tcx>(
let
elements
=
&
Rc
::
new
(
RegionValueElements
::
new
(
mir
));
// Run the MIR type-checker.
let
liveness_map
=
NllLivenessMap
::
compute
(
infcx
.tcx
,
&
mir
);
let
liveness_map
=
NllLivenessMap
::
compute
(
&
mir
);
let
liveness
=
LivenessResults
::
compute
(
mir
,
&
liveness_map
);
let
(
constraint_sets
,
universal_region_relations
)
=
type_check
::
type_check
(
infcx
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录