<!DOCTYPE HTML>
<html lang="en" class="light sidebar-visible" dir="ltr">
    <head>
        <!-- Book generated using mdBook -->
        <meta charset="UTF-8">
        <title>Aliases and Normalization - Rust Compiler Development Guide</title>


        <!-- Custom HTML head -->

        <meta name="description" content="A guide to developing the Rust compiler (rustc)">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="theme-color" content="#ffffff">

        <link rel="icon" href="favicon.svg">
        <link rel="shortcut icon" href="favicon.png">
        <link rel="stylesheet" href="css/variables.css">
        <link rel="stylesheet" href="css/general.css">
        <link rel="stylesheet" href="css/chrome.css">
        <link rel="stylesheet" href="css/print.css" media="print">

        <!-- Fonts -->
        <link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
        <link rel="stylesheet" href="fonts/fonts.css">

        <!-- Highlight.js Stylesheets -->
        <link rel="stylesheet" id="highlight-css" href="highlight.css">
        <link rel="stylesheet" id="tomorrow-night-css" href="tomorrow-night.css">
        <link rel="stylesheet" id="ayu-highlight-css" href="ayu-highlight.css">

        <!-- Custom theme stylesheets -->
        <link rel="stylesheet" href="pagetoc.css">


        <!-- Provide site root and default themes to javascript -->
        <script>
            const path_to_root = "";
            const default_light_theme = "light";
            const default_dark_theme = "navy";
            window.path_to_searchindex_js = "searchindex.js";
        </script>
        <!-- Start loading toc.js asap -->
        <script src="toc.js"></script>
    </head>
    <body>
    <div id="mdbook-help-container">
        <div id="mdbook-help-popup">
            <h2 class="mdbook-help-title">Keyboard shortcuts</h2>
            <div>
                <p>Press <kbd>←</kbd> or <kbd>→</kbd> to navigate between chapters</p>
                <p>Press <kbd>S</kbd> or <kbd>/</kbd> to search in the book</p>
                <p>Press <kbd>?</kbd> to show this help</p>
                <p>Press <kbd>Esc</kbd> to hide this help</p>
            </div>
        </div>
    </div>
    <div id="body-container">
        <!-- Work around some values being stored in localStorage wrapped in quotes -->
        <script>
            try {
                let theme = localStorage.getItem('mdbook-theme');
                let sidebar = localStorage.getItem('mdbook-sidebar');

                if (theme.startsWith('"') && theme.endsWith('"')) {
                    localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
                }

                if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
                    localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
                }
            } catch (e) { }
        </script>

        <!-- Set the theme before any content is loaded, prevents flash -->
        <script>
            const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
            let theme;
            try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
            if (theme === null || theme === undefined) { theme = default_theme; }
            const html = document.documentElement;
            html.classList.remove('light')
            html.classList.add(theme);
            html.classList.add("js");
        </script>

        <input type="checkbox" id="sidebar-toggle-anchor" class="hidden">

        <!-- Hide / unhide sidebar before it is displayed -->
        <script>
            let sidebar = null;
            const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
            if (document.body.clientWidth >= 1080) {
                try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
                sidebar = sidebar || 'visible';
            } else {
                sidebar = 'hidden';
                sidebar_toggle.checked = false;
            }
            if (sidebar === 'visible') {
                sidebar_toggle.checked = true;
            } else {
                html.classList.remove('sidebar-visible');
            }
        </script>

        <nav id="sidebar" class="sidebar" aria-label="Table of contents">
            <!-- populated by js -->
            <mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
            <noscript>
                <iframe class="sidebar-iframe-outer" src="toc.html"></iframe>
            </noscript>
            <div id="sidebar-resize-handle" class="sidebar-resize-handle">
                <div class="sidebar-resize-indicator"></div>
            </div>
        </nav>

        <div id="page-wrapper" class="page-wrapper">

            <div class="page">
                <div id="menu-bar-hover-placeholder"></div>
                <div id="menu-bar" class="menu-bar sticky">
                    <div class="left-buttons">
                        <label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
                            <i class="fa fa-bars"></i>
                        </label>
                        <button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
                            <i class="fa fa-paint-brush"></i>
                        </button>
                        <ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
                            <li role="none"><button role="menuitem" class="theme" id="default_theme">Auto</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
                            <li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
                        </ul>
                        <button id="search-toggle" class="icon-button" type="button" title="Search (`/`)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="/ s" aria-controls="searchbar">
                            <i class="fa fa-search"></i>
                        </button>
                    </div>

                    <h1 class="menu-title">Rust Compiler Development Guide</h1>

                    <div class="right-buttons">
                        <a href="print.html" title="Print this book" aria-label="Print this book">
                            <i id="print-button" class="fa fa-print"></i>
                        </a>
                        <a href="https://github.com/rust-lang/rustc-dev-guide" title="Git repository" aria-label="Git repository">
                            <i id="git-repository-button" class="fa fa-github"></i>
                        </a>
                        <a href="https://github.com/rust-lang/rustc-dev-guide/edit/master/src/normalization.md" title="Suggest an edit" aria-label="Suggest an edit" rel="edit">
                            <i id="git-edit-button" class="fa fa-edit"></i>
                        </a>

                    </div>
                </div>

                <div id="search-wrapper" class="hidden">
                    <form id="searchbar-outer" class="searchbar-outer">
                        <div class="search-wrapper">
                            <input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
                            <div class="spinner-wrapper">
                                <i class="fa fa-spinner fa-spin"></i>
                            </div>
                        </div>
                    </form>
                    <div id="searchresults-outer" class="searchresults-outer hidden">
                        <div id="searchresults-header" class="searchresults-header"></div>
                        <ul id="searchresults">
                        </ul>
                    </div>
                </div>

                <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
                <script>
                    document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
                    document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
                    Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
                        link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
                    });
                </script>

                <div id="content" class="content">
                    <main>
                        <h1 id="aliases-and-normalization"><a class="header" href="#aliases-and-normalization">Aliases and Normalization</a></h1>
