Skip to content

Commit 1c91d87

Browse files
committed
Auto merge of #648 - LeSeulArtichaut:remove-target-interner, r=detrumi
Remove `TargetInterner` Closes #643.
2 parents faafc66 + 20650ae commit 1c91d87

File tree

18 files changed

+190
-399
lines changed

18 files changed

+190
-399
lines changed

chalk-derive/src/lib.rs

Lines changed: 14 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -277,49 +277,33 @@ fn derive_fold(mut s: synstructure::Structure) -> TokenStream {
277277

278278
let type_name = &input.ident;
279279

280-
let (target_interner, result) = match kind {
281-
DeriveKind::FromHasInternerAttr => (interner.clone(), quote! { #type_name }),
282-
DeriveKind::FromHasInterner => {
283-
let param = get_generic_param_name(input).unwrap();
284-
285-
s.add_impl_generic(parse_quote! { _U })
286-
.add_impl_generic(parse_quote! { _TI })
287-
.add_where_predicate(
288-
parse_quote! { #param: ::chalk_ir::fold::Fold<#interner, _TI, Result = _U> },
289-
)
290-
.add_where_predicate(
291-
parse_quote! { _U: ::chalk_ir::interner::HasInterner<Interner = _TI> },
292-
)
293-
.add_where_predicate(
294-
parse_quote! { _TI: ::chalk_ir::interner::TargetInterner<#interner> },
295-
);
296-
297-
(quote! { _TI }, quote! { #type_name<_U> })
298-
}
299-
DeriveKind::FromInterner => {
300-
s.add_impl_generic(parse_quote! { _TI })
301-
.add_where_predicate(
302-
parse_quote! { _TI: ::chalk_ir::interner::TargetInterner<#interner> },
303-
);
304-
305-
(quote! { _TI }, quote! { #type_name<_TI> })
306-
}
280+
let result = if kind == DeriveKind::FromHasInterner {
281+
let param = get_generic_param_name(input).unwrap();
282+
s.add_impl_generic(parse_quote! { _U })
283+
.add_where_predicate(
284+
parse_quote! { #param: ::chalk_ir::fold::Fold<#interner, Result = _U> },
285+
)
286+
.add_where_predicate(
287+
parse_quote! { _U: ::chalk_ir::interner::HasInterner<Interner = #interner> },
288+
);
289+
quote! { #type_name <_U> }
290+
} else {
291+
quote! { #type_name < #interner > }
307292
};
308293

309294
s.add_bounds(synstructure::AddBounds::None);
310295
s.bound_impl(
311-
quote!(::chalk_ir::fold::Fold<#interner, #target_interner>),
296+
quote!(::chalk_ir::fold::Fold<#interner>),
312297
quote! {
313298
type Result = #result;
314299

315300
fn fold_with<'i>(
316301
&self,
317-
folder: &mut dyn ::chalk_ir::fold::Folder < 'i, #interner, #target_interner >,
302+
folder: &mut dyn ::chalk_ir::fold::Folder < 'i, #interner >,
318303
outer_binder: ::chalk_ir::DebruijnIndex,
319304
) -> ::chalk_ir::Fallible<Self::Result>
320305
where
321306
#interner: 'i,
322-
#target_interner: 'i,
323307
{
324308
Ok(match *self { #body })
325309
}

chalk-engine/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ use std::cmp::min;
5757
use std::usize;
5858

5959
use chalk_derive::{Fold, HasInterner, Visit};
60-
use chalk_ir::interner::{Interner, TargetInterner};
60+
use chalk_ir::interner::Interner;
6161
use chalk_ir::visit::VisitResult;
6262
use chalk_ir::{
6363
AnswerSubst, Canonical, ConstrainedSubst, Constraint, DebruijnIndex, Goal, InEnvironment,

chalk-engine/src/normalize_deep.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,6 @@ where
9797
fn interner(&self) -> &'i I {
9898
self.interner
9999
}
100-
101-
fn target_interner(&self) -> &'i I {
102-
self.interner()
103-
}
104100
}
105101

106102
#[cfg(test)]

0 commit comments

Comments
 (0)