Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
1dc85768
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
1dc85768
编写于
1月 26, 2018
作者:
A
Alex Crichton
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'rustdoc_masked' of
https://github.com/ollie27/rust
into rollup
上级
a9101095
77bc826f
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
87 addition
and
27 deletion
+87
-27
src/librustdoc/html/render.rs
src/librustdoc/html/render.rs
+27
-25
src/test/rustdoc-js/from_u.js
src/test/rustdoc-js/from_u.js
+0
-2
src/test/rustdoc/auxiliary/masked.rs
src/test/rustdoc/auxiliary/masked.rs
+20
-0
src/test/rustdoc/masked.rs
src/test/rustdoc/masked.rs
+40
-0
未找到文件。
src/librustdoc/html/render.rs
浏览文件 @
1dc85768
...
...
@@ -1243,6 +1243,16 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
_
=>
self
.stripped_mod
,
};
// If the impl is from a masked crate or references something from a
// masked crate then remove it completely.
if
let
clean
::
ImplItem
(
ref
i
)
=
item
.inner
{
if
self
.masked_crates
.contains
(
&
item
.def_id.krate
)
||
i
.trait_
.def_id
()
.map_or
(
false
,
|
d
|
self
.masked_crates
.contains
(
&
d
.krate
))
||
i
.for_
.def_id
()
.map_or
(
false
,
|
d
|
self
.masked_crates
.contains
(
&
d
.krate
))
{
return
None
;
}
}
// Register any generics to their corresponding string. This is used
// when pretty-printing types.
if
let
Some
(
generics
)
=
item
.inner
.generics
()
{
...
...
@@ -1257,14 +1267,10 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
// Collect all the implementors of traits.
if
let
clean
::
ImplItem
(
ref
i
)
=
item
.inner
{
if
!
self
.masked_crates
.contains
(
&
item
.def_id.krate
)
{
if
let
Some
(
did
)
=
i
.trait_
.def_id
()
{
if
i
.for_
.def_id
()
.map_or
(
true
,
|
d
|
!
self
.masked_crates
.contains
(
&
d
.krate
))
{
self
.implementors
.entry
(
did
)
.or_insert
(
vec!
[])
.push
(
Impl
{
impl_item
:
item
.clone
(),
});
}
}
if
let
Some
(
did
)
=
i
.trait_
.def_id
()
{
self
.implementors
.entry
(
did
)
.or_insert
(
vec!
[])
.push
(
Impl
{
impl_item
:
item
.clone
(),
});
}
}
...
...
@@ -1427,24 +1433,20 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
// Note: matching twice to restrict the lifetime of the `i` borrow.
let
mut
dids
=
FxHashSet
();
if
let
clean
::
Item
{
inner
:
clean
::
ImplItem
(
ref
i
),
..
}
=
item
{
let
masked_trait
=
i
.trait_
.def_id
()
.map_or
(
false
,
|
d
|
self
.masked_crates
.contains
(
&
d
.krate
));
if
!
masked_trait
{
match
i
.for_
{
clean
::
ResolvedPath
{
did
,
..
}
|
clean
::
BorrowedRef
{
type_
:
box
clean
::
ResolvedPath
{
did
,
..
},
..
}
=>
{
dids
.insert
(
did
);
}
ref
t
=>
{
let
did
=
t
.primitive_type
()
.and_then
(|
t
|
{
self
.primitive_locations
.get
(
&
t
)
.cloned
()
});
match
i
.for_
{
clean
::
ResolvedPath
{
did
,
..
}
|
clean
::
BorrowedRef
{
type_
:
box
clean
::
ResolvedPath
{
did
,
..
},
..
}
=>
{
dids
.insert
(
did
);
}
ref
t
=>
{
let
did
=
t
.primitive_type
()
.and_then
(|
t
|
{
self
.primitive_locations
.get
(
&
t
)
.cloned
()
});
if
let
Some
(
did
)
=
did
{
dids
.insert
(
did
);
}
if
let
Some
(
did
)
=
did
{
dids
.insert
(
did
);
}
}
}
...
...
src/test/rustdoc-js/from_u.js
浏览文件 @
1dc85768
...
...
@@ -15,7 +15,5 @@ const EXPECTED = {
{
'
path
'
:
'
std::char
'
,
'
name
'
:
'
from_u32
'
},
{
'
path
'
:
'
std::str
'
,
'
name
'
:
'
from_utf8
'
},
{
'
path
'
:
'
std::string::String
'
,
'
name
'
:
'
from_utf8
'
},
{
'
path
'
:
'
std::i32
'
,
'
name
'
:
'
from_unsigned
'
},
{
'
path
'
:
'
std::i128
'
,
'
name
'
:
'
from_unsigned
'
},
],
};
src/test/rustdoc/auxiliary/masked.rs
0 → 100644
浏览文件 @
1dc85768
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#[derive(Clone)]
pub
struct
MaskedStruct
;
pub
trait
MaskedTrait
{
fn
masked_method
();
}
impl
MaskedTrait
for
String
{
fn
masked_method
()
{}
}
src/test/rustdoc/masked.rs
0 → 100644
浏览文件 @
1dc85768
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:masked.rs
#![feature(doc_masked)]
#![crate_name
=
"foo"
]
#[doc(masked)]
extern
crate
masked
;
// @!has 'search-index.js' 'masked_method'
// @!has 'foo/struct.String.html' 'MaskedTrait'
// @!has 'foo/struct.String.html' 'masked_method'
pub
use
std
::
string
::
String
;
// @!has 'foo/trait.Clone.html' 'MaskedStruct'
pub
use
std
::
clone
::
Clone
;
// @!has 'foo/struct.MyStruct.html' 'MaskedTrait'
// @!has 'foo/struct.MyStruct.html' 'masked_method'
pub
struct
MyStruct
;
impl
masked
::
MaskedTrait
for
MyStruct
{
fn
masked_method
()
{}
}
// @!has 'foo/trait.MyTrait.html' 'MaskedStruct'
pub
trait
MyTrait
{}
impl
MyTrait
for
masked
::
MaskedStruct
{}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录