@@ -103,6 +103,39 @@ pub(super) struct JobOwner<'a, 'tcx: 'a, Q: QueryDescription<'tcx> + 'a> {
103
103
layout_depth : usize ,
104
104
}
105
105
106
+ #[ no_mangle]
107
+ fn size_JobOwner ( ) -> usize {
108
+ std:: mem:: size_of :: < JobOwner < :: ty:: query:: queries:: type_of > > ( )
109
+ }
110
+
111
+ #[ no_mangle]
112
+ fn size_QueryJob ( ) -> usize {
113
+ std:: mem:: size_of :: < QueryJob > ( )
114
+ }
115
+
116
+ #[ no_mangle]
117
+ fn size_Query ( ) -> usize {
118
+ std:: mem:: size_of :: < :: ty:: query:: Query > ( )
119
+ }
120
+
121
+ use hir:: def_id:: DefId ;
122
+
123
+ #[ no_mangle]
124
+ fn size_DefId ( ) -> usize {
125
+ std:: mem:: size_of :: < DefId > ( )
126
+ }
127
+ use hir:: def_id:: CrateId ;
128
+ #[ no_mangle]
129
+ fn size_CrateId ( ) -> usize {
130
+ std:: mem:: size_of :: < CrateId > ( )
131
+ }
132
+
133
+ use hir:: def_id:: CrateNum ;
134
+ #[ no_mangle]
135
+ fn size_CrateNum ( ) -> usize {
136
+ std:: mem:: size_of :: < CrateNum > ( )
137
+ }
138
+
106
139
use std:: mem:: MaybeUninit ;
107
140
#[ inline( never) ]
108
141
pub fn may_panic < ' tcx > ( job : Lrc < QueryJob < ' tcx > > ) {
@@ -115,7 +148,7 @@ pub fn test_space() {
115
148
116
149
#[ no_mangle]
117
150
fn test_moves2 < ' a , ' tcx > ( tcx : TyCtxt < ' a , ' tcx , ' tcx > ,
118
- key : & :: hir :: def_id :: DefId , key_hash : u64 ,
151
+ key : & DefId , key_hash : u64 ,
119
152
span : Span ,
120
153
parent : & Option < Lrc < QueryJob < ' tcx > > > ,
121
154
mut job_storage : MoveSlot < ' a , JobOwner < ' a , ' tcx , :: ty:: query:: queries:: type_of < ' tcx > > > ,
@@ -128,7 +161,7 @@ fn test_moves2<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
128
161
query : :: ty:: query:: queries:: type_of:: query ( * key) ,
129
162
} ;
130
163
* Lrc :: get_mut ( & mut job) . unwrap ( ) =
131
- MaybeUninit :: new ( QueryJob :: new ( info, parent) ) ;
164
+ MaybeUninit :: new ( QueryJob :: new ( info, parent. clone ( ) ) ) ;
132
165
let job: Lrc < QueryJob < ' tcx > > = unsafe { std:: mem:: transmute ( job) } ;
133
166
let job_clone = job. clone ( ) ;
134
167
may_panic ( job) ;
@@ -151,11 +184,11 @@ fn test_moves<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
151
184
use ty:: query:: config:: QueryAccessors ;
152
185
tls:: with_related_context ( tcx, |icx| {
153
186
let mut job = Lrc :: new ( MaybeUninit :: uninitialized ( ) ) ;
154
- let parent = icx. query . clone ( ) ;
155
187
let info = QueryInfo {
156
188
span,
157
189
query : :: ty:: query:: queries:: type_of:: query ( * key) ,
158
190
} ;
191
+ let parent = icx. query . map ( |q| LrcRef :: into ( q) ) ;
159
192
* Lrc :: get_mut ( & mut job) . unwrap ( ) =
160
193
MaybeUninit :: new ( QueryJob :: new ( info, parent) ) ;
161
194
let job: Lrc < QueryJob < ' tcx > > = unsafe { std:: mem:: transmute ( job) } ;
0 commit comments