Make settings::Flags::new consume the Builder.

This makes it more clear what the relationship is between the Builder
and the resulting Flags.
This commit is contained in:
Dan Gohman
2018-04-27 21:01:35 -07:00
parent b7f38ac8bc
commit 94a883abae
21 changed files with 63 additions and 60 deletions

View File

@@ -24,7 +24,7 @@
//! use cretonne_codegen::isa;
//!
//! let shared_builder = settings::builder();
//! let shared_flags = settings::Flags::new(&shared_builder);
//! let shared_flags = settings::Flags::new(shared_builder);
//!
//! match isa::lookup("riscv") {
//! Err(_) => {
@@ -117,14 +117,14 @@ pub enum LookupError {
/// Modify the ISA-specific settings before creating the `TargetIsa` trait object with `finish`.
pub struct Builder {
setup: settings::Builder,
constructor: fn(settings::Flags, &settings::Builder) -> Box<TargetIsa>,
constructor: fn(settings::Flags, settings::Builder) -> Box<TargetIsa>,
}
impl Builder {
/// Combine the ISA-specific settings with the provided ISA-independent settings and allocate a
/// fully configured `TargetIsa` trait object.
pub fn finish(self, shared_flags: settings::Flags) -> Box<TargetIsa> {
(self.constructor)(shared_flags, &self.setup)
(self.constructor)(shared_flags, self.setup)
}
}