about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
diff options
context:
space:
mode:
authorJacob Pratt <jacob@jhpratt.dev>2024-04-04 21:16:56 -0400
committerGitHub <noreply@github.com>2024-04-04 21:16:56 -0400
commitfcb0e9d07a3397731acd20059b8adf47b6863cd6 (patch)
tree45c88695597532c6b02dd732929e5a94a0ab5dc0 /compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
parentde2cb0d76c79720eb641e3ebbacf26907eac69dc (diff)
parent92b280ce81e2cf9834ed1965ae4e63e80bce0dc1 (diff)
downloadrust-fcb0e9d07a3397731acd20059b8adf47b6863cd6.tar.gz
rust-fcb0e9d07a3397731acd20059b8adf47b6863cd6.zip
Rollup merge of #123363 - lcnr:normalizes-to-zero-to-inf, r=BoxyUwU
change `NormalizesTo` to fully structurally normalize

notes in https://hackmd.io/wZ016dE4QKGIhrOnHLlThQ

need to also update the dev-guide once this PR lands. in short, the setup is now as follows:

`normalizes-to` internally implements one step normalization, applying that normalization to the `goal.predicate.term` causes the projected term to get recursively normalized. With this `normalizes-to` normalizes until the projected term is rigid, meaning that we normalize as many steps necessary, but at least 1.

To handle rigid aliases, we add another candidate only if the 1 to inf step normalization failed. With this `normalizes-to` is now full structural normalization. We can now change `AliasRelate` to simply emit `normalizes-to` goals for the rhs and lhs.

This avoids the concerns from https://github.com/rust-lang/trait-system-refactor-initiative/issues/103 and generally feels cleaner
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp')
0 files changed, 0 insertions, 0 deletions