Skip to content

Commit

Permalink
rustdoc: also index raw pointers
Browse files Browse the repository at this point in the history
Co-authored-by: Noah Lev <[email protected]>
  • Loading branch information
notriddle and camelid committed May 31, 2022
1 parent 59d35d6 commit 14d8baf
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 2 deletions.
5 changes: 3 additions & 2 deletions src/librustdoc/html/render/search_index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -228,12 +228,13 @@ fn get_index_type_name(clean_type: &clean::Type) -> Option<Symbol> {
// We return an empty name because we don't care about the generic name itself.
clean::Generic(_) | clean::ImplTrait(_) => Some(kw::Empty),
clean::Primitive(ref p) => Some(p.as_sym()),
clean::BorrowedRef { ref type_, .. } => get_index_type_name(type_),
clean::BorrowedRef { ref type_, .. } | clean::RawPointer(_, ref type_) => {
get_index_type_name(type_)
}
clean::BareFunction(_)
| clean::Tuple(_)
| clean::Slice(_)
| clean::Array(_, _)
| clean::RawPointer(_, _)
| clean::QPath { .. }
| clean::Infer => None,
}
Expand Down
55 changes: 55 additions & 0 deletions src/test/rustdoc-js/raw-pointer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// ignore-order

const QUERY = [
'Aaaaaaa -> i32',
'Aaaaaaa -> Aaaaaaa',
'Aaaaaaa -> usize',
'-> Aaaaaaa',
'Aaaaaaa',
];

const EXPECTED = [
{
// Aaaaaaa -> i32
'others': [
{ 'path': 'raw_pointer::Ccccccc', 'name': 'eeeeeee' },
],
},
{
// Aaaaaaa -> Aaaaaaa
'others': [
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
],
},
{
// Aaaaaaa -> usize
'others': [],
},
{
// -> Aaaaaaa
'others': [
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'raw_pointer', 'name': 'bbbbbbb' },
],
},
{
// Aaaaaaa
'others': [
{ 'path': 'raw_pointer', 'name': 'Aaaaaaa' },
],
'in_args': [
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'eeeeeee' },
],
'returned': [
{ 'path': 'raw_pointer::Ccccccc', 'name': 'fffffff' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ggggggg' },
{ 'path': 'raw_pointer::Ccccccc', 'name': 'ddddddd' },
{ 'path': 'raw_pointer', 'name': 'bbbbbbb' },
],
},
];
24 changes: 24 additions & 0 deletions src/test/rustdoc-js/raw-pointer.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
use std::ptr;

pub struct Aaaaaaa {}

pub fn bbbbbbb() -> *const Aaaaaaa {
ptr::null()
}

pub struct Ccccccc {}

impl Ccccccc {
pub fn ddddddd(&self) -> *const Aaaaaaa {
ptr::null()
}
pub fn eeeeeee(&self, _x: *const Aaaaaaa) -> i32 {
0
}
pub fn fffffff(&self, x: *const Aaaaaaa) -> *const Aaaaaaa {
x
}
pub fn ggggggg(&self, x: *mut Aaaaaaa) -> *mut Aaaaaaa {
x
}
}

0 comments on commit 14d8baf

Please sign in to comment.