@@ -739,18 +739,20 @@ impl LookupContext {
739
739
740
740
let tcx = self . tcx ( ) ;
741
741
return match ty:: get ( self_ty) . sty {
742
- ty:: ty_rptr( self_r, self_mt) if self_mt. mutbl == m_mutbl => {
743
- let region = fresh_region ( self , self_r) ;
742
+ ty:: ty_rptr( _, self_mt) if self_mt. mutbl == m_mutbl => {
743
+ let region = self . infcx ( ) . next_region_var ( self . expr . span ,
744
+ self . expr . id ) ;
744
745
( ty:: mk_rptr ( tcx, region, self_mt) ,
745
746
ty:: AutoAdjustment {
746
747
autoderefs : autoderefs+1 ,
747
748
autoref : Some ( ty:: AutoRef { kind : AutoPtr ,
748
749
region : region,
749
750
mutbl : self_mt. mutbl } ) } )
750
751
}
751
- ty:: ty_evec( self_mt, vstore_slice( self_r ) )
752
+ ty:: ty_evec( self_mt, vstore_slice( _ ) )
752
753
if self_mt. mutbl == m_mutbl => {
753
- let region = fresh_region ( self , self_r) ;
754
+ let region = self . infcx ( ) . next_region_var ( self . expr . span ,
755
+ self . expr . id ) ;
754
756
( ty:: mk_evec ( tcx, self_mt, vstore_slice ( region) ) ,
755
757
ty:: AutoAdjustment {
756
758
autoderefs : autoderefs,
@@ -763,26 +765,6 @@ impl LookupContext {
763
765
autoref : None } )
764
766
}
765
767
} ;
766
-
767
- fn fresh_region ( self : & LookupContext ,
768
- self_r : ty:: Region ) -> ty:: Region {
769
- let region = self . infcx ( ) . next_region_var ( self . expr . span ,
770
- self . expr . id ) ;
771
-
772
- // FIXME(#3148)---in principle this dependency should
773
- // be done more generally as part of regionck
774
- match infer:: mk_subr ( self . infcx ( ) , true , self . expr . span ,
775
- region, self_r) {
776
- Ok ( _) => { }
777
- Err ( e) => {
778
- self . tcx ( ) . sess . span_bug (
779
- self . expr . span ,
780
- fmt ! ( "Failed with error: %?" , e) ) ;
781
- }
782
- }
783
-
784
- return region;
785
- }
786
768
}
787
769
788
770
fn search_for_autosliced_method (
0 commit comments