Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
622c8f7b
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,发现更多精彩内容 >>
提交
622c8f7b
编写于
5月 23, 2014
作者:
A
Alex Crichton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rustdoc: Inline enums across crates
上级
c81b511b
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
66 addition
and
0 deletion
+66
-0
src/librustdoc/clean.rs
src/librustdoc/clean.rs
+66
-0
未找到文件。
src/librustdoc/clean.rs
浏览文件 @
622c8f7b
...
...
@@ -1204,6 +1204,49 @@ fn clean(&self) -> Item {
}
}
impl
Clean
<
Item
>
for
ty
::
VariantInfo
{
fn
clean
(
&
self
)
->
Item
{
// use syntax::parse::token::special_idents::unnamed_field;
let
cx
=
super
::
ctxtkey
.get
()
.unwrap
();
let
tcx
=
match
cx
.maybe_typed
{
core
::
Typed
(
ref
tycx
)
=>
tycx
,
core
::
NotTyped
(
_
)
=>
fail
!
(
"tcx not present"
),
};
let
kind
=
match
self
.arg_names
.as_ref
()
.map
(|
s
|
s
.as_slice
())
{
None
|
Some
([])
if
self
.args
.len
()
==
0
=>
CLikeVariant
,
None
|
Some
([])
=>
{
TupleVariant
(
self
.args
.iter
()
.map
(|
t
|
t
.clean
())
.collect
())
}
Some
(
s
)
=>
{
StructVariant
(
VariantStruct
{
struct_type
:
doctree
::
Plain
,
fields_stripped
:
false
,
fields
:
s
.iter
()
.zip
(
self
.args
.iter
())
.map
(|(
name
,
ty
)|
{
Item
{
source
:
Span
::
empty
(),
name
:
Some
(
name
.clean
()),
attrs
:
Vec
::
new
(),
visibility
:
Some
(
ast
::
Public
),
def_id
:
self
.id
,
// FIXME: this is not accurate
inner
:
StructFieldItem
(
TypedStructField
(
ty
.clean
())
)
}
})
.collect
()
})
}
};
Item
{
name
:
Some
(
self
.name
.clean
()),
attrs
:
load_attrs
(
tcx
,
self
.id
),
source
:
Span
::
empty
(),
visibility
:
Some
(
ast
::
Public
),
def_id
:
self
.id
,
inner
:
VariantItem
(
Variant
{
kind
:
kind
}),
}
}
}
#[deriving(Clone,
Encodable,
Decodable)]
pub
enum
VariantKind
{
CLikeVariant
,
...
...
@@ -1524,6 +1567,10 @@ fn try_inline(id: ast::NodeId) -> Option<Vec<Item>> {
ret
.extend
(
build_impls
(
tcx
,
did
)
.move_iter
());
StructItem
(
build_struct
(
tcx
,
did
))
}
ast
::
DefTy
(
did
)
=>
{
ret
.extend
(
build_impls
(
tcx
,
did
)
.move_iter
());
build_type
(
tcx
,
did
)
}
_
=>
return
None
,
};
let
fqn
=
csearch
::
get_item_path
(
tcx
,
did
);
...
...
@@ -1822,6 +1869,25 @@ fn build_struct(tcx: &ty::ctxt, did: ast::DefId) -> Struct {
}
}
fn
build_type
(
tcx
:
&
ty
::
ctxt
,
did
:
ast
::
DefId
)
->
ItemEnum
{
let
t
=
ty
::
lookup_item_type
(
tcx
,
did
);
match
ty
::
get
(
t
.ty
)
.sty
{
ty
::
ty_enum
(
edid
,
_
)
=>
{
return
EnumItem
(
Enum
{
generics
:
t
.generics
.clean
(),
variants_stripped
:
false
,
variants
:
ty
::
enum_variants
(
tcx
,
edid
)
.clean
(),
})
}
_
=>
{}
}
TypedefItem
(
Typedef
{
type_
:
t
.ty
.clean
(),
generics
:
t
.generics
.clean
(),
})
}
fn
build_impls
(
tcx
:
&
ty
::
ctxt
,
did
:
ast
::
DefId
)
->
Vec
<
Item
>
{
ty
::
populate_implementations_for_type_if_necessary
(
tcx
,
did
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录