Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
52f76400
R
Rust
项目概览
int
/
Rust
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
52f76400
编写于
12月 15, 2011
作者:
N
Niko Matsakis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
extend with ty_send_type and ty_opaque_closure
上级
b5e5043d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
11 addition
and
2 deletion
+11
-2
src/comp/metadata/tydecode.rs
src/comp/metadata/tydecode.rs
+2
-0
src/comp/metadata/tyencode.rs
src/comp/metadata/tyencode.rs
+2
-0
src/comp/middle/shape.rs
src/comp/middle/shape.rs
+1
-1
src/comp/middle/trans.rs
src/comp/middle/trans.rs
+6
-1
未找到文件。
src/comp/metadata/tydecode.rs
浏览文件 @
52f76400
...
...
@@ -294,6 +294,8 @@ fn parse_ty(st: @pstate, sd: str_def) -> ty::t {
'X'
{
ret
ty
::
mk_var
(
st
.tcx
,
parse_int
(
st
));
}
'E'
{
let
def
=
parse_def
(
st
,
sd
);
ret
ty
::
mk_native
(
st
.tcx
,
def
);
}
'Y'
{
ret
ty
::
mk_type
(
st
.tcx
);
}
'y'
{
ret
ty
::
mk_send_type
(
st
.tcx
);
}
'C'
{
ret
ty
::
mk_opaque_closure
(
st
.tcx
);
}
'#'
{
let
pos
=
parse_hex
(
st
);
assert
(
next
(
st
)
as
char
==
':'
);
...
...
src/comp/metadata/tyencode.rs
浏览文件 @
52f76400
...
...
@@ -183,6 +183,8 @@ fn enc_sty(w: io::writer, cx: @ctxt, st: ty::sty) {
w
.write_str
(
uint
::
str
(
id
));
}
ty
::
ty_type
.
{
w
.write_char
(
'Y'
);
}
ty
::
ty_send_type
.
{
w
.write_char
(
'y'
);
}
ty
::
ty_opaque_closure
.
{
w
.write_char
(
'C'
);
}
ty
::
ty_constr
(
ty
,
cs
)
{
w
.write_str
(
"A["
);
enc_ty
(
w
,
cx
,
ty
);
...
...
src/comp/middle/shape.rs
浏览文件 @
52f76400
...
...
@@ -305,7 +305,7 @@ fn shape_of(ccx: @crate_ctxt, t: ty::t, ty_param_map: [uint],
ty
::
ty_int
(
ast
::
ty_i
.
)
{
s
+=
[
s_int
(
ccx
.tcx
)];
}
ty
::
ty_float
(
ast
::
ty_f
.
)
{
s
+=
[
s_float
(
ccx
.tcx
)];
}
ty
::
ty_uint
(
ast
::
ty_u
.
)
|
ty
::
ty_ptr
(
_
)
|
ty
::
ty_type
.
|
ty
::
ty_native
(
_
)
{
s
+=
[
s_uint
(
ccx
.tcx
)];
}
ty
::
ty_
send_type
.
|
ty
::
ty_
native
(
_
)
{
s
+=
[
s_uint
(
ccx
.tcx
)];
}
ty
::
ty_int
(
ast
::
ty_i8
.
)
{
s
+=
[
shape_i8
];
}
ty
::
ty_uint
(
ast
::
ty_u16
.
)
{
s
+=
[
shape_u16
];
}
ty
::
ty_int
(
ast
::
ty_i16
.
)
{
s
+=
[
shape_i16
];
}
...
...
src/comp/middle/trans.rs
浏览文件 @
52f76400
...
...
@@ -192,7 +192,7 @@ fn type_of_inner(cx: @crate_ctxt, sp: span, t: ty::t)
std
::
util
::
unreachable
()
}
ty
::
ty_param
(
_
,
_
)
{
T_typaram
(
cx
.tn
)
}
ty
::
ty_type
.
{
T_ptr
(
cx
.tydesc_type
)
}
ty
::
ty_
send_type
.
|
ty
::
ty_
type
.
{
T_ptr
(
cx
.tydesc_type
)
}
ty
::
ty_tup
(
elts
)
{
let
tys
=
[];
for
elt
in
elts
{
...
...
@@ -204,6 +204,11 @@ fn type_of_inner(cx: @crate_ctxt, sp: span, t: ty::t)
ty
::
ty_opaque_closure
.
{
T_opaque_closure
(
cx
)
}
_
{
log_err
(
"type_of_inner not implemented for "
,
ty
::
struct
(
cx
.tcx
,
t
));
fail
"type_of_inner not implemented for this kind of type"
;
}
};
cx
.lltypes
.insert
(
t
,
llty
);
ret
llty
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录