@@ -544,10 +544,6 @@ pub struct DetermineRpCtxt {
544
544
// see long discussion on region_is_relevant().
545
545
anon_implies_rp : bool ,
546
546
547
- // true when we are not within an &self method.
548
- // see long discussion on region_is_relevant().
549
- self_implies_rp : bool ,
550
-
551
547
// encodes the context of the current type; invariant if
552
548
// mutable, covariant otherwise
553
549
ambient_variance : region_variance ,
@@ -689,7 +685,7 @@ pub impl DetermineRpCtxt {
689
685
false
690
686
}
691
687
Some ( ref l) if l. ident == special_idents:: self_ => {
692
- self . self_implies_rp
688
+ true
693
689
}
694
690
Some ( _) => {
695
691
false
@@ -700,23 +696,18 @@ pub impl DetermineRpCtxt {
700
696
fn with ( @mut self ,
701
697
item_id : ast:: node_id ,
702
698
anon_implies_rp : bool ,
703
- self_implies_rp : bool ,
704
699
f : & fn ( ) ) {
705
700
let old_item_id = self . item_id ;
706
701
let old_anon_implies_rp = self . anon_implies_rp ;
707
- let old_self_implies_rp = self . self_implies_rp ;
708
702
self . item_id = item_id;
709
703
self . anon_implies_rp = anon_implies_rp;
710
- self . self_implies_rp = self_implies_rp;
711
- debug ! ( "with_item_id(%d, %b, %b)" ,
704
+ debug ! ( "with_item_id(%d, %b)" ,
712
705
item_id,
713
- anon_implies_rp,
714
- self_implies_rp) ;
706
+ anon_implies_rp) ;
715
707
let _i = :: util:: common:: indenter ( ) ;
716
708
f ( ) ;
717
709
self . item_id = old_item_id;
718
710
self . anon_implies_rp = old_anon_implies_rp;
719
- self . self_implies_rp = old_self_implies_rp;
720
711
}
721
712
722
713
fn with_ambient_variance ( @mut self , variance : region_variance , f : & fn ( ) ) {
@@ -730,7 +721,7 @@ pub impl DetermineRpCtxt {
730
721
pub fn determine_rp_in_item ( item : @ast:: item ,
731
722
& & cx: @mut DetermineRpCtxt ,
732
723
visitor : visit:: vt < @mut DetermineRpCtxt > ) {
733
- do cx. with ( item. id , true , true ) {
724
+ do cx. with ( item. id , true ) {
734
725
visit:: visit_item ( item, cx, visitor) ;
735
726
}
736
727
}
@@ -742,12 +733,7 @@ pub fn determine_rp_in_fn(fk: &visit::fn_kind,
742
733
_: ast:: node_id ,
743
734
& & cx: @mut DetermineRpCtxt ,
744
735
visitor : visit:: vt < @mut DetermineRpCtxt > ) {
745
- let self_implies_rp = match fk {
746
- & visit:: fk_method( _, _, m) => !m. self_ty . node . is_borrowed ( ) ,
747
- _ => true
748
- } ;
749
-
750
- do cx. with ( cx. item_id , false , self_implies_rp) {
736
+ do cx. with ( cx. item_id , false ) {
751
737
do cx. with_ambient_variance ( rv_contravariant) {
752
738
for decl. inputs. each |a| {
753
739
( visitor. visit_ty ) ( a. ty , cx, visitor) ;
@@ -763,7 +749,7 @@ pub fn determine_rp_in_fn(fk: &visit::fn_kind,
763
749
pub fn determine_rp_in_ty_method ( ty_m : & ast:: ty_method ,
764
750
& & cx: @mut DetermineRpCtxt ,
765
751
visitor : visit:: vt < @mut DetermineRpCtxt > ) {
766
- do cx. with ( cx. item_id , false , !ty_m . self_ty . node . is_borrowed ( ) ) {
752
+ do cx. with ( cx. item_id , false ) {
767
753
visit:: visit_ty_method ( ty_m, cx, visitor) ;
768
754
}
769
755
}
@@ -868,7 +854,7 @@ pub fn determine_rp_in_ty(ty: @ast::Ty,
868
854
ast:: ty_bare_fn( @ast:: TyBareFn { decl : ref decl, _} ) => {
869
855
// fn() binds the & region, so do not consider &T types that
870
856
// appear *inside* a fn() type to affect the enclosing item:
871
- do cx. with ( cx. item_id , false , true ) {
857
+ do cx. with ( cx. item_id , false ) {
872
858
// parameters are contravariant
873
859
do cx. with_ambient_variance ( rv_contravariant) {
874
860
for decl. inputs. each |a| {
@@ -929,7 +915,6 @@ pub fn determine_rp_in_crate(sess: Session,
929
915
worklist : ~[ ] ,
930
916
item_id : 0 ,
931
917
anon_implies_rp : false ,
932
- self_implies_rp : true ,
933
918
ambient_variance : rv_covariant
934
919
} ;
935
920
0 commit comments