Skip to content

Commit 6ccf539

Browse files
ding-youngytmimi
authored andcommitted
modify trait bound of itemize_list
1 parent ea02de2 commit 6ccf539

13 files changed

+44
-31
lines changed

src/attr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ fn format_derive(
9999
",",
100100
|span| span.lo(),
101101
|span| span.hi(),
102-
|span| Some(context.snippet(*span).to_owned()),
102+
|span| Ok(context.snippet(*span).to_owned()),
103103
// We update derive attribute spans to start after the opening '('
104104
// This helps us focus parsing to just what's inside #[derive(...)]
105105
context.snippet_provider.span_after(attr.span, "("),

src/closures.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ fn rewrite_closure_fn_decl(
312312
",",
313313
|param| span_lo_for_param(param),
314314
|param| span_hi_for_param(context, param),
315-
|param| param.rewrite(context, param_shape),
315+
|param| param.rewrite_result(context, param_shape),
316316
context.snippet_provider.span_after(span, "|"),
317317
body.span.lo(),
318318
false,

src/expr.rs

+16-6
Original file line numberDiff line numberDiff line change
@@ -1671,15 +1671,25 @@ fn rewrite_struct_lit<'a>(
16711671
let rewrite = |item: &StructLitField<'_>| match *item {
16721672
StructLitField::Regular(field) => {
16731673
// The 1 taken from the v_budget is for the comma.
1674-
let v_shape = v_shape.sub_width(1)?;
1675-
rewrite_field(context, field, v_shape, 0).ok()
1674+
rewrite_field(
1675+
context,
1676+
field,
1677+
v_shape.sub_width(1).max_width_error(v_shape.width, span)?,
1678+
0,
1679+
)
1680+
.unknown_error()
16761681
}
16771682
StructLitField::Base(expr) => {
16781683
// 2 = ..
1679-
let v_shape = v_shape.sub_width(2)?;
1680-
expr.rewrite(context, v_shape).map(|s| format!("..{}", s))
1684+
expr.rewrite_result(
1685+
context,
1686+
v_shape
1687+
.offset_left(2)
1688+
.max_width_error(v_shape.width, span)?,
1689+
)
1690+
.map(|s| format!("..{}", s))
16811691
}
1682-
StructLitField::Rest(_) => Some("..".to_owned()),
1692+
StructLitField::Rest(_) => Ok("..".to_owned()),
16831693
};
16841694

16851695
let items = itemize_list(
@@ -1843,7 +1853,7 @@ fn rewrite_tuple_in_visual_indent_style<'a, T: 'a + IntoOverflowableItem<'a>>(
18431853
",",
18441854
|item| item.span().lo(),
18451855
|item| item.span().hi(),
1846-
|item| item.rewrite(context, nested_shape),
1856+
|item| item.rewrite_result(context, nested_shape),
18471857
list_lo,
18481858
span.hi() - BytePos(1),
18491859
false,

src/imports.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,7 @@ impl UseTree {
470470
",",
471471
|tree| tree.span.lo(),
472472
|tree| tree.span.hi(),
473-
|_| Some("".to_owned()), // We only need comments for now.
473+
|_| Ok("".to_owned()), // We only need comments for now.
474474
context.snippet_provider.span_after(a.span, "{"),
475475
a.span.hi(),
476476
false,

src/items.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,10 @@ impl<'a> FmtVisitor<'a> {
629629
}
630630
},
631631
|f| f.span.hi(),
632-
|f| self.format_variant(f, one_line_width, pad_discrim_ident_to),
632+
|f| {
633+
self.format_variant(f, one_line_width, pad_discrim_ident_to)
634+
.unknown_error()
635+
},
633636
body_lo,
634637
body_hi,
635638
false,
@@ -2777,8 +2780,8 @@ fn rewrite_params(
27772780
|param| param.ty.span.hi(),
27782781
|param| {
27792782
param
2780-
.rewrite(context, Shape::legacy(multi_line_budget, param_indent))
2781-
.or_else(|| Some(context.snippet(param.span()).to_owned()))
2783+
.rewrite_result(context, Shape::legacy(multi_line_budget, param_indent))
2784+
.or_else(|_| Ok(context.snippet(param.span()).to_owned()))
27822785
},
27832786
span.lo(),
27842787
span.hi(),
@@ -3048,7 +3051,7 @@ fn rewrite_bounds_on_where_clause(
30483051
",",
30493052
|pred| pred.span().lo(),
30503053
|pred| pred.span().hi(),
3051-
|pred| pred.rewrite(context, shape),
3054+
|pred| pred.rewrite_result(context, shape),
30523055
span_start,
30533056
span_end,
30543057
false,
@@ -3129,7 +3132,7 @@ fn rewrite_where_clause(
31293132
",",
31303133
|pred| pred.span().lo(),
31313134
|pred| pred.span().hi(),
3132-
|pred| pred.rewrite(context, Shape::legacy(budget, offset)),
3135+
|pred| pred.rewrite_result(context, Shape::legacy(budget, offset)),
31333136
span_start,
31343137
span_end,
31353138
false,

src/lists.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use rustc_span::BytePos;
88
use crate::comment::{find_comment_end, rewrite_comment, FindUncommented};
99
use crate::config::lists::*;
1010
use crate::config::{Config, IndentStyle};
11-
use crate::rewrite::RewriteContext;
11+
use crate::rewrite::{RewriteContext, RewriteResult};
1212
use crate::shape::{Indent, Shape};
1313
use crate::utils::{
1414
count_newlines, first_line_width, last_line_width, mk_sp, starts_with_newline,
@@ -281,6 +281,7 @@ where
281281
let indent_str = &formatting.shape.indent.to_string(formatting.config);
282282
while let Some((i, item)) = iter.next() {
283283
let item = item.as_ref();
284+
// TODO here Is it possible to 실제로 list item이 없으면..
284285
let inner_item = item.item.as_ref()?;
285286
let first = i == 0;
286287
let last = iter.peek().is_none();
@@ -741,7 +742,7 @@ where
741742
I: Iterator<Item = T>,
742743
F1: Fn(&T) -> BytePos,
743744
F2: Fn(&T) -> BytePos,
744-
F3: Fn(&T) -> Option<String>,
745+
F3: Fn(&T) -> RewriteResult,
745746
{
746747
type Item = ListItem;
747748

@@ -778,7 +779,7 @@ where
778779
item: if self.inner.peek().is_none() && self.leave_last {
779780
None
780781
} else {
781-
(self.get_item_string)(&item)
782+
(self.get_item_string)(&item).ok()
782783
},
783784
post_comment,
784785
new_lines,
@@ -805,7 +806,7 @@ where
805806
I: Iterator<Item = T>,
806807
F1: Fn(&T) -> BytePos,
807808
F2: Fn(&T) -> BytePos,
808-
F3: Fn(&T) -> Option<String>,
809+
F3: Fn(&T) -> RewriteResult,
809810
{
810811
ListItems {
811812
snippet_provider,

src/macros.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use crate::lists::{itemize_list, write_list, ListFormatting};
3131
use crate::overflow;
3232
use crate::parse::macros::lazy_static::parse_lazy_static;
3333
use crate::parse::macros::{parse_expr, parse_macro_args, ParsedMacroArgs};
34-
use crate::rewrite::{Rewrite, RewriteContext};
34+
use crate::rewrite::{Rewrite, RewriteContext, RewriteError};
3535
use crate::shape::{Indent, Shape};
3636
use crate::source_map::SpanUtils;
3737
use crate::spanned::Spanned;
@@ -452,13 +452,13 @@ pub(crate) fn rewrite_macro_def(
452452
|branch| branch.span.lo(),
453453
|branch| branch.span.hi(),
454454
|branch| match branch.rewrite(context, arm_shape, multi_branch_style) {
455-
Some(v) => Some(v),
455+
Some(v) => Ok(v),
456456
// if the rewrite returned None because a macro could not be rewritten, then return the
457457
// original body
458458
None if context.macro_rewrite_failure.get() => {
459-
Some(context.snippet(branch.body).trim().to_string())
459+
Ok(context.snippet(branch.body).trim().to_string())
460460
}
461-
None => None,
461+
None => Err(RewriteError::Unknown),
462462
},
463463
context.snippet_provider.span_after(span, "{"),
464464
span.hi(),

src/matches.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ fn rewrite_match_arms(
225225
"|",
226226
|arm| arm.span().lo(),
227227
|arm| arm.span().hi(),
228-
|arm| arm.rewrite(context, arm_shape),
228+
|arm| arm.rewrite_result(context, arm_shape),
229229
open_brace_pos,
230230
span.hi(),
231231
false,

src/overflow.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ impl<'a> Context<'a> {
623623
",",
624624
|item| item.span().lo(),
625625
|item| item.span().hi(),
626-
|item| item.rewrite(self.context, self.nested_shape),
626+
|item| item.rewrite_result(self.context, self.nested_shape),
627627
span.lo(),
628628
span.hi(),
629629
true,

src/patterns.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ fn rewrite_struct_pat(
343343
}
344344
},
345345
|f| f.span.hi(),
346-
|f| f.rewrite(context, v_shape),
346+
|f| f.rewrite_result(context, v_shape),
347347
context.snippet_provider.span_after(span, "{"),
348348
span.hi(),
349349
false,
@@ -551,7 +551,7 @@ fn count_wildcard_suffix_len(
551551
",",
552552
|item| item.span().lo(),
553553
|item| item.span().hi(),
554-
|item| item.rewrite(context, shape),
554+
|item| item.rewrite_result(context, shape),
555555
context.snippet_provider.span_after(span, "("),
556556
span.hi() - BytePos(1),
557557
false,

src/reorder.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use crate::config::{Config, GroupImportsTactic};
1515
use crate::imports::{normalize_use_trees_with_granularity, UseSegmentKind, UseTree};
1616
use crate::items::{is_mod_decl, rewrite_extern_crate, rewrite_mod};
1717
use crate::lists::{itemize_list, write_list, ListFormatting, ListItem};
18-
use crate::rewrite::RewriteContext;
18+
use crate::rewrite::{RewriteContext, RewriteErrorExt};
1919
use crate::shape::Shape;
2020
use crate::source_map::LineRangeUtils;
2121
use crate::spanned::Spanned;
@@ -99,7 +99,7 @@ fn rewrite_reorderable_or_regroupable_items(
9999
";",
100100
|item| item.span().lo(),
101101
|item| item.span().hi(),
102-
|_item| Some("".to_owned()),
102+
|_item| Ok("".to_owned()),
103103
span.lo(),
104104
span.hi(),
105105
false,
@@ -151,7 +151,7 @@ fn rewrite_reorderable_or_regroupable_items(
151151
";",
152152
|item| item.span().lo(),
153153
|item| item.span().hi(),
154-
|item| rewrite_reorderable_item(context, item, shape),
154+
|item| rewrite_reorderable_item(context, item, shape).unknown_error(),
155155
span.lo(),
156156
span.hi(),
157157
false,

src/types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ where
388388
",",
389389
|arg| arg.span().lo(),
390390
|arg| arg.span().hi(),
391-
|arg| arg.rewrite(context, list_shape),
391+
|arg| arg.rewrite_result(context, list_shape),
392392
list_lo,
393393
span.hi(),
394394
false,

src/vertical.rs

-1
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ fn rewrite_aligned_items_inner<T: AlignedItem>(
231231
|field| {
232232
field
233233
.rewrite_aligned_item(context, item_shape, field_prefix_max_width)
234-
.ok()
235234
},
236235
span.lo(),
237236
span.hi(),

0 commit comments

Comments
 (0)