File tree Expand file tree Collapse file tree 2 files changed +15
-3
lines changed
compiler/rustc_codegen_llvm/src/debuginfo Expand file tree Collapse file tree 2 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -1212,15 +1212,23 @@ fn build_closure_env_di_node<'ll, 'tcx>(
1212
1212
let containing_scope = get_namespace_for_item ( cx, def_id) ;
1213
1213
let type_name = compute_debuginfo_type_name ( cx. tcx , closure_env_type, false ) ;
1214
1214
1215
+ let closure_span = cx. tcx . def_span ( def_id) ;
1216
+ let ( file_metadata, line_number) = if !closure_span. is_dummy ( ) {
1217
+ let loc = cx. lookup_debug_loc ( closure_span. lo ( ) ) ;
1218
+ ( file_metadata ( cx, & loc. file ) , loc. line )
1219
+ } else {
1220
+ ( unknown_file_metadata ( cx) , UNKNOWN_LINE_NUMBER )
1221
+ } ;
1222
+
1215
1223
type_map:: build_type_with_children (
1216
1224
cx,
1217
1225
type_map:: stub (
1218
1226
cx,
1219
1227
Stub :: Struct ,
1220
1228
unique_type_id,
1221
1229
& type_name,
1222
- unknown_file_metadata ( cx ) ,
1223
- UNKNOWN_LINE_NUMBER ,
1230
+ file_metadata ,
1231
+ line_number ,
1224
1232
cx. size_and_align_of ( closure_env_type) ,
1225
1233
Some ( containing_scope) ,
1226
1234
DIFlags :: FlagZero ,
Original file line number Diff line number Diff line change 8
8
// CHECK: !DICompositeType({{.*"}}MyType{{".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
9
9
pub struct MyType ;
10
10
11
- pub fn foo ( _: MyType ) { }
11
+ pub fn foo ( _: MyType ) {
12
+ // CHECK: !DICompositeType({{.*"[{]}}closure_env#0{{[}]".*}}file: ![[#FILE]]{{.*}}line: [[# @LINE + 1]],
13
+ let closure = |x| x;
14
+ closure ( 0 ) ;
15
+ }
You can’t perform that action at this time.
0 commit comments