+
+ // Add functions which may be required for supertrait implementations.
+ // Due to borrow checker limitations, we only support one in-crate supertrait here.
+ let supertrait_name;
+ let supertrait_resolver;
+ walk_supertraits!(t, Some(&types), (
+ (s, _i) => {
+ if let Some(supertrait) = types.crate_types.traits.get(s) {
+ supertrait_name = s.to_string();
+ supertrait_resolver = get_module_type_resolver!(supertrait_name, types.crate_libs, types.crate_types);
+ gen_types.learn_associated_types(&supertrait, &supertrait_resolver);
+ break;
+ }
+ }
+ ) );
+