<h2 id="aliases"><a class="header" href="#aliases">Aliases</a></h2>
<p>In Rust there are a number of types that are considered equal to some "underlying" type, for example inherent associated types, trait associated types, free type aliases (<code>type Foo = u32</code>), and opaque types (<code>-&gt; impl RPIT</code>). We consider such types to be "aliases", alias types are represented by the <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_type_ir/enum.TyKind.html#variant.Alias"><code>TyKind::Alias</code></a> variant, with the kind of alias tracked by the <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_type_ir/enum.AliasTyKind.html"><code>AliasTyKind</code></a> enum.</p>
<p>Normalization is the process of taking these alias types and replacing them with the underlying type that they are equal to. For example given some type alias <code>type Foo = u32</code>, normalizing <code>Foo</code> would give <code>u32</code>.</p>
<p>The concept of an alias is not unique to <em>types</em> and the concept also applies to constants/const generics. However, right now in the compiler we don't really treat const aliases as a "first class concept" so this chapter mostly discusses things in the context of types (even though the concepts transfer just fine).</p>
<h3 id="rigid-ambiguous-and-unnormalized-aliases"><a class="header" href="#rigid-ambiguous-and-unnormalized-aliases">Rigid, Ambiguous and Unnormalized Aliases</a></h3>
<p>Aliases can either be "rigid", "ambiguous", or simply unnormalized.</p>
<p>We consider types to be rigid if their "shape" isn't going to change, for example <code>Box</code> is rigid as no amount of normalization can turn a <code>Box</code> into a <code>u32</code>, whereas <code>&lt;vec::IntoIter&lt;u32&gt; as Iterator&gt;::Item</code> is not rigid as it can be normalized to <code>u32</code>.</p>
<p>Aliases are rigid when we will never be able to normalize them further. A concrete example of a <em>rigid</em> alias would be <code>&lt;T as Iterator&gt;::Item</code> in an environment where there is no <code>T: Iterator&lt;Item = ...&gt;</code> bound, only a <code>T: Iterator</code> bound:</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>fn foo&lt;T: Iterator&gt;() {
    // This alias is *rigid*
    let _: &lt;T as Iterator&gt;::Item;
}

