@@ -533,31 +533,26 @@ impl<'ll, 'tcx> DebugInfoCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
533
533
// First, let's see if this is a method within an inherent impl. Because
534
534
// if yes, we want to make the result subroutine DIE a child of the
535
535
// subroutine's self-type.
536
- if let Some ( impl_def_id) = cx. tcx . impl_of_assoc ( instance. def_id ( ) ) {
537
- // If the method does *not* belong to a trait, proceed
538
- if cx. tcx . trait_id_of_impl ( impl_def_id) . is_none ( ) {
539
- let impl_self_ty = cx. tcx . instantiate_and_normalize_erasing_regions (
540
- instance. args ,
541
- cx. typing_env ( ) ,
542
- cx. tcx . type_of ( impl_def_id) ,
543
- ) ;
544
-
545
- // Only "class" methods are generally understood by LLVM,
546
- // so avoid methods on other types (e.g., `<*mut T>::null`).
547
- if let ty:: Adt ( def, ..) = impl_self_ty. kind ( )
548
- && !def. is_box ( )
549
- {
550
- // Again, only create type information if full debuginfo is enabled
551
- if cx. sess ( ) . opts . debuginfo == DebugInfo :: Full && !impl_self_ty. has_param ( )
552
- {
553
- return ( type_di_node ( cx, impl_self_ty) , true ) ;
554
- } else {
555
- return ( namespace:: item_namespace ( cx, def. did ( ) ) , false ) ;
556
- }
536
+ // For trait method impls we still use the "parallel namespace"
537
+ // strategy
538
+ if let Some ( imp_def_id) = cx. tcx . inherent_impl_of_assoc ( instance. def_id ( ) ) {
539
+ let impl_self_ty = cx. tcx . instantiate_and_normalize_erasing_regions (
540
+ instance. args ,
541
+ cx. typing_env ( ) ,
542
+ cx. tcx . type_of ( imp_def_id) ,
543
+ ) ;
544
+
545
+ // Only "class" methods are generally understood by LLVM,
546
+ // so avoid methods on other types (e.g., `<*mut T>::null`).
547
+ if let ty:: Adt ( def, ..) = impl_self_ty. kind ( )
548
+ && !def. is_box ( )
549
+ {
550
+ // Again, only create type information if full debuginfo is enabled
551
+ if cx. sess ( ) . opts . debuginfo == DebugInfo :: Full && !impl_self_ty. has_param ( ) {
552
+ return ( type_di_node ( cx, impl_self_ty) , true ) ;
553
+ } else {
554
+ return ( namespace:: item_namespace ( cx, def. did ( ) ) , false ) ;
557
555
}
558
- } else {
559
- // For trait method impls we still use the "parallel namespace"
560
- // strategy
561
556
}
562
557
}
563
558
0 commit comments