Revert "Initial work on formatting headers"
This reverts commit dd301b0c04d5b5ba0fba54671bc115fc34b40862.
diff --git a/src/header.rs b/src/header.rs
deleted file mode 100644
index fbf4d12..0000000
--- a/src/header.rs
+++ /dev/null
@@ -1,102 +0,0 @@
-//! headers are sets of consecutive keywords and tokens, such as
-//! `pub const unsafe fn foo` and `pub(crate) unsafe trait Bar`.
-//!
-//! This module contains general logic for formatting such headers,
-//! where they are always placed on a single line except when there
-//! are comments between parts of the header.
-
-use std::borrow::Cow;
-
-use rustc_ast as ast;
-use rustc_span::symbol::Ident;
-use rustc_span::Span;
-
-use crate::comment::combine_strs_with_missing_comments;
-use crate::rewrite::RewriteContext;
-use crate::shape::Shape;
-use crate::utils::rewrite_ident;
-
-pub(crate) fn format_header(
- context: &RewriteContext<'_>,
- shape: Shape,
- parts: Vec<HeaderPart>,
-) -> String {
- debug!(?parts, "format_header");
- let shape = shape.infinite_width();
-
- // Empty `HeaderPart`s are ignored.
- let mut parts = parts.into_iter().filter(|x| !x.snippet.is_empty());
- let Some(part) = parts.next() else {
- return String::new();
- };
-
- let mut result = part.snippet.into_owned();
- let mut span = part.span;
-
- for part in parts {
- debug!(?result, "before combine");
- result = combine_strs_with_missing_comments(
- context,
- &result,
- &part.snippet,
- span.between(part.span),
- shape,
- true,
- )
- .unwrap_or_else(|| format!("{} {}", &result, part.snippet));
- debug!(?result);
- span = part.span;
- }
-
- result
-}
-
-#[derive(Debug)]
-pub(crate) struct HeaderPart {
- /// snippet of this part without surrounding space
- snippet: Cow<'static, str>,
- span: Span,
-}
-
-impl HeaderPart {
- pub(crate) fn new(snippet: impl Into<Cow<'static, str>>, span: Span) -> Self {
- Self {
- snippet: snippet.into(),
- span,
- }
- }
-
- pub(crate) fn ident(context: &RewriteContext<'_>, ident: Ident) -> Self {
- Self {
- snippet: rewrite_ident(context, ident).to_owned().into(),
- span: ident.span,
- }
- }
-
- pub(crate) fn visibility(context: &RewriteContext<'_>, vis: &ast::Visibility) -> Self {
- let snippet = match vis.kind {
- ast::VisibilityKind::Public => Cow::from("pub"),
- ast::VisibilityKind::Inherited => Cow::from(""),
- ast::VisibilityKind::Restricted { ref path, .. } => {
- let ast::Path { ref segments, .. } = **path;
- let mut segments_iter =
- segments.iter().map(|seg| rewrite_ident(context, seg.ident));
- if path.is_global() {
- segments_iter
- .next()
- .expect("Non-global path in pub(restricted)?");
- }
- let is_keyword = |s: &str| s == "crate" || s == "self" || s == "super";
- let path = segments_iter.collect::<Vec<_>>().join("::");
- let in_str = if is_keyword(&path) { "" } else { "in " };
-
- Cow::from(format!("pub({}{})", in_str, path))
- }
- };
-
- HeaderPart {
- snippet,
- span: vis.span,
- }
- }
-}
diff --git a/src/lib.rs b/src/lib.rs
index 0d1ac7a..a67adb1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -71,7 +71,6 @@
mod expr;
mod format_report_formatter;
pub(crate) mod formatting;
-pub(crate) mod header;
mod ignore_path;
mod imports;
mod items;
diff --git a/src/macros.rs b/src/macros.rs
index 2cc5c69..6e114c7 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -27,7 +27,6 @@
use crate::config::lists::*;
use crate::config::Version;
use crate::expr::{rewrite_array, rewrite_assign_rhs, RhsAssignKind};
-use crate::header::{format_header, HeaderPart};
use crate::lists::{itemize_list, write_list, ListFormatting};
use crate::overflow;
use crate::parse::macros::lazy_static::parse_lazy_static;
@@ -37,8 +36,8 @@
use crate::source_map::SpanUtils;
use crate::spanned::Spanned;
use crate::utils::{
- filtered_str_fits, indent_next_line, is_empty_line, mk_sp, remove_trailing_white_spaces,
- rewrite_ident, trim_left_preserve_layout, NodeIdExt,
+ filtered_str_fits, format_visibility, indent_next_line, is_empty_line, mk_sp,
+ remove_trailing_white_spaces, rewrite_ident, trim_left_preserve_layout, NodeIdExt,
};
use crate::visitor::FmtVisitor;
@@ -419,21 +418,14 @@
None => return snippet,
};
- let mut header = if def.macro_rules {
- let pos = context.snippet_provider.span_after(span, "macro_rules!");
- vec![HeaderPart::new("macro_rules!", span.with_hi(pos))]
+ let mut result = if def.macro_rules {
+ String::from("macro_rules!")
} else {
- let macro_lo = context.snippet_provider.span_before(span, "macro");
- let macro_hi = macro_lo + BytePos("macro".len() as u32);
- vec![
- HeaderPart::visibility(context, vis),
- HeaderPart::new("macro", mk_sp(macro_lo, macro_hi)),
- ]
+ format!("{}macro", format_visibility(context, vis))
};
- header.push(HeaderPart::ident(context, ident));
-
- let mut result = format_header(context, shape, header);
+ result += " ";
+ result += rewrite_ident(context, ident);
let multi_branch_style = def.macro_rules || parsed_def.branches.len() != 1;
diff --git a/tests/target/keywords.rs b/tests/target/keywords.rs
deleted file mode 100644
index 22bf774..0000000
--- a/tests/target/keywords.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-pub // a
-macro // b
-hi(
- // c
-) {
- // d
-}
-
-macro_rules! // a
-my_macro {
- () => {};
-}