Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
e62ce980
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,发现更多精彩内容 >>
提交
e62ce980
编写于
10月 17, 2018
作者:
L
ljedrz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
nll: improve allocations
上级
1dceaddf
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
10 addition
and
10 deletion
+10
-10
src/librustc_mir/borrow_check/nll/constraint_generation.rs
src/librustc_mir/borrow_check/nll/constraint_generation.rs
+4
-1
src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs
src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs
+4
-6
src/librustc_mir/borrow_check/nll/region_infer/error_reporting/region_name.rs
...row_check/nll/region_infer/error_reporting/region_name.rs
+2
-3
未找到文件。
src/librustc_mir/borrow_check/nll/constraint_generation.rs
浏览文件 @
e62ce980
...
...
@@ -141,6 +141,7 @@ fn visit_assign(
if
let
Some
(
all_facts
)
=
self
.all_facts
{
if
let
Place
::
Local
(
temp
)
=
place
{
if
let
Some
(
borrow_indices
)
=
self
.borrow_set.local_map
.get
(
temp
)
{
all_facts
.killed
.reserve
(
borrow_indices
.len
());
for
&
borrow_index
in
borrow_indices
{
let
location_index
=
self
.location_table
.mid_index
(
location
);
all_facts
.killed
.push
((
borrow_index
,
location_index
));
...
...
@@ -164,7 +165,9 @@ fn visit_terminator(
self
.location_table
.mid_index
(
location
),
));
for
successor_block
in
terminator
.successors
()
{
let
successor_blocks
=
terminator
.successors
();
all_facts
.cfg_edge
.reserve
(
successor_blocks
.size_hint
()
.0
);
for
successor_block
in
successor_blocks
{
all_facts
.cfg_edge
.push
((
self
.location_table
.mid_index
(
location
),
self
.location_table
...
...
src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs
浏览文件 @
e62ce980
...
...
@@ -279,9 +279,8 @@ fn is_borrow_location_in_loop(
pending_locations
.push
(
target
.start_location
());
},
TerminatorKind
::
SwitchInt
{
ref
targets
,
..
}
=>
{
for
target
in
targets
{
pending_locations
.push
(
target
.start_location
());
}
pending_locations
.extend
(
targets
.into_iter
()
.map
(|
target
|
target
.start_location
()));
},
TerminatorKind
::
Drop
{
target
,
unwind
,
..
}
|
TerminatorKind
::
DropAndReplace
{
target
,
unwind
,
..
}
|
...
...
@@ -303,9 +302,8 @@ fn is_borrow_location_in_loop(
},
TerminatorKind
::
FalseEdges
{
real_target
,
ref
imaginary_targets
,
..
}
=>
{
pending_locations
.push
(
real_target
.start_location
());
for
target
in
imaginary_targets
{
pending_locations
.push
(
target
.start_location
());
}
pending_locations
.extend
(
imaginary_targets
.into_iter
()
.map
(|
target
|
target
.start_location
()));
},
_
=>
{},
}
...
...
src/librustc_mir/borrow_check/nll/region_infer/error_reporting/region_name.rs
浏览文件 @
e62ce980
...
...
@@ -462,9 +462,8 @@ fn give_name_if_we_can_match_hir_ty(
argument_hir_ty
:
&
hir
::
Ty
,
counter
:
&
mut
usize
,
)
->
Option
<
RegionName
>
{
let
search_stack
:
&
mut
Vec
<
(
Ty
<
'tcx
>
,
&
hir
::
Ty
)
>
=
&
mut
Vec
::
new
();
search_stack
.push
((
argument_ty
,
argument_hir_ty
));
let
search_stack
:
&
mut
Vec
<
(
Ty
<
'tcx
>
,
&
hir
::
Ty
)
>
=
&
mut
vec!
[(
argument_ty
,
argument_hir_ty
)];
while
let
Some
((
ty
,
hir_ty
))
=
search_stack
.pop
()
{
match
(
&
ty
.sty
,
&
hir_ty
.node
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录