rust/src
bors 0b71ffca18 Auto merge of #100654 - compiler-errors:rework-point-at-arg, r=estebank
Rework "point at arg" suggestions to be more accurate

Fixes #100560

Introduce a new set of `ObligationCauseCode`s which have additional bookeeping for what expression caused the obligation, and which predicate caused the obligation. This allows us to look at the _unsubstituted_ signature to find out which parameter or generic type argument caused an obligaton to fail.

This means that (in most cases) we significantly improve the likelihood of pointing out the right argument that causes a fulfillment error. Also, since this logic isn't happening in just the `select_where_possible_and_mutate_fulfillment()` calls in the argument checking code, but instead during all trait selection in `FnCtxt`, we are also able to point out the correct argument even if inference means that we don't know whether an obligation has failed until well after a call expression has been checked.

r? `@ghost`
2022-08-21 21:52:56 +00:00
..
bootstrap
ci
doc
etc
librustdoc Auto merge of #100847 - matthiaskrgr:rollup-0ga531s, r=matthiaskrgr 2022-08-21 19:05:18 +00:00
llvm-project@e3be3f64ec
rustdoc-json-types
test Auto merge of #100654 - compiler-errors:rework-point-at-arg, r=estebank 2022-08-21 21:52:56 +00:00
tools update Miri 2022-08-21 08:57:07 -04:00
README.md
stage0.json
version

This directory contains the source code of the rust project, including:

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.