A previous commit must have removed the `while let` loop here by mistake; for each basic block, it should find and deaggregate multiple statements in their index order, and the `curr` index tracks the progress through the block. This fixes both the case of deaggregating statements in separate basic blocks (preserving `curr` could prevent that) as well as multiple times in the same block (missing loop prevented that). |
||
|---|---|---|
| .. | ||
| deaggregator_test.rs | ||
| deaggregator_test_enum.rs | ||
| deaggregator_test_enum_2.rs | ||
| deaggregator_test_multiple.rs | ||
| README.md | ||
| return_an_array.rs | ||
| simplify_if.rs | ||
| storage_ranges.rs | ||
This folder contains tests for MIR optimizations.
The test format is:
(arbitrary rust code)
// END RUST SOURCE
// START $file_name_of_some_mir_dump_0
// $expected_line_0
// ...
// $expected_line_N
// END $file_name_of_some_mir_dump_0
// ...
// START $file_name_of_some_mir_dump_N
// $expected_line_0
// ...
// $expected_line_N
// END $file_name_of_some_mir_dump_N
All the test information is in comments so the test is runnable.
For each $file_name, compiletest expects [$expected_line_0, ..., $expected_line_N] to appear in the dumped MIR in order. Currently it allows other non-matched lines before, after and in-between.
Lines match ignoring whitespace, and the prefix "//" is removed.
It also currently strips trailing comments -- partly because the full file path in "scope comments" is unpredictable and partly because tidy complains about the lines being too long.
compiletest handles dumping the MIR before and after every pass for you. The test writer only has to specify the file names of the dumped files (not the full path to the file) and what lines to expect. I added an option to rustc that tells it to dump the mir into some directly (rather then always dumping to the current directory).
Lines match ignoring whitespace, and the prefix "//" is removed of course.
It also currently strips trailing comments -- partly because the full file path in "scope comments" is unpredictable and partly because tidy complains about the lines being too long.