Module rustc_middle::ty::print

source ·



  • Adds the crate:: prefix to paths where appropriate.
  • Force us to name impls with just the filename/line number. We normally try to use types. But at some points, notably while printing cycle errors, this can result in extra or suboptimal error output, so this variable disables that check.
  • Avoids running any queries during any prints that occur during the closure. This may alter the appearance of some types (e.g. forcing verbose printing for opaque types). This method is used during some queries (e.g. explicit_item_bounds for opaque types), to ensure that any debug printing that occurs during the query computation does not end up recursively calling the same query.
  • Prevent path trimming if it is turned on. Path trimming affects Display impl of various rustc types, for example std::vec::Vec would be trimmed to Vec, if no other Vec is found.
  • Prevent selection of visible paths. Display impl of DefId will prefer visible (public) reexports of types as paths.



  • Trait for printers that pretty-print using fmt::Write to the printer.
  • Interface for outputting user-facing “type-system entities” (paths, types, lifetimes, constants, etc.) as a side-effect (e.g. formatting, like PrettyPrinter implementors do) or by constructing some alternative representation (e.g. an AST), which the associated types allow passing through the methods.