Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
2ed210d5
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,发现更多精彩内容 >>
提交
2ed210d5
编写于
1月 16, 2016
作者:
J
Jeffrey Seyfried
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Refactor more functionality into record_import_use
上级
8e61ca4a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
30 deletion
+15
-30
src/librustc_resolve/lib.rs
src/librustc_resolve/lib.rs
+14
-24
src/librustc_resolve/resolve_imports.rs
src/librustc_resolve/resolve_imports.rs
+1
-6
未找到文件。
src/librustc_resolve/lib.rs
浏览文件 @
2ed210d5
...
...
@@ -1197,7 +1197,14 @@ fn get_ribs<'b>(&'b mut self, ns: Namespace) -> &'b mut Vec<Rib<'a>> {
}
#[inline]
fn
record_import_use
(
&
mut
self
,
import_id
:
NodeId
,
name
:
Name
)
{
fn
record_import_use
(
&
mut
self
,
name
:
Name
,
ns
:
Namespace
,
resolution
:
&
ImportResolution
<
'a
>
)
{
let
import_id
=
resolution
.id
;
self
.used_imports
.insert
((
import_id
,
ns
));
match
resolution
.target
.as_ref
()
.and_then
(|
target
|
target
.target_module
.def_id
())
{
Some
(
DefId
{
krate
,
..
})
=>
{
self
.used_crates
.insert
(
krate
);
}
_
=>
{}
};
if
!
self
.make_glob_map
{
return
;
}
...
...
@@ -1596,24 +1603,12 @@ fn resolve_name_in_module(&mut self,
debug!
(
"(resolving name in module) import unresolved; bailing out"
);
return
Indeterminate
;
}
match
import_resolution
.target
.clone
()
{
None
=>
{
debug!
(
"(resolving name in module) name found, but not in namespace {:?}"
,
namespace
);
}
Some
(
target
)
=>
{
debug!
(
"(resolving name in module) resolved to import"
);
// track used imports and extern crates as well
if
record_used
{
let
id
=
import_resolution
.id
;
self
.used_imports
.insert
((
id
,
namespace
));
self
.record_import_use
(
id
,
name
);
if
let
Some
(
DefId
{
krate
:
kid
,
..
})
=
target
.target_module
.def_id
()
{
self
.used_crates
.insert
(
kid
);
}
}
return
Success
((
target
,
true
));
if
let
Some
(
target
)
=
import_resolution
.target
.clone
()
{
debug!
(
"(resolving name in module) resolved to import"
);
if
record_used
{
self
.record_import_use
(
name
,
namespace
,
&
import_resolution
);
}
return
Success
((
target
,
true
));
}
}
Some
(
..
)
|
None
=>
{}
// Continue.
...
...
@@ -3531,13 +3526,8 @@ fn add_trait_info(found_traits: &mut Vec<DefId>, trait_def_id: DefId, name: Name
};
if
self
.trait_item_map
.contains_key
(
&
(
name
,
did
))
{
add_trait_info
(
&
mut
found_traits
,
did
,
name
);
let
id
=
import
.id
;
self
.used_imports
.insert
((
id
,
TypeNS
));
let
trait_name
=
self
.get_trait_name
(
did
);
self
.record_import_use
(
id
,
trait_name
);
if
let
Some
(
DefId
{
krate
:
kid
,
..
})
=
target
.target_module
.def_id
()
{
self
.used_crates
.insert
(
kid
);
}
self
.record_import_use
(
trait_name
,
TypeNS
,
&
import
);
}
}
...
...
src/librustc_resolve/resolve_imports.rs
浏览文件 @
2ed210d5
...
...
@@ -460,12 +460,7 @@ fn resolve_name_in_module(&mut self,
let
target
=
resolution
.target
.clone
();
if
let
Some
(
Target
{
target_module
,
binding
,
shadowable
:
_
})
=
target
{
// track used imports and extern crates as well
self
.resolver.used_imports
.insert
((
resolution
.id
,
ns
));
self
.resolver
.record_import_use
(
resolution
.id
,
name
);
if
let
Some
(
DefId
{
krate
,
..
})
=
target_module
.def_id
()
{
self
.resolver.used_crates
.insert
(
krate
);
}
self
.resolver
.record_import_use
(
name
,
ns
,
&
resolution
);
(
Success
((
target_module
,
binding
)),
true
)
}
else
{
(
Failed
(
None
),
false
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录