def remove_alias(type_):
if isinstance(type_, cpptypes.type_t):<EOL><INDENT>type_ref = type_<EOL><DEDENT>elif isinstance(type_, typedef.typedef_t):<EOL><INDENT>type_ref = type_.decl_type<EOL><DEDENT>else:<EOL><INDENT>return type_<EOL><DEDENT>if type_ref.cache.remove_alias:<EOL><INDENT>return type_ref.cache.remove_alias<EOL><DEDENT>no_alias = __remove_alias(type_ref.clone())<EOL>type_ref.cache.remove_alias = no_alias<EOL>return no_alias<EOL>
Returns `type_t` without typedef

Args:
    type_ (type_t | declaration_t): type or declaration

Returns:
    type_t: the type associated to the inputted declaration