fn bar&lt;T: Iterator&lt;Item = u32&gt;&gt;() {
    // This alias is *not* rigid as it can be normalized to `u32`
    let _: &lt;T as Iterator&gt;::Item;
}
<span class="boring">}</span></code></pre></pre>
<p>When an alias can't yet be normalized but may wind up normalizable in the <a href="./typing_parameter_envs.html">current environment</a>, we consider it to be an "ambiguous" alias. This can occur when an alias contains inference variables which prevent being able to determine how the trait is implemented:</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>fn foo&lt;T: Iterator, U: Iterator&gt;() {
    // This alias is considered to be "ambiguous"
    let _: &lt;_ as Iterator&gt;::Item;
}
<span class="boring">}</span></code></pre></pre>
<p>The reason we call them "ambiguous" aliases is because its <em>ambiguous</em> whether this is a rigid alias or not.</p>
<p>The source of the <code>_: Iterator</code> trait impl is <em>ambiguous</em> (i.e. unknown), it could be some <code>impl Iterator for u32</code> or it could be some <code>T: Iterator</code> trait bound, we don't know yet. Depending on why <code>_: Iterator</code> holds the alias could be an unnormalized alias or it could be a rigid alias; it's <em>ambiguous</em> what kind of alias this is.</p>
<p>Finally, an alias can just be unnormalized, <code>&lt;Vec&lt;u32&gt; as IntoIterator&gt;::Iter</code> is an unnormalized alias as it can already be normalized to <code>std::vec::IntoIter&lt;u32&gt;</code>, it just hasn't been done yet.</p>
<hr />
<p>It is worth noting that Free and Inherent aliases cannot be rigid or ambiguous as naming them also implies having resolved the definition of the alias, which specifies the underlying type of the alias.</p>
<h3 id="diverging-aliases"><a class="header" href="#diverging-aliases">Diverging Aliases</a></h3>
<p>An alias is considered to "diverge" if its definition does not specify an underlying non-alias type to normalize to. A concrete example of diverging aliases:</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>type Diverges = Diverges;

trait Trait {
    type DivergingAssoc;
}
impl Trait for () {
    type DivergingAssoc = &lt;() as Trait&gt;::DivergingAssoc;
}
<span class="boring">}</span></code></pre></pre>
<p>In this example both <code>Diverges</code> and <code>DivergingAssoc</code> are "trivial" cases of diverging type aliases where they have been defined as being equal to themselves. There is no underlying type that <code>Diverges</code> can ever be normalized to.</p>
<p>We generally try to error when diverging aliases are defined, but this is entirely a "best effort" check. In the previous example the definitions are "simple enough" to be detected and so errors are emitted. However, in more complex cases, or cases where only some instantiations of generic parameters would result in a diverging alias, we don't emit an error:</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>trait Trait {
    type DivergingAssoc&lt;U: Trait&gt;;
}
impl&lt;T: ?Sized&gt; Trait for T {
    // This alias always diverges but we don't emit an error because
    // the compiler can't "see" that.
    type DivergingAssoc&lt;U: Trait&gt; = &lt;U as Trait&gt;::DivergingAssoc&lt;U&gt;;
}
<span class="boring">}</span></code></pre></pre>
<p>Ultimately this means that we have no guarantee that aliases in the type system are non-diverging. As aliases may only diverge for some specific generic arguments, it also means that we only know whether an alias diverges once it is fully concrete. This means that codegen/const-evaluation also has to handle diverging aliases:</p>
<pre><pre class="playground"><code class="language-rust">trait Trait {
    type Diverges&lt;U: Trait&gt;;
}
impl&lt;T: ?Sized&gt; Trait for T {
    type Diverges&lt;U: Trait&gt; = &lt;U as Trait&gt;::Diverges&lt;U&gt;;
}

fn foo&lt;T: Trait&gt;() {
    let a: T::Diverges&lt;T&gt;;
}

fn main() {
    foo::&lt;()&gt;();
}</code></pre></pre>
<p>In this example we only encounter an error from the diverging alias during codegen of <code>foo::&lt;()&gt;</code>, if the call to <code>foo</code> is removed then no compilation error will be emitted.</p>
<h3 id="opaque-types"><a class="header" href="#opaque-types">Opaque Types</a></h3>
<p>Opaque types are a relatively special kind of alias, and are covered in their own chapter: <a href="./opaque-types-type-alias-impl-trait.html">Opaque types</a>.</p>
<h3 id="const-aliases"><a class="header" href="#const-aliases">Const Aliases</a></h3>
<p>Unlike type aliases, const aliases are not represented directly in the type system, instead const aliases are always an anonymous body containing a path expression to a const item. This means that the only "const alias" in the type system is an anonymous unevaluated const body.</p>
<p>As such there is no <code>ConstKind::Alias(AliasCtKind::Projection/Inherent/Free, _)</code>, instead we only have <code>ConstKind::Unevaluated</code> which is used for representing anonymous constants.</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>fn foo&lt;const N: usize&gt;() {}

