File tree 1 file changed +2
-2
lines changed
compiler/rustc_infer/src/infer
1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change 5
5
//! Freshening is used primarily to get a good type for inserting into a cache. The result
6
6
//! summarizes what the type inferencer knows "so far". The primary place it is used right now is
7
7
//! in the trait matching algorithm, which needs to be able to cache whether an `impl` self type
8
- //! matches some other type X -- *without* affecting `X`. That means if that if the type `X` is in
8
+ //! matches some other type X -- *without* affecting `X`. That means that if the type `X` is in
9
9
//! fact an unbound type variable, we want the match to be regarded as ambiguous, because depending
10
10
//! on what type that type variable is ultimately assigned, the match may or may not succeed.
11
11
//!
21
21
//! Because of the manipulation required to handle closures, doing arbitrary operations on
22
22
//! freshened types is not recommended. However, in addition to doing equality/hash
23
23
//! comparisons (for caching), it is possible to do a `ty::_match` operation between
24
- //! 2 freshened types - this works even with the closure encoding.
24
+ //! two freshened types - this works even with the closure encoding.
25
25
//!
26
26
//! __An important detail concerning regions.__ The freshener also replaces *all* free regions with
27
27
//! 'erased. The reason behind this is that, in general, we do not take region relationships into
You can’t perform that action at this time.
0 commit comments