diff --git a/src/components/gfx/font_context.rs b/src/components/gfx/font_context.rs index 1eff76495cd..60f58d9571f 100644 --- a/src/components/gfx/font_context.rs +++ b/src/components/gfx/font_context.rs @@ -134,11 +134,8 @@ impl<'self> FontContext { let transformed_family_name = self.transform_family(family_name); debug!("(create font group) transformed family is `%s`", transformed_family_name); - let result = match self.font_list { - Some(ref fl) => { - fl.find_font_in_family(transformed_family_name, style) - }, - None => None, + let result = do self.font_list.chain_ref |fl| { + fl.find_font_in_family(transformed_family_name, style) }; let mut found = false; @@ -162,11 +159,8 @@ impl<'self> FontContext { let last_resort = FontList::get_last_resort_font_families(); for last_resort.iter().advance |family| { - let result = match self.font_list { - Some(ref fl) => { - fl.find_font_in_family(*family, style) - }, - None => None, + let result = do self.font_list.chain_ref |fl| { + fl.find_font_in_family(*family, style) }; for result.iter().advance |font_entry| { diff --git a/src/components/gfx/opts.rs b/src/components/gfx/opts.rs index 456d37869c9..e1b46027cc1 100644 --- a/src/components/gfx/opts.rs +++ b/src/components/gfx/opts.rs @@ -78,11 +78,9 @@ pub fn from_cmdline_args(args: &[~str]) -> Opts { None => 1, // FIXME: Number of cores. }; - let profiler_period: Option = - // if only flag is present, default to 5 second period - match getopts::opt_default(&opt_match, "p", "5") { - Some(period) => Some(float::from_str(period).get()), - None => None, + // if only flag is present, default to 5 second period + let profiler_period = do getopts::opt_default(&opt_match, "p", "5").map |period| { + float::from_str(*period).get() }; let exit_after_load = getopts::opt_present(&opt_match, "x"); diff --git a/src/components/main/css/select_handler.rs b/src/components/main/css/select_handler.rs index be7b21b3924..4a294aa2426 100644 --- a/src/components/main/css/select_handler.rs +++ b/src/components/main/css/select_handler.rs @@ -30,17 +30,14 @@ impl SelectHandler> for NodeSelectHandler { fn named_parent_node(&self, node: &AbstractNode, name: &str) -> Option> { - match node.parent_node() { - Some(parent) => { - do with_node_name(parent) |node_name| { - if eq_slice(name, node_name) { - Some(parent) - } else { - None - } + do node.parent_node().chain |parent| { + do with_node_name(parent) |node_name| { + if eq_slice(name, node_name) { + Some(parent) + } else { + None } } - None => None } } diff --git a/src/components/main/layout/box_builder.rs b/src/components/main/layout/box_builder.rs index 717bfd61a49..ff9457f69d4 100644 --- a/src/components/main/layout/box_builder.rs +++ b/src/components/main/layout/box_builder.rs @@ -390,11 +390,8 @@ impl LayoutTreeBuilder { } }; - let sibling_flow: Option = match sibling_generator { - None => None, - Some(gen) => Some(gen.flow) - }; - + let sibling_flow: Option = sibling_generator.map(|gen| gen.flow); + // TODO(eatkinson): use the value of the float property to // determine whether to float left or right. let is_float = if (node.is_element()) { diff --git a/src/components/main/layout/float_context.rs b/src/components/main/layout/float_context.rs index 6ccef10939e..04c7040acc0 100644 --- a/src/components/main/layout/float_context.rs +++ b/src/components/main/layout/float_context.rs @@ -291,10 +291,7 @@ impl FloatContextBase{ } } - match max_height { - None => None, - Some(h) => Some(h + self.offset.y) - } + max_height.map(|h| h + self.offset.y) } /// Given necessary info, finds the closest place a box can be positioned diff --git a/src/components/net/image/holder.rs b/src/components/net/image/holder.rs index 61173703c45..bf56b6413e3 100644 --- a/src/components/net/image/holder.rs +++ b/src/components/net/image/holder.rs @@ -57,14 +57,11 @@ impl ImageHolder { /// Query and update the current image size. pub fn get_size(&mut self) -> Option> { debug!("get_size() %?", self.url); - match self.get_image() { - Some(img) => { - let img_ref = img.get(); - self.cached_size = Size2D(img_ref.width as int, - img_ref.height as int); - Some(copy self.cached_size) - }, - None => None + do self.get_image().map |img| { + let img_ref = img.get(); + self.cached_size = Size2D(img_ref.width as int, + img_ref.height as int); + self.cached_size.clone() } } @@ -89,12 +86,7 @@ impl ImageHolder { // Clone isn't pure so we have to swap out the mutable image option let image = replace(&mut self.image, None); - - let result = match image { - Some(ref image) => Some(image.clone()), - None => None - }; - + let result = image.clone(); replace(&mut self.image, image); return result; diff --git a/src/components/script/dom/node.rs b/src/components/script/dom/node.rs index d9ee80edaa1..8757f08d5d3 100644 --- a/src/components/script/dom/node.rs +++ b/src/components/script/dom/node.rs @@ -415,10 +415,7 @@ impl<'self, View> AbstractNode { impl Iterator> for AbstractNodeChildrenIterator { pub fn next(&mut self) -> Option> { let node = self.current_node; - self.current_node = match self.current_node { - None => None, - Some(node) => node.next_sibling(), - }; + self.current_node = self.current_node.chain(|node| node.next_sibling()); node } } diff --git a/src/components/util/vec.rs b/src/components/util/vec.rs index dab59bfa1da..fa34c52a350 100644 --- a/src/components/util/vec.rs +++ b/src/components/util/vec.rs @@ -11,10 +11,7 @@ pub trait BinarySearchMethods<'self, T: Ord + Eq> { impl<'self, T: Ord + Eq> BinarySearchMethods<'self, T> for &'self [T] { fn binary_search(&self, key: &T) -> Option<&'self T> { - match self.binary_search_index(key) { - None => None, - Some(i) => Some(&self[i]) - } + self.binary_search_index(key).map(|i| &self[*i]) } fn binary_search_index(&self, key: &T) -> Option {