const FREE_CONST: usize = 1 + 1;

fn bar() {
    foo::&lt;{ FREE_CONST }&gt;();
    // The const arg is represented with some anonymous constant:
    // ```pseudo-rust
    // const ANON: usize = FREE_CONST; 
    // foo::&lt;ConstKind::Unevaluated(DefId(ANON), [])&gt;();
    // ```
}
<span class="boring">}</span></code></pre></pre>
<p>This is likely to change as const generics functionality is improved, for example <code>feature(associated_const_equality)</code> and <code>feature(min_generic_const_args)</code> both require handling const aliases similarly to types (without an anonymous constant wrapping all const args).</p>
<h2 id="what-is-normalization"><a class="header" href="#what-is-normalization">What is Normalization</a></h2>
<h3 id="structural-vs-deep-normalization"><a class="header" href="#structural-vs-deep-normalization">Structural vs Deep normalization</a></h3>
<p>There are two forms of normalization, structural (sometimes called <em>shallow</em>) and deep. Structural normalization should be thought of as only normalizing the "outermost" part of a type. On the other hand deep normalization will normalize <em>all</em> aliases in a type.</p>
<p>In practice structural normalization can result in more than just the outer layer of the type being normalized, but this behaviour should not be relied upon. Unnormalizable non-rigid aliases making use of bound variables (<code>for&lt;'a&gt;</code>) cannot be normalized by either kind of normalization.</p>
<p>As an example: conceptually, structurally normalizing the type <code>Vec&lt;&lt;u8 as Identity&gt;::Assoc&gt;</code> would be a no-op, whereas deeply normalizing would give <code>Vec&lt;u8&gt;</code>. In practice even structural normalization would give <code>Vec&lt;u8&gt;</code>, though, again, this should not be relied upon.</p>
<p>Changing the alias to use bound variables will result in different behaviour; <code>Vec&lt;for&lt;'a&gt; fn(&lt;&amp;'a u8 as Identity&gt;::Assoc)&gt;</code> would result in no change when structurally normalized, but would result in <code>Vec&lt;for&lt;'a&gt; fn(&amp;'a u8)&gt;</code> when deeply normalized.</p>
<h3 id="core-normalization-logic"><a class="header" href="#core-normalization-logic">Core normalization logic</a></h3>
<p>Structurally normalizing aliases is a little bit more nuanced than replacing the alias with whatever it is defined as being equal to in its definition; the result of normalizing an alias should either be a rigid type or an inference variable (which will later be inferred to a rigid type). To accomplish this we do two things:</p>
<p>First, when normalizing an ambiguous alias it is normalized to an inference variable instead of leaving it as-is, this has two main effects:</p>
<ul>
<li>Even though an inference variable is not a rigid type, it will always wind up inferred <em>to</em> a rigid type so we ensure that the result of normalization will not need to be normalized again</li>
<li>Inference variables are used in all cases where a type is non-rigid, allowing the rest of the compiler to not have to deal with <em>both</em> ambiguous aliases <em>and</em> inference variables</li>
</ul>
<p>Secondly, instead of having normalization directly return the type specified in the definition of the alias, we normalize the type first before returning it<sup class="footnote-reference" id="fr-1-1"><a href="#footnote-1">1</a></sup>. We do this so that normalization is idempotent/callers do not need to run it in a loop.</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span>#![feature(lazy_type_alias)]

