about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_ty_utils/src/opaque_types.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_ty_utils/src/opaque_types.rs b/compiler/rustc_ty_utils/src/opaque_types.rs
index 5fb5c4ad144..498194a7c10 100644
--- a/compiler/rustc_ty_utils/src/opaque_types.rs
+++ b/compiler/rustc_ty_utils/src/opaque_types.rs
@@ -168,14 +168,17 @@ fn opaque_types_defined_by<'tcx>(tcx: TyCtxt<'tcx>, item: LocalDefId) -> &'tcx [
         DefKind::Fn | DefKind::AssocFn | DefKind::AssocTy | DefKind::AssocConst => {
             let mut collector = OpaqueTypeCollector::new(tcx, item);
             match kind {
+                // Walk over the signature of the function-like to find the opaques.
                 DefKind::AssocFn | DefKind::Fn => {
                     let ty_sig = tcx.fn_sig(item).subst_identity();
                     let hir_sig = tcx.hir().get_by_def_id(item).fn_sig().unwrap();
+                    // Walk over the inputs and outputs manually in order to get good spans for them.
                     collector.visit_spanned(hir_sig.decl.output.span(), ty_sig.output());
                     for (hir, ty) in hir_sig.decl.inputs.iter().zip(ty_sig.inputs().iter()) {
                         collector.visit_spanned(hir.span, ty.map_bound(|x| *x));
                     }
                 }
+                // Walk over the type of the item to find opaques.
                 DefKind::AssocTy | DefKind::AssocConst => {
                     let span = match tcx.hir().get_by_def_id(item).ty() {
                         Some(ty) => ty.span,