rust/src
bors 6e87bacd37 Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis
Normalize all opaque types when converting ParamEnv to Reveal::All

When we normalize a type using a ParamEnv with a reveal mode of
RevealMode::All, we will normalize opaque types to their underlying
types (e.g. `type MyOpaque = impl Foo` -> `StructThatImplsFoo`).
However, the ParamEnv may still have predicates referring to the
un-normalized opaque type (e.g. `<T as MyTrait<MyOpaque>>`). This can
cause trait projection to fail, since a type containing normalized
opaque types will not match up with the un-normalized type in the
`ParamEnv`.

To fix this, we now explicitly normalize all opaque types in
caller_bounds of a `ParamEnv` when changing its mode to
`RevealMode::All`. This ensures that all predicatse will refer to the
underlying types of any opaque types involved, allowing them to be
matched up properly during projection. To reflect the fact that
normalization is occuring, `ParamEnv::with_reveal_all` is renamed to
`ParamEnv::with_reveal_all_normalized`

Fixes #65918
2020-07-31 18:14:59 +00:00
..
bootstrap Auto merge of #74682 - alexcrichton:backtrace-gimli-round-2, r=Mark-Simulacrum 2020-07-30 23:22:09 +00:00
build_helper build: Harden env var tracking in build scripts 2020-07-22 19:51:19 +03:00
ci Auto merge of #74844 - asomers:freebsd-profiler, r=pietroalbini 2020-07-31 12:27:13 +00:00
doc Auto merge of #74926 - Manishearth:rename-lint, r=jyn514 2020-07-31 02:20:47 +00:00
etc Avoid bool-like naming 2020-07-29 10:48:00 +00:00
librustc_apfloat
librustc_arena
librustc_ast build: Remove unnecessary cargo:rerun-if-env-changed annotations 2020-07-22 19:12:32 +03:00
librustc_ast_lowering Hygiene serialization implementation 2020-07-26 18:37:02 -04:00
librustc_ast_passes tweak wording 2020-07-23 08:14:39 +02:00
librustc_ast_pretty Auto merge of #74175 - nnethercote:more-static-symbols, r=oli-obk 2020-07-15 00:16:25 +00:00
librustc_attr Rollup merge of #74572 - Mark-Simulacrum:unify-rustc-depr, r=petrochenkov 2020-07-24 18:56:27 +09:00
librustc_builtin_macros Remove ExtCtxt::ident_of. 2020-07-17 08:28:19 +10:00
librustc_codegen_llvm Rust function-level coverage now works on external crates 2020-07-30 12:25:39 -07:00
librustc_codegen_ssa Rust function-level coverage now works on external crates 2020-07-30 12:25:39 -07:00
librustc_data_structures Auto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb 2020-07-21 03:09:04 +00:00
librustc_driver build: Remove unnecessary cargo:rerun-if-env-changed annotations 2020-07-22 19:12:32 +03:00
librustc_error_codes Rollup merge of #74907 - GuillaumeGomez:cleanup-e0740, r=pickfire 2020-07-30 13:04:38 -07:00
librustc_errors apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_expand Auto merge of #74653 - petrochenkov:pmenv, r=dtolnay 2020-07-27 05:50:29 +00:00
librustc_feature Rollup merge of #73868 - ecstatic-morse:fix-stable-version, r=jonas-schievink 2020-07-22 16:34:37 -07:00
librustc_fs_util
librustc_graphviz
librustc_hir Increase accuracy of lifetime bound on trait object impl suggestion 2020-07-22 12:25:54 -07:00
librustc_hir_pretty Remove lots of Symbol::as_str() calls. 2020-07-15 09:01:35 +10:00
librustc_incremental build: Remove unnecessary cargo:rerun-if-env-changed annotations 2020-07-22 19:12:32 +03:00
librustc_index Auto merge of #69749 - davidtwco:issue-46477-polymorphization, r=eddyb 2020-07-21 03:09:04 +00:00
librustc_infer fix rebase 2020-07-27 21:08:19 +02:00
librustc_interface Replace all uses of log::log_enabled with Debug printers 2020-07-28 16:15:40 +02:00
librustc_lexer Rollup merge of #73856 - pierwill:pierwill-lexer-doc, r=jonas-schievink 2020-07-06 17:45:17 -07:00
librustc_lint Auto merge of #74926 - Manishearth:rename-lint, r=jyn514 2020-07-31 02:20:47 +00:00
librustc_llvm Rollup merge of #74643 - petrochenkov:noenvrerun, r=Mark-Simulacrum 2020-07-22 16:34:50 -07:00
librustc_macros Enforce the static symbol order. 2020-07-16 16:53:24 +10:00
librustc_metadata Rollup merge of #74915 - alexcrichton:allow-failing-canonicalize, r=Mark-Simulacrum 2020-07-30 13:04:40 -07:00
librustc_middle Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_mir Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_mir_build Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_parse Account for trailing closing angle brackets 2020-07-23 16:25:39 -07:00
librustc_parse_format Eliminate confusing "globals" terminology. 2020-07-09 14:11:44 +10:00
librustc_passes Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_plugin_impl rustc_metadata: Make crate loading fully speculative 2020-07-18 14:06:04 +04:00
librustc_privacy introduce PredicateAtom 2020-07-27 21:07:37 +02:00
librustc_query_system apply bootstrap cfgs 2020-07-16 19:36:49 -04:00
librustc_resolve forbid generic params inside of anon consts in ty defaults 2020-07-27 16:33:23 +02:00
librustc_save_analysis Hygiene serialization implementation 2020-07-26 18:37:02 -04:00
librustc_serialize
librustc_session Auto merge of #74926 - Manishearth:rename-lint, r=jyn514 2020-07-31 02:20:47 +00:00
librustc_span Auto merge of #74471 - da-x:string-type-diagnostic-item, r=petrochenkov 2020-07-28 20:00:37 +00:00
librustc_symbol_mangling Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_target Change the target data layout to specify more values 2020-07-29 16:26:09 -06:00
librustc_trait_selection handle ConstEquate in rustdoc 2020-07-29 00:00:55 +02:00
librustc_traits introduce PredicateAtom 2020-07-27 21:07:37 +02:00
librustc_ty Auto merge of #65989 - Aaron1011:fix/normalize-param-env, r=nikomatsakis 2020-07-31 18:14:59 +00:00
librustc_typeck Presort restrictions to make output consistent 2020-07-31 09:03:14 +09:00
librustdoc Auto merge of #74955 - P1n3appl3:rustdoc-formats, r=GuillaumeGomez 2020-07-31 04:37:14 +00:00
llvm-project@86b120e6f3 Update llvm-project to latest origin/rustc/10.0-2020-05-05 commit which includes LVI segfault fix 2020-07-12 18:49:14 +00:00
rustc
rustllvm Fixed coverage map issues; better aligned with LLVM APIs 2020-07-25 07:39:51 -07:00
test Auto merge of #74956 - ecstatic-morse:const-option-unwrap, r=oli-obk 2020-07-31 08:26:33 +00:00
tools Auto merge of #74682 - alexcrichton:backtrace-gimli-round-2, r=Mark-Simulacrum 2020-07-30 23:22:09 +00:00
README.md Update outdated readme 2020-07-27 22:05:34 -05:00
stage0.txt Bump to 1.47 2020-07-16 19:36:49 -04:00

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

  • rustc and its tests
  • 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.