rust/compiler/rustc_trait_selection/src
Matthias Krüger 485fd3815c
Rollup merge of #129896 - lcnr:bail-on-unknowable, r=jackh726
do not attempt to prove unknowable goals

In case a goal is unknowable, we previously still checked all other possible ways to prove this goal, even though its final result is already guaranteed to be ambiguous. By ignoring all other candidates in that case we can avoid a lot of unnecessary work, fixing the performance regression in typenum found in #121848.

This is already the behavior in the old solver. This could in theory cause future-compatability issues as considering fewer goals unknowable may end up causing performance regressions/hangs. I am quite confident that this will not be an issue.

r? ``@compiler-errors``
2024-09-03 19:13:26 +02:00
..
error_reporting Rollup merge of #127692 - veera-sivarajan:bugfix-125139, r=estebank 2024-09-03 19:13:23 +02:00
errors Reformat use declarations. 2024-07-29 08:26:52 +10:00
solve Remove #[macro_use] extern crate tracing from rustc_trait_selection. 2024-08-30 17:14:59 +10:00
traits do not attempt to prove unknowable goals 2024-09-03 08:35:23 +02:00
errors.rs Emit specific message for time<0.3.35 inference failure 2024-08-28 22:53:02 +00:00
infer.rs Remove #[macro_use] extern crate tracing from rustc_trait_selection. 2024-08-30 17:14:59 +10:00
lib.rs Add warn(unreachable_pub) to rustc_trait_selection. 2024-09-03 08:49:54 +10:00
regions.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
solve.rs Rename a bunch of things 2024-06-21 12:32:05 -04:00