From cc4e287bb519565e1d6d79d6e9bba19adbe9cc77 Mon Sep 17 00:00:00 2001
From: oxalica <oxalicc@pm.me>
Date: Sat, 12 Sep 2020 00:12:42 +0800
Subject: Fix and prettify comments

---
 crates/hir_ty/src/traits/chalk.rs | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

(limited to 'crates/hir_ty/src')

diff --git a/crates/hir_ty/src/traits/chalk.rs b/crates/hir_ty/src/traits/chalk.rs
index 25e8ac186..ff364789e 100644
--- a/crates/hir_ty/src/traits/chalk.rs
+++ b/crates/hir_ty/src/traits/chalk.rs
@@ -202,8 +202,12 @@ impl<'a> chalk_solve::RustIrDatabase<Interner> for ChalkContext<'a> {
                         Some((trait_, alias))
                     })
                 {
-                    // AsyncBlock<T>: Future</* Self */>
-                    // This is required by `fn impls_future` to check if we need to provide `.await` completion.
+                    // Making up `AsyncBlock<T>: Future<Output = T>`
+                    //
+                    // |--------------------OpaqueTyDatum-------------------|
+                    //        |-------------OpaqueTyDatumBound--------------|
+                    // for<T> <Self> [Future<Self>, Future::Output<Self> = T]
+                    //     ^1  ^0            ^0                    ^0      ^1
                     let impl_bound = GenericPredicate::Implemented(TraitRef {
                         trait_: future_trait,
                         // Self type as the first parameter.
@@ -212,8 +216,6 @@ impl<'a> chalk_solve::RustIrDatabase<Interner> for ChalkContext<'a> {
                             index: 0,
                         })),
                     });
-                    // AsyncBlock<T>: Future</* Self, */ Output = T>;
-                    // debruijn:  ^1  ^0
                     let proj_bound = GenericPredicate::Projection(ProjectionPredicate {
                         // The parameter of the opaque type.
                         ty: Ty::Bound(BoundVar { debruijn: DebruijnIndex::ONE, index: 0 }),
-- 
cgit v1.2.3