1
Fork 0

Rollup merge of #56119 - frewsxcv:frewsxcv-option-carrier, r=TimNN

Utilize `?` instead of `return None`.

None
This commit is contained in:
Pietro Albini 2018-12-05 23:54:25 +01:00 committed by GitHub
commit 64371f1cfe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 26 additions and 68 deletions

View file

@ -536,10 +536,9 @@ fn next_code_point_reverse<'a, I>(bytes: &mut I) -> Option<u32>
where I: DoubleEndedIterator<Item = &'a u8>, where I: DoubleEndedIterator<Item = &'a u8>,
{ {
// Decode UTF-8 // Decode UTF-8
let w = match bytes.next_back() { let w = match *bytes.next_back()? {
None => return None, next_byte if next_byte < 128 => return Some(next_byte as u32),
Some(&next_byte) if next_byte < 128 => return Some(next_byte as u32), back_byte => back_byte,
Some(&back_byte) => back_byte,
}; };
// Multibyte case follows // Multibyte case follows

View file

@ -592,10 +592,7 @@ impl<'tcx> ScopeTree {
return Some(scope.item_local_id()); return Some(scope.item_local_id());
} }
match self.opt_encl_scope(scope) { scope = self.opt_encl_scope(scope)?;
None => return None,
Some(parent) => scope = parent,
}
} }
} }

View file

@ -67,14 +67,13 @@ impl<'a> Iterator for Iter<'a> {
fn next(&mut self) -> Option<(&'a Path, PathKind)> { fn next(&mut self) -> Option<(&'a Path, PathKind)> {
loop { loop {
match self.iter.next() { match *self.iter.next()? {
Some(&(kind, ref p)) if self.kind == PathKind::All || (kind, ref p) if self.kind == PathKind::All ||
kind == PathKind::All || kind == PathKind::All ||
kind == self.kind => { kind == self.kind => {
return Some((p, kind)) return Some((p, kind))
} }
Some(..) => {} _ => {}
None => return None,
} }
} }
} }

View file

