Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
a8f3d6da
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,发现更多精彩内容 >>
提交
a8f3d6da
编写于
10月 19, 2018
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
convert user-provided signatures into def-id
上级
167b4609
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
26 deletion
+6
-26
src/librustc/ty/context.rs
src/librustc/ty/context.rs
+2
-16
src/librustc_typeck/check/writeback.rs
src/librustc_typeck/check/writeback.rs
+4
-10
未找到文件。
src/librustc/ty/context.rs
浏览文件 @
a8f3d6da
...
...
@@ -51,7 +51,7 @@
use
ty
::
BindingMode
;
use
ty
::
CanonicalTy
;
use
ty
::
CanonicalPolyFnSig
;
use
util
::
nodemap
::{
DefIdSet
,
ItemLocalMap
};
use
util
::
nodemap
::{
DefId
Map
,
DefId
Set
,
ItemLocalMap
};
use
util
::
nodemap
::{
FxHashMap
,
FxHashSet
};
use
smallvec
::
SmallVec
;
use
rustc_data_structures
::
stable_hasher
::{
HashStable
,
hash_stable_hashmap
,
...
...
@@ -362,7 +362,7 @@ pub struct TypeckTables<'tcx> {
/// Stores the canonicalized types provided by the user. See also
/// `AscribeUserType` statement in MIR.
user_provided_sigs
:
ItemLocal
Map
<
CanonicalPolyFnSig
<
'tcx
>>
,
pub
user_provided_sigs
:
DefId
Map
<
CanonicalPolyFnSig
<
'tcx
>>
,
/// Stores the substitutions that the user explicitly gave (if any)
/// attached to `id`. These will not include any inferred
...
...
@@ -519,20 +519,6 @@ pub fn user_provided_tys_mut(&mut self) -> LocalTableInContextMut<'_, CanonicalT
}
}
pub
fn
user_provided_sigs
(
&
self
)
->
LocalTableInContext
<
'_
,
CanonicalPolyFnSig
<
'tcx
>>
{
LocalTableInContext
{
local_id_root
:
self
.local_id_root
,
data
:
&
self
.user_provided_sigs
}
}
pub
fn
user_provided_sigs_mut
(
&
mut
self
)
->
LocalTableInContextMut
<
'_
,
CanonicalPolyFnSig
<
'tcx
>>
{
LocalTableInContextMut
{
local_id_root
:
self
.local_id_root
,
data
:
&
mut
self
.user_provided_sigs
}
}
pub
fn
node_types
(
&
self
)
->
LocalTableInContext
<
'_
,
Ty
<
'tcx
>>
{
LocalTableInContext
{
local_id_root
:
self
.local_id_root
,
...
...
src/librustc_typeck/check/writeback.rs
浏览文件 @
a8f3d6da
...
...
@@ -392,27 +392,21 @@ fn visit_user_provided_tys(&mut self) {
fn
visit_user_provided_sigs
(
&
mut
self
)
{
let
fcx_tables
=
self
.fcx.tables
.borrow
();
debug_assert_eq!
(
fcx_tables
.local_id_root
,
self
.tables.local_id_root
);
let
common_local_id_root
=
fcx_tables
.local_id_root
.unwrap
();
for
(
&
local_id
,
c_sig
)
in
fcx_tables
.user_provided_sigs
()
.iter
()
{
let
hir_id
=
hir
::
HirId
{
owner
:
common_local_id_root
.index
,
local_id
,
};
for
(
&
def_id
,
c_sig
)
in
fcx_tables
.user_provided_sigs
.iter
()
{
let
c_sig
=
if
let
Some
(
c_sig
)
=
self
.tcx
()
.lift_to_global
(
c_sig
)
{
c_sig
}
else
{
span_bug!
(
hir_id
.to_span
(
&
self
.fcx.tcx
),
self
.fcx.tcx.hir
.span_if_local
(
def_id
)
.unwrap
(
),
"writeback: `{:?}` missing from the global type context"
,
c_sig
);
};
self
.tables
.user_provided_sigs
_mut
()
.insert
(
hir
_id
,
c_sig
.clone
());
.user_provided_sigs
.insert
(
def
_id
,
c_sig
.clone
());
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录