charon_lib/transform/
remove_unused_methods.rsuse crate::ast::*;
use super::{ctx::TransformPass, TransformCtx};
pub struct Transform;
impl TransformPass for Transform {
fn transform_ctx(&self, ctx: &mut TransformCtx) {
let method_is_translated = |(_, method): &(TraitItemName, Binder<FunDeclRef>)| {
ctx.translated
.fun_decls
.get(method.skip_binder.id)
.is_some()
};
for tdecl in ctx.translated.trait_decls.iter_mut() {
tdecl.methods.retain(method_is_translated);
}
for timpl in ctx.translated.trait_impls.iter_mut() {
timpl.methods.retain(method_is_translated);
}
}
}