Skip to content

Commit

Permalink
prefer if let to match with None => () arm in some places
Browse files Browse the repository at this point in the history
Casual grepping revealed some places in the codebase (some of which
antedated `if let`'s December 2014 stabilization in c200ae5) where we
were using a match with a `None => ()` arm where (in the present
author's opinion) an `if let` conditional would be more readable. (Other
places where matching to the unit value did seem to better express the
intent were left alone.)

It's likely that we don't care about making such trivial,
non-functional, sheerly æsthetic changes.

But if we do, this is a patch.
  • Loading branch information
zackmdavis committed Jun 15, 2016
1 parent 6551acc commit 8531d58
Show file tree
Hide file tree
Showing 11 changed files with 101 additions and 139 deletions.
41 changes: 17 additions & 24 deletions src/librustc/hir/print.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1728,12 +1728,9 @@ impl<'a> State<'a> {
}
}
self.print_name(path1.node)?;
match *sub {
Some(ref p) => {
word(&mut self.s, "@")?;
self.print_pat(&p)?;
}
None => (),
if let Some(ref p) = *sub {
word(&mut self.s, "@")?;
self.print_pat(&p)?;
}
}
PatKind::TupleStruct(ref path, ref elts, ddpos) => {
Expand Down Expand Up @@ -2246,25 +2243,21 @@ impl<'a> State<'a> {
Some(cm) => cm,
_ => return Ok(()),
};
match self.next_comment() {
Some(ref cmnt) => {
if (*cmnt).style != comments::Trailing {
return Ok(());
}
let span_line = cm.lookup_char_pos(span.hi);
let comment_line = cm.lookup_char_pos((*cmnt).pos);
let mut next = (*cmnt).pos + BytePos(1);
match next_pos {
None => (),
Some(p) => next = p,
}
if span.hi < (*cmnt).pos && (*cmnt).pos < next &&
span_line.line == comment_line.line {
self.print_comment(cmnt)?;
self.cur_cmnt_and_lit.cur_cmnt += 1;
}
if let Some(ref cmnt) = self.next_comment() {
if (*cmnt).style != comments::Trailing {
return Ok(());
}
let span_line = cm.lookup_char_pos(span.hi);
let comment_line = cm.lookup_char_pos((*cmnt).pos);
let mut next = (*cmnt).pos + BytePos(1);
if let Some(p) = next_pos {
next = p;
}
if span.hi < (*cmnt).pos && (*cmnt).pos < next &&
span_line.line == comment_line.line {
self.print_comment(cmnt)?;
self.cur_cmnt_and_lit.cur_cmnt += 1;
}
_ => (),
}
Ok(())
}
Expand Down
11 changes: 4 additions & 7 deletions src/librustc/infer/error_reporting.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1856,20 +1856,18 @@ fn lifetimes_in_scope<'a, 'gcx, 'tcx>(tcx: TyCtxt<'a, 'gcx, 'tcx>,
},
None => None
};
if method_id_opt.is_some() {
let method_id = method_id_opt.unwrap();
if let Some(method_id) = method_id_opt {
let parent = tcx.map.get_parent(method_id);
match tcx.map.find(parent) {
Some(node) => match node {
if let Some(node) = tcx.map.find(parent) {
match node {
ast_map::NodeItem(item) => match item.node {
hir::ItemImpl(_, _, ref gen, _, _, _) => {
taken.extend_from_slice(&gen.lifetimes);
}
_ => ()
},
_ => ()
},
None => ()
}
}
}
return taken;
Expand Down Expand Up @@ -1938,4 +1936,3 @@ fn name_to_dummy_lifetime(name: ast::Name) -> hir::Lifetime {
span: codemap::DUMMY_SP,
name: name }
}

32 changes: 13 additions & 19 deletions src/librustc/middle/dead.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,12 +160,9 @@ impl<'a, 'tcx> MarkSymbolVisitor<'a, 'tcx> {
}
scanned.insert(id);

match self.tcx.map.find(id) {
Some(ref node) => {
self.live_symbols.insert(id);
self.visit_node(node);
}
None => (),
if let Some(ref node) = self.tcx.map.find(id) {
self.live_symbols.insert(id);
self.visit_node(node);
}
}
}
Expand Down Expand Up @@ -372,9 +369,8 @@ fn create_and_seed_worklist<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
}

