@@ -533,31 +533,26 @@ impl<'ll, 'tcx> DebugInfoCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
533533 // First, let's see if this is a method within an inherent impl. Because
534534 // if yes, we want to make the result subroutine DIE a child of the
535535 // 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 ) ;
557555 }
558- } else {
559- // For trait method impls we still use the "parallel namespace"
560- // strategy
561556 }
562557 }
563558
0 commit comments