rust/src/test
bors e232636693 Auto merge of #59897 - tmandry:variantful-generators, r=eddyb
Multi-variant layouts for generators

This allows generators to overlap fields using variants, but doesn't do any such overlapping yet. It creates one variant for every state of the generator (unresumed, returned, panicked, plus one for every yield), and puts every stored local in each of the yield-point variants.

Required for optimizing generator layouts (#52924).

There was quite a lot of refactoring needed for this change. I've done my best in later commits to eliminate assumptions in the code that only certain kinds of types are multi-variant, and to centralize knowledge of the inner mechanics of generators in as few places as possible.

This change also emits debuginfo about the fields contained in each variant, as well as preserving debuginfo about stored locals while running in the generator.

Also, fixes #59972.

Future work:
- Use this change for an optimization pass that actually overlaps locals within the generator struct (#52924)
- In the type layout fields, don't include locals that are uninitialized for a particular variant, so miri and UB sanitizers can check our memory (see https://github.com/rust-lang/rust/issues/59972#issuecomment-483058172)
- Preserve debuginfo scopes across generator yield points
2019-05-04 03:18:14 +00:00
..
assembly Remove double trailing newlines 2019-04-22 16:57:01 +01:00
auxiliary
codegen Rollup merge of #60038 - michaelwoerister:pgo-updates-2, r=alexcrichton 2019-04-25 03:05:22 +02:00
codegen-units Remove unnecessary ignore-tidy-linelength 2019-04-23 11:42:14 +01:00
compile-fail Stabilize futures_api 2019-04-23 16:13:53 -07:00
debuginfo Address review comments 2019-05-03 19:25:35 -07:00
incremental Remove unnecessary ignore-tidy-linelength 2019-04-23 11:42:14 +01:00
mir-opt Auto merge of #59897 - tmandry:variantful-generators, r=eddyb 2019-05-04 03:18:14 +00:00
pretty rustc: pass Option<&Substs> and Namespace around in ty::item_path. 2019-03-15 13:25:10 +02:00
run-fail Remove double trailing newlines 2019-04-22 16:57:01 +01:00
run-make Introduce assembly tests 2019-02-27 23:33:05 +01:00
run-make-fulldeps Rollup merge of #60401 - JohnTitor:rename-log, r=davidtwco 2019-05-03 16:25:00 +02:00
run-pass Rollup merge of #60409 - JohnTitor:error-for-existential-type, r=oli-obk 2019-05-03 16:25:02 +02:00
run-pass-fulldeps Use sysroot libserialize in newtype_index test 2019-04-21 15:58:06 +02:00
run-pass-valgrind
rustdoc rustdoc: remove def_ctor hack. 2019-04-30 12:55:38 +03:00
rustdoc-js Auto merge of #59910 - Centril:rollup-yjv7b06, r=Centril 2019-04-12 11:46:01 +00:00
rustdoc-js-std Rename rustdoc js test suites 2019-02-25 17:46:06 +01:00
rustdoc-ui Rollup merge of #60220 - euclio:rustdoc-test-fatal-parsing-errors, r=QuietMisdreavus 2019-05-03 16:24:54 +02:00
rustfix tests: Do not use -Z parse-only, continue compilation to test recovery 2019-01-06 22:20:46 +03:00
ui rustc: rename hir::def::Def to Res (short for "resolution"). 2019-05-03 22:50:19 +03:00
ui-fulldeps Update *.stderr files 2019-04-28 21:19:26 +02:00
COMPILER_TESTS.md