@@ -155,6 +155,12 @@ enum UseError {
155
155
UseWhileBorrowed ( /*loan*/ Rc < LoanPath > , /*loan*/ Span )
156
156
}
157
157
158
+ fn compatible_borrow_kinds ( borrow_kind1 : ty:: BorrowKind ,
159
+ borrow_kind2 : ty:: BorrowKind )
160
+ -> bool {
161
+ borrow_kind1 == ty:: ImmBorrow && borrow_kind2 == ty:: ImmBorrow
162
+ }
163
+
158
164
impl < ' a > CheckLoanCtxt < ' a > {
159
165
pub fn tcx ( & self ) -> & ' a ty:: ctxt { self . bccx . tcx }
160
166
@@ -542,7 +548,7 @@ impl<'a> CheckLoanCtxt<'a> {
542
548
// let y = a; // Conflicts with restriction
543
549
544
550
self . each_in_scope_restriction ( expr_id, use_path, |loan| {
545
- if incompatible ( loan. kind , borrow_kind) {
551
+ if ! compatible_borrow_kinds ( loan. kind , borrow_kind) {
546
552
ret = UseWhileBorrowed ( loan. loan_path . clone ( ) , loan. span ) ;
547
553
false
548
554
} else {
@@ -566,7 +572,7 @@ impl<'a> CheckLoanCtxt<'a> {
566
572
loop {
567
573
self . each_in_scope_loan ( expr_id, |loan| {
568
574
if * loan. loan_path == * loan_path &&
569
- incompatible ( loan. kind , borrow_kind) {
575
+ ! compatible_borrow_kinds ( loan. kind , borrow_kind) {
570
576
ret = UseWhileBorrowed ( loan. loan_path . clone ( ) , loan. span ) ;
571
577
false
572
578
} else {
@@ -585,12 +591,6 @@ impl<'a> CheckLoanCtxt<'a> {
585
591
}
586
592
587
593
return ret;
588
-
589
- fn incompatible ( borrow_kind1 : ty:: BorrowKind ,
590
- borrow_kind2 : ty:: BorrowKind )
591
- -> bool {
592
- borrow_kind1 != ty:: ImmBorrow || borrow_kind2 != ty:: ImmBorrow
593
- }
594
594
}
595
595
596
596
fn check_if_path_is_moved ( & self ,
0 commit comments