Fix index out of bounds issues in rustdoc
This commit is contained in:
parent
9709a43872
commit
c6b90d2800
@ -1740,7 +1740,7 @@ impl Type {
|
|||||||
fn inner_def_id(&self, cache: Option<&Cache>) -> Option<DefId> {
|
fn inner_def_id(&self, cache: Option<&Cache>) -> Option<DefId> {
|
||||||
let t: PrimitiveType = match *self {
|
let t: PrimitiveType = match *self {
|
||||||
Type::Path { ref path } => return Some(path.def_id()),
|
Type::Path { ref path } => return Some(path.def_id()),
|
||||||
DynTrait(ref bounds, _) => return Some(bounds[0].trait_.def_id()),
|
DynTrait(ref bounds, _) => return bounds.get(0).map(|b| b.trait_.def_id()),
|
||||||
Primitive(p) => return cache.and_then(|c| c.primitive_locations.get(&p).cloned()),
|
Primitive(p) => return cache.and_then(|c| c.primitive_locations.get(&p).cloned()),
|
||||||
BorrowedRef { type_: box Generic(..), .. } => PrimitiveType::Reference,
|
BorrowedRef { type_: box Generic(..), .. } => PrimitiveType::Reference,
|
||||||
BorrowedRef { ref type_, .. } => return type_.inner_def_id(cache),
|
BorrowedRef { ref type_, .. } => return type_.inner_def_id(cache),
|
||||||
|
@ -322,8 +322,7 @@ fn get_index_type_id(clean_type: &clean::Type) -> Option<RenderTypeId> {
|
|||||||
match *clean_type {
|
match *clean_type {
|
||||||
clean::Type::Path { ref path, .. } => Some(RenderTypeId::DefId(path.def_id())),
|
clean::Type::Path { ref path, .. } => Some(RenderTypeId::DefId(path.def_id())),
|
||||||
clean::DynTrait(ref bounds, _) => {
|
clean::DynTrait(ref bounds, _) => {
|
||||||
let path = &bounds[0].trait_;
|
bounds.get(0).map(|b| RenderTypeId::DefId(b.trait_.def_id()))
|
||||||
Some(RenderTypeId::DefId(path.def_id()))
|
|
||||||
}
|
}
|
||||||
clean::Primitive(p) => Some(RenderTypeId::Primitive(p)),
|
clean::Primitive(p) => Some(RenderTypeId::Primitive(p)),
|
||||||
clean::BorrowedRef { ref type_, .. } | clean::RawPointer(_, ref type_) => {
|
clean::BorrowedRef { ref type_, .. } | clean::RawPointer(_, ref type_) => {
|
||||||
|
7
src/test/rustdoc-ui/issue-106213.rs
Normal file
7
src/test/rustdoc-ui/issue-106213.rs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// compile-flags: --document-private-items
|
||||||
|
// edition:2021
|
||||||
|
|
||||||
|
fn use_avx() -> dyn {
|
||||||
|
//~^ ERROR at least one trait is required for an object type
|
||||||
|
!( ident_error )
|
||||||
|
}
|
9
src/test/rustdoc-ui/issue-106213.stderr
Normal file
9
src/test/rustdoc-ui/issue-106213.stderr
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
error[E0224]: at least one trait is required for an object type
|
||||||
|
--> $DIR/issue-106213.rs:4:17
|
||||||
|
|
|
||||||
|
LL | fn use_avx() -> dyn {
|
||||||
|
| ^^^
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0224`.
|
Loading…
x
Reference in New Issue
Block a user