Module rustc_trait_selection::infer::relate

source ·
Expand description

This module contains the definitions of most TypeRelations in the type system (except for some relations used for diagnostics and heuristics in the compiler). As well as the implementation of Relate for interned things (Ty/Const/etc).

Modules§

Structs§

  • A type “A” matches “B” if the fresh types in B could be instantiated with values so as to make it equal to A. Matching is intended to be used only on freshened types, and it basically indicates if the non-freshened versions of A and B could have been unified.

Enums§

  • Whether aliases should be related structurally or not. Used to adjust the behavior of generalization and combine.
  • Extra information about why we ended up with a particular variance. This is only used to add more information to error messages, and has no effect on soundness. While choosing the ‘wrong’ VarianceDiagInfo may lead to confusing notes in error messages, it will never cause a miscompilation or unsoundness.

Traits§

Functions§

Type Aliases§