Skip to content

Commit 14d8baf

Browse files
notriddlecamelid
andcommitted
rustdoc: also index raw pointers
Co-authored-by: Noah Lev <[email protected]>
1 parent 59d35d6 commit 14d8baf

File tree

3 files changed

+82
-2
lines changed

3 files changed

+82
-2
lines changed

src/librustdoc/html/render/search_index.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -228,12 +228,13 @@ fn get_index_type_name(clean_type: &clean::Type) -> Option<Symbol> {
228228
// We return an empty name because we don't care about the generic name itself.
229229
clean::Generic(_) | clean::ImplTrait(_) => Some(kw::Empty),
230230
clean::Primitive(ref p) => Some(p.as_sym()),
231-
clean::BorrowedRef { ref type_, .. } => get_index_type_name(type_),
231+
clean::BorrowedRef { ref type_, .. } | clean::RawPointer(_, ref type_) => {
232+
get_index_type_name(type_)
233+
}
232234
clean::BareFunction(_)
233235
| clean::Tuple(_)
234236
| clean::Slice(_)
235237
| clean::Array(_, _)
236-
| clean::RawPointer(_, _)
237238
| clean::QPath { .. }
238239
| clean::Infer => None,
239240
}

src/test/rustdoc-js/raw-pointer.js

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
// ignore-order
2+
3+
const QUERY = [
4+
'Aaaaaaa -> i32',
5+
'Aaaaaaa -> Aaaaaaa',
6+
'Aaaaaaa -> usize',
7+
'-> Aaaaaaa',
8+
'Aaaaaaa',
9+
];
10+
11+
const EXPECTED = [
12+
{
13+
// Aaaaaaa -> i32
14+
'others': [
15+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'eeeeeee' },
16+
],
17+
},
18+
{
19+
// Aaaaaaa -> Aaaaaaa
20+
'others': [
21+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
22+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
23+
],
24+
},
25+
{
26+
// Aaaaaaa -> usize
27+
'others': [],
28+
},
29+
{
30+
// -> Aaaaaaa
31+
'others': [
32+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
33+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
34+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ddddddd' },
35+
{ 'path': 'raw_pointer', 'name': 'bbbbbbb' },
36+
],
37+
},
38+
{
39+
// Aaaaaaa
40+
'others': [
41+
{ 'path': 'raw_pointer', 'name': 'Aaaaaaa' },
42+
],
43+
'in_args': [
44+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
45+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
46+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'eeeeeee' },
47+
],
48+
'returned': [
49+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
50+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
51+
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ddddddd' },
52+
{ 'path': 'raw_pointer', 'name': 'bbbbbbb' },
53+
],
54+
},
55+
];

src/test/rustdoc-js/raw-pointer.rs

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use std::ptr;
2+
3+
pub struct Aaaaaaa {}
4+
5+
pub fn bbbbbbb() -> *const Aaaaaaa {
6+
ptr::null()
7+
}
8+
9+
pub struct Ccccccc {}
10+
11+
impl Ccccccc {
12+
pub fn ddddddd(&self) -> *const Aaaaaaa {
13+
ptr::null()
14+
}
15+
pub fn eeeeeee(&self, _x: *const Aaaaaaa) -> i32 {
16+
0
17+
}
18+
pub fn fffffff(&self, x: *const Aaaaaaa) -> *const Aaaaaaa {
19+
x
20+
}
21+
pub fn ggggggg(&self, x: *mut Aaaaaaa) -> *mut Aaaaaaa {
22+
x
23+
}
24+
}

0 commit comments

Comments
 (0)