about summary refs log tree commit diff
path: root/src/tools
diff options
context:
space:
mode:
authorLuca Versari <veluca93@gmail.com>2024-10-27 01:35:33 +0200
committerLuca Versari <veluca93@gmail.com>2024-11-21 19:32:07 +0100
commit9022bb2d6f49c328ef463d95caa4959fac63c478 (patch)
tree0d13b7c2a6bdd8b2498bfb9cb8bad23f38a6e4b5 /src/tools
parent75703c1a78c3cd99fa1347b237f3966fb8860e98 (diff)
downloadrust-9022bb2d6f49c328ef463d95caa4959fac63c478.tar.gz
rust-9022bb2d6f49c328ef463d95caa4959fac63c478.zip
Implement the unsafe-fields RFC.
Co-Authored-By: Jacob Pratt <jacob@jhpratt.dev>
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/rustfmt/src/items.rs6
-rw-r--r--src/tools/rustfmt/tests/source/unsafe-field.rs16
-rw-r--r--src/tools/rustfmt/tests/target/unsafe-field.rs11
3 files changed, 30 insertions, 3 deletions
diff --git a/src/tools/rustfmt/src/items.rs b/src/tools/rustfmt/src/items.rs
index 68c481bda6e..18932587f1f 100644
--- a/src/tools/rustfmt/src/items.rs
+++ b/src/tools/rustfmt/src/items.rs
@@ -1916,15 +1916,15 @@ pub(crate) fn rewrite_struct_field_prefix(
     field: &ast::FieldDef,
 ) -> RewriteResult {
     let vis = format_visibility(context, &field.vis);
+    let safety = format_safety(field.safety);
     let type_annotation_spacing = type_annotation_spacing(context.config);
     Ok(match field.ident {
         Some(name) => format!(
-            "{}{}{}:",
-            vis,
+            "{vis}{safety}{}{}:",
             rewrite_ident(context, name),
             type_annotation_spacing.0
         ),
-        None => vis.to_string(),
+        None => format!("{vis}{safety}"),
     })
 }
 
diff --git a/src/tools/rustfmt/tests/source/unsafe-field.rs b/src/tools/rustfmt/tests/source/unsafe-field.rs
new file mode 100644
index 00000000000..35cf40a22d3
--- /dev/null
+++ b/src/tools/rustfmt/tests/source/unsafe-field.rs
@@ -0,0 +1,16 @@
+struct Foo {
+    unsafe
+    field: (),
+}
+
+enum Bar {
+    Variant {
+        unsafe
+        field: (),
+    },
+}
+
+union Baz {
+    unsafe
+    field: (),
+}
diff --git a/src/tools/rustfmt/tests/target/unsafe-field.rs b/src/tools/rustfmt/tests/target/unsafe-field.rs
new file mode 100644
index 00000000000..fc7fd3750c6
--- /dev/null
+++ b/src/tools/rustfmt/tests/target/unsafe-field.rs
@@ -0,0 +1,11 @@
+struct Foo {
+    unsafe field: (),
+}
+
+enum Bar {
+    Variant { unsafe field: () },
+}
+
+union Baz {
+    unsafe field: (),
+}