<span class="boring">fn main() {
</span>type Foo&lt;T: Iterator&gt; = Bar&lt;T&gt;;
type Bar&lt;T: Iterator&gt; = &lt;T as Iterator&gt;::Item;

fn foo() {
    let a_: Foo&lt;_&gt;;
}
<span class="boring">}</span></code></pre></pre>
<p>In this example:</p>
<ul>
<li>Normalizing <code>Foo&lt;?x&gt;</code> would result in <code>Bar&lt;?x&gt;</code>, except we want to normalize aliases in the type <code>Foo</code> is defined as equal to</li>
<li>Normalizing <code>Bar&lt;?x&gt;</code> would result in <code>&lt;?x as Iterator&gt;::Item</code>, except, again, we want to normalize aliases in the type <code>Bar</code> is defined as equal to</li>
<li>Normalizing <code>&lt;?x as Iterator&gt;::Item</code> results in some new inference variable <code>?y</code>, as <code>&lt;?x as Iterator&gt;::Item</code> is an ambiguous alias</li>
<li>The final result is that normalizing <code>Foo&lt;?x&gt;</code> results in <code>?y</code></li>
</ul>
<h2 id="how-to-normalize"><a class="header" href="#how-to-normalize">How to normalize</a></h2>
<p>When interfacing with the type system it will often be the case that it's necessary to request a type be normalized. There are a number of different entry points to the underlying normalization logic and each entry point should only be used in specific parts of the compiler.</p>
<!-- date-check: May 2025 -->
<p>An additional complication is that the compiler is currently undergoing a transition from the old trait solver to the new trait solver.
As part of this transition our approach to normalization in the compiler has changed somewhat significantly, resulting in some normalization entry points being "old solver only" slated for removal in the long-term once the new solver has stabilized.
The transition can be tracked via the <a href="https://github.com/rust-lang/rust/labels/WG-trait-system-refactor">WG-trait-system-refactor</a> label in Github.</p>
<p>Here is a rough overview of the different entry points to normalization in the compiler:</p>
<ul>
<li><code>infcx.at.structurally_normalize</code></li>
<li><code>infcx.at.(deeply_)?normalize</code></li>
<li><code>infcx.query_normalize</code></li>
<li><code>tcx.normalize_erasing_regions</code></li>
<li><code>traits::normalize_with_depth(_to)</code></li>
<li><code>EvalCtxt::structurally_normalize</code></li>
</ul>
<h3 id="outside-of-the-trait-solver"><a class="header" href="#outside-of-the-trait-solver">Outside of the trait solver</a></h3>
<p>The <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/infer/struct.InferCtxt.html"><code>InferCtxt</code></a> type exposes the "main" ways to normalize during analysis: <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/infer/at/struct.At.html#method.normalize"><code>normalize</code></a>, <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/normalize/trait.NormalizeExt.html#tymethod.deeply_normalize"><code>deeply_normalize</code></a> and <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/trait.StructurallyNormalizeExt.html#tymethod.structurally_normalize_ty"><code>structurally_normalize</code></a>. These functions are often wrapped and re-exposed on various <code>InferCtxt</code> wrapper types, such as <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_typeck/fn_ctxt/struct.FnCtxt.html"><code>FnCtxt</code></a> or <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/struct.ObligationCtxt.html"><code>ObligationCtxt</code></a> with minor API tweaks to handle some arguments or parts of the return type automatically.</p>
<h4 id="structural-inferctxt-normalization"><a class="header" href="#structural-inferctxt-normalization">Structural <code>InferCtxt</code> normalization</a></h4>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/trait.StructurallyNormalizeExt.html#tymethod.structurally_normalize_ty"><code>infcx.at.structurally_normalize</code></a> exposes structural normalization that is able to handle inference variables and regions. It should generally be used whenever inspecting the kind of a type.</p>
<p>Inside of HIR Typeck there is a related method of normalization- <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_typeck/fn_ctxt/struct.FnCtxt.html#method.structurally_resolve_type"><code>fcx.structurally_resolve</code></a>, which will error if the type being resolved is an unresolved inference variable. When the new solver is enabled it will also attempt to structurally normalize the type.</p>
<p>Due to this there is a pattern in HIR typeck where a type is first normalized via <code>normalize</code> (only normalizing in the old solver), and then <code>structurally_resolve</code>'d (only normalizing in the new solver). This pattern should be preferred over calling <code>structurally_normalize</code> during HIR typeck as <code>structurally_resolve</code> will attempt to make inference progress by evaluating goals whereas <code>structurally_normalize</code> does not.</p>
<h4 id="deep-inferctxt-normalization"><a class="header" href="#deep-inferctxt-normalization">Deep <code>InferCtxt</code> normalization</a></h4>
<h5 id="infcxatdeeply_normalize"><a class="header" href="#infcxatdeeply_normalize"><code>infcx.at.(deeply_)?normalize</code></a></h5>
<p>There are two ways to deeply normalize with an <code>InferCtxt</code>, <code>normalize</code> and <code>deeply_normalize</code>. The reason for this is that <code>normalize</code> is a "legacy" normalization entry point used only by the old solver, whereas <code>deeply_normalize</code> is intended to be the long term way to deeply normalize. Both of these methods can handle regions.</p>
<p>When the new solver is stabilized the <code>infcx.at.normalize</code> function will be removed and everything will have been migrated to the new deep or structural normalization methods. For this reason the <code>normalize</code> function is a no-op under the new solver, making it suitable only when the old solver needs normalization but the new solver does not.</p>
<p>Using <code>deeply_normalize</code> will result in errors being emitted when encountering ambiguous aliases<sup class="footnote-reference" id="fr-2-1"><a href="#footnote-2">2</a></sup> as it is not possible to support normalizing <em>all</em> ambiguous aliases to inference variables<sup class="footnote-reference" id="fr-3-1"><a href="#footnote-3">3</a></sup>. <code>deeply_normalize</code> should generally only be used in cases where we do not expect to encounter ambiguous aliases, for example when working with types from item signatures.</p>
<h5 id="infcxquery_normalize"><a class="header" href="#infcxquery_normalize"><code>infcx.query_normalize</code></a></h5>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/infer/at/struct.At.html#method.query_normalize"><code>infcx.query_normalize</code></a> is very rarely used, it has almost all the same restrictions as <code>normalize_erasing_regions</code> (cannot handle inference variables, no diagnostics support) with the main difference being that it retains lifetime information. For this reason <code>normalize_erasing_regions</code> is the better choice in almost all circumstances as it is more efficient due to caching lifetime-erased queries.</p>
<p>In practice <code>query_normalize</code> is used for normalization in the borrow checker, and elsewhere as a performance optimization over <code>infcx.normalize</code>. Once the new solver is stabilized it is expected that <code>query_normalize</code> can be removed from the compiler as the new solvers normalization implementation should be performant enough for it to not be a performance regression.</p>
<h5 id="tcxnormalize_erasing_regions"><a class="header" href="#tcxnormalize_erasing_regions"><code>tcx.normalize_erasing_regions</code></a></h5>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.TyCtxt.html#method.normalize_erasing_regions"><code>normalize_erasing_regions</code></a> is generally used by parts of the compiler that are not doing type system analysis. This normalization entry point does not handle inference variables, lifetimes, or any diagnostics. Lints and codegen make heavy use of this entry point as they typically are working with fully inferred aliases that can be assumed to be well formed (or at least, are not responsible for erroring on).</p>
<h3 id="inside-of-the-trait-solver"><a class="header" href="#inside-of-the-trait-solver">Inside of the trait solver</a></h3>
<p><a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_trait_selection/traits/normalize/fn.normalize_with_depth.html"><code>traits::normalize_with_depth(_to)</code></a> and <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_next_trait_solver/solve/struct.EvalCtxt.html#method.structurally_normalize_term"><code>EvalCtxt::structurally_normalize</code></a> are only used by the internals of the trait solvers (old and new respectively). It is effectively a raw entry point to the internals of how normalization is implemented by each trait solver. Other normalization entry points cannot be used from within the internals of trait solving as it wouldn't handle goal cycles and recursion depth correctly.</p>
<h2 id="whenwhere-to-normalize-old-vs-new-solver"><a class="header" href="#whenwhere-to-normalize-old-vs-new-solver">When/Where to normalize (Old vs New solver)</a></h2>
<p>One of the big changes between the old and new solver is our approach to when we expect aliases to be normalized.</p>
<h3 id="old-solver"><a class="header" href="#old-solver">Old solver</a></h3>
<p>All types are expected to be normalized as soon as possible, so that all types encountered in the type system are either rigid or an inference variable (which will later be inferred to a rigid term).</p>
<p>As a concrete example: equality of aliases is implemented by assuming they're rigid and recursively equating the generic arguments of the alias.</p>
<h3 id="new-solver"><a class="header" href="#new-solver">New solver</a></h3>
<p>It's expected that all types potentially contain ambiguous or unnormalized aliases. Whenever an operation is performed that requires aliases to be normalized, it's the responsibility of that logic to normalize the alias (this means that matching on <code>ty.kind()</code> pretty much always has to structurally normalize first).</p>
<p>As a concrete example: equality of aliases is implemented by a custom goal kind (<a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/type.PredicateKind.html#variant.AliasRelate"><code>PredicateKind::AliasRelate</code></a>) so that it can handle normalization of the aliases itself instead of assuming all alias types being equated are rigid.</p>
<p>Despite this approach we still deeply normalize during <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_typeck/writeback/index.html">writeback</a> for performance/simplicity, so that types in the MIR can still be assumed to have been deeply normalized.</p>
<hr />
<p>There were a few main issues with the old solver's approach to normalization that motivated changing things in the new solver:</p>
<h3 id="missing-normalization-calls"><a class="header" href="#missing-normalization-calls">Missing normalization calls</a></h3>
<p>It was a frequent occurrence that normalization calls would be missing, resulting in passing unnormalized types to APIs expecting everything to already be normalized. Treating ambiguous or unnormalized aliases as rigid would result in all sorts of weird errors from aliases not being considered equal to one another, or surprising inference guidance from equating unnormalized aliases' generic arguments.</p>
<h3 id="normalizing-parameter-environments"><a class="header" href="#normalizing-parameter-environments">Normalizing parameter environments</a></h3>
<p>Another problem was that it was not possible to normalize <code>ParamEnv</code>s correctly in the old solver as normalization itself would expect a normalized <code>ParamEnv</code> in order to give correct results. See the chapter on <code>ParamEnv</code>s for more information: <a href="./typing_parameter_envs.html#normalizing-all-bounds"><code>Typing/ParamEnv</code>s: Normalizing all bounds</a></p>
<h3 id="unnormalizable-non-rigid-aliases-in-higher-ranked-types"><a class="header" href="#unnormalizable-non-rigid-aliases-in-higher-ranked-types">Unnormalizable non-rigid aliases in higher ranked types</a></h3>
<p>Given a type such as <code>for&lt;'a&gt; fn(&lt;?x as Trait&lt;'a&gt;::Assoc&gt;)</code>, it is not possible to correctly handle this with the old solver's approach to normalization.</p>
<p>If we were to normalize it to <code>for&lt;'a&gt; fn(?y)</code> and register a goal to normalize <code>for&lt;'a&gt; &lt;?x as Trait&lt;'a&gt;&gt;::Assoc -&gt; ?y</code>, this would result in errors in cases where <code>&lt;?x as Trait&lt;'a&gt;&gt;::Assoc</code> normalized to <code>&amp;'a u32</code>. The inference variable <code>?y</code> would be in a lower <a href="borrow_check/region_inference/placeholders_and_universes.html#what-is-a-universe">universe</a> than the placeholders made when instantiating the <code>for&lt;'a&gt;</code> binder.</p>
<p>Leaving the alias unnormalized would also be wrong as the old solver expects all aliases to be rigid. This was a soundness bug before the new solver was stabilized in coherence: <a href="https://github.com/rust-lang/rust/issues/102048">relating projection substs is unsound during coherence</a>.</p>
<p>Ultimately this means that it is not always possible to ensure all aliases inside of a value are rigid.</p>
<h2 id="handling-uses-of-diverging-aliases"><a class="header" href="#handling-uses-of-diverging-aliases">Handling uses of diverging aliases</a></h2>
<p>Diverging aliases, like ambiguous aliases, are normalized to inference variables. As normalizing diverging aliases results in trait solver cycles, it always results in an error in the old solver. In the new solver it only results in an error if we wind up requiring all goals to hold in the current context. E.g. normalizing diverging aliases during HIR typeck will result in an error in both solvers.</p>
<p>Alias well formedness doesn't require that the alias doesn't diverge<sup class="footnote-reference" id="fr-4-1"><a href="#footnote-4">4</a></sup>, this means that checking an alias is well formed isn't sufficient to cause an error to be emitted for diverging aliases; actually attempting to normalize the alias is required.</p>
<p>Erroring on diverging aliases being a side effect of normalization means that it is very <em>arbitrary</em> whether we actually emit an error, it also differs between the old and new solver as we now normalize in less places.</p>
<p>An example of the ad-hoc nature of erroring on diverging aliases causing "problems":</p>
<pre><pre class="playground"><code class="language-rust"><span class="boring">#![allow(unused)]
</span><span class="boring">fn main() {
</span>trait Trait {
    type Diverges&lt;D: Trait&gt;;
}

impl&lt;T&gt; Trait for T {
    type Diverges&lt;D: Trait&gt; = D::Diverges&lt;D&gt;;
}

struct Bar&lt;T: ?Sized = &lt;u8 as Trait&gt;::Diverges&lt;u8&gt;&gt;(Box&lt;T&gt;);
<span class="boring">}</span></code></pre></pre>
<p>In this example a diverging alias is used but we happen to not emit an error as we never explicitly normalize the defaults of generic parameters. If the <code>?Sized</code> opt out is removed then an error is emitted because we wind up happening to normalize a <code>&lt;u8 as Trait&gt;::Diverges&lt;u8&gt;: Sized</code> goal which as a side effect results in erroring about the diverging alias.</p>
<p>Const aliases differ from type aliases a bit here; well formedness of const aliases requires that they can be successfully evaluated (via <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/type.ClauseKind.html#variant.ConstEvaluatable"><code>ConstEvaluatable</code></a> goals). This means that simply checking well formedness of const arguments is sufficient to error if they would fail to evaluate. It is somewhat unclear whether it would make sense to adopt this for type aliases too or if const aliases should stop requiring this for well formedness<sup class="footnote-reference" id="fr-5-1"><a href="#footnote-5">5</a></sup>.</p>
<hr>
<ol class="footnote-definition"><li id="footnote-1">
<p>In the new solver this is done implicitly <a href="#fr-1-1">↩</a></p>
</li>
<li id="footnote-2">
<p>There is a subtle difference in how ambiguous aliases in binders are handled between old and new solver. In the old solver we fail to error on some ambiguous aliases inside of higher ranked types whereas the new solver correctly errors. <a href="#fr-2-1">↩</a></p>
</li>
<li id="footnote-3">
<p>Ambiguous aliases inside of binders cannot be normalized to inference variables, this will be covered more later. <a href="#fr-3-1">↩</a></p>
</li>
<li id="footnote-4">
<p>As checking aliases are non-diverging cannot be done until they are fully concrete, this would either imply that we cant check aliases are well formed before codegen/const-evaluation or that aliases would go from being well-formed to not well-formed after monomorphization. <a href="#fr-4-1">↩</a></p>
</li>
<li id="footnote-5">
<p>Const aliases certainly wouldn't be <em>less</em> sound than type aliases if we stopped doing this <a href="#fr-5-1">↩</a></p>
</li>
</ol>
                    </main>

                    <nav class="nav-wrapper" aria-label="Page navigation">
                        <!-- Mobile navigation buttons -->
                            <a rel="prev" href="ty-fold.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                                <i class="fa fa-angle-left"></i>
                            </a>

                            <a rel="next prefetch" href="typing_parameter_envs.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                                <i class="fa fa-angle-right"></i>
                            </a>

                        <div style="clear: both"></div>
                    </nav>
                </div>
            </div>

            <nav class="nav-wide-wrapper" aria-label="Page navigation">
                    <a rel="prev" href="ty-fold.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
                        <i class="fa fa-angle-left"></i>
                    </a>

                    <a rel="next prefetch" href="typing_parameter_envs.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
                        <i class="fa fa-angle-right"></i>
                    </a>
            </nav>

        </div>




        <script>
            window.playground_copyable = true;
        </script>


        <script src="elasticlunr.min.js"></script>
        <script src="mark.min.js"></script>
        <script src="searcher.js"></script>

        <script src="clipboard.min.js"></script>
        <script src="highlight.js"></script>
        <script src="book.js"></script>

        <!-- Custom JS scripts -->
        <script src="mermaid.min.js"></script>
        <script src="mermaid-init.js"></script>
        <script src="pagetoc.js"></script>



    </div>
    </body>
</html>
