|
1 | 1 | use super::program_clauses::ToProgramClauses;
|
2 | 2 | use crate::clauses::builder::ClauseBuilder;
|
3 | 3 | use crate::clauses::{match_alias_ty, match_type_name};
|
4 |
| -use crate::AliasEq; |
5 | 4 | use crate::DomainGoal;
|
6 | 5 | use crate::FromEnv;
|
7 | 6 | use crate::ProgramClause;
|
8 | 7 | use crate::RustIrDatabase;
|
9 | 8 | use crate::Ty;
|
10 |
| -use crate::WhereClause; |
11 | 9 | use crate::{debug_span, TyData};
|
12 | 10 | use chalk_ir::interner::Interner;
|
13 | 11 | use chalk_ir::visit::{Visit, Visitor};
|
@@ -85,32 +83,25 @@ impl<'me, I: Interner> Visitor<'me, I> for EnvElaborator<'me, I> {
|
85 | 83 | }
|
86 | 84 |
|
87 | 85 | fn visit_domain_goal(&mut self, domain_goal: &DomainGoal<I>, outer_binder: DebruijnIndex) {
|
88 |
| - match domain_goal { |
89 |
| - DomainGoal::FromEnv(from_env) => { |
90 |
| - debug_span!("visit_domain_goal", ?from_env); |
91 |
| - match from_env { |
92 |
| - FromEnv::Trait(trait_ref) => { |
93 |
| - let trait_datum = self.db.trait_datum(trait_ref.trait_id); |
| 86 | + if let DomainGoal::FromEnv(from_env) = domain_goal { |
| 87 | + debug_span!("visit_domain_goal", ?from_env); |
| 88 | + match from_env { |
| 89 | + FromEnv::Trait(trait_ref) => { |
| 90 | + let trait_datum = self.db.trait_datum(trait_ref.trait_id); |
94 | 91 |
|
95 |
| - trait_datum.to_program_clauses(&mut self.builder, self.environment); |
| 92 | + trait_datum.to_program_clauses(&mut self.builder, self.environment); |
96 | 93 |
|
97 |
| - // If we know that `T: Iterator`, then we also know |
98 |
| - // things about `<T as Iterator>::Item`, so push those |
99 |
| - // implied bounds too: |
100 |
| - for &associated_ty_id in &trait_datum.associated_ty_ids { |
101 |
| - self.db |
102 |
| - .associated_ty_data(associated_ty_id) |
103 |
| - .to_program_clauses(&mut self.builder, self.environment); |
104 |
| - } |
| 94 | + // If we know that `T: Iterator`, then we also know |
| 95 | + // things about `<T as Iterator>::Item`, so push those |
| 96 | + // implied bounds too: |
| 97 | + for &associated_ty_id in &trait_datum.associated_ty_ids { |
| 98 | + self.db |
| 99 | + .associated_ty_data(associated_ty_id) |
| 100 | + .to_program_clauses(&mut self.builder, self.environment); |
105 | 101 | }
|
106 |
| - FromEnv::Ty(ty) => ty.visit_with(self, outer_binder), |
107 | 102 | }
|
| 103 | + FromEnv::Ty(ty) => ty.visit_with(self, outer_binder), |
108 | 104 | }
|
109 |
| - DomainGoal::Holds(WhereClause::AliasEq(AliasEq { alias, ty })) => { |
110 |
| - match_alias_ty(&mut self.builder, self.environment, alias); |
111 |
| - ty.visit_with(self, outer_binder); |
112 |
| - } |
113 |
| - _ => {} |
114 | 105 | }
|
115 | 106 | }
|
116 | 107 | }
|
0 commit comments