Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
d5e77a3c
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,发现更多精彩内容 >>
提交
d5e77a3c
编写于
7月 04, 2018
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
impl graphviz trait for a newtype of regioncx
上级
ed366980
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
8 deletion
+11
-8
src/librustc_mir/borrow_check/nll/mod.rs
src/librustc_mir/borrow_check/nll/mod.rs
+1
-1
src/librustc_mir/borrow_check/nll/region_infer/graphviz.rs
src/librustc_mir/borrow_check/nll/region_infer/graphviz.rs
+10
-7
未找到文件。
src/librustc_mir/borrow_check/nll/mod.rs
浏览文件 @
d5e77a3c
...
...
@@ -296,7 +296,7 @@ fn dump_mir_results<'a, 'gcx, 'tcx>(
let
_
:
io
::
Result
<
()
>
=
do
catch
{
let
mut
file
=
pretty
::
create_dump_file
(
infcx
.tcx
,
"regioncx.dot"
,
None
,
"nll"
,
&
0
,
source
)
?
;
regioncx
.dump_graphviz
(
&
mut
file
)
?
;
regioncx
.dump_graphviz
_raw_constraints
(
&
mut
file
)
?
;
};
}
...
...
src/librustc_mir/borrow_check/nll/region_infer/graphviz.rs
浏览文件 @
d5e77a3c
...
...
@@ -19,15 +19,18 @@
use
super
::
*
;
use
borrow_check
::
nll
::
constraints
::
OutlivesConstraint
;
impl
<
'tcx
>
RegionInferenceContext
<
'tcx
>
{
/// Write out the region constraint graph.
pub
(
crate
)
fn
dump_graphviz
(
&
self
,
mut
w
:
&
mut
dyn
Write
)
->
io
::
Result
<
()
>
{
dot
::
render
(
self
,
&
mut
w
)
pub
(
crate
)
fn
dump_graphviz
_raw_constraints
(
&
self
,
mut
w
:
&
mut
dyn
Write
)
->
io
::
Result
<
()
>
{
dot
::
render
(
&
RawConstraints
{
regioncx
:
self
}
,
&
mut
w
)
}
}
impl
<
'this
,
'tcx
>
dot
::
Labeller
<
'this
>
for
RegionInferenceContext
<
'tcx
>
{
struct
RawConstraints
<
'a
,
'tcx
:
'a
>
{
regioncx
:
&
'a
RegionInferenceContext
<
'tcx
>
}
impl
<
'a
,
'this
,
'tcx
>
dot
::
Labeller
<
'this
>
for
RawConstraints
<
'a
,
'tcx
>
{
type
Node
=
RegionVid
;
type
Edge
=
OutlivesConstraint
;
...
...
@@ -48,16 +51,16 @@ fn edge_label(&'this self, e: &OutlivesConstraint) -> dot::LabelText<'this> {
}
}
impl
<
'
this
,
'tcx
>
dot
::
GraphWalk
<
'this
>
for
RegionInferenceContext
<
'tcx
>
{
impl
<
'
a
,
'this
,
'tcx
>
dot
::
GraphWalk
<
'this
>
for
RawConstraints
<
'a
,
'tcx
>
{
type
Node
=
RegionVid
;
type
Edge
=
OutlivesConstraint
;
fn
nodes
(
&
'this
self
)
->
dot
::
Nodes
<
'this
,
RegionVid
>
{
let
vids
:
Vec
<
RegionVid
>
=
self
.definitions
.indices
()
.collect
();
let
vids
:
Vec
<
RegionVid
>
=
self
.
regioncx.
definitions
.indices
()
.collect
();
vids
.into_cow
()
}
fn
edges
(
&
'this
self
)
->
dot
::
Edges
<
'this
,
OutlivesConstraint
>
{
(
&
self
.constraints.raw
[
..
])
.into_cow
()
(
&
self
.
regioncx.
constraints.raw
[
..
])
.into_cow
()
}
// Render `a: b` as `a <- b`, indicating the flow
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录