Fix heading levels in the query chapter (#1305)

This should fix the incorrect TOC rendering in #1303.
This commit is contained in:
Noah Lev 2022-02-17 13:48:36 -08:00 committed by GitHub
parent 8c29f8a37c
commit 6d4d4c47d7
1 changed files with 7 additions and 7 deletions

View File

@ -43,7 +43,7 @@ compiler (for example, generating [MIR](./mir/)) currently work exactly like thi
in-depth description of what queries are and how they work. in-depth description of what queries are and how they work.
If you intend to write a query of your own, this is a good read. If you intend to write a query of your own, this is a good read.
### Invoking queries ## Invoking queries
Invoking a query is simple. The [`TyCtxt`] ("type context") struct offers a method Invoking a query is simple. The [`TyCtxt`] ("type context") struct offers a method
for each defined query. For example, to invoke the `type_of` for each defined query. For example, to invoke the `type_of`
@ -55,7 +55,7 @@ let ty = tcx.type_of(some_def_id);
[`TyCtxt`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.TyCtxt.html [`TyCtxt`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.TyCtxt.html
### How the compiler executes a query ## How the compiler executes a query
So you may be wondering what happens when you invoke a query So you may be wondering what happens when you invoke a query
method. The answer is that, for each query, the compiler maintains a method. The answer is that, for each query, the compiler maintains a
@ -64,7 +64,7 @@ simple: we clone the return value out of the cache and return it
(therefore, you should try to ensure that the return types of queries (therefore, you should try to ensure that the return types of queries
are cheaply cloneable; insert an `Rc` if necessary). are cheaply cloneable; insert an `Rc` if necessary).
#### Providers ### Providers
If, however, the query is *not* in the cache, then the compiler will If, however, the query is *not* in the cache, then the compiler will
try to find a suitable **provider**. A provider is a function that has try to find a suitable **provider**. A provider is a function that has
@ -97,7 +97,7 @@ fn provider<'tcx>(
Providers take two arguments: the `tcx` and the query key. Providers take two arguments: the `tcx` and the query key.
They return the result of the query. They return the result of the query.
#### How providers are setup ### How providers are setup
When the tcx is created, it is given the providers by its creator using When the tcx is created, it is given the providers by its creator using
the [`Providers`][providers_struct] struct. This struct is generated by the [`Providers`][providers_struct] struct. This struct is generated by
@ -164,7 +164,7 @@ they define both a `provide` and a `provide_extern` function, through
[rustc_metadata]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/index.html [rustc_metadata]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/index.html
[wasm_import_module_map]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/back/symbol_export/fn.wasm_import_module_map.html [wasm_import_module_map]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/back/symbol_export/fn.wasm_import_module_map.html
### Adding a new query ## Adding a new query
How do you add a new query? How do you add a new query?
Defining a query takes place in two steps: Defining a query takes place in two steps:
@ -238,7 +238,7 @@ which is used to cheaply modify MIR in place. See the definition
of `Steal` for more details. New uses of `Steal` should **not** be of `Steal` for more details. New uses of `Steal` should **not** be
added without alerting `@rust-lang/compiler`. added without alerting `@rust-lang/compiler`.
#### Query structs and descriptions ### Query structs and descriptions
For each query, the `rustc_queries` macro will generate a "query struct" For each query, the `rustc_queries` macro will generate a "query struct"
named after the query. This struct is a kind of placeholder named after the query. This struct is a kind of placeholder
@ -294,7 +294,7 @@ rustc_queries! {
`rustc_queries` macro will generate an appropriate `impl` automatically. `rustc_queries` macro will generate an appropriate `impl` automatically.
## External Links ## External links
Related design ideas, and tracking issues: Related design ideas, and tracking issues: