File tree Expand file tree Collapse file tree 2 files changed +14
-2
lines changed
branches/dist-snap/src/librustc/middle Expand file tree Collapse file tree 2 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ refs/heads/try: 189b7332968972f34cdbbbd9b62d97ababf53059
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9
- refs/heads/dist-snap: 931f59f214f68bf2a5656d605cb200f22d47cdf8
9
+ refs/heads/dist-snap: 72dc0f5f82efcf891581fdc3ec15eb46f38cd718
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
12
12
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
Original file line number Diff line number Diff line change @@ -4668,15 +4668,27 @@ pub struct UnboxedClosureUpvar {
4668
4668
pub fn unboxed_closure_upvars ( tcx : & ctxt , closure_id : ast:: DefId )
4669
4669
-> Vec < UnboxedClosureUpvar > {
4670
4670
if closure_id. krate == ast:: LOCAL_CRATE {
4671
+ let capture_mode = tcx. capture_modes . borrow ( ) . get_copy ( & closure_id. node ) ;
4671
4672
match tcx. freevars . borrow ( ) . find ( & closure_id. node ) {
4672
4673
None => vec ! [ ] ,
4673
4674
Some ( ref freevars) => {
4674
4675
freevars. iter ( ) . map ( |freevar| {
4675
4676
let freevar_def_id = freevar. def . def_id ( ) ;
4677
+ let mut freevar_ty = node_id_to_type ( tcx, freevar_def_id. node ) ;
4678
+ if capture_mode == ast:: CaptureByRef {
4679
+ let borrow = tcx. upvar_borrow_map . borrow ( ) . get_copy ( & ty:: UpvarId {
4680
+ var_id : freevar_def_id. node ,
4681
+ closure_expr_id : closure_id. node
4682
+ } ) ;
4683
+ freevar_ty = mk_rptr ( tcx, borrow. region , ty:: mt {
4684
+ ty : freevar_ty,
4685
+ mutbl : borrow. kind . to_mutbl_lossy ( )
4686
+ } ) ;
4687
+ }
4676
4688
UnboxedClosureUpvar {
4677
4689
def : freevar. def ,
4678
4690
span : freevar. span ,
4679
- ty : node_id_to_type ( tcx , freevar_def_id . node ) ,
4691
+ ty : freevar_ty
4680
4692
}
4681
4693
} ) . collect ( )
4682
4694
}
You can’t perform that action at this time.
0 commit comments