mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-21 22:34:05 +00:00
e54c177118
This is a standard pattern: ``` MyAnalysis.into_engine(tcx, body).iterate_to_fixpoint() ``` `into_engine` and `iterate_to_fixpoint` are always called in pairs, but sometimes with a builder-style `pass_name` call between them. But a builder-style interface is overkill here. This has been bugging me a for a while. This commit: - Merges `Engine::new` and `Engine::iterate_to_fixpoint`. This removes the need for `Engine` to have fields, leaving it as a trivial type that the next commit will remove. - Renames `Analysis::into_engine` as `Analysis::iterate_to_fixpoint`, gives it an extra argument for the optional pass name, and makes it call `Engine::iterate_to_fixpoint` instead of `Engine::new`. This turns the pattern from above into this: ``` MyAnalysis.iterate_to_fixpoint(tcx, body, None) ``` which is shorter at every call site, and there's less plumbing required to support it. |
||
---|---|---|
.. | ||
constraints | ||
diagnostics | ||
polonius | ||
region_infer | ||
type_check | ||
util | ||
borrow_set.rs | ||
borrowck_errors.rs | ||
consumers.rs | ||
dataflow.rs | ||
def_use.rs | ||
facts.rs | ||
lib.rs | ||
location.rs | ||
member_constraints.rs | ||
nll.rs | ||
path_utils.rs | ||
place_ext.rs | ||
places_conflict.rs | ||
prefixes.rs | ||
renumber.rs | ||
session_diagnostics.rs | ||
universal_regions.rs | ||
used_muts.rs |