diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-10-30 06:40:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-30 06:40:34 +0100 |
| commit | 305508f9697745bd9143bf7f225d16435eedf715 (patch) | |
| tree | a732f82fd483f0cb1e6bbc4239f8e64da7a341e6 /compiler/rustc_codegen_gcc | |
| parent | 87d348b3339e81151b93ac76c1c5a2f2c9c7455d (diff) | |
| parent | 524a22e79057f2db0053bd002262fa88ea1a9947 (diff) | |
| download | rust-305508f9697745bd9143bf7f225d16435eedf715.tar.gz rust-305508f9697745bd9143bf7f225d16435eedf715.zip | |
Rollup merge of #131856 - lcnr:typing-mode, r=compiler-errors
TypingMode: merge intercrate, reveal, and defining_opaque_types This adds `TypingMode` and uses it in most places. We do not yet remove `Reveal` from `param_env`s. This and other future work as tracked in #132279 and via `FIXME`s. Fetching the `TypingMode` of the `InferCtxt` asserts that the `TypingMode` agrees with `ParamEnv::reveal` to make sure we don't introduce any subtle bugs here. This will be unnecessary once `ParamEnv::reveal` no longer exists. As the `TypingMode` is now a part of the query input, I've merged the coherence and non-coherence caches for the new solver. I've also enabled the local `infcx` cache during coherence by clearing the cache when forking it with a different `TypingMode`. #### `TypingMode::from_param_env` I am using this even in cases where I know that the `param_env` will always be `Reveal::UserFacing`. This is to make it easier to correctly refactor this code in the future, any time we use `Reveal::UserFacing` in a body while not defining its opaque types is incorrect and should use a `TypingMode` which only reveals opaques defined by that body instead, cc #124598 r? ``@compiler-errors``
Diffstat (limited to 'compiler/rustc_codegen_gcc')
0 files changed, 0 insertions, 0 deletions
