]> git.lizzy.rs Git - rust.git/commitdiff
Format defaultness
authortopecongiro <seuchida@gmail.com>
Thu, 27 Jul 2017 00:43:35 +0000 (09:43 +0900)
committertopecongiro <seuchida@gmail.com>
Thu, 27 Jul 2017 00:43:35 +0000 (09:43 +0900)
src/items.rs
src/utils.rs
tests/target/impl.rs

index cd2cdf28fe6487bb3aaf5c57bc01112a21bf8373..924c6b22969a6df42f1bcc2cdd43063e36c3b494 100644 (file)
@@ -26,9 +26,9 @@
             ListItem, ListTactic, SeparatorTactic};
 use rewrite::{Rewrite, RewriteContext};
 use types::join_bounds;
-use utils::{colon_spaces, contains_skip, end_typaram, format_mutability, format_unsafety,
-            format_visibility, last_line_width, mk_sp, semicolon_for_expr, stmt_expr,
-            trim_newlines, trimmed_last_line_width, wrap_str};
+use utils::{colon_spaces, contains_skip, end_typaram, format_defaultness, format_mutability,
+            format_unsafety, format_visibility, last_line_width, mk_sp, semicolon_for_expr,
+            stmt_expr, trim_newlines, trimmed_last_line_width, wrap_str};
 use vertical::rewrite_with_alignment;
 use visitor::FmtVisitor;
 
@@ -695,7 +695,7 @@ fn format_impl_ref_and_type(
     if let ast::ItemKind::Impl(
         unsafety,
         polarity,
-        _,
+        defaultness,
         ref generics,
         ref trait_ref,
         ref self_ty,
@@ -705,6 +705,7 @@ fn format_impl_ref_and_type(
         let mut result = String::new();
 
         result.push_str(&format_visibility(&item.vis));
+        result.push_str(&format_defaultness(defaultness));
         result.push_str(format_unsafety(unsafety));
         result.push_str("impl");
 
index dc511fc31017f41d3e7a08c7cd299b30bb2e81a7..56dde6c247a333e835fab7ae29e6c2e40e48e22f 100644 (file)
@@ -56,6 +56,14 @@ pub fn format_visibility(vis: &Visibility) -> Cow<'static, str> {
     }
 }
 
+#[inline]
+pub fn format_defaultness(defaultness: ast::Defaultness) -> &'static str {
+    match defaultness {
+        ast::Defaultness::Default => "default ",
+        ast::Defaultness::Final => "",
+    }
+}
+
 #[inline]
 pub fn format_unsafety(unsafety: ast::Unsafety) -> &'static str {
     match unsafety {
index ef8895580bd187f92fe2aa85d38ef8b42f732f8d..c0db6769512df1546cf42c050a1b2df8234f6ce3 100644 (file)
@@ -26,3 +26,8 @@ impl<T> Foo for T
     T: Clone,
 {
 }
+
+// #1823
+default impl Trait for X {}
+default unsafe impl Trait for Y {}
+pub default unsafe impl Trait for Z {}