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).
Enums§
- StructurallyRelate Aliases 
- Whether aliases should be related structurally or not. Used to adjust the behavior of generalization and combine.
- VarianceDiag Info 
- 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’ VarianceDiagInfomay lead to confusing notes in error messages, it will never cause a miscompilation or unsoundness.
Traits§
Functions§
- relate_args_ invariantly 
- relate_args_ with_ variances 
- structurally_relate_ consts 
- Relates aandbstructurally, calling the relation for all nested values. Any semantic equality, e.g. of unevaluated consts, and inference variables have to be handled by the caller.
- structurally_relate_ tys 
- Relates aandbstructurally, calling the relation for all nested values. Any semantic equality, e.g. of projections, and inference variables have to be handled by the caller.