mirror of https://github.com/rust-lang/rust.git
rustdoc: fix type search when more than one `where` clause applies
This commit is contained in:
parent
a6446c53fe
commit
44813e038c
|
@ -484,7 +484,7 @@ fn add_generics_and_bounds_as_types<'tcx, 'a>(
|
||||||
// for its bounds.
|
// for its bounds.
|
||||||
if let Type::Generic(arg_s) = *arg {
|
if let Type::Generic(arg_s) = *arg {
|
||||||
// First we check if the bounds are in a `where` predicate...
|
// First we check if the bounds are in a `where` predicate...
|
||||||
if let Some(where_pred) = generics.where_predicates.iter().find(|g| match g {
|
for where_pred in generics.where_predicates.iter().filter(|g| match g {
|
||||||
WherePredicate::BoundPredicate { ty: Type::Generic(ty_s), .. } => *ty_s == arg_s,
|
WherePredicate::BoundPredicate { ty: Type::Generic(ty_s), .. } => *ty_s == arg_s,
|
||||||
_ => false,
|
_ => false,
|
||||||
}) {
|
}) {
|
||||||
|
|
|
@ -1,7 +1,18 @@
|
||||||
const QUERY = 'option, fnonce -> option';
|
const QUERY = [
|
||||||
|
'option, fnonce -> option',
|
||||||
|
'option -> default',
|
||||||
|
];
|
||||||
|
|
||||||
const EXPECTED = {
|
const EXPECTED = [
|
||||||
'others': [
|
{
|
||||||
{ 'path': 'std::option::Option', 'name': 'map' },
|
'others': [
|
||||||
],
|
{ 'path': 'std::option::Option', 'name': 'map' },
|
||||||
};
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'others': [
|
||||||
|
{ 'path': 'std::option::Option', 'name': 'unwrap_or_default' },
|
||||||
|
{ 'path': 'std::option::Option', 'name': 'get_or_insert_default' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
const QUERY = ['trait<nested>', '-> trait<nested>', 't1, t2', '-> shazam'];
|
const QUERY = ['trait<nested>', '-> trait<nested>', 't1, t2', '-> shazam', 'drizzel -> shazam'];
|
||||||
|
|
||||||
const EXPECTED = [
|
const EXPECTED = [
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,12 @@ const EXPECTED = [
|
||||||
{
|
{
|
||||||
'others': [
|
'others': [
|
||||||
{ 'path': 'where_clause', 'name': 'bippety' },
|
{ 'path': 'where_clause', 'name': 'bippety' },
|
||||||
|
{ 'path': 'where_clause::Drizzel', 'name': 'boppety' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'others': [
|
||||||
|
{ 'path': 'where_clause::Drizzel', 'name': 'boppety' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -20,3 +20,11 @@ pub trait Shazam {}
|
||||||
pub fn bippety<X>() -> &'static X where X: Shazam {
|
pub fn bippety<X>() -> &'static X where X: Shazam {
|
||||||
panic!()
|
panic!()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct Drizzel<T>(T);
|
||||||
|
|
||||||
|
impl<T> Drizzel<T> {
|
||||||
|
pub fn boppety(&self) -> &T where T: Shazam {
|
||||||
|
panic!();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue