From cd510b33821a0b3e7ae7dd576c0d22d3531ddb0b Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 20 Mar 2014 15:04:55 -0700 Subject: std: Remove the get() method from RefCell wrappers This method has been entirely obsoleted by autoderef, so there's no reason for its existence. --- src/libstd/cell.rs | 29 ++++------------------------- src/libstd/rc.rs | 2 +- src/libstd/rt/task.rs | 2 +- 3 files changed, 6 insertions(+), 27 deletions(-) (limited to 'src/libstd') diff --git a/src/libstd/cell.rs b/src/libstd/cell.rs index b54396efec5..d09b31faa25 100644 --- a/src/libstd/cell.rs +++ b/src/libstd/cell.rs @@ -176,8 +176,7 @@ impl RefCell { /// Fails if the value is currently borrowed. #[inline] pub fn set(&self, value: T) { - let mut reference = self.borrow_mut(); - *reference.get() = value; + *self.borrow_mut() = value; } } @@ -189,23 +188,19 @@ impl RefCell { /// Fails if the value is currently mutably borrowed. #[inline] pub fn get(&self) -> T { - let reference = self.borrow(); - (*reference.get()).clone() + (*self.borrow()).clone() } } impl Clone for RefCell { fn clone(&self) -> RefCell { - let x = self.borrow(); - RefCell::new(x.get().clone()) + RefCell::new(self.get()) } } impl Eq for RefCell { fn eq(&self, other: &RefCell) -> bool { - let a = self.borrow(); - let b = other.borrow(); - a.get() == b.get() + *self.borrow() == *other.borrow() } } @@ -222,14 +217,6 @@ impl<'b, T> Drop for Ref<'b, T> { } } -impl<'b, T> Ref<'b, T> { - /// Retrieve an immutable reference to the stored value. - #[inline] - pub fn get<'a>(&'a self) -> &'a T { - unsafe{ &*self.parent.value.get() } - } -} - impl<'b, T> Deref for Ref<'b, T> { #[inline] fn deref<'a>(&'a self) -> &'a T { @@ -250,14 +237,6 @@ impl<'b, T> Drop for RefMut<'b, T> { } } -impl<'b, T> RefMut<'b, T> { - /// Retrieve a mutable reference to the stored value. - #[inline] - pub fn get<'a>(&'a mut self) -> &'a mut T { - unsafe{ &mut *self.parent.value.get() } - } -} - impl<'b, T> Deref for RefMut<'b, T> { #[inline] fn deref<'a>(&'a self) -> &'a T { diff --git a/src/libstd/rc.rs b/src/libstd/rc.rs index 03be4fea5ee..490b3068dda 100644 --- a/src/libstd/rc.rs +++ b/src/libstd/rc.rs @@ -284,7 +284,7 @@ mod tests { let a = Rc::new(Cycle { x: RefCell::new(None) }); let b = a.clone().downgrade(); - *a.deref().x.borrow_mut().get() = Some(b); + *a.deref().x.borrow_mut() = Some(b); // hopefully we don't double-free (or leak)... } diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs index 8c617c1b59b..f6d4579156e 100644 --- a/src/libstd/rt/task.rs +++ b/src/libstd/rt/task.rs @@ -471,7 +471,7 @@ mod test { { let mut a = a.borrow_mut(); - a.get().next = Some(b); + a.next = Some(b); } } -- cgit 1.4.1-3-g733a5 From 3fb1ed0e046e4208ea8a28f989d1b184143d62ce Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 20 Mar 2014 22:10:44 -0700 Subject: rustc: Remove all usage of manual deref() Favor using '*' instead --- src/librustc/driver/driver.rs | 6 +++--- src/librustc/middle/astencode.rs | 3 +-- src/librustc/middle/borrowck/check_loans.rs | 2 +- .../middle/borrowck/gather_loans/gather_moves.rs | 2 +- src/librustc/middle/borrowck/gather_loans/mod.rs | 2 +- src/librustc/middle/const_eval.rs | 2 +- src/librustc/middle/kind.rs | 1 - src/librustc/middle/liveness.rs | 4 ++-- src/librustc/middle/subst.rs | 2 +- src/librustc/middle/trans/closure.rs | 4 ++-- src/librustc/middle/trans/common.rs | 2 +- src/librustc/middle/trans/consts.rs | 2 +- src/librustc/middle/trans/controlflow.rs | 2 +- src/librustc/middle/trans/debuginfo.rs | 24 ++++++++++----------- src/librustc/middle/ty.rs | 6 +++--- src/librustc/middle/typeck/check/method.rs | 2 +- src/librustc/middle/typeck/check/mod.rs | 4 ++-- src/librustc/middle/typeck/check/vtable.rs | 7 +++--- src/librustc/middle/typeck/collect.rs | 6 ++---- src/librustdoc/clean.rs | 2 +- src/librustuv/idle.rs | 6 +++--- src/libserialize/serialize.rs | 2 +- src/libstd/hash/mod.rs | 3 +-- src/libstd/option.rs | 4 ++-- src/libstd/rc.rs | 25 +++++++++++----------- src/test/compile-fail/issue-7013.rs | 2 +- src/test/run-pass/self-re-assign.rs | 2 +- 27 files changed, 61 insertions(+), 68 deletions(-) (limited to 'src/libstd') diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs index 513aa51bfe1..fb0de959489 100644 --- a/src/librustc/driver/driver.rs +++ b/src/librustc/driver/driver.rs @@ -543,8 +543,8 @@ fn write_out_deps(sess: &Session, // write Makefile-compatible dependency rules let files: Vec<~str> = sess.codemap().files.borrow() .iter().filter_map(|fmap| { - if fmap.deref().is_real_file() { - Some(fmap.deref().name.clone()) + if fmap.is_real_file() { + Some(fmap.name.clone()) } else { None } @@ -682,7 +682,7 @@ pub fn pretty_print_input(sess: Session, }; let src_name = source_name(input); - let src = sess.codemap().get_filemap(src_name).deref().src.as_bytes().to_owned(); + let src = sess.codemap().get_filemap(src_name).src.as_bytes().to_owned(); let mut rdr = MemReader::new(src); match ppm { diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index e7bd536cae2..db62e6bedf0 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -1045,8 +1045,7 @@ fn encode_side_tables_for_id(ecx: &e::EncodeContext, ebml_w.tag(c::tag_table_capture_map, |ebml_w| { ebml_w.id(id); ebml_w.tag(c::tag_table_val, |ebml_w| { - ebml_w.emit_from_vec(cap_vars.deref().as_slice(), - |ebml_w, cap_var| { + ebml_w.emit_from_vec(cap_vars.as_slice(), |ebml_w, cap_var| { cap_var.encode(ebml_w); }) }) diff --git a/src/librustc/middle/borrowck/check_loans.rs b/src/librustc/middle/borrowck/check_loans.rs index 2edb18b73c7..eaef50307ef 100644 --- a/src/librustc/middle/borrowck/check_loans.rs +++ b/src/librustc/middle/borrowck/check_loans.rs @@ -710,7 +710,7 @@ impl<'a> CheckLoanCtxt<'a> { fn check_captured_variables(&self, closure_id: ast::NodeId, span: Span) { - for cap_var in self.bccx.capture_map.get(&closure_id).deref().iter() { + for cap_var in self.bccx.capture_map.get(&closure_id).iter() { let var_id = ast_util::def_id_of_def(cap_var.def).node; let var_path = @LpVar(var_id); self.check_if_path_is_moved(closure_id, span, diff --git a/src/librustc/middle/borrowck/gather_loans/gather_moves.rs b/src/librustc/middle/borrowck/gather_loans/gather_moves.rs index 3d5ea0e89b2..d07d6a066b0 100644 --- a/src/librustc/middle/borrowck/gather_loans/gather_moves.rs +++ b/src/librustc/middle/borrowck/gather_loans/gather_moves.rs @@ -47,7 +47,7 @@ pub fn gather_move_from_pat(bccx: &BorrowckCtxt, pub fn gather_captures(bccx: &BorrowckCtxt, move_data: &MoveData, closure_expr: &ast::Expr) { - for captured_var in bccx.capture_map.get(&closure_expr.id).deref().iter() { + for captured_var in bccx.capture_map.get(&closure_expr.id).iter() { match captured_var.mode { moves::CapMove => { let cmt = bccx.cat_captured_var(closure_expr.id, diff --git a/src/librustc/middle/borrowck/gather_loans/mod.rs b/src/librustc/middle/borrowck/gather_loans/mod.rs index ccf62dd11f7..be86d387b20 100644 --- a/src/librustc/middle/borrowck/gather_loans/mod.rs +++ b/src/librustc/middle/borrowck/gather_loans/mod.rs @@ -452,7 +452,7 @@ impl<'a> GatherLoanCtxt<'a> { fn guarantee_captures(&mut self, closure_expr: &ast::Expr) { - for captured_var in self.bccx.capture_map.get(&closure_expr.id).deref().iter() { + for captured_var in self.bccx.capture_map.get(&closure_expr.id).iter() { match captured_var.mode { moves::CapCopy | moves::CapMove => { continue; } moves::CapRef => { } diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index 5a3436cf8c2..e1b34198777 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -490,7 +490,7 @@ pub fn lit_to_const(lit: &Lit) -> const_val { match lit.node { LitStr(ref s, _) => const_str((*s).clone()), LitBinary(ref data) => { - const_binary(Rc::new(data.deref().iter().map(|x| *x).collect())) + const_binary(Rc::new(data.iter().map(|x| *x).collect())) } LitChar(n) => const_uint(n as u64), LitInt(n, _) => const_int(n), diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index 2c53c729045..b4314026ab6 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -291,7 +291,6 @@ pub fn check_expr(cx: &mut Context, e: &Expr) { } } }; - let type_param_defs = type_param_defs.deref(); if ts.len() != type_param_defs.len() { // Fail earlier to make debugging easier fail!("internal error: in kind::check_expr, length \ diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index bf296b6004c..42b7260a4ae 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -472,7 +472,7 @@ fn visit_expr(ir: &mut IrMaps, expr: &Expr) { // in better error messages than just pointing at the closure // construction site. let mut call_caps = Vec::new(); - for cv in ir.capture_map.get(&expr.id).deref().iter() { + for cv in ir.capture_map.get(&expr.id).iter() { match moves::moved_variable_node_id_from_def(cv.def) { Some(rv) => { let cv_ln = ir.add_live_node(FreeVarNode(cv.span)); @@ -979,7 +979,7 @@ impl<'a> Liveness<'a> { this.ir.tcx.sess.span_bug(expr.span, "no registered caps"); } }; - caps.deref().iter().rev().fold(succ, |succ, cap| { + caps.iter().rev().fold(succ, |succ, cap| { this.init_from_succ(cap.ln, succ); let var = this.variable(cap.var_nid, expr.span); this.acc(cap.ln, var, ACC_READ | ACC_USE); diff --git a/src/librustc/middle/subst.rs b/src/librustc/middle/subst.rs index 0dd5c2ee10e..c6819dbc919 100644 --- a/src/librustc/middle/subst.rs +++ b/src/librustc/middle/subst.rs @@ -141,7 +141,7 @@ impl Subst for Rc { fn subst_spanned(&self, tcx: &ty::ctxt, substs: &ty::substs, span: Option) -> Rc { - Rc::new(self.deref().subst_spanned(tcx, substs, span)) + Rc::new((**self).subst_spanned(tcx, substs, span)) } } diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs index 894d6e4e6f9..fb8f6d4df29 100644 --- a/src/librustc/middle/trans/closure.rs +++ b/src/librustc/middle/trans/closure.rs @@ -394,11 +394,11 @@ pub fn trans_expr_fn<'a>( let cap_vars = ccx.maps.capture_map.borrow().get_copy(&id); let ClosureResult {llbox, cdata_ty, bcx} = - build_closure(bcx, cap_vars.deref().as_slice(), sigil); + build_closure(bcx, cap_vars.as_slice(), sigil); trans_closure(ccx, decl, body, llfn, bcx.fcx.param_substs, id, [], ty::ty_fn_ret(fty), - |bcx| load_environment(bcx, cdata_ty, cap_vars.deref().as_slice(), sigil)); + |bcx| load_environment(bcx, cdata_ty, cap_vars.as_slice(), sigil)); fill_fn_pair(bcx, dest_addr, llfn, llbox); bcx diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs index 6c8fa0e5086..b5b68a521a8 100644 --- a/src/librustc/middle/trans/common.rs +++ b/src/librustc/middle/trans/common.rs @@ -937,7 +937,7 @@ pub fn filename_and_line_num_from_span(bcx: &Block, span: Span) -> (ValueRef, ValueRef) { let loc = bcx.sess().codemap().lookup_char_pos(span.lo); let filename_cstr = C_cstr(bcx.ccx(), - token::intern_and_get_ident(loc.file.deref().name)); + token::intern_and_get_ident(loc.file.name)); let filename = build::PointerCast(bcx, filename_cstr, Type::i8p(bcx.ccx())); let line = C_int(bcx.ccx(), loc.line as int); (filename, line) diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index 2415a901213..fcc645a01d4 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -77,7 +77,7 @@ pub fn const_lit(cx: &CrateContext, e: &ast::Expr, lit: ast::Lit) ast::LitBool(b) => C_bool(cx, b), ast::LitNil => C_nil(cx), ast::LitStr(ref s, _) => C_str_slice(cx, (*s).clone()), - ast::LitBinary(ref data) => C_binary_slice(cx, data.deref().as_slice()), + ast::LitBinary(ref data) => C_binary_slice(cx, data.as_slice()), } } diff --git a/src/librustc/middle/trans/controlflow.rs b/src/librustc/middle/trans/controlflow.rs index 489405459ae..8e55319013b 100644 --- a/src/librustc/middle/trans/controlflow.rs +++ b/src/librustc/middle/trans/controlflow.rs @@ -334,7 +334,7 @@ pub fn trans_fail<'a>( let v_fail_str = C_cstr(ccx, fail_str); let _icx = push_ctxt("trans_fail_value"); let loc = bcx.sess().codemap().lookup_char_pos(sp.lo); - let v_filename = C_cstr(ccx, token::intern_and_get_ident(loc.file.deref().name)); + let v_filename = C_cstr(ccx, token::intern_and_get_ident(loc.file.name)); let v_line = loc.line as int; let v_str = PointerCast(bcx, v_fail_str, Type::i8p(ccx)); let v_filename = PointerCast(bcx, v_filename, Type::i8p(ccx)); diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs index 1458e9e7f39..9f5959e05de 100644 --- a/src/librustc/middle/trans/debuginfo.rs +++ b/src/librustc/middle/trans/debuginfo.rs @@ -610,7 +610,7 @@ pub fn create_function_debug_context(cx: &CrateContext, } let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); let function_type_metadata = unsafe { let fn_signature = get_function_signature(cx, fn_ast_id, fn_decl, param_substs, span); @@ -930,7 +930,7 @@ fn declare_local(bcx: &Block, span: Span) { let cx: &CrateContext = bcx.ccx(); - let filename = span_start(cx, span).file.deref().name.clone(); + let filename = span_start(cx, span).file.name.clone(); let file_metadata = file_metadata(cx, filename); let name = token::get_ident(variable_ident); @@ -1181,7 +1181,7 @@ fn prepare_struct_metadata(cx: &CrateContext, let (containing_scope, definition_span) = get_namespace_and_span_for_item(cx, def_id); - let file_name = span_start(cx, definition_span).file.deref().name.clone(); + let file_name = span_start(cx, definition_span).file.name.clone(); let file_metadata = file_metadata(cx, file_name); let struct_metadata_stub = create_struct_stub(cx, @@ -1276,7 +1276,7 @@ fn prepare_tuple_metadata(cx: &CrateContext, let tuple_llvm_type = type_of::type_of(cx, tuple_type); let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); UnfinishedMetadata { cache_id: cache_id_for_type(tuple_type), @@ -1436,7 +1436,7 @@ fn prepare_enum_metadata(cx: &CrateContext, let (containing_scope, definition_span) = get_namespace_and_span_for_item(cx, enum_def_id); let loc = span_start(cx, definition_span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); // For empty enums there is an early exit. Just describe it as an empty struct with the // appropriate type name @@ -1775,7 +1775,7 @@ fn boxed_type_metadata(cx: &CrateContext, ]; let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); return composite_type_metadata( cx, @@ -1876,7 +1876,7 @@ fn vec_metadata(cx: &CrateContext, assert!(member_descriptions.len() == member_llvm_types.len()); let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); composite_type_metadata( cx, @@ -1927,7 +1927,7 @@ fn vec_slice_metadata(cx: &CrateContext, assert!(member_descriptions.len() == member_llvm_types.len()); let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); return composite_type_metadata( cx, @@ -1953,7 +1953,7 @@ fn subroutine_type_metadata(cx: &CrateContext, span: Span) -> DICompositeType { let loc = span_start(cx, span); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); let mut signature_metadata: Vec = Vec::with_capacity(signature.inputs.len() + 1); @@ -1999,7 +1999,7 @@ fn trait_metadata(cx: &CrateContext, let (containing_scope, definition_span) = get_namespace_and_span_for_item(cx, def_id); - let file_name = span_start(cx, definition_span).file.deref().name.clone(); + let file_name = span_start(cx, definition_span).file.name.clone(); let file_metadata = file_metadata(cx, file_name); let trait_llvm_type = type_of::type_of(cx, trait_type); @@ -2297,7 +2297,7 @@ fn populate_scope_map(cx: &CrateContext, &mut HashMap|) { // Create a new lexical scope and push it onto the stack let loc = cx.sess().codemap().lookup_char_pos(scope_span.lo); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); let parent_scope = scope_stack.last().unwrap().scope_metadata; let scope_metadata = unsafe { @@ -2414,7 +2414,7 @@ fn populate_scope_map(cx: &CrateContext, if need_new_scope { // Create a new lexical scope and push it onto the stack let loc = cx.sess().codemap().lookup_char_pos(pat.span.lo); - let file_metadata = file_metadata(cx, loc.file.deref().name); + let file_metadata = file_metadata(cx, loc.file.name); let parent_scope = scope_stack.last().unwrap().scope_metadata; let scope_metadata = unsafe { diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 76b6c7b40fe..96d0da905b2 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -1009,13 +1009,13 @@ pub struct Generics { impl Generics { pub fn has_type_params(&self) -> bool { - !self.type_param_defs.deref().is_empty() + !self.type_param_defs.is_empty() } pub fn type_param_defs<'a>(&'a self) -> &'a [TypeParameterDef] { - self.type_param_defs.deref().as_slice() + self.type_param_defs.as_slice() } pub fn region_param_defs<'a>(&'a self) -> &'a [RegionParameterDef] { - self.region_param_defs.deref().as_slice() + self.region_param_defs.as_slice() } } diff --git a/src/librustc/middle/typeck/check/method.rs b/src/librustc/middle/typeck/check/method.rs index 782d208e2f9..9b623f1e78e 100644 --- a/src/librustc/middle/typeck/check/method.rs +++ b/src/librustc/middle/typeck/check/method.rs @@ -1110,7 +1110,7 @@ impl<'a> LookupContext<'a> { let m_regions = self.fcx.infcx().region_vars_for_defs( self.span, - candidate.method_ty.generics.region_param_defs.deref().as_slice()); + candidate.method_ty.generics.region_param_defs.as_slice()); for &r in m_regions.iter() { all_regions.push(r); } diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index 256806690fb..d4fd8d43927 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -565,7 +565,7 @@ pub fn check_item(ccx: &CrateCtxt, it: &ast::Item) { fn_tpt.generics.type_param_defs(), [], [], - fn_tpt.generics.region_param_defs.deref().as_slice(), + fn_tpt.generics.region_param_defs.as_slice(), body.id); check_bare_fn(ccx, decl, body, it.id, fn_tpt.ty, param_env); @@ -3698,7 +3698,7 @@ pub fn instantiate_path(fcx: &FnCtxt, nsupplied = num_supplied_regions)); } - fcx.infcx().region_vars_for_defs(span, tpt.generics.region_param_defs.deref().as_slice()) + fcx.infcx().region_vars_for_defs(span, tpt.generics.region_param_defs.as_slice()) }; let regions = ty::NonerasedRegions(regions); diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs index 320adcac577..29f481f9c04 100644 --- a/src/librustc/middle/typeck/check/vtable.rs +++ b/src/librustc/middle/typeck/check/vtable.rs @@ -666,12 +666,11 @@ pub fn early_resolve_expr(ex: &ast::Expr, fcx: &FnCtxt, is_early: bool) { debug!("vtable resolution on parameter bounds for method call {}", ex.repr(fcx.tcx())); let type_param_defs = ty::method_call_type_param_defs(cx.tcx, method.origin); - if has_trait_bounds(type_param_defs.deref().as_slice()) { + if has_trait_bounds(type_param_defs.as_slice()) { let substs = fcx.method_ty_substs(ex.id); let vcx = fcx.vtable_context(); let vtbls = lookup_vtables(&vcx, ex.span, - type_param_defs.deref() - .as_slice(), + type_param_defs.as_slice(), &substs, is_early); if !is_early { insert_vtables(fcx, ex.id, vtbls); @@ -780,7 +779,7 @@ pub fn resolve_impl(tcx: &ty::ctxt, pub fn trans_resolve_method(tcx: &ty::ctxt, id: ast::NodeId, substs: &ty::substs) -> Option { let generics = ty::lookup_item_type(tcx, ast_util::local_def(id)).generics; - let type_param_defs = generics.type_param_defs.deref(); + let type_param_defs = &*generics.type_param_defs; if has_trait_bounds(type_param_defs.as_slice()) { let vcx = VtableContext { infcx: &infer::new_infer_ctxt(tcx), diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs index 8e074149b37..fe066ddeda9 100644 --- a/src/librustc/middle/typeck/collect.rs +++ b/src/librustc/middle/typeck/collect.rs @@ -338,8 +338,7 @@ pub fn ensure_trait_methods(ccx: &CrateCtxt, trait_id: ast::NodeId) { let mut new_type_param_defs = Vec::new(); let substd_type_param_defs = trait_ty_generics.type_param_defs.subst(tcx, &substs); - new_type_param_defs.push_all(substd_type_param_defs.deref() - .as_slice()); + new_type_param_defs.push_all(substd_type_param_defs.as_slice()); // add in the "self" type parameter let self_trait_def = get_trait_def(ccx, local_def(trait_id)); @@ -356,8 +355,7 @@ pub fn ensure_trait_methods(ccx: &CrateCtxt, trait_id: ast::NodeId) { // add in the type parameters from the method let substd_type_param_defs = m.generics.type_param_defs.subst(tcx, &substs); - new_type_param_defs.push_all(substd_type_param_defs.deref() - .as_slice()); + new_type_param_defs.push_all(substd_type_param_defs.as_slice()); debug!("static method {} type_param_defs={} ty={}, substs={}", m.def_id.repr(tcx), diff --git a/src/librustdoc/clean.rs b/src/librustdoc/clean.rs index 05f6db8cc45..b0554c21bf9 100644 --- a/src/librustdoc/clean.rs +++ b/src/librustdoc/clean.rs @@ -1181,7 +1181,7 @@ impl ToSource for syntax::codemap::Span { fn lit_to_str(lit: &ast::Lit) -> ~str { match lit.node { ast::LitStr(ref st, _) => st.get().to_owned(), - ast::LitBinary(ref data) => format!("{:?}", data.deref().as_slice()), + ast::LitBinary(ref data) => format!("{:?}", data.as_slice()), ast::LitChar(c) => ~"'" + std::char::from_u32(c).unwrap().to_str() + "'", ast::LitInt(i, _t) => i.to_str(), ast::LitUint(u, _t) => u.to_str(), diff --git a/src/librustuv/idle.rs b/src/librustuv/idle.rs index a6c0a7b829a..bc28c5e109e 100644 --- a/src/librustuv/idle.rs +++ b/src/librustuv/idle.rs @@ -113,7 +113,7 @@ mod test { fn call(&mut self) { let task = match *self { MyCallback(ref rc, n) => { - let mut slot = rc.deref().borrow_mut(); + let mut slot = rc.borrow_mut(); match *slot.get() { (ref mut task, ref mut val) => { *val = n; @@ -140,7 +140,7 @@ mod test { fn sleep(chan: &Chan) -> uint { let task: ~Task = Local::take(); task.deschedule(1, |task| { - let mut slot = chan.deref().borrow_mut(); + let mut slot = chan.borrow_mut(); match *slot.get() { (ref mut slot, _) => { assert!(slot.is_none()); @@ -150,7 +150,7 @@ mod test { Ok(()) }); - let slot = chan.deref().borrow(); + let slot = chan.borrow(); match *slot.get() { (_, n) => n } } diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs index 60de03a7b43..ca8c564f9f5 100644 --- a/src/libserialize/serialize.rs +++ b/src/libserialize/serialize.rs @@ -387,7 +387,7 @@ impl> Encodable for @T { impl> Encodable for Rc { #[inline] fn encode(&self, s: &mut S) { - self.deref().encode(s) + (**self).encode(s) } } diff --git a/src/libstd/hash/mod.rs b/src/libstd/hash/mod.rs index 3791aa38b82..dc7d5c5b9c7 100644 --- a/src/libstd/hash/mod.rs +++ b/src/libstd/hash/mod.rs @@ -66,7 +66,6 @@ use container::Container; use io::Writer; use iter::Iterator; -use ops::Deref; use option::{Option, Some, None}; use rc::Rc; use str::{Str, StrSlice}; @@ -247,7 +246,7 @@ impl> Hash for @T { impl> Hash for Rc { #[inline] fn hash(&self, state: &mut S) { - self.deref().hash(state); + (**self).hash(state); } } diff --git a/src/libstd/option.rs b/src/libstd/option.rs index 5f733302d6f..23363a97845 100644 --- a/src/libstd/option.rs +++ b/src/libstd/option.rs @@ -650,7 +650,7 @@ mod tests { #[unsafe_destructor] impl ::ops::Drop for R { fn drop(&mut self) { - let ii = self.i.deref(); + let ii = &*self.i; ii.set(ii.get() + 1); } } @@ -667,7 +667,7 @@ mod tests { let opt = Some(x); let _y = opt.unwrap(); } - assert_eq!(i.deref().get(), 1); + assert_eq!(i.get(), 1); } #[test] diff --git a/src/libstd/rc.rs b/src/libstd/rc.rs index 490b3068dda..8dd06cb9232 100644 --- a/src/libstd/rc.rs +++ b/src/libstd/rc.rs @@ -122,24 +122,23 @@ impl Clone for Rc { impl Eq for Rc { #[inline(always)] - fn eq(&self, other: &Rc) -> bool { *self.deref() == *other.deref() } - + fn eq(&self, other: &Rc) -> bool { **self == **other } #[inline(always)] - fn ne(&self, other: &Rc) -> bool { *self.deref() != *other.deref() } + fn ne(&self, other: &Rc) -> bool { **self != **other } } impl Ord for Rc { #[inline(always)] - fn lt(&self, other: &Rc) -> bool { *self.deref() < *other.deref() } + fn lt(&self, other: &Rc) -> bool { **self < **other } #[inline(always)] - fn le(&self, other: &Rc) -> bool { *self.deref() <= *other.deref() } + fn le(&self, other: &Rc) -> bool { **self <= **other } #[inline(always)] - fn gt(&self, other: &Rc) -> bool { *self.deref() > *other.deref() } + fn gt(&self, other: &Rc) -> bool { **self > **other } #[inline(always)] - fn ge(&self, other: &Rc) -> bool { *self.deref() >= *other.deref() } + fn ge(&self, other: &Rc) -> bool { **self >= **other } } /// Weak reference to a reference-counted box @@ -236,21 +235,21 @@ mod tests { #[test] fn test_simple() { let x = Rc::new(5); - assert_eq!(*x.deref(), 5); + assert_eq!(*x, 5); } #[test] fn test_simple_clone() { let x = Rc::new(5); let y = x.clone(); - assert_eq!(*x.deref(), 5); - assert_eq!(*y.deref(), 5); + assert_eq!(*x, 5); + assert_eq!(*y, 5); } #[test] fn test_destructor() { let x = Rc::new(~5); - assert_eq!(**x.deref(), 5); + assert_eq!(**x, 5); } #[test] @@ -273,7 +272,7 @@ mod tests { // see issue #11532 use gc::Gc; let a = Rc::new(RefCell::new(Gc::new(1))); - assert!(a.deref().try_borrow_mut().is_some()); + assert!(a.try_borrow_mut().is_some()); } #[test] @@ -284,7 +283,7 @@ mod tests { let a = Rc::new(Cycle { x: RefCell::new(None) }); let b = a.clone().downgrade(); - *a.deref().x.borrow_mut() = Some(b); + *a.x.borrow_mut() = Some(b); // hopefully we don't double-free (or leak)... } diff --git a/src/test/compile-fail/issue-7013.rs b/src/test/compile-fail/issue-7013.rs index a3354e230c6..5c84cbe00a9 100644 --- a/src/test/compile-fail/issue-7013.rs +++ b/src/test/compile-fail/issue-7013.rs @@ -40,7 +40,7 @@ fn main() //~^ ERROR cannot pack type `~B`, which does not fulfill `Send` let v = Rc::new(RefCell::new(a)); let w = v.clone(); - let b = v.deref(); + let b = &*v; let mut b = b.borrow_mut(); b.v.set(w.clone()); } diff --git a/src/test/run-pass/self-re-assign.rs b/src/test/run-pass/self-re-assign.rs index cba142680df..4e1a9b665d0 100644 --- a/src/test/run-pass/self-re-assign.rs +++ b/src/test/run-pass/self-re-assign.rs @@ -20,5 +20,5 @@ pub fn main() { let mut x = Rc::new(3); x = x; - assert!(*x.deref() == 3); + assert!(*x == 3); } -- cgit 1.4.1-3-g733a5