rust/compiler
bors ee9726cb10 Auto merge of #97291 - compiler-errors:lazy-is-actually-3-types-in-a-trenchcoat, r=cjgillot
Split out the various responsibilities of `rustc_metadata::Lazy`

`Lazy<T>` actually acts like three different types -- a pointer in the crate metadata to a single value, a pointer to a list/array of values, and an indexable pointer of a list of values (a table).

We currently overload `Lazy<T>` to work differently than `Lazy<[T]>` and the same for `Lazy<Table<I, T>>`. All is well with some helper adapter traits such as [`LazyQueryDecodable`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/rmeta/decoder/trait.LazyQueryDecodable.html) and [`EncodeContentsForLazy`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/rmeta/encoder/trait.EncodeContentsForLazy.html).

Well, changes in #97287 that make `Lazy` work with the now invariant lifetime `'tcx` make these adapters fall apart because of coherence reasons. So we split out these three types and rework some of the helper traits so it's both 1. more clear to understand, and 2. compatible with the changes later in that PR.

Split out from #97287 so it can be reviewed separately, since this PR stands on its own.
2022-05-24 13:42:33 +00:00
..
rustc Propagate parallel_compiler feature through rustc crates. Turned off feature gives change of builded crates: 238 -> 224. 2022-03-28 08:41:12 +03:00
rustc_apfloat Addressed comments by @compiler-errors and @bjorn3 2022-03-30 17:04:46 -04:00
rustc_arena mark FIXMES for all the places found that are probably offset_from 2022-03-29 20:18:28 -04:00
rustc_ast Rollup merge of #97254 - jhpratt:remove-crate-vis, r=cjgillot 2022-05-23 07:43:50 +02:00
rustc_ast_lowering rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast 2022-05-22 12:01:07 +03:00
rustc_ast_passes Remove feature: crate visibility modifier 2022-05-21 14:22:06 -04:00
rustc_ast_pretty Rollup merge of #97254 - jhpratt:remove-crate-vis, r=cjgillot 2022-05-23 07:43:50 +02:00
rustc_attr Add and use stability helper methods 2022-05-19 12:21:45 +00:00
rustc_borrowck Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_builtin_macros rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast 2022-05-22 12:01:07 +03:00
rustc_codegen_cranelift Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_codegen_gcc Handle tmm_reg in rustc_codegen_gcc 2022-05-17 06:34:58 -04:00
rustc_codegen_llvm Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
rustc_codegen_ssa Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_const_eval Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_data_structures Auto merge of #96094 - Elliot-Roberts:fix_doctests, r=compiler-errors 2022-05-07 06:30:29 +00:00
rustc_driver errors: lazily load fallback fluent bundle 2022-04-13 02:44:59 +01:00
rustc_error_codes rustc: Stricter checking for #[link] attributes 2022-05-15 02:45:47 +03:00
rustc_error_messages migrate maybe_recover_from_bad_type_plus diagnostic 2022-05-16 17:16:27 -05:00
rustc_errors Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
rustc_expand rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast 2022-05-22 12:01:07 +03:00
rustc_feature Remove feature: crate visibility modifier 2022-05-21 14:22:06 -04:00
rustc_fs_util
rustc_graphviz update graphviz links 2022-05-12 18:31:42 +09:00
rustc_hir factor out the rvalue lifetime rule 2022-05-22 16:46:50 +08:00
rustc_hir_pretty use hir::Let in hir::Guard 2022-05-09 20:35:58 +08:00
rustc_incremental rename visit item-like methods 2022-05-13 11:46:06 -04:00
rustc_index Auto merge of #95418 - cjgillot:more-disk, r=davidtwco 2022-05-20 20:49:55 +00:00
rustc_infer Rollup merge of #97292 - compiler-errors:tcxify-rustc, r=davidtwco 2022-05-23 15:11:04 +02:00
rustc_interface typo 2022-05-23 22:51:34 +02:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Remove feature: crate visibility modifier 2022-05-21 14:22:06 -04:00
rustc_lint_defs Lint single-use-lifetimes on the AST. 2022-05-20 12:26:37 +02:00
rustc_llvm Add LLVM based mingw-w64 targets 2022-05-13 20:14:15 +02:00
rustc_log rustc_log: add env var to set verbose entry/exit behavior 2022-05-11 09:14:31 +02:00
rustc_macros formatting 2022-05-19 09:02:50 -05:00
rustc_metadata Fix iterator implementation, add some inlines 2022-05-23 19:50:29 -07:00
rustc_middle Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_mir_build Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_mir_dataflow Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_mir_transform Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
rustc_monomorphize Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
rustc_parse Auto merge of #97121 - pvdrz:do-subdiagnostics-later, r=davidtwco 2022-05-24 10:25:13 +00:00
rustc_parse_format Make rustc_parse_format compile on stable 2022-05-03 11:26:58 +02:00
rustc_passes Auto merge of #95563 - dingxiangfei2009:dxf-rfc66-refactor, r=nikomatsakis 2022-05-22 09:00:30 +00:00
rustc_plugin_impl
rustc_privacy Rollup merge of #97096 - tmiasko:reachable-constructor, r=petrochenkov 2022-05-18 07:40:58 +09:00
rustc_query_impl Auto merge of #97239 - jhpratt:remove-crate-vis, r=joshtriplett 2022-05-21 06:38:49 +00:00
rustc_query_system Auto merge of #96094 - Elliot-Roberts:fix_doctests, r=compiler-errors 2022-05-07 06:30:29 +00:00
rustc_resolve Rollup merge of #97240 - TaKO8Ki:improve-errors-about-typos-on-variables, r=compiler-errors 2022-05-24 12:18:30 +09:00
rustc_save_analysis [save-analysis] Reference the variant not enum at struct-literal construction. 2022-05-12 16:34:02 -07:00
rustc_serialize Cache more queries on disk. 2022-05-13 08:06:48 +02:00
rustc_session rustc_parse: Move AST -> TokenStream conversion logic to rustc_ast 2022-05-22 12:01:07 +03:00
rustc_span Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
rustc_symbol_mangling Auto merge of #96883 - jackh726:early-binder-2, r=oli-obk 2022-05-14 23:53:11 +00:00
rustc_target Add ABI clobbers 2022-05-17 06:48:03 -04:00
rustc_trait_selection Lifetime variance fixes for rustc 2022-05-22 14:29:32 -07:00
rustc_traits Remove crate visibility usage in compiler 2022-05-20 20:04:54 -04:00
rustc_ty_utils Auto merge of #97012 - oli-obk:🦀_intrinsics, r=davidtwco 2022-05-17 09:39:26 +00:00
rustc_type_ir fix most compiler/ doctests 2022-05-02 17:40:30 -07:00
rustc_typeck Rollup merge of #97292 - compiler-errors:tcxify-rustc, r=davidtwco 2022-05-23 15:11:04 +02:00