Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
4c9b1b13
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,发现更多精彩内容 >>
未验证
提交
4c9b1b13
编写于
1月 06, 2018
作者:
A
Alexander Regueiro
提交者:
Oliver Schneider
3月 08, 2018
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Initial changes to librustc to support const trait fns.
上级
28572d2c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
10 deletion
+18
-10
src/librustc/hir/def_id.rs
src/librustc/hir/def_id.rs
+0
-1
src/librustc_metadata/decoder.rs
src/librustc_metadata/decoder.rs
+8
-1
src/librustc_metadata/encoder.rs
src/librustc_metadata/encoder.rs
+8
-1
src/librustdoc/clean/mod.rs
src/librustdoc/clean/mod.rs
+2
-7
未找到文件。
src/librustc/hir/def_id.rs
浏览文件 @
4c9b1b13
...
...
@@ -220,7 +220,6 @@ impl serialize::UseSpecializedDecodable for DefId {}
pub
struct
LocalDefId
(
DefIndex
);
impl
LocalDefId
{
#[inline]
pub
fn
from_def_id
(
def_id
:
DefId
)
->
LocalDefId
{
assert
!
(
def_id
.is_local
());
...
...
src/librustc_metadata/decoder.rs
浏览文件 @
4c9b1b13
...
...
@@ -21,7 +21,7 @@
use
rustc
::
middle
::
exported_symbols
::{
ExportedSymbol
,
SymbolExportLevel
};
use
rustc
::
hir
::
def
::{
self
,
Def
,
CtorKind
};
use
rustc
::
hir
::
def_id
::{
CrateNum
,
DefId
,
DefIndex
,
CRATE_DEF_INDEX
,
LOCAL_CRATE
};
CRATE_DEF_INDEX
,
LOCAL_CRATE
,
LocalDefId
};
use
rustc
::
ich
::
Fingerprint
;
use
rustc
::
middle
::
lang_items
;
use
rustc
::
mir
::{
self
,
interpret
};
...
...
@@ -273,6 +273,13 @@ fn specialized_decode(&mut self) -> Result<DefIndex, Self::Error> {
}
}
impl
<
'a
,
'tcx
>
SpecializedDecoder
<
LocalDefId
>
for
DecodeContext
<
'a
,
'tcx
>
{
#[inline]
fn
specialized_decode
(
&
mut
self
)
->
Result
<
LocalDefId
,
Self
::
Error
>
{
self
.specialized_decode
()
.map
(|
i
|
LocalDefId
::
from_def_id
(
i
))
}
}
impl
<
'a
,
'tcx
>
SpecializedDecoder
<
interpret
::
AllocId
>
for
DecodeContext
<
'a
,
'tcx
>
{
fn
specialized_decode
(
&
mut
self
)
->
Result
<
interpret
::
AllocId
,
Self
::
Error
>
{
const
MAX1
:
usize
=
usize
::
max_value
()
-
1
;
...
...
src/librustc_metadata/encoder.rs
浏览文件 @
4c9b1b13
...
...
@@ -16,7 +16,7 @@
use
rustc
::
middle
::
cstore
::{
LinkMeta
,
LinkagePreference
,
NativeLibrary
,
EncodedMetadata
};
use
rustc
::
hir
::
def
::
CtorKind
;
use
rustc
::
hir
::
def_id
::{
CrateNum
,
CRATE_DEF_INDEX
,
DefIndex
,
DefId
,
LOCAL_CRATE
};
use
rustc
::
hir
::
def_id
::{
CrateNum
,
CRATE_DEF_INDEX
,
DefIndex
,
DefId
,
L
ocalDefId
,
L
OCAL_CRATE
};
use
rustc
::
hir
::
map
::
definitions
::
DefPathTable
;
use
rustc
::
ich
::
Fingerprint
;
use
rustc
::
middle
::
dependency_format
::
Linkage
;
...
...
@@ -181,6 +181,13 @@ fn specialized_encode(&mut self, span: &Span) -> Result<(), Self::Error> {
}
}
impl
<
'a
,
'tcx
>
SpecializedEncoder
<
LocalDefId
>
for
EncodeContext
<
'a
,
'tcx
>
{
#[inline]
fn
specialized_encode
(
&
mut
self
,
def_id
:
&
LocalDefId
)
->
Result
<
(),
Self
::
Error
>
{
self
.specialized_encode
(
&
def_id
.to_def_id
())
}
}
impl
<
'a
,
'tcx
>
SpecializedEncoder
<
Ty
<
'tcx
>>
for
EncodeContext
<
'a
,
'tcx
>
{
fn
specialized_encode
(
&
mut
self
,
ty
:
&
Ty
<
'tcx
>
)
->
Result
<
(),
Self
::
Error
>
{
ty_codec
::
encode_with_shorthand
(
self
,
ty
,
|
ecx
|
&
mut
ecx
.type_shorthands
)
...
...
src/librustdoc/clean/mod.rs
浏览文件 @
4c9b1b13
...
...
@@ -51,7 +51,6 @@
use
std
::
collections
::
VecDeque
;
use
std
::
fmt
;
use
rustc_const_math
::
ConstInt
;
use
std
::
default
::
Default
;
use
std
::{
mem
,
slice
,
vec
};
use
std
::
iter
::{
FromIterator
,
once
};
...
...
@@ -2507,9 +2506,7 @@ fn clean(&self, cx: &DocContext) -> Type {
ty
:
cx
.tcx.types.usize
})
});
let
n
=
if
let
ConstVal
::
Integral
(
ConstInt
::
Usize
(
n
))
=
n
.val
{
n
.to_string
()
}
else
if
let
ConstVal
::
Unevaluated
(
def_id
,
_
)
=
n
.val
{
let
n
=
if
let
ConstVal
::
Unevaluated
(
def_id
,
_
)
=
n
.val
{
if
let
Some
(
node_id
)
=
cx
.tcx.hir
.as_local_node_id
(
def_id
)
{
print_const_expr
(
cx
,
cx
.tcx.hir
.body_owned_by
(
node_id
))
}
else
{
...
...
@@ -2640,9 +2637,7 @@ fn clean(&self, cx: &DocContext) -> Type {
n
=
new_n
;
}
};
let
n
=
if
let
ConstVal
::
Integral
(
ConstInt
::
Usize
(
n
))
=
n
.val
{
n
.to_string
()
}
else
if
let
ConstVal
::
Unevaluated
(
def_id
,
_
)
=
n
.val
{
let
n
=
if
let
ConstVal
::
Unevaluated
(
def_id
,
_
)
=
n
.val
{
if
let
Some
(
node_id
)
=
cx
.tcx.hir
.as_local_node_id
(
def_id
)
{
print_const_expr
(
cx
,
cx
.tcx.hir
.body_owned_by
(
node_id
))
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录