rust/src
bors 052495d001 Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser
don't succeed `evaluate_obligation` query if new opaque types were registered

fixes #98608
fixes #98604

The root cause of all this is that in type flag computation we entirely ignore nongeneric things like struct fields and the signature of function items. So if a flag had to be set for a struct if it is set for a field, that will only happen if the field is generic, as only the generic parameters are checked.

I now believe we cannot use type flags to handle opaque types. They seem like the wrong tool for this.

Instead, this PR replaces the previous logic by adding a new variant of `EvaluatedToOk`: `EvaluatedToOkModuloOpaqueTypes`, which says that there were some opaque types that got hidden types bound, but that binding may not have been legal (because we don't know if the opaque type was in its defining scope or not).
2022-07-08 17:55:26 +00:00
..
bootstrap Rollup merge of #98798 - jyn514:download-rustc-cached, r=Mark-Simulacrum 2022-07-08 08:00:39 +02:00
ci Auto merge of #98439 - ehuss:cleanup-ci-script, r=Mark-Simulacrum 2022-07-03 19:39:28 +00:00
doc Update books 2022-07-05 11:44:56 -07:00
etc Rollup merge of #95446 - notseanray:master, r=Mark-Simulacrum 2022-06-22 15:16:08 +09:00
librustdoc Rollup merge of #95635 - davidtwco:terminal-width-stabilization, r=oli-obk 2022-07-08 08:00:36 +02:00
llvm-project@8b6b5014fd Update llvm-project 2022-07-05 17:57:29 +02:00
rustdoc-json-types rustdoc-json: Fix HRTBs for WherePredicate::BoundPredicate 2022-05-04 21:03:01 +02:00
test Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
tools Rollup merge of #99026 - anall:buffix/clippy-9131, r=xFrednet 2022-07-08 08:00:41 +02:00
README.md
stage0.json bump stage0 compiler 2022-06-29 15:35:30 +02:00
version bump version to 1.64.0 2022-06-24 17:27:24 +02:00

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.