Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
681f54f7
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,发现更多精彩内容 >>
提交
681f54f7
编写于
11月 17, 2017
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix filter to support `&` and `|`
上级
b4d71ea6
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
19 addition
and
6 deletion
+19
-6
src/librustc_mir/util/pretty.rs
src/librustc_mir/util/pretty.rs
+19
-6
未找到文件。
src/librustc_mir/util/pretty.rs
浏览文件 @
681f54f7
...
...
@@ -57,9 +57,19 @@ pub enum PassWhere {
/// where `<filter>` takes the following forms:
///
/// - `all` -- dump MIR for all fns, all passes, all everything
/// - `substring1&substring2,...` -- `&`-separated list of substrings
/// that can appear in the pass-name or the `item_path_str` for the given
/// node-id. If any one of the substrings match, the data is dumped out.
/// - a filter defined by a set of substrings combined with `&` and `|`
/// (`&` has higher precedence). At least one of the `|`-separated groups
/// must match; an `|`-separated group matches if all of its `&`-separated
/// substrings are matched.
///
/// Example:
///
/// - `nll` == match if `nll` appears in the name
/// - `foo & nll` == match if `foo` and `nll` both appear in the name
/// - `foo & nll | typeck` == match if `foo` and `nll` both appear in the name
/// or `typeck` appears in the name.
/// - `foo & nll | bar & typeck` == match if `foo` and `nll` both appear in the name
/// or `typeck` and `bar` both appear in the name.
pub
fn
dump_mir
<
'a
,
'gcx
,
'tcx
,
F
>
(
tcx
:
TyCtxt
<
'a
,
'gcx
,
'tcx
>
,
pass_num
:
Option
<&
Display
>
,
...
...
@@ -104,8 +114,10 @@ pub fn dump_enabled<'a, 'gcx, 'tcx>(
// see notes on #41697 below
tcx
.item_path_str
(
source
.def_id
)
});
filters
.split
(
"&"
)
.any
(|
filter
|
{
filter
==
"all"
||
pass_name
.contains
(
filter
)
||
node_path
.contains
(
filter
)
filters
.split
(
"|"
)
.any
(|
or_filter
|
{
or_filter
.split
(
"&"
)
.all
(|
and_filter
|
{
and_filter
==
"all"
||
pass_name
.contains
(
and_filter
)
||
node_path
.contains
(
and_filter
)
})
})
}
...
...
@@ -357,7 +369,8 @@ fn write_extra<'cx, 'gcx, 'tcx, F>(
write
:
&
mut
Write
,
mut
visit_op
:
F
,
)
->
io
::
Result
<
()
>
where
F
:
FnMut
(
&
mut
ExtraComments
<
'cx
,
'gcx
,
'tcx
>
)
where
F
:
FnMut
(
&
mut
ExtraComments
<
'cx
,
'gcx
,
'tcx
>
),
{
let
mut
extra_comments
=
ExtraComments
{
_
tcx
:
tcx
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录