Fix for #1255
Default annotation incorrectly removed on associated types Fixed by adding a specific function to perform formatting on `ImplItems`.
This commit is contained in:
parent
4f91f02ad1
commit
094c8898e1
16
src/items.rs
16
src/items.rs
@ -1267,6 +1267,22 @@ pub fn rewrite_associated_type(ident: ast::Ident,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn rewrite_associated_impl_type(ident: ast::Ident,
|
||||
defaultness: ast::Defaultness,
|
||||
ty_opt: Option<&ptr::P<ast::Ty>>,
|
||||
ty_param_bounds_opt: Option<&ast::TyParamBounds>,
|
||||
context: &RewriteContext,
|
||||
indent: Indent)
|
||||
-> Option<String> {
|
||||
let result =
|
||||
try_opt!(rewrite_associated_type(ident, ty_opt, ty_param_bounds_opt, context, indent));
|
||||
|
||||
match defaultness {
|
||||
ast::Defaultness::Default => Some(format!("default {}", result)),
|
||||
_ => Some(result),
|
||||
}
|
||||
}
|
||||
|
||||
impl Rewrite for ast::FunctionRetTy {
|
||||
fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option<String> {
|
||||
match *self {
|
||||
|
@ -21,7 +21,8 @@ use config::Config;
|
||||
use rewrite::{Rewrite, RewriteContext};
|
||||
use comment::rewrite_comment;
|
||||
use macros::{rewrite_macro, MacroPosition};
|
||||
use items::{rewrite_static, rewrite_associated_type, rewrite_type_alias, format_impl, format_trait};
|
||||
use items::{rewrite_static, rewrite_associated_type, rewrite_associated_impl_type,
|
||||
rewrite_type_alias, format_impl, format_trait};
|
||||
|
||||
fn is_use_item(item: &ast::Item) -> bool {
|
||||
match item.node {
|
||||
@ -411,11 +412,12 @@ impl<'a> FmtVisitor<'a> {
|
||||
self.push_rewrite(ii.span, rewrite);
|
||||
}
|
||||
ast::ImplItemKind::Type(ref ty) => {
|
||||
let rewrite = rewrite_associated_type(ii.ident,
|
||||
Some(ty),
|
||||
None,
|
||||
&self.get_context(),
|
||||
self.block_indent);
|
||||
let rewrite = rewrite_associated_impl_type(ii.ident,
|
||||
ii.defaultness,
|
||||
Some(ty),
|
||||
None,
|
||||
&self.get_context(),
|
||||
self.block_indent);
|
||||
self.push_rewrite(ii.span, rewrite);
|
||||
}
|
||||
ast::ImplItemKind::Macro(ref mac) => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user