aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2021-03-14 15:26:12 +0000
committerFlorian Diebold <[email protected]>2021-03-14 15:30:43 +0000
commit3411fe3e84e641aad03abbc22eec33fdc29b15f8 (patch)
treef9590b609da68c1d466381b8de809f60511dd628 /crates
parentf57e2f55984758a83644b852a4cc47e0b27945df (diff)
Rename some fields to their Chalk names
Diffstat (limited to 'crates')
-rw-r--r--crates/hir/src/lib.rs4
-rw-r--r--crates/hir_ty/src/autoderef.rs2
-rw-r--r--crates/hir_ty/src/display.rs16
-rw-r--r--crates/hir_ty/src/infer.rs4
-rw-r--r--crates/hir_ty/src/infer/expr.rs4
-rw-r--r--crates/hir_ty/src/infer/unify.rs6
-rw-r--r--crates/hir_ty/src/lib.rs18
-rw-r--r--crates/hir_ty/src/lower.rs12
-rw-r--r--crates/hir_ty/src/traits.rs2
-rw-r--r--crates/hir_ty/src/traits/chalk.rs4
-rw-r--r--crates/hir_ty/src/traits/chalk/mapping.rs22
11 files changed, 47 insertions, 47 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index 10b8171be..5e7226df2 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -1686,8 +1686,8 @@ impl Type {
1686 .build(); 1686 .build();
1687 let predicate = ProjectionPredicate { 1687 let predicate = ProjectionPredicate {
1688 projection_ty: ProjectionTy { 1688 projection_ty: ProjectionTy {
1689 associated_ty: to_assoc_type_id(alias.id), 1689 associated_ty_id: to_assoc_type_id(alias.id),
1690 parameters: subst, 1690 substitution: subst,
1691 }, 1691 },
1692 ty: TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, 0)).intern(&Interner), 1692 ty: TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, 0)).intern(&Interner),
1693 }; 1693 };
diff --git a/crates/hir_ty/src/autoderef.rs b/crates/hir_ty/src/autoderef.rs
index d739d5d60..d5c2b9a20 100644
--- a/crates/hir_ty/src/autoderef.rs
+++ b/crates/hir_ty/src/autoderef.rs
@@ -84,7 +84,7 @@ fn deref_by_trait(
84 let projection = super::traits::ProjectionPredicate { 84 let projection = super::traits::ProjectionPredicate {
85 ty: TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, ty.value.kinds.len())) 85 ty: TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, ty.value.kinds.len()))
86 .intern(&Interner), 86 .intern(&Interner),
87 projection_ty: super::ProjectionTy { associated_ty: to_assoc_type_id(target), parameters }, 87 projection_ty: super::ProjectionTy { associated_ty_id: to_assoc_type_id(target), substitution: parameters },
88 }; 88 };
89 89
90 let obligation = super::Obligation::Projection(projection); 90 let obligation = super::Obligation::Projection(projection);
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs
index e6473586b..21291ddda 100644
--- a/crates/hir_ty/src/display.rs
+++ b/crates/hir_ty/src/display.rs
@@ -245,19 +245,19 @@ impl HirDisplay for ProjectionTy {
245 } 245 }
246 246
247 let trait_ = f.db.trait_data(self.trait_(f.db)); 247 let trait_ = f.db.trait_data(self.trait_(f.db));
248 let first_parameter = self.parameters[0].into_displayable( 248 let first_parameter = self.substitution[0].into_displayable(
249 f.db, 249 f.db,
250 f.max_size, 250 f.max_size,
251 f.omit_verbose_types, 251 f.omit_verbose_types,
252 f.display_target, 252 f.display_target,
253 ); 253 );
254 write!(f, "<{} as {}", first_parameter, trait_.name)?; 254 write!(f, "<{} as {}", first_parameter, trait_.name)?;
255 if self.parameters.len() > 1 { 255 if self.substitution.len() > 1 {
256 write!(f, "<")?; 256 write!(f, "<")?;
257 f.write_joined(&self.parameters[1..], ", ")?; 257 f.write_joined(&self.substitution[1..], ", ")?;
258 write!(f, ">")?; 258 write!(f, ">")?;
259 } 259 }
260 write!(f, ">::{}", f.db.type_alias_data(from_assoc_type_id(self.associated_ty)).name)?; 260 write!(f, ">::{}", f.db.type_alias_data(from_assoc_type_id(self.associated_ty_id)).name)?;
261 Ok(()) 261 Ok(())
262 } 262 }
263} 263}
@@ -491,8 +491,8 @@ impl HirDisplay for Ty {
491 } 491 }
492 } else { 492 } else {
493 let projection_ty = ProjectionTy { 493 let projection_ty = ProjectionTy {
494 associated_ty: to_assoc_type_id(type_alias), 494 associated_ty_id: to_assoc_type_id(type_alias),
495 parameters: parameters.clone(), 495 substitution: parameters.clone(),
496 }; 496 };
497 497
498 projection_ty.hir_fmt(f)?; 498 projection_ty.hir_fmt(f)?;
@@ -709,7 +709,7 @@ fn write_bounds_like_dyn_trait(
709 angle_open = true; 709 angle_open = true;
710 } 710 }
711 let type_alias = f.db.type_alias_data(from_assoc_type_id( 711 let type_alias = f.db.type_alias_data(from_assoc_type_id(
712 projection_pred.projection_ty.associated_ty, 712 projection_pred.projection_ty.associated_ty_id,
713 )); 713 ));
714 write!(f, "{} = ", type_alias.name)?; 714 write!(f, "{} = ", type_alias.name)?;
715 projection_pred.ty.hir_fmt(f)?; 715 projection_pred.ty.hir_fmt(f)?;
@@ -782,7 +782,7 @@ impl HirDisplay for GenericPredicate {
782 f, 782 f,
783 ">::{} = ", 783 ">::{} = ",
784 f.db.type_alias_data(from_assoc_type_id( 784 f.db.type_alias_data(from_assoc_type_id(
785 projection_pred.projection_ty.associated_ty 785 projection_pred.projection_ty.associated_ty_id
786 )) 786 ))
787 .name, 787 .name,
788 )?; 788 )?;
diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs
index 8cf59821f..fbfedb4e6 100644
--- a/crates/hir_ty/src/infer.rs
+++ b/crates/hir_ty/src/infer.rs
@@ -385,8 +385,8 @@ impl<'a> InferenceContext<'a> {
385 let projection = ProjectionPredicate { 385 let projection = ProjectionPredicate {
386 ty: ty.clone(), 386 ty: ty.clone(),
387 projection_ty: ProjectionTy { 387 projection_ty: ProjectionTy {
388 associated_ty: to_assoc_type_id(res_assoc_ty), 388 associated_ty_id: to_assoc_type_id(res_assoc_ty),
389 parameters: substs, 389 substitution: substs,
390 }, 390 },
391 }; 391 };
392 self.obligations.push(Obligation::Trait(trait_ref)); 392 self.obligations.push(Obligation::Trait(trait_ref));
diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs
index eee3e6ec5..b7870e771 100644
--- a/crates/hir_ty/src/infer/expr.rs
+++ b/crates/hir_ty/src/infer/expr.rs
@@ -99,8 +99,8 @@ impl<'a> InferenceContext<'a> {
99 if self.db.trait_solve(krate, goal.value).is_some() { 99 if self.db.trait_solve(krate, goal.value).is_some() {
100 self.obligations.push(implements_fn_trait); 100 self.obligations.push(implements_fn_trait);
101 let output_proj_ty = crate::ProjectionTy { 101 let output_proj_ty = crate::ProjectionTy {
102 associated_ty: to_assoc_type_id(output_assoc_type), 102 associated_ty_id: to_assoc_type_id(output_assoc_type),
103 parameters: substs, 103 substitution: substs,
104 }; 104 };
105 let return_ty = self.normalize_projection_ty(output_proj_ty); 105 let return_ty = self.normalize_projection_ty(output_proj_ty);
106 Some((arg_tys, return_ty)) 106 Some((arg_tys, return_ty))
diff --git a/crates/hir_ty/src/infer/unify.rs b/crates/hir_ty/src/infer/unify.rs
index 16d89ed1b..ebc612ca9 100644
--- a/crates/hir_ty/src/infer/unify.rs
+++ b/crates/hir_ty/src/infer/unify.rs
@@ -381,11 +381,11 @@ impl InferenceTable {
381 self.unify_substs(&tr1.substs, &tr2.substs, depth + 1) 381 self.unify_substs(&tr1.substs, &tr2.substs, depth + 1)
382 } 382 }
383 (GenericPredicate::Projection(proj1), GenericPredicate::Projection(proj2)) 383 (GenericPredicate::Projection(proj1), GenericPredicate::Projection(proj2))
384 if proj1.projection_ty.associated_ty == proj2.projection_ty.associated_ty => 384 if proj1.projection_ty.associated_ty_id == proj2.projection_ty.associated_ty_id =>
385 { 385 {
386 self.unify_substs( 386 self.unify_substs(
387 &proj1.projection_ty.parameters, 387 &proj1.projection_ty.substitution,
388 &proj2.projection_ty.parameters, 388 &proj2.projection_ty.substitution,
389 depth + 1, 389 depth + 1,
390 ) && self.unify_inner(&proj1.ty, &proj2.ty, depth + 1) 390 ) && self.unify_inner(&proj1.ty, &proj2.ty, depth + 1)
391 } 391 }
diff --git a/crates/hir_ty/src/lib.rs b/crates/hir_ty/src/lib.rs
index d6ff968f0..ddcee2084 100644
--- a/crates/hir_ty/src/lib.rs
+++ b/crates/hir_ty/src/lib.rs
@@ -74,17 +74,17 @@ pub struct OpaqueTy {
74/// trait and all its parameters are fully known. 74/// trait and all its parameters are fully known.
75#[derive(Clone, PartialEq, Eq, Debug, Hash)] 75#[derive(Clone, PartialEq, Eq, Debug, Hash)]
76pub struct ProjectionTy { 76pub struct ProjectionTy {
77 pub associated_ty: AssocTypeId, 77 pub associated_ty_id: AssocTypeId,
78 pub parameters: Substs, 78 pub substitution: Substs,
79} 79}
80 80
81impl ProjectionTy { 81impl ProjectionTy {
82 pub fn trait_ref(&self, db: &dyn HirDatabase) -> TraitRef { 82 pub fn trait_ref(&self, db: &dyn HirDatabase) -> TraitRef {
83 TraitRef { trait_: self.trait_(db), substs: self.parameters.clone() } 83 TraitRef { trait_: self.trait_(db), substs: self.substitution.clone() }
84 } 84 }
85 85
86 fn trait_(&self, db: &dyn HirDatabase) -> TraitId { 86 fn trait_(&self, db: &dyn HirDatabase) -> TraitId {
87 match from_assoc_type_id(self.associated_ty).lookup(db.upcast()).container { 87 match from_assoc_type_id(self.associated_ty_id).lookup(db.upcast()).container {
88 AssocContainerId::TraitId(it) => it, 88 AssocContainerId::TraitId(it) => it,
89 _ => panic!("projection ty without parent trait"), 89 _ => panic!("projection ty without parent trait"),
90 } 90 }
@@ -93,7 +93,7 @@ impl ProjectionTy {
93 93
94impl TypeWalk for ProjectionTy { 94impl TypeWalk for ProjectionTy {
95 fn walk(&self, f: &mut impl FnMut(&Ty)) { 95 fn walk(&self, f: &mut impl FnMut(&Ty)) {
96 self.parameters.walk(f); 96 self.substitution.walk(f);
97 } 97 }
98 98
99 fn walk_mut_binders( 99 fn walk_mut_binders(
@@ -101,7 +101,7 @@ impl TypeWalk for ProjectionTy {
101 f: &mut impl FnMut(&mut Ty, DebruijnIndex), 101 f: &mut impl FnMut(&mut Ty, DebruijnIndex),
102 binders: DebruijnIndex, 102 binders: DebruijnIndex,
103 ) { 103 ) {
104 self.parameters.walk_mut_binders(f, binders); 104 self.substitution.walk_mut_binders(f, binders);
105 } 105 }
106} 106}
107 107
@@ -945,7 +945,7 @@ impl Ty {
945 } 945 }
946 } 946 }
947 TyKind::Alias(AliasTy::Projection(projection_ty)) => { 947 TyKind::Alias(AliasTy::Projection(projection_ty)) => {
948 match from_assoc_type_id(projection_ty.associated_ty).lookup(db.upcast()).container 948 match from_assoc_type_id(projection_ty.associated_ty_id).lookup(db.upcast()).container
949 { 949 {
950 AssocContainerId::TraitId(trait_id) => Some(trait_id), 950 AssocContainerId::TraitId(trait_id) => Some(trait_id),
951 _ => None, 951 _ => None,
@@ -1055,7 +1055,7 @@ impl TypeWalk for Ty {
1055 fn walk(&self, f: &mut impl FnMut(&Ty)) { 1055 fn walk(&self, f: &mut impl FnMut(&Ty)) {
1056 match self.interned(&Interner) { 1056 match self.interned(&Interner) {
1057 TyKind::Alias(AliasTy::Projection(p_ty)) => { 1057 TyKind::Alias(AliasTy::Projection(p_ty)) => {
1058 for t in p_ty.parameters.iter() { 1058 for t in p_ty.substitution.iter() {
1059 t.walk(f); 1059 t.walk(f);
1060 } 1060 }
1061 } 1061 }
@@ -1087,7 +1087,7 @@ impl TypeWalk for Ty {
1087 ) { 1087 ) {
1088 match &mut self.0 { 1088 match &mut self.0 {
1089 TyKind::Alias(AliasTy::Projection(p_ty)) => { 1089 TyKind::Alias(AliasTy::Projection(p_ty)) => {
1090 p_ty.parameters.walk_mut_binders(f, binders); 1090 p_ty.substitution.walk_mut_binders(f, binders);
1091 } 1091 }
1092 TyKind::Dyn(predicates) => { 1092 TyKind::Dyn(predicates) => {
1093 for p in make_mut_slice(predicates) { 1093 for p in make_mut_slice(predicates) {
diff --git a/crates/hir_ty/src/lower.rs b/crates/hir_ty/src/lower.rs
index c32dca9d7..17eb29911 100644
--- a/crates/hir_ty/src/lower.rs
+++ b/crates/hir_ty/src/lower.rs
@@ -357,8 +357,8 @@ impl<'a> TyLoweringContext<'a> {
357 Some((super_trait_ref, associated_ty)) => { 357 Some((super_trait_ref, associated_ty)) => {
358 // FIXME handle type parameters on the segment 358 // FIXME handle type parameters on the segment
359 TyKind::Alias(AliasTy::Projection(ProjectionTy { 359 TyKind::Alias(AliasTy::Projection(ProjectionTy {
360 associated_ty: to_assoc_type_id(associated_ty), 360 associated_ty_id: to_assoc_type_id(associated_ty),
361 parameters: super_trait_ref.substs, 361 substitution: super_trait_ref.substs,
362 })) 362 }))
363 .intern(&Interner) 363 .intern(&Interner)
364 } 364 }
@@ -478,8 +478,8 @@ impl<'a> TyLoweringContext<'a> {
478 // FIXME handle type parameters on the segment 478 // FIXME handle type parameters on the segment
479 return Some( 479 return Some(
480 TyKind::Alias(AliasTy::Projection(ProjectionTy { 480 TyKind::Alias(AliasTy::Projection(ProjectionTy {
481 associated_ty: to_assoc_type_id(associated_ty), 481 associated_ty_id: to_assoc_type_id(associated_ty),
482 parameters: substs, 482 substitution: substs,
483 })) 483 }))
484 .intern(&Interner), 484 .intern(&Interner),
485 ); 485 );
@@ -736,8 +736,8 @@ impl<'a> TyLoweringContext<'a> {
736 Some(t) => t, 736 Some(t) => t,
737 }; 737 };
738 let projection_ty = ProjectionTy { 738 let projection_ty = ProjectionTy {
739 associated_ty: to_assoc_type_id(associated_ty), 739 associated_ty_id: to_assoc_type_id(associated_ty),
740 parameters: super_trait_ref.substs, 740 substitution: super_trait_ref.substs,
741 }; 741 };
742 let mut preds = SmallVec::with_capacity( 742 let mut preds = SmallVec::with_capacity(
743 binding.type_ref.as_ref().map_or(0, |_| 1) + binding.bounds.len(), 743 binding.type_ref.as_ref().map_or(0, |_| 1) + binding.bounds.len(),
diff --git a/crates/hir_ty/src/traits.rs b/crates/hir_ty/src/traits.rs
index edfafdff8..a6a63c673 100644
--- a/crates/hir_ty/src/traits.rs
+++ b/crates/hir_ty/src/traits.rs
@@ -143,7 +143,7 @@ pub(crate) fn trait_solve_query(
143 log::info!("trait_solve_query({})", goal.value.value.display(db)); 143 log::info!("trait_solve_query({})", goal.value.value.display(db));
144 144
145 if let Obligation::Projection(pred) = &goal.value.value { 145 if let Obligation::Projection(pred) = &goal.value.value {
146 if let TyKind::BoundVar(_) = &pred.projection_ty.parameters[0].interned(&Interner) { 146 if let TyKind::BoundVar(_) = &pred.projection_ty.substitution[0].interned(&Interner) {
147 // Hack: don't ask Chalk to normalize with an unknown self type, it'll say that's impossible 147 // Hack: don't ask Chalk to normalize with an unknown self type, it'll say that's impossible
148 return Some(Solution::Ambig(Guidance::Unknown)); 148 return Some(Solution::Ambig(Guidance::Unknown));
149 } 149 }
diff --git a/crates/hir_ty/src/traits/chalk.rs b/crates/hir_ty/src/traits/chalk.rs
index ef1e6b2df..232cf9cd0 100644
--- a/crates/hir_ty/src/traits/chalk.rs
+++ b/crates/hir_ty/src/traits/chalk.rs
@@ -234,9 +234,9 @@ impl<'a> chalk_solve::RustIrDatabase<Interner> for ChalkContext<'a> {
234 ty: TyKind::BoundVar(BoundVar { debruijn: DebruijnIndex::ONE, index: 0 }) 234 ty: TyKind::BoundVar(BoundVar { debruijn: DebruijnIndex::ONE, index: 0 })
235 .intern(&Interner), 235 .intern(&Interner),
236 projection_ty: ProjectionTy { 236 projection_ty: ProjectionTy {
237 associated_ty: to_assoc_type_id(future_output), 237 associated_ty_id: to_assoc_type_id(future_output),
238 // Self type as the first parameter. 238 // Self type as the first parameter.
239 parameters: Substs::single( 239 substitution: Substs::single(
240 TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, 0)) 240 TyKind::BoundVar(BoundVar::new(DebruijnIndex::INNERMOST, 0))
241 .intern(&Interner), 241 .intern(&Interner),
242 ), 242 ),
diff --git a/crates/hir_ty/src/traits/chalk/mapping.rs b/crates/hir_ty/src/traits/chalk/mapping.rs
index 2a66a2310..68effbbf3 100644
--- a/crates/hir_ty/src/traits/chalk/mapping.rs
+++ b/crates/hir_ty/src/traits/chalk/mapping.rs
@@ -78,8 +78,8 @@ impl ToChalk for Ty {
78 chalk_ir::TyKind::Adt(adt_id, substitution).intern(&Interner) 78 chalk_ir::TyKind::Adt(adt_id, substitution).intern(&Interner)
79 } 79 }
80 TyKind::Alias(AliasTy::Projection(proj_ty)) => { 80 TyKind::Alias(AliasTy::Projection(proj_ty)) => {
81 let associated_ty_id = proj_ty.associated_ty; 81 let associated_ty_id = proj_ty.associated_ty_id;
82 let substitution = proj_ty.parameters.to_chalk(db); 82 let substitution = proj_ty.substitution.to_chalk(db);
83 chalk_ir::AliasTy::Projection(chalk_ir::ProjectionTy { 83 chalk_ir::AliasTy::Projection(chalk_ir::ProjectionTy {
84 associated_ty_id, 84 associated_ty_id,
85 substitution, 85 substitution,
@@ -121,7 +121,7 @@ impl ToChalk for Ty {
121 chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Projection(proj)) => { 121 chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Projection(proj)) => {
122 let associated_ty = proj.associated_ty_id; 122 let associated_ty = proj.associated_ty_id;
123 let parameters = from_chalk(db, proj.substitution); 123 let parameters = from_chalk(db, proj.substitution);
124 TyKind::Alias(AliasTy::Projection(ProjectionTy { associated_ty, parameters })) 124 TyKind::Alias(AliasTy::Projection(ProjectionTy { associated_ty_id: associated_ty, substitution: parameters }))
125 } 125 }
126 chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Opaque(opaque_ty)) => { 126 chalk_ir::TyKind::Alias(chalk_ir::AliasTy::Opaque(opaque_ty)) => {
127 let opaque_ty_id = opaque_ty.opaque_ty_id; 127 let opaque_ty_id = opaque_ty.opaque_ty_id;
@@ -372,8 +372,8 @@ impl ToChalk for ProjectionTy {
372 372
373 fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::ProjectionTy<Interner> { 373 fn to_chalk(self, db: &dyn HirDatabase) -> chalk_ir::ProjectionTy<Interner> {
374 chalk_ir::ProjectionTy { 374 chalk_ir::ProjectionTy {
375 associated_ty_id: self.associated_ty, 375 associated_ty_id: self.associated_ty_id,
376 substitution: self.parameters.to_chalk(db), 376 substitution: self.substitution.to_chalk(db),
377 } 377 }
378 } 378 }
379 379
@@ -382,8 +382,8 @@ impl ToChalk for ProjectionTy {
382 projection_ty: chalk_ir::ProjectionTy<Interner>, 382 projection_ty: chalk_ir::ProjectionTy<Interner>,
383 ) -> ProjectionTy { 383 ) -> ProjectionTy {
384 ProjectionTy { 384 ProjectionTy {
385 associated_ty: projection_ty.associated_ty_id, 385 associated_ty_id: projection_ty.associated_ty_id,
386 parameters: from_chalk(db, projection_ty.substitution), 386 substitution: from_chalk(db, projection_ty.substitution),
387 } 387 }
388 } 388 }
389} 389}
@@ -533,24 +533,24 @@ pub(super) fn generic_predicate_to_inline_bound(
533 Some(rust_ir::InlineBound::TraitBound(trait_bound)) 533 Some(rust_ir::InlineBound::TraitBound(trait_bound))
534 } 534 }
535 GenericPredicate::Projection(proj) => { 535 GenericPredicate::Projection(proj) => {
536 if &proj.projection_ty.parameters[0] != self_ty { 536 if &proj.projection_ty.substitution[0] != self_ty {
537 return None; 537 return None;
538 } 538 }
539 let trait_ = match from_assoc_type_id(proj.projection_ty.associated_ty) 539 let trait_ = match from_assoc_type_id(proj.projection_ty.associated_ty_id)
540 .lookup(db.upcast()) 540 .lookup(db.upcast())
541 .container 541 .container
542 { 542 {
543 AssocContainerId::TraitId(t) => t, 543 AssocContainerId::TraitId(t) => t,
544 _ => panic!("associated type not in trait"), 544 _ => panic!("associated type not in trait"),
545 }; 545 };
546 let args_no_self = proj.projection_ty.parameters[1..] 546 let args_no_self = proj.projection_ty.substitution[1..]
547 .iter() 547 .iter()
548 .map(|ty| ty.clone().to_chalk(db).cast(&Interner)) 548 .map(|ty| ty.clone().to_chalk(db).cast(&Interner))
549 .collect(); 549 .collect();
550 let alias_eq_bound = rust_ir::AliasEqBound { 550 let alias_eq_bound = rust_ir::AliasEqBound {
551 value: proj.ty.clone().to_chalk(db), 551 value: proj.ty.clone().to_chalk(db),
552 trait_bound: rust_ir::TraitBound { trait_id: trait_.to_chalk(db), args_no_self }, 552 trait_bound: rust_ir::TraitBound { trait_id: trait_.to_chalk(db), args_no_self },
553 associated_ty_id: proj.projection_ty.associated_ty, 553 associated_ty_id: proj.projection_ty.associated_ty_id,
554 parameters: Vec::new(), // FIXME we don't support generic associated types yet 554 parameters: Vec::new(), // FIXME we don't support generic associated types yet
555 }; 555 };
556 Some(rust_ir::InlineBound::AliasEqBound(alias_eq_bound)) 556 Some(rust_ir::InlineBound::AliasEqBound(alias_eq_bound))