rust/compiler/rustc_trait_selection/src
Matthias Krüger 5ebacd1b3c
Rollup merge of #135965 - estebank:shorten-ty-sugg, r=lcnr
In "specify type" suggestion, skip type params that are already known

When we suggest specifying a type for an expression or pattern, like in a `let` binding, we previously would print the entire type as the type system knew it. We now look at the params that have *no* inference variables, so they are fully known to the type system which means that they don't need to be specified.

This helps in suggestions for types that are really long, because we can usually skip most of the type params and make the annotation as short as possible:

```
error[E0282]: type annotations needed for `Result<_, ((..., ..., ..., ...), ..., ..., ...)>`
  --> $DIR/really-long-type-in-let-binding-without-sufficient-type-info.rs:7:9
   |
LL |     let y = Err(x);
   |         ^   ------ type must be known at this point
   |
help: consider giving `y` an explicit type, where the type for type parameter `T` is specified
   |
LL |     let y: Result<T, _> = Err(x);
   |          ++++++++++++++
```

Fix #135919.
2025-02-12 06:07:36 +01:00
..
error_reporting Rollup merge of #135965 - estebank:shorten-ty-sugg, r=lcnr 2025-02-12 06:07:36 +01:00
errors introduce LateParamRegionKind 2024-12-18 16:05:44 +01:00
solve Rustfmt 2025-02-08 22:12:13 +00:00
traits Rollup merge of #136584 - oli-obk:pattern-types-generic, r=BoxyUwU 2025-02-11 02:53:44 +01:00
errors.rs Tweak fn pointer suggestion span 2025-02-02 00:46:02 +00:00
infer.rs Suggest Semicolon in Incorrect Repeat Expressions 2024-12-21 02:30:50 +00:00
lib.rs consistently handle global where-bounds 2024-12-17 08:50:47 +01:00
regions.rs Move param env bound deep normalization to OutlivesEnvironment building 2025-01-28 19:11:05 +00:00
solve.rs impossible obligations check fast path 2024-10-10 06:09:50 -04:00