File tree 3 files changed +36
-0
lines changed
3 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -471,6 +471,9 @@ impl<'tcx> Visitor<'tcx> for ExprLocatorVisitor {
471
471
472
472
self . expr_and_pat_count += 1 ;
473
473
474
+ if pat. id == self . id {
475
+ self . result = Some ( self . expr_and_pat_count ) ;
476
+ }
474
477
}
475
478
476
479
fn visit_expr ( & mut self , expr : & ' tcx Expr ) {
Original file line number Diff line number Diff line change
1
+ // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ #![ feature( generators) ]
12
+
13
+ enum Test { A ( i32 ) , B , }
14
+
15
+ fn main ( ) { }
16
+
17
+ fn fun ( test : Test ) {
18
+ move || {
19
+ if let Test :: A ( ref _a) = test { //~ ERROR borrow may still be in use when generator yields
20
+ yield ( ) ;
21
+ }
22
+ } ;
23
+ }
Original file line number Diff line number Diff line change
1
+ error[E0626]: borrow may still be in use when generator yields
2
+ --> $DIR/pattern-borrow.rs:19:24
3
+ |
4
+ 19 | if let Test::A(ref _a) = test { //~ ERROR borrow may still be in use when generator yields
5
+ | ^^^^^^
6
+ 20 | yield ();
7
+ | -------- possible yield occurs here
8
+
9
+ error: aborting due to previous error
10
+
You can’t perform that action at this time.
0 commit comments