Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
d516b263
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,发现更多精彩内容 >>
提交
d516b263
编写于
7月 15, 2017
作者:
N
Niko Matsakis
提交者:
Sean Griffin
3月 01, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use `{}` for `Known` variant just for more parity
上级
d4df52ca
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
6 deletion
+8
-6
src/librustc/infer/type_variable.rs
src/librustc/infer/type_variable.rs
+8
-6
未找到文件。
src/librustc/infer/type_variable.rs
浏览文件 @
d516b263
...
...
@@ -79,7 +79,9 @@ struct TypeVariableData<'tcx> {
}
enum
TypeVariableValue
<
'tcx
>
{
Known
(
Ty
<
'tcx
>
),
Known
{
value
:
Ty
<
'tcx
>
},
Bounded
{
default
:
Option
<
Default
<
'tcx
>>
}
...
...
@@ -120,7 +122,7 @@ pub fn new() -> TypeVariableTable<'tcx> {
pub
fn
default
(
&
self
,
vid
:
ty
::
TyVid
)
->
Option
<
Default
<
'tcx
>>
{
match
&
self
.values
.get
(
vid
.index
as
usize
)
.value
{
&
Known
(
_
)
=>
None
,
&
Known
{
..
}
=>
None
,
&
Bounded
{
ref
default
,
..
}
=>
default
.clone
()
}
}
...
...
@@ -161,14 +163,14 @@ pub fn instantiate(&mut self, vid: ty::TyVid, ty: Ty<'tcx>) {
let
old_value
=
{
let
vid_data
=
&
mut
self
.values
[
vid
.index
as
usize
];
mem
::
replace
(
&
mut
vid_data
.value
,
TypeVariableValue
::
Known
(
ty
)
)
mem
::
replace
(
&
mut
vid_data
.value
,
TypeVariableValue
::
Known
{
value
:
ty
}
)
};
match
old_value
{
TypeVariableValue
::
Bounded
{
default
}
=>
{
self
.values
.record
(
Instantiate
{
vid
:
vid
,
default
:
default
});
}
TypeVariableValue
::
Known
(
old_ty
)
=>
{
TypeVariableValue
::
Known
{
value
:
old_ty
}
=>
{
bug!
(
"instantiating type variable `{:?}` twice: new-value = {:?}, old-value={:?}"
,
vid
,
ty
,
old_ty
)
}
...
...
@@ -236,7 +238,7 @@ pub fn probe_root(&mut self, vid: ty::TyVid) -> Option<Ty<'tcx>> {
debug_assert!
(
self
.root_var
(
vid
)
==
vid
);
match
self
.values
.get
(
vid
.index
as
usize
)
.value
{
Bounded
{
..
}
=>
None
,
Known
(
t
)
=>
Some
(
t
)
Known
{
value
}
=>
Some
(
value
)
}
}
...
...
@@ -337,7 +339,7 @@ pub fn types_escaping_snapshot(&mut self, s: &Snapshot) -> Vec<Ty<'tcx>> {
// created since the snapshot started or not.
let
escaping_type
=
match
self
.values
.get
(
vid
.index
as
usize
)
.value
{
Bounded
{
..
}
=>
bug!
(),
Known
(
ty
)
=>
ty
,
Known
{
value
}
=>
value
,
};
escaping_types
.push
(
escaping_type
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录