Skip to content

Commit 5ffccbb

Browse files
ayazhafizcalebcartwright
authored andcommitted
Properly format function signature in extern blocks
Closes #4288 And we get to drop a method, which I think is a win :)
1 parent 8e46225 commit 5ffccbb

File tree

1 file changed

+7
-22
lines changed

1 file changed

+7
-22
lines changed

src/items.rs

+7-22
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ impl Rewrite for ast::Local {
125125
// FIXME convert to using rewrite style rather than visitor
126126
// FIXME format modules in this style
127127
#[allow(dead_code)]
128+
#[derive(Debug)]
128129
struct Item<'a> {
129130
unsafety: ast::Unsafe,
130131
abi: Cow<'static, str>,
@@ -153,6 +154,7 @@ impl<'a> Item<'a> {
153154
}
154155
}
155156

157+
#[derive(Debug)]
156158
enum BodyElement<'a> {
157159
// Stmt(&'a ast::Stmt),
158160
// Field(&'a ast::Field),
@@ -174,26 +176,10 @@ pub(crate) struct FnSig<'a> {
174176
}
175177

176178
impl<'a> FnSig<'a> {
177-
pub(crate) fn new(
178-
decl: &'a ast::FnDecl,
179-
generics: &'a ast::Generics,
180-
vis: ast::Visibility,
181-
) -> FnSig<'a> {
182-
FnSig {
183-
decl,
184-
generics,
185-
ext: ast::Extern::None,
186-
is_async: Cow::Owned(ast::Async::No),
187-
constness: ast::Const::No,
188-
defaultness: ast::Defaultness::Final,
189-
unsafety: ast::Unsafe::No,
190-
visibility: vis,
191-
}
192-
}
193-
194179
pub(crate) fn from_method_sig(
195180
method_sig: &'a ast::FnSig,
196181
generics: &'a ast::Generics,
182+
visibility: ast::Visibility,
197183
) -> FnSig<'a> {
198184
FnSig {
199185
unsafety: method_sig.header.unsafety,
@@ -203,7 +189,7 @@ impl<'a> FnSig<'a> {
203189
ext: method_sig.header.ext,
204190
decl: &*method_sig.decl,
205191
generics,
206-
visibility: DEFAULT_VISIBILITY,
192+
visibility,
207193
}
208194
}
209195

@@ -216,9 +202,8 @@ impl<'a> FnSig<'a> {
216202
match *fn_kind {
217203
visit::FnKind::Fn(fn_ctxt, _, fn_sig, vis, _) => match fn_ctxt {
218204
visit::FnCtxt::Assoc(..) => {
219-
let mut fn_sig = FnSig::from_method_sig(fn_sig, generics);
205+
let mut fn_sig = FnSig::from_method_sig(fn_sig, generics, vis.clone());
220206
fn_sig.defaultness = defaultness;
221-
fn_sig.visibility = vis.clone();
222207
fn_sig
223208
}
224209
_ => FnSig {
@@ -347,7 +332,7 @@ impl<'a> FmtVisitor<'a> {
347332
&context,
348333
indent,
349334
ident,
350-
&FnSig::from_method_sig(sig, generics),
335+
&FnSig::from_method_sig(sig, generics, DEFAULT_VISIBILITY),
351336
span,
352337
FnBraceStyle::None,
353338
)?;
@@ -3062,7 +3047,7 @@ impl Rewrite for ast::ForeignItem {
30623047
context,
30633048
shape.indent,
30643049
self.ident,
3065-
&FnSig::new(&fn_sig.decl, generics, self.vis.clone()),
3050+
&FnSig::from_method_sig(&fn_sig, generics, self.vis.clone()),
30663051
span,
30673052
FnBraceStyle::None,
30683053
)

0 commit comments

Comments
 (0)