- if let Some(gen_types) = generics {
- if let Some((_, synpath)) = gen_types.maybe_resolve_path(&p.path) {
- let genpath = self.resolve_path(&synpath);
- assert!(!self.is_known_container(&genpath, is_ref) && !self.is_transparent_container(&genpath, is_ref));
- if let Some(c_type) = path_lookup(&genpath, is_ref, ptr_for_ref) {
- write!(w, "{}", c_type).unwrap();
- return;
- } else {
- let synident = single_ident_generic_path_to_ident(synpath).unwrap();
- if let Some(t) = self.crate_types.traits.get(&genpath) {
- decl_lookup(w, &DeclType::Trait(t), &genpath, is_ref, is_mut);
- return;
- } else if let Some(_) = self.imports.get(synident) {
- // crate_types lookup has to have succeeded:
- panic!("Failed to print inline conversion for {}", synident);
- } else if let Some(decl_type) = self.declared.get(synident) {
- decl_lookup(w, decl_type, &self.maybe_resolve_path(synpath, None).unwrap(), is_ref, is_mut);
- return;
- } else { unimplemented!(); }
- }
- }
- }
-
- let resolved_path = self.resolve_path(&p.path);
- if let Some(c_type) = path_lookup(&resolved_path, is_ref, ptr_for_ref) {
+ let resolved_path = self.resolve_path(&p.path, generics);
+ if let Some(aliased_type) = self.crate_types.type_aliases.get(&resolved_path) {
+ return self.write_conversion_inline_intern(w, aliased_type, None, is_ref, is_mut, ptr_for_ref, tupleconv, prefix, sliceconv, path_lookup, decl_lookup);
+ } else if let Some(c_type) = path_lookup(&resolved_path, is_ref, ptr_for_ref) {