rustdoc::clean::simplify - Rust (original) (raw)

Expand description

Simplification of where-clauses and parameter bounds into a prettier and more canonical form.

Currently all cross-crate-inlined function use rustc_middle::ty to reconstruct the AST (e.g., see all of clean::inline), but this is not always a non-lossy transformation. The current format of storage for where-clauses for functions and such is simply a list of predicates. One example of this is that the AST predicate of: where T: Trait<Foo = Bar> is encoded as:where T: Trait, <T as Trait>::Foo = Bar.

This module attempts to reconstruct the original where and/or parameter bounds by special casing scenarios such as these. Fun!

merge_bounds 🔒

move_bounds_to_generic_parameters 🔒

Move bounds that are (likely) directly attached to generic parameters from the where-clause to the respective parameter.

sized_bounds 🔒

trait_is_same_or_supertrait 🔒

where_clauses 🔒