// Seed entry point
match *tcx.sess.entry_fn.borrow() {
Some((id, _)) => worklist.push(id),
None => ()
if let Some((id, _)) = *tcx.sess.entry_fn.borrow() {
worklist.push(id);
}

// Seed implemented trait items
Expand Down Expand Up @@ -464,16 +460,14 @@ impl<'a, 'tcx> DeadVisitor<'a, 'tcx> {
// method of a private type is used, but the type itself is never
// called directly.
let impl_items = self.tcx.impl_items.borrow();
match self.tcx.inherent_impls.borrow().get(&self.tcx.map.local_def_id(id)) {
None => (),
Some(impl_list) => {
for impl_did in impl_list.iter() {
for item_did in impl_items.get(impl_did).unwrap().iter() {
if let Some(item_node_id) =
self.tcx.map.as_local_node_id(item_did.def_id()) {
if self.live_symbols.contains(&item_node_id) {
return true;
}
if let Some(impl_list) =
self.tcx.inherent_impls.borrow().get(&self.tcx.map.local_def_id(id)) {
for impl_did in impl_list.iter() {
for item_did in impl_items.get(impl_did).unwrap().iter() {
if let Some(item_node_id) =
self.tcx.map.as_local_node_id(item_did.def_id()) {
if self.live_symbols.contains(&item_node_id) {
return true;
}
}
}
Expand Down
15 changes: 6 additions & 9 deletions src/librustc_borrowck/borrowck/gather_loans/gather_moves.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,12 @@ fn gather_move<'a, 'tcx>(bccx: &BorrowckCtxt<'a, 'tcx>,

let potentially_illegal_move =
check_and_get_illegal_move_origin(bccx, &move_info.cmt);
match potentially_illegal_move {
Some(illegal_move_origin) => {
debug!("illegal_move_origin={:?}", illegal_move_origin);
let error = MoveError::with_move_info(illegal_move_origin,
move_info.span_path_opt);
move_error_collector.add_error(error);
return
}
None => ()
if let Some(illegal_move_origin) = potentially_illegal_move {
debug!("illegal_move_origin={:?}", illegal_move_origin);
let error = MoveError::with_move_info(illegal_move_origin,
move_info.span_path_opt);
move_error_collector.add_error(error);
return;
}

match opt_loan_path(&move_info.cmt) {
Expand Down
43 changes: 20 additions & 23 deletions src/librustc_metadata/creader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -929,29 +929,26 @@ impl<'a> LocalCrateReader<'a> {
return;
}

match self.creader.extract_crate_info(i) {
Some(info) => {
let (cnum, _, _) = self.creader.resolve_crate(&None,
&info.ident,
&info.name,
None,
i.span,
PathKind::Crate,
true);

let def_id = self.definitions.opt_local_def_id(i.id).unwrap();
let len = self.definitions.def_path(def_id.index).data.len();

self.creader.update_extern_crate(cnum,
ExternCrate {
def_id: def_id,
span: i.span,
direct: true,
path_len: len,
});
self.cstore.add_extern_mod_stmt_cnum(info.id, cnum);
}
None => ()
if let Some(info) = self.creader.extract_crate_info(i) {
let (cnum, _, _) = self.creader.resolve_crate(&None,
&info.ident,
&info.name,
None,
i.span,
PathKind::Crate,
true);

let def_id = self.definitions.opt_local_def_id(i.id).unwrap();
let len = self.definitions.def_path(def_id.index).data.len();

self.creader.update_extern_crate(cnum,
ExternCrate {
def_id: def_id,
span: i.span,
direct: true,
path_len: len,
});
self.cstore.add_extern_mod_stmt_cnum(info.id, cnum);
}
}
ast::ItemKind::ForeignMod(ref fm) => self.process_foreign_mod(i, fm),
Expand Down
19 changes: 8 additions & 11 deletions src/librustc_trans/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2252,17 +2252,14 @@ pub fn update_linkage(ccx: &CrateContext,
}

fn set_global_section(ccx: &CrateContext, llval: ValueRef, i: &hir::Item) {
match attr::first_attr_value_str_by_name(&i.attrs, "link_section") {
Some(sect) => {
if contains_null(&sect) {
ccx.sess().fatal(&format!("Illegal null byte in link_section value: `{}`", &sect));
}
unsafe {
let buf = CString::new(sect.as_bytes()).unwrap();
llvm::LLVMSetSection(llval, buf.as_ptr());
}
},
None => ()
if let Some(sect) = attr::first_attr_value_str_by_name(&i.attrs, "link_section") {
if contains_null(&sect) {
ccx.sess().fatal(&format!("Illegal null byte in link_section value: `{}`", &sect));
}
unsafe {
let buf = CString::new(sect.as_bytes()).unwrap();
llvm::LLVMSetSection(llval, buf.as_ptr());
}
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/librustc_trans/debuginfo/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -874,9 +874,8 @@ pub fn unknown_file_metadata(cx: &CrateContext) -> DIFile {
}

fn file_metadata_(cx: &CrateContext, key: &str, file_name: &str, work_dir: &str) -> DIFile {
match debug_context(cx).created_files.borrow().get(key) {
Some(file_metadata) => return *file_metadata,
None => ()
if let Some(file_metadata) = debug_context(cx).created_files.borrow().get(key) {
return *file_metadata;
}

debug!("file_metadata: file_name: {}, work_dir: {}", file_name, work_dir);
Expand Down
9 changes: 3 additions & 6 deletions src/librustc_trans/monomorphize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,9 @@ pub fn monomorphic_fn<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>,
let mono_ty = apply_param_substs(ccx.tcx(), psubsts, &item_ty);
debug!("mono_ty = {:?} (post-substitution)", mono_ty);

match ccx.instances().borrow().get(&instance) {
Some(&val) => {
debug!("leaving monomorphic fn {:?}", instance);
return (val, mono_ty);
}
None => ()
if let Some(&val) = ccx.instances().borrow().get(&instance) {
debug!("leaving monomorphic fn {:?}", instance);
return (val, mono_ty);
}

debug!("monomorphic_fn({:?})", instance);
Expand Down
21 changes: 9 additions & 12 deletions src/libsyntax/parse/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5430,18 +5430,15 @@ impl<'a> Parser<'a> {
name: String,
id_sp: Span) -> PResult<'a, (ast::ItemKind, Vec<ast::Attribute> )> {
let mut included_mod_stack = self.sess.included_mod_stack.borrow_mut();
match included_mod_stack.iter().position(|p| *p == path) {
Some(i) => {
let mut err = String::from("circular modules: ");
let len = included_mod_stack.len();
for p in &included_mod_stack[i.. len] {
err.push_str(&p.to_string_lossy());
err.push_str(" -> ");
}
err.push_str(&path.to_string_lossy());
return Err(self.span_fatal(id_sp, &err[..]));
}
None => ()
if let Some(i) = included_mod_stack.iter().position(|p| *p == path) {
let mut err = String::from("circular modules: ");
let len = included_mod_stack.len();
for p in &included_mod_stack[i.. len] {
err.push_str(&p.to_string_lossy());
err.push_str(" -> ");
}
err.push_str(&path.to_string_lossy());
return Err(self.span_fatal(id_sp, &err[..]));
}
included_mod_stack.push(path.clone());
drop(included_mod_stack);
Expand Down
34 changes: 15 additions & 19 deletions src/libsyntax/print/pprust.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2459,12 +2459,9 @@ impl<'a> State<'a> {
}
}
self.print_ident(path1.node)?;
match *sub {
Some(ref p) => {
word(&mut self.s, "@")?;
self.print_pat(&p)?;
}
None => ()
if let Some(ref p) = *sub {
word(&mut self.s, "@")?;
self.print_pat(&p)?;
}
}
PatKind::TupleStruct(ref path, ref elts, ddpos) => {
Expand Down Expand Up @@ -3008,20 +3005,19 @@ impl<'a> State<'a> {
Some(cm) => cm,
_ => return Ok(())
};
match self.next_comment() {
Some(ref cmnt) => {
if (*cmnt).style != comments::Trailing { return Ok(()) }
let span_line = cm.lookup_char_pos(span.hi);
let comment_line = cm.lookup_char_pos((*cmnt).pos);
let mut next = (*cmnt).pos + BytePos(1);
match next_pos { None => (), Some(p) => next = p }
if span.hi < (*cmnt).pos && (*cmnt).pos < next &&
span_line.line == comment_line.line {
self.print_comment(cmnt)?;
self.cur_cmnt_and_lit.cur_cmnt += 1;
}
if let Some(ref cmnt) = self.next_comment() {
if (*cmnt).style != comments::Trailing { return Ok(()) }
let span_line = cm.lookup_char_pos(span.hi);
let comment_line = cm.lookup_char_pos((*cmnt).pos);
let mut next = (*cmnt).pos + BytePos(1);
if let Some(p) = next_pos {
next = p;
}
if span.hi < (*cmnt).pos && (*cmnt).pos < next &&
span_line.line == comment_line.line {
self.print_comment(cmnt)?;
self.cur_cmnt_and_lit.cur_cmnt += 1;
}
_ => ()
}
Ok(())
}
Expand Down
10 changes: 4 additions & 6 deletions src/libsyntax/util/interner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,8 @@ impl<T: Eq + Hash + Clone + 'static> Interner<T> {

pub fn intern(&self, val: T) -> Name {
let mut map = self.map.borrow_mut();
match (*map).get(&val) {
Some(&idx) => return idx,
None => (),
if let Some(&idx) = (*map).get(&val) {
return idx;
}

let mut vect = self.vect.borrow_mut();
Expand Down Expand Up @@ -161,9 +160,8 @@ impl StrInterner {

pub fn intern(&self, val: &str) -> Name {
let mut map = self.map.borrow_mut();
match map.get(val) {
Some(&idx) => return idx,
None => (),
if let Some(&idx) = map.get(val) {
return idx;
}

let new_idx = Name(self.len() as u32);
Expand Down

0 comments on commit 8531d58

Please sign in to comment.