@ -29,7 +29,7 @@ pub fn copy_cgu_workproducts_to_incr_comp_cache_dir(
return None return None
} }
let saved_files: Option<Vec<_>> = let saved_files =
files.iter() files.iter()
.map(|&(kind, ref path)| { .map(|&(kind, ref path)| {
let extension = match kind { let extension = match kind {
@ -51,11 +51,7 @@ pub fn copy_cgu_workproducts_to_incr_comp_cache_dir(
} }
} }
}) })
.collect(); .collect::<Option<Vec<_>>>()?;
let saved_files = match saved_files {
None => return None,
Some(v) => v,
};
let work_product = WorkProduct { let work_product = WorkProduct {
cgu_name: cgu_name.to_string(), cgu_name: cgu_name.to_string(),

View file

@ -87,10 +87,7 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> {
impl<'cx, 'gcx, 'tcx> Iterator for Prefixes<'cx, 'gcx, 'tcx> { impl<'cx, 'gcx, 'tcx> Iterator for Prefixes<'cx, 'gcx, 'tcx> {
type Item = &'cx Place<'tcx>; type Item = &'cx Place<'tcx>;
fn next(&mut self) -> Option<Self::Item> { fn next(&mut self) -> Option<Self::Item> {
let mut cursor = match self.next { let mut cursor = self.next?;
None => return None,
Some(place) => place,
};
// Post-processing `place`: Enqueue any remaining // Post-processing `place`: Enqueue any remaining
// work. Also, `place` may not be a prefix itself, but // work. Also, `place` may not be a prefix itself, but

View file

@ -3948,10 +3948,7 @@ pub fn path_to_def_local(tcx: &TyCtxt, path: &[&str]) -> Option<DefId> {
let mut path_it = path.iter().peekable(); let mut path_it = path.iter().peekable();
loop { loop {
let segment = match path_it.next() { let segment = path_it.next()?;
Some(segment) => segment,
None => return None,
};
for item_id in mem::replace(&mut items, HirVec::new()).iter() { for item_id in mem::replace(&mut items, HirVec::new()).iter() {
let item = tcx.hir.expect_item(item_id.id); let item = tcx.hir.expect_item(item_id.id);
@ -3986,10 +3983,7 @@ pub fn path_to_def(tcx: &TyCtxt, path: &[&str]) -> Option<DefId> {
let mut path_it = path.iter().skip(1).peekable(); let mut path_it = path.iter().skip(1).peekable();
loop { loop {
let segment = match path_it.next() { let segment = path_it.next()?;
Some(segment) => segment,
None => return None,
};
for item in mem::replace(&mut items, Lrc::new(vec![])).iter() { for item in mem::replace(&mut items, Lrc::new(vec![])).iter() {
if item.ident.name == *segment { if item.ident.name == *segment {

View file

@ -2220,13 +2220,13 @@ impl<'a> Item<'a> {
return None; return None;
} }
} else { } else {
let (krate, src_root) = match cache.extern_locations.get(&self.item.def_id.krate) { let (krate, src_root) = match *cache.extern_locations.get(&self.item.def_id.krate)? {
Some(&(ref name, ref src, Local)) => (name, src), (ref name, ref src, Local) => (name, src),
Some(&(ref name, ref src, Remote(ref s))) => { (ref name, ref src, Remote(ref s)) => {
root = s.to_string(); root = s.to_string();
(name, src) (name, src)
} }
Some(&(_, _, Unknown)) | None => return None, (_, _, Unknown) => return None,
}; };
clean_srcpath(&src_root, file, false, |component| { clean_srcpath(&src_root, file, false, |component| {

View file

@ -91,10 +91,7 @@ pub fn parse_prefix<'a>(path: &'a OsStr) -> Option<Prefix> {
} }
fn parse_two_comps(mut path: &[u8], f: fn(u8) -> bool) -> Option<(&[u8], &[u8])> { fn parse_two_comps(mut path: &[u8], f: fn(u8) -> bool) -> Option<(&[u8], &[u8])> {
let first = match path.iter().position(|x| f(*x)) { let first = &path[..path.iter().position(|x| f(*x))?];
None => return None,
Some(x) => &path[..x],
};
path = &path[(first.len() + 1)..]; path = &path[(first.len() + 1)..];
let idx = path.iter().position(|x| f(*x)); let idx = path.iter().position(|x| f(*x));
let second = &path[..idx.unwrap_or(path.len())]; let second = &path[..idx.unwrap_or(path.len())];

View file

@ -753,10 +753,7 @@ where It: Iterator {
type Item = Vec<It::Item>; type Item = Vec<It::Item>;
fn next(&mut self) -> Option<Vec<It::Item>> { fn next(&mut self) -> Option<Vec<It::Item>> {
let first = match self.it.next() { let first = self.it.next()?;
Some(e) => e,
None => return None
};
let mut result = Vec::with_capacity(self.n); let mut result = Vec::with_capacity(self.n);
result.push(first); result.push(first);

View file

@ -119,10 +119,7 @@ fn parse_expected(
line: &str, line: &str,
tag: &str, tag: &str,
) -> Option<(WhichLine, Error)> { ) -> Option<(WhichLine, Error)> {
let start = match line.find(tag) { let start = line.find(tag)?;
Some(i) => i,
None => return None,
};
let (follow, adjusts) = if line[start + tag.len()..].chars().next().unwrap() == '|' { let (follow, adjusts) = if line[start + tag.len()..].chars().next().unwrap() == '|' {
(true, 0) (true, 0)
} else { } else {

View file

@ -707,14 +707,8 @@ impl Config {
fn parse_custom_normalization(&self, mut line: &str, prefix: &str) -> Option<(String, String)> { fn parse_custom_normalization(&self, mut line: &str, prefix: &str) -> Option<(String, String)> {
if self.parse_cfg_name_directive(line, prefix) == ParsedNameDirective::Match { if self.parse_cfg_name_directive(line, prefix) == ParsedNameDirective::Match {
let from = match parse_normalization_string(&mut line) { let from = parse_normalization_string(&mut line)?;
Some(s) => s, let to = parse_normalization_string(&mut line)?;
None => return None,
};
let to = match parse_normalization_string(&mut line) {
Some(s) => s,
None => return None,
};
Some((from, to)) Some((from, to))
} else { } else {
None None
@ -873,14 +867,8 @@ fn expand_variables(mut value: String, config: &Config) -> String {
/// ``` /// ```
fn parse_normalization_string(line: &mut &str) -> Option<String> { fn parse_normalization_string(line: &mut &str) -> Option<String> {
// FIXME support escapes in strings. // FIXME support escapes in strings.
let begin = match line.find('"') { let begin = line.find('"')? + 1;
Some(i) => i + 1, let end = line[begin..].find('"')? + begin;
None => return None,
};
let end = match line[begin..].find('"') {
Some(i) => i + begin,
None => return None,
};
let result = line[begin..end].to_owned(); let result = line[begin..end].to_owned();
*line = &line[end + 1..]; *line = &line[end + 1..];
Some(result) Some(result)

View file

@ -332,10 +332,7 @@ fn maybe_redirect(source: &str) -> Option<String> {
const REDIRECT: &'static str = "<p>Redirecting to <a href="; const REDIRECT: &'static str = "<p>Redirecting to <a href=";
let mut lines = source.lines(); let mut lines = source.lines();
let redirect_line = match lines.nth(6) { let redirect_line = lines.nth(6)?;
Some(l) => l,
None => return None,
};
redirect_line.find(REDIRECT).map(|i| { redirect_line.find(REDIRECT).map(|i| {
let rest = &redirect_line[(i + REDIRECT.len() + 1)..]; let rest = &redirect_line[(i + REDIRECT.len() + 1)..];