rust/compiler
Arpad Borsos 9f36f988ad
Avoid GenFuture shim when compiling async constructs
Previously, async constructs would be lowered to "normal" generators,
with an additional `from_generator` / `GenFuture` shim in between to
convert from `Generator` to `Future`.

The compiler will now special-case these generators internally so that
async constructs will *directly* implement `Future` without the need
to go through the `from_generator` / `GenFuture` shim.

The primary motivation for this change was hiding this implementation
detail in stack traces and debuginfo, but it can in theory also help
the optimizer as there is less abstractions to see through.
2022-11-24 10:04:27 +01:00
..
rustc
rustc_apfloat
rustc_arena rustc_arena: remove a couple of ref patterns 2022-11-22 18:49:29 +00:00
rustc_ast Fix an ICE parsing a malformed attribute. 2022-11-23 12:11:14 +11:00
rustc_ast_lowering Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_ast_passes Use as_deref in compiler (but only where it makes sense) 2022-11-16 21:58:58 +00:00
rustc_ast_pretty Split MacArgs in two. 2022-11-22 09:04:15 +11:00
rustc_attr Migrate all diagnostics 2022-10-23 10:09:44 +02:00
rustc_baked_icu_data Update crate documentation of rustc_baked_icu_data crate 2022-11-18 14:46:36 -08:00
rustc_borrowck Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_builtin_macros Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_codegen_cranelift Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_codegen_gcc Rollup merge of #104001 - Ayush1325:custom-entry, r=bjorn3 2022-11-19 11:54:43 +05:30
rustc_codegen_llvm Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_codegen_ssa Rollup merge of #104605 - RalfJung:clf_consts, r=bjorn3 2022-11-21 14:11:12 +01:00
rustc_const_eval Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_data_structures Auto merge of #97870 - eggyal:inplace_fold_spec, r=wesleywiser 2022-11-19 02:28:47 +00:00
rustc_driver Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_error_codes Auto merge of #103491 - cjgillot:self-rpit, r=oli-obk 2022-11-21 12:17:03 +00:00
rustc_error_messages Rollup merge of #104621 - YC:master, r=davidtwco 2022-11-22 22:54:40 -05:00
rustc_errors Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_expand Rollup merge of #104638 - Nilstrieb:macro-diagnostics, r=compiler-errors 2022-11-22 01:26:08 -05:00
rustc_feature Auto merge of #103491 - cjgillot:self-rpit, r=oli-obk 2022-11-21 12:17:03 +00:00
rustc_fs_util
rustc_graphviz Add initial version of value analysis and dataflow constant propagation 2022-11-07 10:35:08 +01:00
rustc_hir Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_hir_analysis Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_hir_pretty Store a LocalDefId in hir::Variant & hir::Field. 2022-11-13 14:06:51 +00:00
rustc_hir_typeck Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_incremental Rename some OwnerId fields. 2022-10-29 20:28:38 +11:00
rustc_index
rustc_infer Rollup merge of #103488 - oli-obk:impl_trait_for_tait, r=lcnr 2022-11-22 22:54:38 -05:00
rustc_interface Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_lexer Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_lint Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_lint_defs Merge branch 'master' into patch-2 2022-11-15 21:16:11 +01:00
rustc_llvm Auto merge of #102717 - beetrees:repr128-c-style-debuginfo, r=nagisa 2022-11-21 01:44:12 +00:00
rustc_log Use IsTerminal in rustc_log 2022-10-16 15:10:40 +01:00
rustc_macros Improve slug name error 2022-11-21 15:24:51 +01:00
rustc_metadata Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_middle Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_mir_build Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_mir_dataflow Allow iterators instead of requiring slices that will get turned into iterators 2022-11-21 20:33:55 +00:00
rustc_mir_transform Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_monomorphize Stop passing the self-type as a separate argument. 2022-11-21 20:39:46 +00:00
rustc_parse Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_parse_format shift no characters when using raw string literals 2022-11-15 14:28:20 +09:00
rustc_passes Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_plugin_impl Migrate all diagnostics 2022-10-23 10:09:44 +02:00
rustc_privacy Store a LocalDefId in hir::Variant & hir::Field. 2022-11-13 14:06:51 +00:00
rustc_query_impl Make AbsoluteBytePos a u64. 2022-11-08 18:47:26 +00:00
rustc_query_system Hash spans when interning. 2022-11-11 13:02:37 +00:00
rustc_resolve Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_save_analysis Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_serialize rustdoc: use ThinVec for cleaned generics 2022-11-02 16:17:22 -07:00
rustc_session Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser 2022-11-24 00:17:35 +00:00
rustc_smir
rustc_span Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_symbol_mangling Unreserve braced enum variants in value namespace 2022-11-21 22:40:06 +03:00
rustc_target Rollup merge of #102293 - ecnelises:aix.initial, r=davidtwco 2022-11-23 06:40:22 +09:00
rustc_trait_selection Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_traits Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_transmute Auto merge of #103831 - chenyukang:yukang/fix-103751-ice, r=nagisa 2022-11-05 13:48:30 +00:00
rustc_ty_utils Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
rustc_type_ir Remove some unnecessary slicing 2022-11-21 20:38:55 +00:00