add comment
diff --git a/crates/hir-ty/src/next_solver/mapping.rs b/crates/hir-ty/src/next_solver/mapping.rs
index 4696cf4..20cd862 100644
--- a/crates/hir-ty/src/next_solver/mapping.rs
+++ b/crates/hir-ty/src/next_solver/mapping.rs
@@ -1148,6 +1148,13 @@
                         }),
                     );
 
+                    // Rust and chalk have slightly different
+                    // representation for trait objects.
+                    //
+                    // Chalk uses `for<T0> for<'a> T0: Trait<'a>` while rustc
+                    // uses `ExistentialPredicate`s, which do not have a self ty.
+                    // We need to shift escaping bound vars by 1 to accommodate
+                    // the newly introduced `for<T0>` binder.
                     let p = shift_vars(interner, p, 1);
 
                     let where_clause = match p.skip_binder() {