Mike Gerwitz
5a301c1548
This introduces the ability to specify an edge ordering for the ontological tree traversal. `tree_reconstruction` will now use a `SourceCompatibleTreeEdgeOrder`, which will traverse the graph in an order that will result in a properly ordered source reconstruction. This is needed for template headers, because interpolation causes metavariables (exposed as template params) to be mixed into the body. There's a lot of information here, including some TODOs on possible improvements. I used the unstable `is_sorted` to output how many template were already sorted, based on one of our very large packages internally that uses templates extensively, and found that none of the desugared shorthand template expansions were already ordered. If I tweak that a bit, then nearly all templates will already be ordered, reducing the work that needs to be done, leaving only template definitions with interpolation to be concerned about, which is infrequent relative to everything else. DEV-13163 |
||
---|---|---|
.. | ||
xmli | ||
README.md | ||
run-tests |
README.md
System and Integration Tests
Rust files in this directory will be recognized by Cargo and will be
automatically compiled and run by make check
.
Shell scripts prefixed with test-
will be recognized by our test harness
and run on make check
. These scripts should be preferred when confidence
in the system end-to-end is required, since they invoke the binaries just
the same as the user or build process would.
Unit and integration tests written in Rust are located alongside the modules
they test in ../src/
. Benchmarks are in
../benches
.