rust/src/test
bors f3fc547194 Auto merge of #41709 - michaelwoerister:close-metadata-ich-holes, r=nikomatsakis
incr.comp.: Hash more pieces of crate metadata to detect changes there.

This PR adds incr. comp. hashes for non-`Entry` pieces of data in crate metadata.

The first part of it I like: `EntryBuilder` is refactored into the more generally applicable `IsolatedEncoder` which provides means of encoding something into metadata while also feeding the encoded data into an incr. comp. hash. We already did this for `Entry`, now we are doing it for various other pieces of data too, like the set of exported symbols and so on. The hashes generated there are persisted together with the per-`Entry` hashes and are also used for dep-graph dirtying the same way.

The second part of the PR I'm not entirely happy with: In order to make sure that we don't forget registering a read to the new `DepNodes` introduced here, I added the `Tracked<T>` struct. This struct wraps a value and requires a `DepNode` when accessing the wrapped value. This makes it harder to overlook adding read edges in the right places and works just fine.
However, crate metadata is already used in places where there is no `tcx` yet or even in places where no `cnum` has been assigned -- this makes it harder to apply this feature consistently or implement it ergonomically. The result is not too bad but there's a bit more code churn and a bit more opportunity to get something wrong than I would have liked. On the other hand, wrapping things in `Tracked<T>` already has revealed some bugs, so there's definitely some value in it.

This is still a work in progress:
- [x] I need to write some test cases.
- [x] Accessing the CodeMap should really be dependency tracked too, especially with the new path-remapping feature.

cc @nikomatsakis
2017-05-09 11:55:37 +00:00
..
codegen Add simple [repr(align)] codegen test. 2017-05-01 23:13:22 +10:00
codegen-units translate drop glue using MIR 2017-03-18 02:53:08 +02:00
compile-fail Rollup merge of #41838 - z1mvader:fix_fn_args_coerce_closure, r=nikomatsakis 2017-05-08 22:34:52 -04:00
compile-fail-fulldeps Implement a file-path remapping feature in support of debuginfo and reproducible builds. 2017-04-26 15:44:02 +02:00
debuginfo update gdbr tests 2017-03-09 22:12:36 +01:00
incremental incr.comp.: Hash more pieces of crate metadata to detect changes there. 2017-05-08 12:31:26 +02:00
mir-opt simplify the MirPass traits and passes dramatically 2017-05-02 14:01:01 -04:00
parse-fail Allow bare CR in ////-style comment. 2017-05-08 22:29:24 +09:00
pretty Update pretty test for derive attributes 2017-02-05 12:22:29 +10:30
run-fail Unignore tests which work fine now. 2017-04-28 22:31:10 -06:00
run-fail-fulldeps Implement a file-path remapping feature in support of debuginfo and reproducible builds. 2017-04-26 15:44:02 +02:00
run-make Rollup merge of #41520 - estebank:trace-macro, r=nikomatsakis 2017-05-08 22:34:47 -04:00
run-pass Auto merge of #41777 - nikomatsakis:issue-41697-mir-dump-cycle, r=arielb1 2017-05-09 09:27:50 +00:00
run-pass-fulldeps add regression test for issue #24106 2017-05-04 19:34:48 -04:00
run-pass-valgrind Removes FIXMEs related to #22405 2017-01-31 21:27:13 -05:00
rustdoc Allow # to appear in rustdoc code output. 2017-05-06 18:07:04 -06:00
ui Rollup merge of #41520 - estebank:trace-macro, r=nikomatsakis 2017-05-08 22:34:47 -04:00
ui-fulldeps/custom-derive Separate "ui-fulldeps" tests from "ui" tests 2017-03-04 21:38:26 +03:00
COMPILER_TESTS.md Move COMPILER_TESTS.md out of the root directory 2017-02-25 00:13:00 -06:00