Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
8ec68761
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,发现更多精彩内容 >>
提交
8ec68761
编写于
5月 30, 2020
作者:
M
marmeladema
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
save_analysis: work on HIR tree instead of AST
上级
f3fadf6a
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
902 addition
and
998 deletion
+902
-998
src/librustc_driver/lib.rs
src/librustc_driver/lib.rs
+4
-12
src/librustc_hir_pretty/lib.rs
src/librustc_hir_pretty/lib.rs
+24
-0
src/librustc_save_analysis/dump_visitor.rs
src/librustc_save_analysis/dump_visitor.rs
+411
-505
src/librustc_save_analysis/lib.rs
src/librustc_save_analysis/lib.rs
+220
-253
src/librustc_save_analysis/sig.rs
src/librustc_save_analysis/sig.rs
+243
-228
未找到文件。
src/librustc_driver/lib.rs
浏览文件 @
8ec68761
...
...
@@ -346,12 +346,15 @@ pub fn run_compiler(
queries
.global_ctxt
()
?
;
// Drop AST after creating GlobalCtxt to free memory
let
_
timer
=
sess
.prof
.generic_activity
(
"drop_ast"
);
mem
::
drop
(
queries
.expansion
()
?
.take
());
if
sess
.opts.debugging_opts.no_analysis
||
sess
.opts.debugging_opts.ast_json
{
return
early_exit
();
}
if
sess
.opts.debugging_opts.save_analysis
{
let
expanded_crate
=
&
queries
.expansion
()
?
.peek
()
.0
;
let
crate_name
=
queries
.crate_name
()
?
.peek
()
.clone
();
queries
.global_ctxt
()
?
.peek_mut
()
.enter
(|
tcx
|
{
let
result
=
tcx
.analysis
(
LOCAL_CRATE
);
...
...
@@ -359,7 +362,6 @@ pub fn run_compiler(
sess
.time
(
"save_analysis"
,
||
{
save
::
process_crate
(
tcx
,
&
expanded_crate
,
&
crate_name
,
&
compiler
.input
(),
None
,
...
...
@@ -371,13 +373,7 @@ pub fn run_compiler(
});
result
// AST will be dropped *after* the `after_analysis` callback
// (needed by the RLS)
})
?
;
}
else
{
// Drop AST after creating GlobalCtxt to free memory
let
_
timer
=
sess
.prof
.generic_activity
(
"drop_ast"
);
mem
::
drop
(
queries
.expansion
()
?
.take
());
}
queries
.global_ctxt
()
?
.peek_mut
()
.enter
(|
tcx
|
tcx
.analysis
(
LOCAL_CRATE
))
?
;
...
...
@@ -386,10 +382,6 @@ pub fn run_compiler(
return
early_exit
();
}
if
sess
.opts.debugging_opts.save_analysis
{
mem
::
drop
(
queries
.expansion
()
?
.take
());
}
queries
.ongoing_codegen
()
?
;
if
sess
.opts.debugging_opts.print_type_sizes
{
...
...
src/librustc_hir_pretty/lib.rs
浏览文件 @
8ec68761
...
...
@@ -203,6 +203,30 @@ pub fn visibility_qualified<S: Into<Cow<'static, str>>>(vis: &hir::Visibility<'_
})
}
pub
fn
generic_params_to_string
(
generic_params
:
&
[
GenericParam
<
'_
>
])
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_generic_params
(
generic_params
))
}
pub
fn
bounds_to_string
<
'b
>
(
bounds
:
impl
IntoIterator
<
Item
=
&
'b
hir
::
GenericBound
<
'b
>>
)
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_bounds
(
""
,
bounds
))
}
pub
fn
param_to_string
(
arg
:
&
hir
::
Param
<
'_
>
)
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_param
(
arg
))
}
pub
fn
ty_to_string
(
ty
:
&
hir
::
Ty
<
'_
>
)
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_type
(
ty
))
}
pub
fn
path_segment_to_string
(
segment
:
&
hir
::
PathSegment
<
'_
>
)
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_path_segment
(
segment
))
}
pub
fn
path_to_string
(
segment
:
&
hir
::
Path
<
'_
>
)
->
String
{
to_string
(
NO_ANN
,
|
s
|
s
.print_path
(
segment
,
false
))
}
impl
<
'a
>
State
<
'a
>
{
pub
fn
cbox
(
&
mut
self
,
u
:
usize
)
{
self
.s
.cbox
(
u
);
...
...
src/librustc_save_analysis/dump_visitor.rs
浏览文件 @
8ec68761
此差异已折叠。
点击以展开。
src/librustc_save_analysis/lib.rs
浏览文件 @
8ec68761
此差异已折叠。
点击以展开。
src/librustc_save_analysis/sig.rs
浏览文件 @
8ec68761
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录