@@ -436,7 +436,7 @@ pub impl VisitContext {
436
436
437
437
expr_unary( deref, base) => { // *base
438
438
if !self . use_overloaded_operator (
439
- expr, DontDerefArgs , base, [ ] , visitor)
439
+ expr, base, [ ] , visitor)
440
440
{
441
441
// Moving out of *base moves out of base.
442
442
self . use_expr ( base, comp_mode, visitor) ;
@@ -450,7 +450,7 @@ pub impl VisitContext {
450
450
451
451
expr_index( lhs, rhs) => { // lhs[rhs]
452
452
if !self . use_overloaded_operator (
453
- expr, DontDerefArgs , lhs, [ rhs] , visitor)
453
+ expr, lhs, [ rhs] , visitor)
454
454
{
455
455
self . use_expr ( lhs, comp_mode, visitor) ;
456
456
self . consume_expr ( rhs, visitor) ;
@@ -579,15 +579,15 @@ pub impl VisitContext {
579
579
580
580
expr_unary( _, lhs) => {
581
581
if !self . use_overloaded_operator (
582
- expr, DontDerefArgs , lhs, [ ] , visitor)
582
+ expr, lhs, [ ] , visitor)
583
583
{
584
584
self . consume_expr ( lhs, visitor) ;
585
585
}
586
586
}
587
587
588
588
expr_binary( _, lhs, rhs) => {
589
589
if !self . use_overloaded_operator (
590
- expr, DoDerefArgs , lhs, [ rhs] , visitor)
590
+ expr, lhs, [ rhs] , visitor)
591
591
{
592
592
self . consume_expr ( lhs, visitor) ;
593
593
self . consume_expr ( rhs, visitor) ;
@@ -659,7 +659,6 @@ pub impl VisitContext {
659
659
660
660
fn use_overloaded_operator ( & self ,
661
661
expr : @expr,
662
- deref_args : DerefArgs ,
663
662
receiver_expr : @expr,
664
663
arg_exprs: & [ @expr] ,
665
664
visitor : vt < VisitContext > ) -> bool
@@ -670,21 +669,10 @@ pub impl VisitContext {
670
669
671
670
self . use_receiver ( expr. id , expr. span , receiver_expr, visitor) ;
672
671
673
- // The deref_args stuff should eventually be converted into
674
- // adjustments. Moreover, it should eventually be applied
675
- // consistently to all overloaded operators. But that's not
676
- // how it is today.
677
- match deref_args {
678
- DoDerefArgs => {
679
- // we are always passing in a borrowed pointer,
680
- // so it's always read mode:
681
- for arg_exprs. each |arg_expr| {
682
- self . use_expr ( * arg_expr, Read , visitor) ;
683
- }
684
- }
685
- DontDerefArgs => {
686
- self . use_fn_args ( expr. callee_id , arg_exprs, visitor) ;
687
- }
672
+ // for overloaded operatrs, we are always passing in a
673
+ // borrowed pointer, so it's always read mode:
674
+ for arg_exprs. each |arg_expr| {
675
+ self . use_expr ( * arg_expr, Read , visitor) ;
688
676
}
689
677
690
678
return true ;
@@ -737,20 +725,7 @@ pub impl VisitContext {
737
725
receiver_expr: @expr,
738
726
visitor : vt < VisitContext > )
739
727
{
740
- let callee_mode = match self . method_map . find ( & expr_id) {
741
- Some ( ref method_map_entry) => {
742
- match method_map_entry. explicit_self {
743
- sty_by_ref => by_ref,
744
- _ => by_copy
745
- }
746
- }
747
- None => {
748
- self . tcx . sess . span_bug (
749
- span,
750
- ~"no method map entry") ;
751
- }
752
- } ;
753
- self . use_fn_arg ( callee_mode, receiver_expr, visitor) ;
728
+ self . use_fn_arg ( by_copy, receiver_expr, visitor) ;
754
729
}
755
730
756
731
fn use_fn_args ( & self ,
0 commit comments