rust/compiler/rustc_borrowck/src
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
..
constraints lint auto pass 2022-11-09 20:42:16 +08:00
diagnostics Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
region_infer Auto merge of #103491 - cjgillot:self-rpit, r=oli-obk 2022-11-21 12:17:03 +00:00
type_check Avoid GenFuture shim when compiling async constructs 2022-11-24 10:04:27 +01:00
borrow_set.rs lint auto pass 2022-11-09 20:42:16 +08:00
borrowck_errors.rs struct error E0505 2022-11-09 21:15:31 +08:00
constraint_generation.rs lint auto pass 2022-11-09 20:42:16 +08:00
consumers.rs lint auto pass 2022-11-09 20:42:16 +08:00
dataflow.rs lint auto pass 2022-11-09 20:42:16 +08:00
def_use.rs lint auto pass 2022-11-09 20:42:16 +08:00
facts.rs lint auto pass 2022-11-09 20:42:16 +08:00
invalidation.rs lint auto pass 2022-11-09 20:42:16 +08:00
lib.rs require an ErrorGuaranteed to taint infcx with errors 2022-11-18 13:25:17 +00:00
location.rs lint auto pass 2022-11-09 20:42:16 +08:00
member_constraints.rs Give precendence to regions from member constaints when inferring concrete types. 2022-11-14 21:24:18 +00:00
nll.rs require an ErrorGuaranteed to taint infcx with errors 2022-11-18 13:25:17 +00:00
path_utils.rs lint auto pass 2022-11-09 20:42:16 +08:00
place_ext.rs lint auto pass 2022-11-09 20:42:16 +08:00
places_conflict.rs lint auto pass 2022-11-09 20:42:16 +08:00
prefixes.rs lint auto pass 2022-11-09 20:42:16 +08:00
renumber.rs lint auto pass 2022-11-09 20:42:16 +08:00
session_diagnostics.rs struct error E0505 2022-11-09 21:15:31 +08:00
universal_regions.rs Add bug! back to late_bound_vars query 2022-10-31 21:25:08 +00:00
used_muts.rs lint auto pass 2022-11-09 20:42:16 +08:00