Skip to content

Commit

Permalink
format safety keywords on static items
Browse files Browse the repository at this point in the history
This includes both `ast::StaticItem` and `ast::StaticForeignItem`.
`safety` was added to both `ast::StaticItem` and `ast::SaticForeignItem`
in rust-lang/rust#124482.
  • Loading branch information
ytmimi committed Jun 21, 2024
1 parent 3ffd7d4 commit 5469506
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions src/items.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1915,6 +1915,7 @@ pub(crate) fn rewrite_struct_field(

pub(crate) struct StaticParts<'a> {
prefix: &'a str,
safety: ast::Safety,
vis: &'a ast::Visibility,
ident: symbol::Ident,
ty: &'a ast::Ty,
Expand All @@ -1926,11 +1927,12 @@ pub(crate) struct StaticParts<'a> {

impl<'a> StaticParts<'a> {
pub(crate) fn from_item(item: &'a ast::Item) -> Self {
let (defaultness, prefix, ty, mutability, expr) = match &item.kind {
ast::ItemKind::Static(s) => (None, "static", &s.ty, s.mutability, &s.expr),
let (defaultness, prefix, safety, ty, mutability, expr) = match &item.kind {
ast::ItemKind::Static(s) => (None, "static", s.safety, &s.ty, s.mutability, &s.expr),
ast::ItemKind::Const(c) => (
Some(c.defaultness),
"const",
ast::Safety::Default,
&c.ty,
ast::Mutability::Not,
&c.expr,
Expand All @@ -1939,6 +1941,7 @@ impl<'a> StaticParts<'a> {
};
StaticParts {
prefix,
safety,
vis: &item.vis,
ident: item.ident,
ty,
Expand All @@ -1956,6 +1959,7 @@ impl<'a> StaticParts<'a> {
};
StaticParts {
prefix: "const",
safety: ast::Safety::Default,
vis: &ti.vis,
ident: ti.ident,
ty,
Expand All @@ -1973,6 +1977,7 @@ impl<'a> StaticParts<'a> {
};
StaticParts {
prefix: "const",
safety: ast::Safety::Default,
vis: &ii.vis,
ident: ii.ident,
ty,
Expand All @@ -1989,11 +1994,13 @@ fn rewrite_static(
static_parts: &StaticParts<'_>,
offset: Indent,
) -> Option<String> {
println!("rewriting static");
let colon = colon_spaces(context.config);
let mut prefix = format!(
"{}{}{} {}{}{}",
"{}{}{}{} {}{}{}",
format_visibility(context, static_parts.vis),
static_parts.defaultness.map_or("", format_defaultness),
format_safety(static_parts.safety),
static_parts.prefix,
format_mutability(static_parts.mutability),
rewrite_ident(context, static_parts.ident),
Expand Down Expand Up @@ -3338,10 +3345,12 @@ impl Rewrite for ast::ForeignItem {
// FIXME(#21): we're dropping potential comments in between the
// function kw here.
let vis = format_visibility(context, &self.vis);
let safety = format_safety(static_foreign_item.safety);
let mut_str = format_mutability(static_foreign_item.mutability);
let prefix = format!(
"{}static {}{}:",
"{}{}static {}{}:",
vis,
safety,
mut_str,
rewrite_ident(context, self.ident)
);
Expand Down

0 comments on commit 5469506

Please sign in to comment.