about summary refs log tree commit diff
path: root/compiler/rustc_codegen_gcc/src/errors.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-11-17 10:16:41 +0000
committerbors <bors@rust-lang.org>2023-11-17 10:16:41 +0000
commit78efca8845f5f220db4722f32fd51641e915684c (patch)
tree6501657150884d8b24b287804aea30399eab777c /compiler/rustc_codegen_gcc/src/errors.rs
parentee5ef3aac9cfa6c51457f9afc720071212362d7c (diff)
parentfce71adf31cde954f16795269c00a82b24df9238 (diff)
downloadrust-78efca8845f5f220db4722f32fd51641e915684c.tar.gz
rust-78efca8845f5f220db4722f32fd51641e915684c.zip
Auto merge of #117278 - lcnr:try-normalize-ty, r=compiler-errors
new solver normalization improvements

cool beans

At the core of this PR is a `try_normalize_ty` which stops for rigid aliases by using `commit_if_ok`.

Reworks alias-relate to fully normalize both the lhs and rhs and then equate the resulting rigid (or inference) types. This fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/68 by avoiding the exponential blowup. Also supersedes #116369 by only defining opaque types if the hidden type is rigid.

I removed the stability check in `EvalCtxt::evaluate_goal` due to https://github.com/rust-lang/trait-system-refactor-initiative/issues/75. While I personally have opinions on how to fix it, that still requires further t-types/`@nikomatsakis` buy-in, so I removed that for now. Once we've decided on our approach there, we can revert this commit.

r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_codegen_gcc/src/errors.rs')
0 files changed, 0 insertions, 0 deletions