let mut implementor_dups: FxHashMap<Symbol, (DefId, bool)> = FxHashMap::default();
for implementor in implementors {
match implementor.inner_impl().for_ {
- clean::Type::ResolvedPath { ref path }
- | clean::BorrowedRef {
- type_: box clean::Type::ResolvedPath { ref path }, ..
- } if !path.is_assoc_ty() => {
+ clean::Type::Path { ref path }
+ | clean::BorrowedRef { type_: box clean::Type::Path { ref path }, .. }
+ if !path.is_assoc_ty() =>
+ {
let did = path.def_id();
let &mut (prev_did, ref mut has_duplicates) =
implementor_dups.entry(path.last()).or_insert((did, false));
) {
// If there's already another implementor that has the same abridged name, use the
// full path, for example in `std::iter::ExactSizeIterator`
- let use_absolute =
- match implementor.inner_impl().for_ {
- clean::Type::ResolvedPath { ref path, .. }
- | clean::BorrowedRef {
- type_: box clean::Type::ResolvedPath { ref path, .. }, ..
- } if !path.is_assoc_ty() => implementor_dups[&path.last()].1,
- _ => false,
- };
+ let use_absolute = match implementor.inner_impl().for_ {
+ clean::Type::Path { ref path, .. }
+ | clean::BorrowedRef { type_: box clean::Type::Path { ref path, .. }, .. }
+ if !path.is_assoc_ty() =>
+ {
+ implementor_dups[&path.last()].1
+ }
+ _ => false,
+ };
render_impl(
w,
cx,
the type was too big.</p>"
);
}
+ Err(LayoutError::NormalizationFailure(_, _)) => {
+ writeln!(
+ w,
+ "<p><strong>Note:</strong> Encountered an error during type layout; \
+ the type failed to be normalized.</p>"
+ )
+ }
}
writeln!(w, "</div>");